BR112014013373B1 - Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo - Google Patents

Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo Download PDF

Info

Publication number
BR112014013373B1
BR112014013373B1 BR112014013373-5A BR112014013373A BR112014013373B1 BR 112014013373 B1 BR112014013373 B1 BR 112014013373B1 BR 112014013373 A BR112014013373 A BR 112014013373A BR 112014013373 B1 BR112014013373 B1 BR 112014013373B1
Authority
BR
Brazil
Prior art keywords
image
long
term reference
order count
significant bits
Prior art date
Application number
BR112014013373-5A
Other languages
English (en)
Other versions
BR112014013373A2 (pt
BR112014013373A8 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Ying Chen
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014013373A2 publication Critical patent/BR112014013373A2/pt
Publication of BR112014013373A8 publication Critical patent/BR112014013373A8/pt
Publication of BR112014013373B1 publication Critical patent/BR112014013373B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

CODIFICAÇÃO DE BITS MENOS SIGNIFICATIVOS DOS VALORES DE CONTAGEM DE ORDEM DE IMAGEM IDENTIFICANDO IMAGENS DE REFERÊNCIA DE LONGO TERMO. Em geral, as técnicas são descritas para codificar valores de contagem de ordem de imagem identificando imagens de referência de longo termo. Um dispositivo de decodificação de vídeo compreende um processador para realizar as técnicas. O processador pode ser configurado para determinar um número de bits utilizado para representar os bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo termo a ser utilizada quando da decodificação de pelo menos uma parte de uma imagem atual e analisar o número determinado de bits a partir de uma sequência de bits representando os dados de vídeo codificados. Os bits analisados representam os bits menos significativos do valor de contagem de ordem de imagem. O processador recupera a imagem de referência delongo termo a partir de um armazenador de imagem decodificada com base nos bits menos significativos, e decodifica pelo menos a parte da imagem atual utilizando a imagem de referência de longo termo recuperada.

Description

[0001] Esse pedido reivindica os benefícios do pedido provisório U.S. No. 61/566,359, depositado em 2 de dezembro de 2011, do pedido provisório U.S. No 61/589,295, depositado em 20 de janeiro de 2012, e do pedido provisório U.S. No. 61/624,933, depositado em 16 de abril de 2012, a totalidade do conteúdo dos quais é incorporada aqui por referência em sua respectiva totalidade.
CAMPO TÉCNICO
[0002] Es sa descrição refere-se à codificação de vídeo.
FUNDAMENTOS
[0003] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, câmeras digitais, dispositivos de gravação digital, aparelhos de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones de rádio via satélite e celulares, dispositivos de teleconferência de vídeo, e similares. Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Visões (MVC). O último rascunho conjunto de MVC é descrito em "Advanced video coding for generic audiovisual services," ITU-T Recomendação H.264, Março de 2010.
[0004] As técnicas de compressão de vídeo realizam a predição espacial e/ou predição temporal para reduzir ou remover redundância inerente às sequências de vídeo. Para codificação de vídeo com base em bloqueio, um quadro ou fatia de vídeo pode ser dividido em blocos. Cada bloco pode ser adicionalmente dividido. Os blocos em um quadro intracodificado (I) ou fatia são codificados utilizando-se a predição espacial com relação aos blocos vizinhos. Os blocos em um quadro ou fatia intercodificado (P ou B) podem utilizar a predição espacial com relação aos blocos vizinhos no mesmo quadro ou fatia ou predição temporal com relação a outros quadros de referência.
[0005] Esforços foram feitos para se desenvolver novos padrões de codificação de vídeo com base em H.264/AVC. Um padrão desses é o padrão de codificação de vídeo escalonável (SVC) que é uma extensão escalonável de H.264/AVC. Outro padrão é a codificação de vídeo de múltiplas visões (MVC), que se tornou a extensão de múltiplas visões de H.264/AVC. Um rascunho conjunto de MVC é descrito em JVT-AB204, "Joint Draft 8.0 on Multiview Video Coding," 28th JVT Meeting, Hannover, Alemanha, julho de 2008, disponível em http://wftp3.itu.int/av- arch/jvtsite/2008_07_Hannover/JVT-AB204.zip. Uma versão do padrão AVC é descrita em JVT-AD007, "Editors' draft revision to ITU-T Rec. H.264|ISO/IEC 14496-10 Advanced Video Coding - in preparation for ITU-T SG 16 AAP Consent (in integrated form)," 30th JVT meeting, Genebra, CH, fevereiro de 2009," disponível a partir de http://wftp3.itu.int/av-arch/jvtsite/2009_01_Geneva/JVT- AD007.zip. Esse documento integra SVC e MVC na especificação AVC.
SUMÁRIO
[0006] Em geral, as técnicas são descritas que fornecem vários métodos para derivar um conjunto de imagem de referência (RPS) e sinalização de imagens de referência de longo prazo (LTRPs) para serem incluídas no RPS de uma imagem codificada para uso quando da realização de aspectos de interpredição de codificação de vídeo.
[0007] Em um exemplo, um método de codificação de dados de vídeo compreende a determinação, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual de dados de vídeo e determinando um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo em uma sequência de bits representativa de uma versão codificada de dados de vídeo. O método compreende adicionalmente a especificação de um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo na sequência de bits utilizando o número determinado de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo e codificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0008] Em outro exemplo, um dispositivo de codificação de vídeo configurado para codificar os dados de vídeo compreende um ou mais processadores configurados para determinar, para uma imagem atual de dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual de dados de vídeo, determinar um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo em uma sequência de bits que representa uma versão codificada de dados de vídeo, especificando um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo na sequência de bits utilizando o número determinado de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e codifica pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0009] Em outro exemplo, um dispositivo de codificação de vídeo para codificação de dados de vídeo compreende meios para determinar, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual de dados de vídeo e meios para determinar um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo em uma sequência de bits representativa de uma versão codificada de dados de vídeo. O dispositivo de codificação de vídeo compreende adicionalmente meios para especificar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo na sequência de bits utilizando o número determinado de bits utilizado para representar um ou mais bits menos significantes do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e meios para codificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0010] Em outro exemplo, um meio de armazenamento legível por computador não transitório possui armazenadas no mesmo instruções que, quando executadas, fazem com que um ou mais processadores de um dispositivo de codificação de vídeo determinem, para uma imagem atual de dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual de dados de vídeo, determinem um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo em uma sequência de bits representativa de uma versão codificada de dados de vídeo, especifiquem um ou mais bits menos significativos do valor de contagem de orem de imagem que identifica a imagem de referência de longo prazo na sequência de bits utilizando o número determinado de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo e codifiquem pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0011] Em outro exemplo, um método de decodificação de dados de vídeo codificados compreende determinar, para uma imagem atual de dados de vídeo codificados, um número de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual, e analisar o número determinado de bits a partir de uma sequência de bits representativa de dados de vídeo codificados, onde o número determinado analisado de bits representa um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. O método compreende adicionalmente a recuperação de imagem de referência de longo prazo de um armazenador temporário de imagem decodificada com base nos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e decodificando pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0012] Em outro exemplo, um dispositivo de decodificação de vídeo para decodificação de dados de vídeo codificados compreende um ou mais processadores configurados para determinar, para uma imagem atual dos dados de vídeo codificados, um número de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizado quando da decodificação de pelo menos uma parte da imagem atual, analisar o número determinado de bits a partir de uma sequência de bits representativa de dados de vídeo codificados, onde o número determinado analisado de bits representa um ou mais dos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, recupera a imagem de referência de longo prazo a partir de um armazenador de imagem decodificado com base nos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e decodifica pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0013] Em outro exemplo, um dispositivo de decodificação de vídeo para decodificar os dados de vídeo codificados compreende meios para determinar, para uma imagem atual de dados de vídeo codificados, um número de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual, e meios para analisar o número determinado de bits a partir de uma sequência de bits representativa dos dados de vídeo codificados, onde o número determinado analisado de bits representa um ou mais dos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. O dispositivo de decodificação de vídeo também compreende meios para recuperar a imagem de referência de longo prazo a partir de um armazenador temporário de imagem decodificada com base nos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e meios para decodificar pelo menos a parte da imagem atual utilizando a imagem de referencia de longo prazo recuperada.
[0014] Em outro exemplo, um meio de armazenamento legível por computador não transitório possuindo instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores de um dispositivo de decodificação de vídeo determinem, para uma imagem atual de dados de vídeo codificados, um número de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos um parte da imagem atual, analisem o número determinado de bits a partir de uma sequência de bits representativa de dados de vídeo codificados, no qual o número determinado analisado de bits representa um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, recuperem a imagem de referência de longo prazo de um armazenador de imagem decodificada com base nos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, e decodifiquem pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0015] Em outro exemplo, um método de codificação de dados de vídeo compreende a determinação, para uma imagem atual de dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual, e quando um ou mais bits menos significativos de qualquer outro dos valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada para um armazenador de imagem decodificado ao qual a imagem de referência de longo prazo também é armazenada são iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, determinando um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual. O número de um ou mais bits menos significativos quando adicionados a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem. O método também compreende a especificação de ambos um ou mais bits menos significativos determinados e um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits representativa de uma versão codificada de dados de vídeo, e codificando pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0016] Em outro exemplo, um dispositivo de codificação de vídeo para codificação de dados de vídeo, o dispositivo de codificação de vídeo compreende um ou mais processadores configurados para determinar, para uma imagem atual de dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual, quando um ou mais bits menos significativos de qualquer outro dos valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada em um armazenador de imagem decodificada ao qual a imagem de referência de longo prazo também é armazenada forem iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo, determinem um ou mais bits mais significativos do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual, onde um número de um ou mais bits menos significativos quando adicionados a um número de um ou mais bits mais significativos resultar em um total que seja inferior a um número total de bits para especificar o valor de contagem de ordem de imagem, especifiquem ambos os um ou mais bits menos significativos determinados e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits representativa de uma versão codificada de dados de vídeo, e codifiquem pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0017] Em outro exemplo, um dispositivo de codificação de vídeo para codificação de dados de vídeo compreende meios para determinar, para uma imagem atual de dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual, e quando um ou mais bits menos significativos de qualquer outro dos valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada em um armazenador temporário de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada forem iguais a um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, meios para determinar um mias bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual, onde um número de um ou mais bits menos significativos quando adicionados a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem. O dispositivo de codificação de vídeo também compreende meios para especificar ambos os um ou mais bits menos significativos determinados e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits que representa uma versão codificada de dados de vídeo, e meios para codificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0018] Em outro exemplo, um meio de armazenamento legível por computador não transitório possui instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores de um dispositivo de codificação de vídeo determinem, para uma imagem atual de dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual, quando um ou mais bits menos significativos de qualquer outros dos valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada em um armazenador de imagem decodificada no qual a imagem de referência e longo prazo também é armazenada forem iguais a um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, determinem quais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual, onde um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem, especifiquem ambos os um ou mais bits menos significativos e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits representativa de uma versão codificada de dados de vídeo, e codifiquem pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0019] Em outro exemplo, um método de decodificação de dados de vídeo codificados compreende determinar, para uma imagem atual de dados de vídeo codificados, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual. Um ou mais bits menos significativos não identificam de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem presente em um armazenador temporário de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada. Além disso, um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem. O método compreende adicionalmente a determinação de um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, onde um ou mais bits mais significativos em combinação com um ou mais bits menos significativos determinados é suficiente para distinguir o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador temporário de imagem decodificada. Adicionalmente, o método compreende a recuperação da imagem de referência de longo prazo a partir do armazenador temporário de imagem decodificada com base nos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem e um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem, e decodificando pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0020] Em outro exemplo, um dispositivo de decodificação de vídeo para decodificação de dados de vídeo codificados compreende um ou mais processadores configurados para determinar, para uma imagem atual dos dados de vídeo codificados, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identificam uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual, onde um ou mais bits menos significativos não identificam de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem presente em um armazenador temporário de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada, e onde um número de um ou mias bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem, determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, onde um ou mais bits mais significativos em combinação com os um ou mais bits menos significativos determinados é suficiente para distinguir o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador temporário de imagem decodificada, recupera a imagem de referência de longo prazo a partir do armazenador temporário de imagem decodificada com base nos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem, e decodificar pelo menos a parte da imagem atual, utilizando a imagem de referência de longo prazo recuperada.
[0021] Em outro exemplo, um dispositivo de decodificação de vídeo para decodificação de dados de vídeo codificados compreende meios para determinar, para uma imagem atual dos dados de vídeo codificados, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual, onde um ou mais bits menos significativos não identificam de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem presente em um armazenador de imagem decodificado no qual a imagem de referência de longo prazo também é armazenada, e onde um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem. O dispositivo de decodificação de vídeo também compreende meios para determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, onde um ou mais bits mais significativos em combinação com um ou mais bits menos significativos determinados é suficiente para distinguir o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador temporário de imagem decodificado. Adicionalmente, o dispositivo de decodificação de vídeo compreende meios para recuperar a imagem de referência de longo prazo a partir do armazenador temporário de imagem decodificada com base nos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem, e meios para decodificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0022] Em outro exemplo, um meio de armazenamento legível por computador não transitório possui instruções armazenadas no mesmo que, quando executadas, fazem com que um ou mais processadores de dispositivo de decodificação de vídeo determinem para uma imagem atual de dados de vídeo codificados, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual, onde um ou mais bits menos significativos não identificam de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bis menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem presente em um armazenador temporário de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada, e onde um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem, determinem um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, onde um ou mais bits mais significativos em combinação com um ou mais bits menos significativos determinados é suficiente para distinguir o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador temporário de imagem decodificada, recupere a imagem de referência de longo prazo a partir do armazenador temporário de imagem decodificada com base em um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem, e decodificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0023] Os detalhes de um ou mais aspectos da descrição são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens das técnicas descritas nessa descrição serão aparentes a partir da descrição e dos desenhos, e das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0024] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo que pode utilizar técnicas para codificação de dados de vídeo;
[0025] A figura 2 é um diagrama em bloco ilustrando um exemplo de um codificador de vídeo que pode implementar as técnicas para codificação de dados de vídeo;
[0026] A figura 3 é um diagrama em bloco ilustrando um exemplo de um decodificador de vídeo, que decodifica uma sequência de vídeo codificada;
[0027] A figura 4 é um fluxograma ilustrando a operação ilustrativa de um codificador de vídeo na realização do primeiro aspecto das técnicas descritas nessa descrição;
[0028] A figura 5 é um fluxograma ilustrando a operação ilustrativa de um decodificador de vídeo na realização do primeiro aspecto das técnicas descritas nessa descrição;
[0029] A figura 6 é um fluxograma ilustrando a operação ilustrativa de um codificador de vídeo na realização do segundo aspecto das técnicas descritas nessa descrição;
[0030] A figura 7 é um fluxograma ilustrando a operação ilustrativa de um decodificador de vídeo na realização do segundo aspecto das técnicas descritas nessa descrição.
DESCRIÇÃO DETALHADA
[0031] Em geral, as técnicas são descritas e fornecem vários métodos para derivar um conjunto de imagem de referência (RPS) e sinalização de imagens de referência de longo prazo (LTRPs) a ser incluída no RPS de uma imagem codificada para uso quando da realização de aspectos de interpredição de codificação de vídeo. Por exemplo, um codificador de vídeo (que é um termo que pode se referir a um ou mais ou ambos um codificador de vídeo e um decodificador de vídeo) inclui um armazenador de imagem decodificada (DPB). DPB armazena imagens de referência, que são imagens que podem ser utilizadas para a interpredição de uma imagem. Em outras palavras, o codificador de vídeo pode prever uma imagem com base em uma ou mais imagens de referência armazenadas no DPB.
[0032] O decodificador de vídeo também pode ter a tarefa de construir listas de imagem de referência que indicam quais imagens de referência são utilizadas para fins de interpredição. Duas dessas listas de imagem de referência são referidas como Lista 0 e Lista 1, respectivamente. O decodificador de vídeo primeiro emprega técnicas de construção padrão para construir a Lista 0 a Lista 1 (por exemplo, esquemas de construção préconfigurados para construção da Lista 0 e Lista 1). Opcionalmente, depois de a lista 0 e Lista 1 iniciais serem construídas, o decodificador pode decodificar os elementos de sintaxe, quando presentes, que instruem o decodificador de vídeo a modificar a Lista 0 e Lista 1 iniciais.
[0033] O codificador de vídeo pode sinalizar os elementos de sintaxe que são indicativos dos identificadores das imagens de referência no DPB, e o codificador de vídeo também pode sinalizar os elementos de sintaxe que incluem índices, dentro da Lista 0, Lista 1 ou ambas a Lista 0 e Lista 1, que indicam qual imagem ou imagens de referência utilizar para decodificar um bloco codificado de uma imagem atual. O decodificador de vídeo, por sua vez, utiliza o identificador recebido para identificar o valor de índice ou valores para uma imagem de referência ou imagens de referência listadas na Lista 0, Lista 1, ou ambas a Lista 0 e Lista 1. A partir dos valores de índice além dos identificadores da imagem de referência ou imagens de referência, o codificador de vídeo recupera a imagem de referência ou imagens de referência a partir de DPB, e decodifica obloco codificado da imagem atual.
[0034] Em um conjunto de parâmetro de imagem (PPS) ou um conjunto de parâmetro de sequência (SPS) associado com ou cabeçalho de fatia de uma imagem atual, o codificador de vídeo pode sinalizar o RPS. O RPS de uma imagem atual inclui a informação de identificação para as imagens de referência que pode ser utilizada para prever a imagem atual e imagens que podem ser utilizadas para prever imagens seguindo a imagem atual na ordem de decodificação. Apenas as imagens de referência no RPS podem ser incluídas na Lista 0 ou Lista 1.
[0035] A informação de identificação para as imagens de referência pode incluir um ou mais valores de contagem de ordem de imagem (POC). Valores POC indicam a ordem na qual as imagens dentro de uma sequência de vídeo codificada são enviadas ou exibidas (isso é, a ordem de exibição das imagens). Por exemplo, uma imagem com um valor POC inferior é exibido mais cedo do que uma imagem com um valor POC superior na mesma sequência de vídeo codificada.
[0036] O primeiro aspecto das técnicas descritas nessa descrição é direcionado para as técnicas para sinalizar diretamente as imagens de referência de longo prazo para uma imagem atual. Por exemplo, imagens de referência podem ser classificadas como imagens de referência de curto termo e imagens de referência de longo prazo. Imagens de referência de curto termo são imagens que são tipicamente temporariamente próximas à imagem atual na ordem de saída.
[0037] De acordo com o primeiro aspecto das técnicas descritas nessa descrição, ao invés de codificar LSBs POC delta que identificam uma imagem de referência de longo prazo que está presente no armazenador temporário de imagem decodificada, mas não especificados no SPS associado utilizando codificação Golomb exponencial, um codificador de vídeo pode especificar diretamente (sinalizar) os LSBs POC de tal imagem de referência de longo prazo utilizando códigos unary fixos variáveis. Isso é, o codificador de vídeo pode especificar o número de bits utilizados para sinalizar esses LSBs POC, que são sinalizados em um cabeçalho de fatia associado com a imagem atual. O número especificado de sinais de bit para o decodificador de vídeo, o número de bits que deve ser analisado para a sequência de bits e que representam os LSBs POC que identificam a imagem de referência de longo prazo que está presente no armazenador temporário de imagem decodificado, mas não especificado no SPS associado. De acordo com a distribuição maior de valores no contexto de tais valores LSB POC, as técnicas podem promover economia de bit pela codificação desses LSBs POC como números binários não sinalizados de comprimento uniforme (e variável, no sentido do comprimento uniforme poder ser sinalizado ou derivado para cada fatia), denotados como "u(v)" em vários padrões de codificação de vídeo.
[0038] Des sa forma, um decodificador de vídeo pode determinar um número de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação da imagem atual. Frequentemente, o decodificador de vídeo pode determinar o número de bits a partir de um elemento de sintaxe especificado em um ou mais dentre um cabeçalho de fatia, um conjunto de parâmetro de imagem ou um conjunto de parâmetro de sequência. Alternativamente, o decodificador de vídeo pode derivar o número de bits com base em outros elementos de sintaxe sem receber explicitamente um elemento de sintaxe que específica o número de bits. O decodificador de vídeo pode então analisar o número determinado de bits a partir da sequência de bits, onde esse número analisado de bits representa os bits significativos do valor POC que identifica a imagem de referência de longo prazo. O decodificador de vídeo pode então recuperar a imagem de referência de longo prazo a partir de um armazenador de imagem decodificada com base nos bits menos significativos do valor POC que identifica a imagem de referência de longo prazo e decodifica pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0039] De acordo com um segundo aspecto das técnicas descritas nessa descrição o codificador de vídeo pode adicionalmente ou alternativamente ser configurado para analisar cada imagem presente em todo o armazenador de imagem decodificado quando determinando se é necessário se sinalizar a informação adicional, por exemplo, alguns ou todos os bits mais significativos (MSBs), para encerrar a ambiguidade dos LSBs POC.Em outras palavras, o codificador de vídeo computa um conjunto de um ou mais LSBs POC para cada valor POC que identifica uma imagem no DPB. Quando da realização da análise, o codificador de vídeo determina se o conjunto de LSBs POC computado para cada imagem de referência de longo prazo sinalizada no cabeçalho de fatia é singular com relação a todos os outros conjuntos de LSBs POC computados para os valores POC que identificam todas as outras imagens no DPB. Se um desses outros conjuntos de LSBs POC for igual ao conjunto de LSBs POC das imagens de referência de longo prazo atuais sob análise, o conjunto de LSBs POC é determinado como não sendo singular, e o codificador de vídeo pode então sinalizar bits mais significativos (MSBs) suficientes de modo a permitir que o valor POC da imagem de referência de longo prazo seja corretamente derivada pelo decodificador de vídeo.
[0040] Dessa forma, o decodificador de vídeo pode receber uma sequência de bits representativa dos dados de vídeo codificados a partir do codificador de vídeo, que foi codificado de acordo com vários aspectos das técnicas descritas nessa descrição. O decodificador de vídeo pode então determinar os bits menos significativos do valor POC que identifica a imagem de referência de longo prazo a ser utilizada quando da decodificação da imagem atual. Como notado acima, esses bits menos significativos podem não identificar de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação aos bits menos significativos de qualquer outro valor POC que identifica qualquer outra imagem presente em um armazenador temporário de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada. Como resultado disso, o decodificador de vídeo pode então determinar um ou mais bits mais significativos do valor POC que identifica a imagem de referência de longo prazo. O codificador de vídeo seleciona os bits mais significativos de modo que os bits mais significativos em combinação com os bits menos significativos sejam suficientes para distinguir o valor POC que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador de imagem decodificado. O decodificador de vídeo pode então recuperar a imagem de referência de longo prazo a partir do armazenador de imagem decodificada com base na combinação não ambígua dos bits menos significativos e dos bits mais significativos e decodificar a imagem atual utilizando a imagem de referência de longo prazo recuperada.
[0041] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode utilizar as técnicas descritas nessa descrição para derivar RPS e sinalizar LTRPs. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que transmite vídeo codificado para um dispositivo de destino 14 através de um canal de comunicação 16. O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem compreender dispositivos de comunicação sem fio, tal como aparelhos sem fio, chamados radiotelefones via satélite ou celulares, ou qualquer dispositivo sem fio que possa comunicar informação de vídeo através de um canal de comunicação 16, caso no qual o canal de comunicação 16 é sem fio. As técnicas dessa descrição não são necessariamente limitadas aos aplicativos sem fio ou configurações. Por exemplo, essas técnicas podem se aplicar a difusões de televisão através do ar, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo de Internet, vídeo digital codificado que é codificado em um meio de armazenamento, ou outras situações. De acordo, o canal de comunicação 16 pode compreender qualquer combinação de meio de armazenamento sem fio, com fio adequado para transmissão ou armazenamento de dados de vídeo codificados.
[0042] No exemplo da figura 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, um modulador/demodulador (modem) 22 um transmissor 24. O dispositivo de destino 14 inclui um receptor 26, um modem 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. O codificador de vídeo 20 pode ser configurado para aplicar as técnicas dessa descrição. Em outros exemplos, um dispositivo fonte e um dispositivo de destino pode incluir outros componentes ou disposições. Por exemplo, o dispositivo fonte 12 pode receber dados de vídeo de uma fonte de vídeo externa, tal como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode interfacear com um dispositivo de exibição externa, ao invés de incluir um dispositivo de exibição integrado.
[0043] O sistema 10 da figura 1 é meramente um exemplo. As técnicas para codificação de dados de vídeo devem ser realizada por vários dispositivos de codificação e/ou decodificação de vídeo digital. As técnicas dessa descrição podem ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como um "CODEC". Ademais, as técnicas dessa descrição também podem ser realizadas por um pré-processador de vídeo. O dispositivo fonte 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação. Em alguns exemplos, os dispositivos 12, 14 podem operar de forma substancialmente simétrica de modo que cada um dos dispositivos 12, 14 inclua componentes de codificação e decodificação de vídeo. Dessa forma, o sistema 10 pode suportar a transmissão de vídeo de via única ou duas vias entre o dispositivo fonte 12 e o dispositivo de destino 14, por exemplo, para sequênciamento de vídeo, reprodução de vídeo, difusão de vídeo ou videotelefonia.
[0044] A fonte de vídeo 18 pode incluir um dispositivo de captura de vídeo tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo previamente capturado, e/ou uma alimentação de vídeo de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados com base em gráficos de computador como o vídeo fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado, vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 pode formar telefones com câmera ou videotelefones. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificado pode então ser modulada pelo modem 22 de acordo com um padrão de comunicação, e transmitido para o dispositivo de destino 14 através do transmissor 24.O modem 22 pode incluir vários misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinal. O transmissor 24 pode incluir circuitos projetados para transmitir dados, incluindo amplificadores, filtros e uma ou mais antenas.
[0045] O receptor 26 do dispositivo de destino 14 recebe informação através do canal de comunicação 16 e o modem 28 demodula a informação. A informação comunicada através do canal de comunicação 16 pode incluir informação de sintaxe definida pelo codificador de vídeo 20 que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupos de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário. O dispositivo de exibição 32 pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal como um tubo de raio catodo (CRT), um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânico (OLED), ou outro tipo de dispositivo de exibição.
[0046] No exemplo da figura 1, o canal de comunicação 16 pode compreender qualquer meio de comunicação sem ou com fio, tal como espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão física, ou qualquer combinação de mídia com e sem fio. O canal de comunicação 16 pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O canal de comunicação 16 pode representar qualquer meio de comunicação adequado, ou coleção de diferentes mídias de comunicação, para transmissão de dados de vídeo do dispositivo fonte 12 para o dispositivo de destino 14, incluindo combinações adequadas de mídia com ou sem fio. O canal de comunicação 16 pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destino 14. Em outros exemplos, o dispositivo fonte 12 pode armazenar dados codificados em um meio de armazenamento, ao invés de transmitir os dados. Da mesma forma, o dispositivo de destino 14 pode ser configurado para recuperar dados codificados de um meio de armazenamento.
[0047] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, tal como o padrão ITU-T H.264, alternativamente referido como MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ou o padrão de Codificação de Vídeo de Alta Eficiência futuro que também pode ser comumente referido como H.265.enquanto s técnicas são geralmente descritas nessa descrição com relação a HEVC, as técnicas também podem ser implementadas ou de outra forma utilizadas para padrões de codificação de vídeo alternativos, tal como H.264/padrão de Codificação de Vídeo Avançada (AVC). HEVC está sendo desenvolvido pelo Time Colaborativo Conjunto em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG). Um Rascunho de Trabalho recente (WD) de HEVC, intitulado e referido como HEVC WD6 doravante, Bross et al, intitulado "High efficiency vídeo coding (HEVC) text specification draft 6", Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC2/WG11, 8th Meeting, San Jose, CA, EUA, 1-10 de fevereiro de 2012, que está disponível em http://phenix.intevry.fr/jct/doc_end_user/documents/8_San%2 0Jose/wg11/JCTVCH1003-v22.zip. Adicionalmente, outros WDs de HEVC também foram aprovados, com o último fazendo referência a HEVC WD9, Bross et al, intitulado "High efficiency vídeo coding (HEVC) text specification draft 9", Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 11th Meeting; Shanghai, CN, de 10 a 19 de outubro de 2012, JCTVC-K1003_v9, disponível em http://phenix.int- evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVCK1 003-v9.zip.
[0048] 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 o Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG) como o produto de uma parceria coletiva conhecida como Time de Vídeo Conjunto (JVT). Em alguns aspectos, as técnicas descritas nessa descrição podem ser aplicadas aos dispositivos que geralmente se conformam ao padrão H.264. O padrão H.264 é descrito na Recomendação ITU-T H.264, Codificação de Vídeo Avançada para serviços audiovisuais genérico pelo Grupo de Estudo ITU-T, e datado de março de 2005, que pode ser referido aqui como padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. O Time de Vídeo Conjunto (JVT) continua a trabalhar nas extensões de H.264/MPEG-4 AVC.
[0049] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Visões (MVC). O último rascunho conjunto de MVC é descrito em "Advanced vídeo coding for generic audiovisual services," ITU-T Recommendation H.264, março de 2010.
[0050] As técnicas dessa descrição, no entanto, não são limitadas a qualquer padrão de codificação em particular. Outros exemplos incluem MPEG-2 e ITU-T H.263. Apesar de não ilustrado na figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos o áudio e vídeo em uma corente de dados comum ou correntes de dados separadas. Se aplicável, unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.223 ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0051] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuitos de codificador ou decodificador adequados, como aplicável, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programável em campo (FPGAs), conjunto de circuito lógico discreto, software, hardware, firmware ou qualquer combinação dos mesmos. O termo "processador" pode geralmente ser utilizado para fazer referência a qualquer combinação do acima exposto e pode incluir mídia legível por computador não transitória possuindo instruções armazenadas no mesmo que, quando executadas, fazem com que esse processador realize várias técnicas descritas nessa descrição. Cada um dentre o codificador de vídeo 20 ou decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). Um aparelho incluindo o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador, e/ou um decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, tal como um telefone celular, câmera, computador, dispositivo de móvel, dispositivo de assinante, dispositivo de difusão, caixa de decodificação, dispositivo de jogos, servidor ou similares.
[0052] Uma sequência de vide inclui tipicamente uma série de quadros de vídeo, alternativamente referida com imagens. Um grupo de imagens (GOP) geralmente compreende uma série de um ou mais quadros de vídeo (que é outra forma comumente conhecida de se referir a uma imagem). Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de um ou mais quadros de GOP, ou em outro lugar, que descreva um número de quadros incluídos no GOP. Cada quadro pode incluir dados de sintaxe de quadro que descrevem um modo de codificação para o quadro respectivo. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro dos quadros de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um macrobloco ou uma partição de um macrobloco em H.264 ou uma CU (que pode incluir uma ou mais unidades de predição (PUs) e/ou unidades de transformada (TUs)) do HEVC. Os blocos de vídeo podem ter tamanhos fixos ou variáveis, e podem diferir em tamanho de acordo com um padrão de codificação especificado. Cada quadro de vídeo pode incluir uma pluralidade de fatias. Cada fatia pode incluir uma pluralidade de macroblocos (ou LCUs), que podem ser divididos em sub-blocos (ou Cus).
[0053] Como um exemplo, o padrão ITU-T H.264 suporta a intrapredição em vários tamanhos de bloco, tal como 16 por 16, 8 por 8, ou 4 por 4 para componentes de luminescência, e 8 x 8 para componentes de crominância, além da interpredição em vários tamanhos de bloco, tal como 16 x 16, 16 x 8, 8 x 16, 8 x 8, 8 x 4, 4 x 8 e 4 x 4 para componentes de luminescência e tamanhos escalonados correspondentes para componentes de crominância. Nessa descrição, "N x N" e "N por N" pode ser utilizado de forma intercambiável para fazer referência às dimensões de pixel do bloco em termos de dimensões verticais e horizontais, por exemplo, 16 x 16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16 x 16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Da mesma forma, um bloco N x N geralmente terá N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, blocos não precisam necessariamente ter o mesmo número de pixels na direção horizontal e na direção vertical. Por exemplo, os blocos podem compreender N x M pixels, onde M não é necessariamente igual a N.
[0054] Os tamanhos de bloco que são inferiores a 16 x 16 podem ser referidos como partições de um bloco de 16 x 16. Os blocos de vídeo podem compreender blocos de dados de pixel no domínio de pixel, ou blocos de coeficientes de transformada no domínio de transformada. Em alguns casos, um bloco de vídeo pode compreender blocos de coeficientes de transformada quantizados no domínio de transformada.
[0055] Blocos de vídeo menores podem fornecer uma resolução melhor, e podem ser utilizados para localizações de um quadro de vídeo que incluem níveis altos de detalhamento. Em geral, os blocos e as várias partições, algumas vezes referidas como sub=blocos, podem ser considerados blocos de vídeo. Adicionalmente, uma fatia pode ser considerada uma pluralidade de blocos de vídeo, tal como blocos e/ou sub-blocos. Cada fatia pode ser uma unidade independentemente descodificável de um quadro de vídeo. Alternativamente, os quadros propriamente ditos podem ser unidades decodificáveis, ou outras partes de um quadro podem ser definidas como unidades decodificáveis. O termo "unidade codificada" ou "unidade de codificação" podem se referir a qualquer unidade independentemente codificável de um quadro de vídeo tal como todo um quadro, uma fatia de um quadro, um GOP também referido como uma sequência, ou outra unidade independentemente decodificável definida de acordo com as técnicas de codificação aplicáveis. Um GO também pode ser referido como uma sequência de vídeo codificada, por exemplo, em H.264/AVC e HEVC.
[0056] O codificador de vídeo 20 pode gerar unidades de camada de abstração de rede (NAL). Uma unidade NAL pode ser uma estrutura de sintaxe contendo uma indicação de um tipo de dados na unidade NAL e bytes contendo dados. Por exemplo, uma unidade NAL pode conter dados representando um conjunto de parâmetro de sequência (SPS), um conjunto de parâmetro de imagem (PPS), uma fatia codificada, informação de aperfeiçoamento suplementar (SEI), um delimitador de unidade de acesso, dados de enchimento, ou outro tipo de dados. Os dados de uma unidade NAL podem estar na forma de uma carga útil de sequência de byte bruta (RBSP) intercalada com bits de prevenção de duplicação. Uma RBSP pode ser uma estrutura de sintaxe contendo um número inteiro de bytes que é encapsulado dentro de uma unidade NAL.
[0057] As unidades NAL podem ser categorizadas em unidades NAL de Camada de Codificação de Vídeo (VCL) e unidades NAL não VCL. As unidades VCL podem incluir dados de nível de bloco, macrobloco e/ou fatia. Unidades NAL não VCL podem incluir unidades NAL de configuração de parâmetro e unidades NAL SEI entre outras. Os conjuntos de parâmetro podem conter informação de cabeçalho de nível de sequência (por exemplo, em um SPS) e a informação de cabeçalho de nível de imagem de alteração pouco frequente (por exemplo, em um PPS). Com os conjuntos de parâmetro (por exemplo, SPS e PPS), a informação de alteração pouco frequente não precisa ser repetida para cada sequência ou imagem, dessa forma, a eficiência da codificação pode ser aperfeiçoada. Adicionalmente, o uso de conjuntos de parâmetro pode permitir a transmissão fora de banda da informação de cabeçalho importante, evitando a necessidade de transmissões redundantes para resiliência de erro. Em exemplos de transmissão fora de banda, as unidades NAL de conjunto de parâmetro podem ser transmitidas em um canal diferente de outras unidades NAL, tal como unidades NAL SEI.
[0058] As mensagens SEI podem conter informação que não é necessária para a decodificação de amostras de imagens codificadas de unidades NAL VCL, mas podem auxiliar nos processos relacionados com a decodificação, exibição, resiliência de erro, e outros fins. As mensagens SEI podem ser contidas em unidades NAL não VCL. AS mensagens SEI são parte normativa de algumas especificações de padrão, e, dessa forma, não são sempre obrigatórias para implementação de decodificador em conformidade com o padrão. As mensagens SEI podem ser mensagens SEI de nível de sequência ou mensagens SEI de nível de imagem. Alguma informação de nível de sequência pode ser contida nas mensagens SEI, tal como mensagens SEI de informação de capacidade de escalonamento em MVC. Essas mensagens SEI ilustrativas podem portar informação sobre, por exemplo, pontos de extração de operação e características dos pontos de operação.
[0059] Como notado acima, um codificador de vídeo (que é um termo que pode fazer referência a um ou ambos o codificador de vídeo 20 e decodificador de vídeo 30) inclui um armazenador temporário de imagem decodificada (DPB), que não é ilustrado no exemplo da figura 1 para fins de facilidade de ilustração. O DPB armazena imagens de referência, que são imagens que podem ser utilizada para a interpredição de uma imagem. Em outras palavras, o codificador de vídeo pode prever uma imagem com base em uma ou mais imagens de referência armazenadas no DPB.
[0060] O decodificador de vídeo também pode ser configurado para construir listas de imagem de referência que indicam quais imagens de referência são utilizadas para fins de interpredição. Duas dessas listas de imagem de referência são referidas como Lista 0 e Lista 1, respectivamente. O decodificador de vídeo 30 pode primeiro empregar as técnicas de construção padrão para construir a Lista 0 e a Lista 1 (por exemplo, esquemas de construção pré-configurados para construção da Lista 0 e Lista 1, tal como os apresentados em HEVC WD6, como um exemplo). Opcionalmente, o codificador de vídeo 20 pode ser configurado para sinalizar elementos de sintaxe que especificam quais imagens armazenadas no DPB devem ser utilizadas quando da construção da Lista 0 e Lista 1. Dessa forma, depois de as Lista 0 e Lista 1 iniciais serem construídas, o decodificador de vídeo 30 pode decodificar os elementos de sintaxe, quando presentes, que instruem o decodificador de vídeo 30 a modificar a lista 0 e Lista 1 iniciais.
[0061] O codificador de vídeo 30 pode sinalizar os elementos de sintaxe que são indicativos de identificadores das imagens de referência em DPB. O codificador de vídeo 30 também pode sinalizar elementos de sintaxe que incluem índices, dentro da Lista 0, Lista 1, ou ambas a Lista 0 e Lista 1, que indicam qual a imagem ou imagens de referência armazenadas no DPB devem ser utilizadas para decodificar um bloco codificado de uma imagem atual. O decodificador de vídeo 30, por sua vez, utiliza o identificador recebido para identificar o valor de índice ou valores para uma imagem de referência ou imagens de referência listadas na Lista 0, Lista 1, ou ambas a Lista 0 e Lista 1. A partir dos valores de índice além dos identificadores da imagem de referência ou imagens de referência, o decodificador de vídeo 30 recupera a imagem de referência ou imagens de referência do DPB, forma a Lista 0 e a Lista 1 e decodifica o bloco codificado da imagem atual.
[0062] Em um conjunto de parâmetro de imagem (PPS) ou um conjunto de parâmetro de sequência (SPS) associado com ou cabeçalho de fatia de uma imagem atual, o codificador de vídeo 20 pode sinalizar um conjunto de imagens de referência (que novamente pode ser referido como "RPS"). O RPS de uma imagem atual inclui a informação de identificação para as imagens de referência que podem ser utilizadas para prever a imagem e imagens atuais que podem ser utilizadas para prever as imagens seguindo a imagem atual na ordem de decodificação. Apenas imagens de referência no RPS podem ser incluídas na Lista 0 ou na Lista 1.
[0063] A informação de identificação para as imagens de referência pode incluir um ou mais valores de contagem de ordem de imagem (POC). Os valores POC indicam a ordem na qual as imagens são enviadas ou exibidas (isso é, a ordem de exibição das imagens). Por exemplo, uma imagem com um valor POC menor é exibida mais cedo do que uma imagem com um valor POC mais alto na mesma sequência de vídeo codificada.
[0064] HEVC WD6 e rascunhos de trabalho posteriores, pode exemplo, HEVC WD9, fornecem tipicamente dois tipos diferentes de imagens de referência referidas como imagens de referência de curto termo (STRPs) e imagens de referência de longo prazo (LTRPs). As imagens de referência de curto termo são imagens que são tipicamente temporalmente próximas à imagem atual na ordem de saída.
[0065] As imagens de referência de longo prazo são imagens que são tipicamente temporalmente mais distantes da imagem atual, mas ainda podem ser úteis para fins de predição. Por exemplo, na videoconferência, poucas imagens capturadas iniciais podem incluir o conteúdo de imagem de fundo que pode ser útil na predição de imagens que são capturadas posteriormente na videoconferência. Como outro exemplo, uma imagem de referência de longo prazo pode ser tratada diferentemente do que uma imagem de referência de curto termo no escalonamento de vetor de movimento, ou escalonamento de valor de amostra na predição ponderada.
[0066] Uma imagem de referência de curto termo também pode ser mais distante de uma imagem atual na ordem de saída que uma imagem de referência de longo prazo. Nesse sentido, as imagens de referência de longo prazo podem se referir a imagens que podem ser utilizadas múltiplas vezes como imagens de referência, ao passo que as imagens de referência de curto termo podem ser utilizadas menos vezes que as imagens de referência com relação às imagens de referência de longo prazo. Baseando-se apenas em imagens de referência de curto termo para predição pode resultar no decodificador de vídeo 30 não podendo utilizar tais imagens de referência de longo prazo que podem ser úteis ou desejáveis para eficiência de codificação ou resiliência de erro.
[0067] Para se especificar essas imagens de referência de longo prazo, o codificador de vídeo 20 pode fornecer uma lista de imagens de referência de longo prazo que podem ser associadas com e utilizadas para decodificar uma ou mais imagens no SPS. Nos cabeçalhos de fatias (que também podem ser referidas como "cabeçalhos de fatia") de uma ou mais imagens associadas, o codificador de vídeo 20 pode, em alguns casos, especificar qual dessas imagens de referência de longo prazo específicas no SPS devem ser utilizadas quando da decodificação de uma imagem em particular. Frequentemente, o codificador de vídeo 20 específica um índice identificando cada uma das imagens de referência de longo prazo especificadas no SPS que devem ser utilizadas quando da decodificação de uma imagem em particular. Tipicamente, é necessário que todos os cabeçalhos de fatia de uma imagem devam fazer referência à mesma sinalização de conjunto de imagem de referência.
[0068] Em alguns casos, o codificador de vídeo 20 pode determinar que uma ou mais imagens de referência de longo prazo que estão presentes no armazenador temporário de imagem decodificada, mas não são especificadas na lista de imagens de referência de longo prazo especificadas no SPS, devem ser utilizadas quando da decodificação de uma imagem em particular. Nesse caso, o codificador de vídeo 20 especificar (ou, no contexto de codificação de vídeo, "sinalizar") os valores POC que são designados para uma ou mais imagens de referência de longo prazo presentes no DPB, mas que não são especificadas na lista de imagens de referência de longo prazo especificadas no SPS.
[0069] Para se reduzir o número de bits necessários para sinalizar esses valores POC, o codificador de vídeo 20 pode determinar um valor POC como uma função do valor POC designado para uma das imagens (que podem ser referidas como "imagem atual" no sentido de essa imagem ser a imagem que está sendo decodificada no momento) à qual a fatia (que pode ser referida como "fatia atual" por razões similares) a ser decodificada corresponde. Para se ilustrar, o codificador de vídeo 20 pode subtrair o valor POC da imagem de referência de longo prazo a partir do valor POC da imagem atual à qual a fatia atual corresponde para derivar um valor POC delta. Em particular, o valor POC delta pode ser representado por um número selecionado de bits menos significativos (LSBs) do valor POC delta. Pela sinalização apenas dos LSBs POC delta em um cabeçalho de fatia, o codificador de vídeo 20 pode reduzir o número de bits necessários para identificar as imagens de referência de longo prazo que estão presentes no armazenador temporário de imagem decodificada, mas não especificados no SPS associado com a fatia atual; essas imagens de referência de longo prazo também são referidas como sendo diretamente sinalizadas nos cabeçalhos de fatia.
[0070] Previamente, LSBs POC delta para especificação de um valor POC de uma imagem de referência de longo prazo foram codificados por entropia para aperfeiçoar a resiliência a erro e reduzir o número de bits necessários para especificar o valor POC na sequência de bits. Em particular, esses codificadores de vídeo anteriores codificam LSBs POC delta das imagens de referência de longo prazo diretamente sinalizadas em cabeçalhos de fatia utilizando uma forma de codificação denotada como "ue(v)" em vários padrões de codificação de vídeo, incluindo HEVC. O termo "ue(v)" se refere a uma forma de codificação referido como codificação Golomb exponencial.
[0071] Quando o valor a ser especificado não é sinalizado (que forma o "u" de "ue(v)"), enquanto o "e" se refere ao exponencial nos códigos Golomb exponenciais), a codificação Golomb exponencial envolve a sinalização do número de bits utilizado para codificar um valor determinado pela especificação de um número de zeros que é igual a um menor que o número de bits para codificar um valor determinado e então especificando o valor determinado mais um. Se o valor LSB POC delta for 0001, por exemplo, o codificador de vídeo codifica esse valor como 0 (para indicar que o valor pode ser sinalizado utilizando um bit, isso é, 1 nesse exemplo) seguido por 10 (desde que o valor de um mais um seja igual a dois, que no sistema binário é especificado como 10), enviando um código Golomb exponencial de 010.
[0072] Visto que os códigos Golomb exponenciais são uma forma de codificação de comprimento variável (que se refere ao fato de esses códigos não serem de comprimento fixo ou uniforme ao invés disso variarem com base valor que é codificado), a codificação Golomb exponencial é geralmente apenas adequada para codificação de informação possuindo determinadas distribuições estatísticas de valores. Mais especificamente, a codificação Golomb exponencial é adequada para codificação de informação estatisticamente provável se ser especificada como um número pequeno. A computação de LSBs POC delta para especificação de um valor POC de imagem atual geralmente envolve a computação de um valor de um (visto que o valor POC atual foi subtraído do valor POC de imagem anterior para derivar s LSBs POC delta contexto de sinalização do valor POC da imagem atual). De acordo, a codificação Golomb exponencial foi escolhida para codificar esses valores LSB POC delta para especificar o valor POC da imagem atual. No entanto, os valores LSBs POC denta para identificação de imagens de referência de longo prazo representam a informação que possui uma distribuição vastamente diferente que não é bem adequada para codificação Golomb exponencial.
[0073] De acordo com o primeiro aspecto das técnicas descritas nessa descrição, ao invés de codificar LSBs POC delta que identificam uma imagem de referência de longo prazo que está presente no armazenador de imagem decodificada, mas não especificada no SPS associado utilizando a codificação Golomb exponencial, o codificador de vídeo 20 pode especificar diretamente (ou, em outras palavras, sinalizar) os LSBs POC de tal imagem de referência de longo prazo utilizando códigos unary fixos variáveis. Isso é, o codificador de vídeo 20 pode especificar o número de bits utilizados para sinalizar esses LSBs POC em um cabeçalho de fatia associado com a imagem atual. O número especificado de bits sinaliza para o decodificador de vídeo o número de bits que deve ser analisado a partir da sequência de bits e que representam os LSBs POC que identificam a imagem de referência de longo prazo que está presente no armazenador de imagem decodificada, mas não especificada no SPS associado. De acordo com a distribuição mais ampla de valores no contexto de tais valores LSB POC, as técnicas podem promover economia de bits pela codificação desses LSBs POC como números binários não sinalizados de comprimento uniforme (e variável, no sentido de o comprimento uniforme poder ser sinalizado ou derivado para cada fatia), denotados "u(v)" em vários padrões de codificação de vídeo.
[0074] Durante a operação, o codificador de vídeo 20 pode determinar, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual dos dados de vídeo da forma descrita acima. O codificador de vídeo 20 pode então determinar um número de bits a ser utilizado para representar um conjunto de um ou mais LSBs de um valor POC que identifica a imagem de referência de longo prazo em uma sequência de bits que representa uma versão codificada dos dados de vídeo. Em outras palavras, o codificador de vídeo 20 pode determinar "v" na codificação binária não sinalizada denotada como "u(v)" com o "u", novamente denotando a codificação binária não sinalizada.
[0075] Frequentemente, esse número de LSBs é definido com base no número de LSBs necessários para encerrar a ambiguidade de LTRP de outros LTRPs ou qualquer outra imagem de referência armazenada no DPB. Em outras palavras, esse número pode variar com base em fatia, imagem ou GOP. Em alguns casos, o número de LSBs pode ser definido para toda a sequência de bits, ou partes da mesma. Em alguns casos, o número de LSBs utilizado para identificar um valor POC é predefinido, de modo que não haja necessidade de se sinalizar o número de LSBs. Em alguns casos, o número de LSBs pode ser sinalizado para cada imagem, por exemplo, no cabeçalho de fatia. Em alguns casos, o número de LSBs pode ser sinalizado para um número de imagens, por exemplo, no SPS ou PPS. Em alguns casos, o número de LSBs utilizado para identificar o valor POC pode ser derivado com base nos elementos de sintaxe determinados para a imagem atual e/ou imagens previamente codificadas de dados de vídeo, onde o codificador de vídeo 20 pode então não precisar sinalizar o número de bits utilizado para representar esse LSB POC visto que o decodificador de vídeo 30 pode realizar um processo de derivação similar para derivar o número "v" de bits utilizado para representar LSB POC.
[0076] Em qualquer caso, o codificador de vídeo 20 pode então especificar um conjunto de um ou mais LSBs do valor POC que identifica o LTRP na sequência de bits utilizando o número determinado de bits utilizado para representar o número de um conjunto de um ou mais LSBs do valor POC que identifica a imagem de referência de longo prazo. Em outras palavras, o codificador de vídeo 20 pode especificar os LSBs POC notados acima na sequência de bits utilizando o número "v" de bits como um número binário não sinalizado. O codificador de vídeo 20 também pode codificar pelo menos a parte da imagem atual utilizando LTRP. O codificador de vídeo 20 pode codificar pelo menos a parte da imagem atual antes, depois ou simultaneamente com a especificação na sequência de bits dos LSBS POC como um valor binário não sinalizado de "v" bits de comprimento. O codificador de vídeo 20 pode então transmitir essa sequência de bits para o decodificador de vídeo 30 ou armazenar essa sequência de bits para recuperação posterior pelo decodificador de vídeo 30.
[0077] O decodificador de vídeo 30 pode receber a sequência de bits representativa dos dados de vídeo codificados tendo sido codificados de acordo com as técnicas descritas nessa descrição. O módulo de decodificação por entropia 150 do decodificador de vídeo 30 pode primeiro determinar, para uma fatia de uma imagem atual dos dados de vídeo codificados, o número de bits utilizado para especificar um conjunto de um ou mais LSBs do valor POC que identifica um LTRP para uso na decodificação da imagem atual. Em alguns exemplos, o número de bits pode ser explicitamente sinalizado na sequência de bits como um elemento de sintaxe, por exemplo, no cabeçalho de fatia, SPS ou PPS, como descrito acima. Em outros exemplos, o número de bits pode ser derivado como uma função de outros elementos de sintaxe especificados em qualquer um ou mais dos SPS, um PPS e o cabeçalho de fatia.
[0078] O decodificador de vídeo 30 pode então analisar o número determinado de bits a partir da sequência de bits, onde o número determinado analisado de bits representa o conjunto de um ou mais LSBs do valor POC que identifica a imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual. O número determinado de bits pode especificar o que foi referido como LSBs POC acima. O decodificador de vídeo 30 pode então recuperar, a partir do armazenador de imagem decodificada, LTRP a ser utilizado quando da decodificação de pelo menos a parte da imagem atual com base em LSBs POC.
[0079] Para recuperar esse LTRP do armazenador de imagem decodificada, o decodificador de vídeo 30 pode comparar os bits menos significativos do valor POC que identificam LTRP para um mesmo número de bits menos significativos de um valor POC associado com pelo menos uma imagem armazenada no armazenador de imagem decodificada. O decodificador de vídeo 30 recupera uma das pelo menos uma imagem armazenada no armazenador de imagem decodificada para uso como imagem de referência de longo prazo na decodificação da imagem atual que possui os mesmos LSBs para o valor POC associado com uma das pelo menos uma imagem armazenada no armazenador de imagem decodificada como os bits menos significativos determinados de LTRP a serem utilizados para decodificar a imagem atual. Em outras palavras, o decodificador de vídeo 30 pode combinar os LSBs POC com os bits menos significativos de valores POC para imagens armazenadas no armazenador temporário de imagem decodificada e identificar a imagem com os LSBs POC coincidentes com a imagem de referência de longo prazo que está presente no armazenador de imagem decodificada, mas não especificada no SPS associado com a imagem atual.
[0080] O decodificador de vídeo 30 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de rodem de imagem derivado para decodificar a parte da imagem atual. Em outras palavras, um ou mais vetores de movimento especificados para uma unidade de codificação da fatia atual da imagem atual podem fazer referência ao LTRP identificado pelos LSBs POC. O decodificador de vídeo 30 pode recuperar os vários blocos do LTRP identificados por esses vetores de movimento, utilizando esses vários blocos como blocos de referência quando da realização da compensação de movimento. O decodificador de vídeo 30 pode adicionar dados residuais codificados para blocos da fatia atual da imagem atual para esses blocos de referência para gerar blocos decodificados de dados de vídeo e, dessa forma, reconstruir os dados de vídeo original. O decodificador de vídeo 30 pode armazenar os blocos decodificados de dados de vídeo para o armazenador de imagem decodificada para uso posterior na decodificação de imagens subsequentes e/ou para exibição. O decodificador de vídeo pode então decodificar outras fatias, se alguma, de imagem atual, de forma similar à descrita acima.
[0081] Como notado acima, o codificador de vídeo 20 pode especificar (ou "sinalizar") os bits menos significativos de contagem de ordem de imagem delta ("LSBs POC delta") ou LSBs POC diretos nos cabeçalhos de fatia para imagens atuais para identificar as imagens de referência de longo prazo presentes no armazenador de imagem decodificada, mas não especificada no conjunto de parâmetro de sequência (SPS) associado com a imagem atual. Quando especificando esses LSBs POC (delta), o codificador de vídeo 20 analisa comumente cada um dos LSBs POC especificados (delta) para garantir que um ou mais desses LSBs POC (delta) não sejam redundantes ou iguais.
[0082] Para se ilustrar isso, assume-se que o codificador de vídeo 20 sirva para especificar cinco imagens de referência de longo prazo no cabeçalho de fatia para uma fatia ou outra parte da imagem atual a ser codificada. Ademais assume-se que duas dessas cinco imagens de referência de longo prazo tenham sido especificadas no SPS associado com a imagem atual, deixando as três imagens restantes das cinco imagens de referência de longo prazo a serem sinalizadas como LSBs POC diretas para a imagem atual. O codificador de vídeo 20 pode sinalizar um índice para cada uma das primeiras duas das cinco imagens de referência de longo prazo, onde cada índice identifica uma das imagens de referência de longo prazo especificadas no SPS associado com a imagem atual.
[0083] O codificador de vídeo 20 pode, sob essas considerações, especificar o seguinte no cabeçalho de fatia para sinalizar as imagens de referência de longo prazo a serem utilizadas quando da decodificação da imagem atual (onde tipicamente é necessário que todos os cabeçalhos de fatia de uma imagem tenham a mesma sinalização de conjunto de imagem de referência). 1: índice A //identifica um valor POC de 400110 2: índice B //identifica um valor POC de 401010 3: POCLSBA //identifica um valor POC de 500110 4: POCLSBB //identifica um valor POC de 450010 5: POCLSBC //identifica um valor POC de 500510
[0084] As de scrições a segui r são baseadas nos LSBs POC. No entanto, as mesmas descrições também se aplicam a LSBs POC delta.
[0085] Como notado acima, cada um dos itens de 1 a 5 acima identifica efetivamente um valor POC diferente. em vários casos, no entanto, quando apenas a sinalização de LSBs POC diretos, podem surgir problemas (devido a ambiguidades) que podem impedir que o decodificador de vídeo 30 possa determinar efetivamente quais imagens de referência de longo prazo deveriam ser utilizadas para decodificação da fatia atual. Assumindo-se que apenas três bits menos significativos foram utilizados para sinalizar POCLSBA, então POCLSBA é igual a 0012. Porém, o índice A também identifica um valor POC de 400110, que significa que um valor POC de 400110 também está presente no armazenador de imagem decodificada. Visto que existem duas imagens no armazenador de imagem decodificada possuindo LSB POC de 0012, o decodificador de vídeo 30 pode ser incapaz de recuperar qualquer LTRP para a imagem atual visto que não está claro qual decodificador de vídeo LTRP 30 foi determinado para uso quando da decodificação da imagem atual.
[0086] Como resultado disso, codificadores de vídeo convencionais analisam LSBs POC para cada imagem de referência de longo prazo sinalizada no cabeçalho de fatia (incluindo as sinalizadas como um índice) para garantir que não haja redundâncias ou LSBs POC sinalizados de form ambígua para cada imagem de referência de longo prazo sinalizada no cabeçalho de fatia. Quando um LSBs POC delta ambíguo é identificado, esses codificadores de vídeo convencionais também codificam os bits mais significativos de cada um dos pelo menos um LSBs POC ambíguos, garantindo, assim, potencialmente, que cada LSB POC delta sinalizado no cabeçalho de fatia identifique de forma singular um valor POC dentro do contexto do cabeçalho de fatia. Isso é, esses codificadores de vídeo podem garantir que cada um dos LSBs POC delta sinalize de forma singular um valor POC dentro do conjunto de valores POC especificados no cabeçalho de fatia.
[0087] Porém, garantir que os valores POC sinalizados no cabeçalho de fatia sejam sinalizados de forma singular com relação um ao outro é insuficiente para permitir adequadamente que o decodificador de vídeo recupere essas imagens de referência de longo prazo do armazenador de imagem decodificada. Para ilustrar, considere-se o exemplo acima, mas também assume-se que exista outra imagem de referência de longo prazo no armazenador de imagem decodificada identificado por um valor POC de 400510. Quando da verificação para garantir que não haja conflito com qualquer outro valor POC especificado no cabeçalho de fatia, o codificador de vídeo determina que esse valor não sinaliza de forma ambígua o valor POC de 500510 no contexto de outros valores POC sinalizados no cabeçalho de fatia e especificando POCLSBC como 1012 (que é simplesmente 510) sem especificação de quaisquer bits mais significativos.
[0088] Sob essas considerações, o decodificador de vídeo 30 analisa POCLSBC a partir da sequência de bits para a fatia atual e tenta recuperar a imagem de referência de longo prazo identificada por POCLSBC (1012 ou 510). Porém, visto que existem duas imagens no armazenador de imagem decodificada possuindo um LSB POC de 1012, o decodificador de vídeo 30 pode ser incapaz de recuperar qualquer LTRP para a imagem atual visto que não está claro qual decodificador de vídeo LTRP 30 foi escolhido para uso quando da decodificação da imagem atual.
[0089] De acordo com as técnicas descritas nessa descrição, o codificador de vídeo 20 é configurado para analisar cada imagem presente em todo o armazenador de imagem decodificada quando da determinação de se é necessário se sinalizar a informação dos bits mais significativos (MSBs) para encerrar a ambiguidade de LSBs POC delta. Em outras palavras, o codificador de vídeo 20 determinar os LSBs POC (ou LSBs POC delta dependendo da implementação) para cada valor POC que idêntica uma imagem no armazenador de imagem decodificada. Quando da realização da análise de LSBs POC sinalizados no cabeçalho de fatia, o codificador de vídeo 20 determina se os LSBs POC determinados para cada uma das imagens de referência de longo prazo sinalizadas no cabeçalho de fatia é singular com relação a cada um dos LSBs POC determinados para cada valor POC que identifica uma imagem no armazenador de imagem decodificada. Se um dos LSBs POC sinalizado no cabeçalho de fatia for determinado de forma a não ser singular, o codificador de vídeo 20 pode então sinalizar bits mais significativos suficientes (MSBs) para o valor POC de modo a permitir que o valor POC da imagem de referência de longo prazo seja corretamente identificado pelo decodificador de vídeo 30. Em alguns casos, um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem.
[0090] Em operação, o codificador de vídeo 20 pode determinar, para uma imagem atual de dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual. O codificador de vídeo 20 pode então determinar se esses bits menos significativos são suficientes para identificar sem ambiguidade a imagem de referência de longo prazo a partir de qualquer outra imagem de referência armazenada no armazenador de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada (ou será armazenada dependendo da ordem na qual a imagem de referência de longo prazo é armazenada em comparação com quando essa determinação é feita).
[0091] Quando um ou mais bits menos significativos de qualquer um dos valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada nesse armazenador de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada são iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, o codificador de vídeo 20 pode determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência e longo prazo a ser utilizada quando da codificação de pelo menos um aparte da imagem atual. O codificador de vídeo 20 pode então especificar ambos os um ou mais bits menos significativos determinados e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual em uma sequência de bits representando uma versão codificada de dados de vídeo. O codificador de vídeo 20 pode então codificar pelo menos a parte da imagem atual utilizando a imagem de referência de longo prazo.
[0092] Em outras palavras, ao invés de apenas determinar que os LSBs POC que identificam a imagem de referência de longo prazo são suficientes para identificar de forma singular a imagem de referência de longo prazo a partir de qualquer outra imagem de referência de longo prazo especificada no SPS, PPS e/ou cabeçalho de fatia, o codificador de vídeo 20 pode determinar que os LSBs POC que identificam a imagem de referência de longo prazo são suficientes para identificar de forma singular a imagem de referência de longo prazo a partir de qualquer outra imagem de referência de longo prazo armazenada em todo o DPB. Novamente, um número de um ou mais bits menos significativos quando adicionado a um número de um ou mais bits mais significativos resulta em um total que é inferior a um número total de bits para especificar o valor de contagem de ordem de imagem. A esse respeito, o codificador de vídeo 20 pode evitar esses casos que dão lugar a problemas notados acima onde o decodificador de vídeo é incapaz de identificar corretamente uma imagem de referência de longo prazo pelos LSBs POC sinalizados quando duas ou mais imagens de referência de longo prazo possuindo os mesmos LSBs POC são armazenadas no DPB, mas apenas uma dessas imagens de referência de longo prazo foi especificada no SPS, PPS e/ou cabeçalho de fatia. Como resultado disso, pela implementação dessas técnicas, o codificador de vídeo 20 pode codificar de forma mais robusta os dados de vídeo em comparação com os codificadores de vídeo convencionais que identificam apenas quando codificar de forma mais robusta a imagem de referência de longo prazo sinalizada com relação às imagens de referência de longo prazo sinalizadas em SPS, PPS e/ou cabeçalho de fatia.
[0093] O decodificador de vídeo 30 pode receber essa sequência de bits que representa a versão codificada dos dados de vídeo (que podem ser referidos também como "dados de vídeo codificados"). O decodificador de vídeo 30 então pode determinar, para uma imagem atual desses dados de vídeo codificados, um ou mais bits menos significativos de uma contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual. Esses um ou mais bits menos significativos podem não identificar de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bits menos significativos de qualquer valor de contagem de ordem de imagem que identifique qualquer outra imagem presente em um armazenador de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada. Como notado acima, os bits menos significativos do valor de contagem de ordem de imagem podem identificar de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação aos bits menos significativos de qualquer outro valor de contagem de ordem de imagem computado com relação a um valor de contagem de ordem de imagem que identifica qualquer outra imagem de referência e longo prazo a ser utilizada como um candidato para decodificação da fatia da imagem atual.
[0094] Em outras palavras, a análise anterior realizada pelos codificadores de vídeo convencionais que não implementam as técnicas descritas nessa descrição não terão identificado os LSBs POC como sendo ambíguos visto que LSBs POC para qualquer outra imagem de referência de longo prazo sinalizada no cabeçalho de fatia identificam de forma singular seus respectivas imagens de referência de longo prazo. Porém, isso não significa que LSBs POC identifiquem de forma singular as imagens de referência de longo prazo com relação a todo o armazenador de imagem decodificada. Visto que o codificador de vídeo 20 foi modificado para implementar as técnicas descritas nessa descrição, de acordo com um exemplo dessa descrição, o codificador de vídeo 20 estende essa análise para considerar toda e qualquer imagem armazenada no armazenador de imagem decodificada. Como resultado disso, o codificador de vídeo 20 pode, como descrito acima, sinalizar adicionalmente os MSBs POC apesar de os LSBs POC serem singulares para um determinado subconjunto de imagens armazenado no armazenador de imagem decodificada (por exemplo, subconjunto sinalizado o cabeçalho de fatia).
[0095] A esse respeito, mesmo quando s LSBs POC são singulares para um determinado subconjunto de imagens armazenadas no armazenador de imagem decodificada, o decodificador de vídeo 30 determina um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. Um ou mais bits mais significativos em combinação com um ou mais bits menos significativos determinados são suficientes para distinguir o valor de contagem de ordem de imagem (POC) que identifica a imagem de referência de longo prazo de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador de imagem decodificada. O decodificador de vídeo 30 pode então recuperar a imagem de referência de longo prazo a partir do armazenador de imagem decodificada com base nos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem.
[0096] O decodificador de vídeo 30 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem derivado para decodificar a parte da imagem atual. Em outras palavras, um ou mais vetores de movimento especificados para uma unidade de codificação da fatia atual da imagem atual podem ser referidos como imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem derivado. O decodificador de vídeo pode recuperar vários blocos de agem de referência de longo prazo identificada por esses vetores de movimento, utilizando esses vários blocos como blocos de referência quando da realização da compensação de movimento. O decodificador de vídeo pode adicionar dados residuais codificados para blocos da fatia atual da imagem atual a esses blocos de referência para gerar blocos decodificados de dados de vídeo. O decodificador de vídeo pode armazenar os blocos decodificados de dados de vídeo ao armazenador temporário de imagem decodificada para uso posterior na decodificação de imagens subsequentes e/ou para exibição. O decodificador de vídeo pode então decodificar outras partes, se alguma, da imagem atual, de forma similar à descrita acima.
[0097] A figura 2 é um diagrama em bloco que ilustra uma configuração ilustrativa de codificador de vídeo 20 que é configurado para implementar as técnicas dessa descrição. A figura 2 é fornecida para fins de explicação e não deve ser considerada limitadora das técnicas como amplamente exemplificado e descrito nessa descrição. Para fins de explicação, essa descrição descreve o codificador de vídeo 20 no contexto de codificação HEVC. No entanto, as técnicas dessa descrição podem como notado acima ser aplicáveis a outros padrões ou métodos de codificação.
[0098] No exemplo da figura 2, o codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do codificador de vídeo 20 incluem um módulo de predição 100, um módulo de geração residual 102, um módulo de transformada 104, um módulo de quantização 106, um módulo de quantização inversa 108, um módulo de transformada inversa 110, um módulo de reconstrução 112, e um armazenador de imagem decodificada 114, e um módulo de codificação por entropia 116. O módulo de predição 100 inclui um módulo de estimativa de movimento 122, um módulo de compensação de movimento 124, e um módulo de intrapredição 126.
[0099] Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou outros componentes funcionais. Por exemplo, o codificador de vídeo 20 pode incluir um filtro de desbloqueio para filtrar a saída do módulo de reconstrução 112 para remover artefatos de bloqueio do vídeo reconstruído. Adicionalmente, o módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 podem ser altamente integrado, mas são representados no exemplo da figura 4 separadamente para fins de explicação.
[0100] O codificador de vídeo 20 pode receber dados de vídeo. Em vários exemplos, o codificador de vídeo 20 pode receber dados de vídeo a partir de várias fontes. Por exemplo, o codificador de vídeo 20 pode receber dados de vídeo da fonte de vídeo 18 (figura 1) ou outra fonte. Os dados de vídeo podem representar sequências de imagens. As imagens podem incluir vista de textura e vistas de profundidade. Para codificar os dados de vídeo, o codificador de vídeo 20 pode realizar uma operação de codificação em cada sequência das imagens. Como parte da realização da operação de codificação em uma sequência de imagens, o codificador de vídeo 20 pode realizar as operações de codificação em cada imagem dentro da sequência de imagens. Como parte da realização da operação de codificação em uma imagem, o codificador de vídeo 20 pode realizar as operações de codificação em cada fatia na imagem. Quando o codificador de vídeo 20 realiza uma operação de codificação em uma fatia, o codificador de vídeo 20 gera uma fatia codificada. A fatia codificada é a fatia em sua forma codificada. A fatia codificada pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe associados com a fatia.
[0101] Como parte da realização de uma operação de codificação em uma fatia, o codificador de vídeo 20 pode realizar as operações de codificação em blocos de árvore na fatia. Quando o codificador de vídeo 20 realiza uma operação de codificação em um bloco de árvore, o codificador de vídeo 20 pode gerar um bloco de árvore codificado. O bloco de árvore codificado pode compreender dados representando uma versão codificada de um bloco de árvore. Em outras palavras, o bloco de árvore codificado pode ser um bloco de árvore em sua forma codificada. As técnicas, enquanto descritas acima com relação a H.264/AVC, podem, como descrito abaixo, ser aplicadas também com relação a HEVC. A esse respeito, as técnicas não devem ser limitadas a H.264 ou HEVC, mas podem ser aplicadas tanto no contexto de H.264/AVCe HEVC.
[0102] Como parte da realização de uma operação de codificação em um bloco de árvore, o módulo de predição 100 pode realizar a partição de quadtree no bloco de árvore para dividir o bloco de árvore em CUs progressivamente menores. Por exemplo, o módulo de predição 100 pode dividir um bloco de árvore em quatro sub-CUs de mesmo tamanho, dividindo uma ou mais sub-CUs em quatro sub-sub-CUs de mesmo tamanho, e assim por diante.
[0103] Os tamanhos das CUs podem variar de 8 x 8 pixels até o tamanho do bloco de árvore com um máximo de 64 x 64 pixels ou mais. Nessa descrição, "N x N" ou "N por N" podem ser utilizados de forma intercambiável para fazer referência às dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo 16 x 16 pixels, ou 16 por 16 pixels. Em geral, um bloco de 16 x 16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Da mesma forma, um bloco de N x N geralmente terá N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro não negativo.
[0104] Como parte da realização da operação de codificação para um bloco de árvore, o módulo de predição 100 pode gerar uma estrutura de dados de quadtree hierárquica para o bloco de árvore. Por exemplo, um bloco de árvore pode corresponder a um nó raiz da estrutura de dados de quadtree. Se o módulo de predição 100 dividir o bloco de árvore em quatro sub-CUs, o nó raiz possui quatro nós criança na estrutura de dados de quadtree. Cada um dos nós criança corresponde a uma das sub-CUs. Se o módulo de predição 100 dividir uma das sub-CUs em quatro sub-sub-CUs, o nó correspondente à sub-CU pode ter quatro nós criança, cada um dos quais corresponde a uma das sub-sub-CUs.
[0105] Cada nó da estrutura de dados de quadtree pode fornecer dados de sintaxe para a CU correspondente. Por exemplo, quadtree pode incluir um indicador dividido, indicando se a CU correspondendo a nó foi dividida (isso é, partida) em quatro sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos de forma recursiva, e podem depender de se a CU é dividida em sub-CUs. Uma CU que não é dividida pode corresponder a um nó folha na estrutura de dados de quadtree. Um nó folha na estrutura de dados de quadtree pode ser referido como um "nó de codificação". Um bloco de árvore codificado pode incluir dados com base na estrutura de dados de quadtree para um bloco de árvore correspondente. Um bloco de árvore codificado é um bloco de árvore em sua forma codificada. Um bloco de árvore codificado corresponde a um bloco de árvore quando o bloco de árvore codificado é o bloco de árvore em sua forma codificada.
[0106] O codificador de vídeo 20 pode formar operações de codificação em cada CU não dividida do bloco de árvore. Quando o codificador de vídeo 20 realiza uma operação de codificação em uma CU não dividida, o codificador de vídeo 20 gera dados representando uma versão codificada da CU não dividida.
[0107] Como parte da realização de uma operação de codificação em uma CU, o módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 podem realizar a interpredição na CU. Em outras palavras, o módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 podem gerar dados de predição para a CU com base nas amostras decodificadas das imagens de referência além da imagem que contém a CU. A interpredição pode fornecer compressão temporal.
[0108] Para realizar a interpredição em uma CU, o módulo de estimativa de movimento 122 pode dividir a CU em uma ou mais unidades de predição (PUs). O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar vários tamanhos de PU. Assumindo-se que o tamanho de uma CU em particular seja 2N x 2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2N x 2N ou N x N, e a interpredição em tamanhos de PU simétricos de 2N x 2N, 2N x N, N x 2N, N x N, 2N x nU, nL x 2N, nR x 2N ou similares. O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar também a partição assimétrica para os tamanhos de PU de 2N x nU, 2N x nD, nL x 2N, e nR x 2N. Em alguns exemplos, o módulo de estimativa de movimento 122 pode dividir uma CU em PUs ao longo de um limite que não encontra os lados da CU em ângulos retos.
[0109] O módulo de estimativa de movimento 122 pode realizar uma operação de estimativa de movimento com relação a cada PU de uma CU. Quando o módulo de estimativa de movimento 122 realiza uma operação de estimativa de movimento com relação a uma PU, o módulo de estimativa de movimento 122 pode gerar um ou mais vetores e movimento para a PU. Por exemplo, as fatias podem ser fatias I, fatias P ou fatias B. O módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 podem realizar diferentes operações para uma PU de uma CU dependendo de se a CU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as CUs são intraprevistas. Dessa forma, se a CU estiver em uma fatia I, o módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 não realizam a interpredição na CU.
[0110] Se a CU estiver em uma fatia P, a imagem contendo a CU é associada com uma lista de imagens de referência referidas como "lista 0". Cada uma das imagens de referência na lista 0 contém amostras que podem ser utilizadas para a interpredição de imagens subsequentes na ordem de decodificação. Quando o módulo de estimativa de movimento 122 realiza a operação de estimativa de movimento com relação a uma PU em uma fatia P, o módulo de estimativa de movimento 122 busca as imagens de referência na lista 0 por uma amostra de referência para a PU. A amostra de referência da PU pode ser um conjunto de valores de pixel que mais corresponde aos valores de pixel da PU.O módulo de estimativa de movimento 122 pode utilizar uma variedade de métricas para determinar o qual aproximado um conjunto de valores de pixel em uma imagem de referência é dos valores de pixel de uma PU. Por exemplo, o módulo de estimativa de movimento 122 pode determinar o quão próximo um conjunto de valores de pixel em uma imagem de referência está de valores de pixel de uma PU pela soma da diferença absoluta (SAD),soma da diferença quadrada (SSD), ou outras métricas de diferença.
[0111] Depois de identificar uma amostra de referência de uma PU de uma CU em uma fatia P, o módulo de estimativa de movimento 12 pode gerar um índice de referência que indica a imagem de referência na lista 0 contendo a amostra de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e a amostra de referência. Em vários exemplos, o módulo de estimativa de movimento 122 pode gerar vetores e movimento em graus variados de precisão. Por exemplo, o módulo de estimativa de movimento 122 pode gerar vetores de movimento com precisão de um quarto de pixel, precisão de um oitavo de pixel, ou outra preciso de pixel fracionado. O módulo de estimativa de movimento 122 pode enviar informação de movimento para a PU para o módulo de codificação por entropia 56 e o módulo de compensação de movimento 124. A informação de movimento para a PU pode incluir o índice de referência e o vetor de movimento da PU. O módulo de compensação de movimento 124 pode utilizar a informação de movimento das PUs da CU para identificar e recuperar as amostras de referência das PUs.O módulo de compensação de movimento 124 pode então utilizar os valores de pixel das amostras de referência das PUs para gerar os dados de predição para a CU.
[0112] Se a CU estiver em uma fatia B, a imagem contendo a CU pode ser associada com duas listas de imagens de referência, referidas como "lista 0" e "lista 1". Cada uma das imagens de referência na lista 0 contem amostras que podem ser utilizadas para a interpredição de imagens subsequentes na ordem de decodificação. As imagens de referência na lista 1 ocorrem antes da imagem na ordem de decodificação, mas depois da imagem na ordem de apresentação. Em alguns exemplos, uma imagem contendo uma fatia P pode ser associada com uma combinação de lista que é uma combinação das lista 0 e da lista 1.
[0113] Adicionalmente, se a CU estiver em uma fatia B, o módulo de estimativa de movimento 122 pode realizar a predição unidirecional, ou a predição bidirecional para PUs da CU. Quando o módulo de estimativa de movimento 122 realiza a predição unidirecional para uma PU, o módulo de estimativa de movimento 122 pode buscar as imagens de referência da lista 1 por uma amostra de referência para a PU. O módulo de estimativa de movimento 122 pode então gerar um índice de referência que indica a imagem de referência na lista 1 que contém a amostra de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e a amostra de referência. O módulo de estimativa de movimento 122 pode enviar a informação de movimento para as PUs da CU para o módulo de codificação por entropia 56 e o módulo de compensação de movimento 124. A informação de movimento para a PU pode incluir o índice de referência, um indicador de direção de predição e o vetor de movimento da PU. O indicador de direção de predição pode indicar se o índice de referência indica uma imagem de referência na lista 0 ou lista 1. O módulo de compensação de movimento 124 pode utilizar a informação de movimento das PUs da CU para identificar e recuperar as amostras de referência das PUs.O módulo de compensação de movimento 124 pode então utilizar os valores de pixel das amostras de referência das PUs para gerar os dados de predição para a CU.
[0114] Quando o módulo de estimativa de movimento 122 realiza a predição bidirecional para uma PU, o módulo de estimativa de movimento 122 pode buscar as imagens de referência na lista 0 por uma amostra de referência para a PU e também pode buscar as imagens de referência na lista 1 por outra amostra de referência para a PU. O módulo de estimativa de movimento 122 pode então gerar índices de referência que indicam as amostras de referência e os vetores de movimento que indicam os deslocamentos espaciais entre as amostras de referência e a PU. O módulo de estimativa de movimento 122 pode enviar informação de movimento da PU para o módulo de codificação por entropia 116 e o módulo de compensação de movimento 124. A informação de movimento para a PU pode incluir índices de referência e os vetores de movimento da PU. O módulo de compensação de movimento 124 pode utilizar a informação de movimento para identificar e recuperar as amostras de referência das PUs. O módulo de compensação de movimento 124 pode então interpolar os valores de pixel dos dados de predição da CU a partir de valores de pixel nas amostras de referência das PUs da CU.
[0115] Ge ralmente, o módulo de predição 100 pode implementar as técnicas descritas nessa descrição para formar o RPS notado acima e gerar o SPS e/ou elementos de sintaxe de nível de fatia identificando imagens de referência no RPS. O módulo de predição 100 pode representar um hardware ou uma combinação de hardware e unidade de software (que pode ser incluída dentro de um hardware maior ou combinação de hardware e unidade de software) que implementa as técnicas descritas em maiores detalhes acima.
[0116] Como parte da realização de uma operação de codificação em uma CU, o módulo de intrapredição 126 pode realizar a intrapredição na CU. Em outras palavras, o módulo de intrapredição 126 pode gerar dados de predição para AÇU com base em valores de pixel decodificados de outras CUs. A intrapredição pode fornecer compressão espacial.
[0117] Para realizar a intrapredição em uma CU, o módulo de intrapredição 126 pode utilizar múltiplos modos de intrapredição para gerar múltiplos conjuntos de dados de predição para a CU. Quando o módulo de intrapredição 126 utiliza um modo de intrapredição para gerar um conjunto de dados de predição para uma CU, o módulo de intrapredição 126 pode dividir a CU em uma ou mais PUs. O módulo de intrapredição 126 pode então, para cada uma das PUs, estender os valores de pixel das PUs vizinhas através da PU em uma direção e/ou gradiente associado com o modo de intrapredição. As PUs vizinhas podem estar acima, acima e para a direita, acima e para a esquerda, ou para a esquerda da PU, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para PUs, CUs e blocos de árvore. O módulo de intrapredição 46 pode utilizar vários números de modos de intrapredição, por exemplo, 33 modos de intrapredição direcionais, dependendo do tamanho da CU.
[0118] O módulo de intrapredição 126 pode selecionar um dos conjuntos de dados de predição para a CU. Em vários exemplos, o módulo de intrapredição 126 pode selecionar o conjunto de dados de predição para a CU de várias formas. Por exemplo, o módulo de intrapredição 126 pode selecionar o conjunto de dados de predição para a CU pelo cálculo de taxas de distorção para os conjuntos de dados de predição e selecionando o conjunto de dados de predição que possui a menor taxa de distorção.
[0119] O módulo de predição 100 pode selecionar os dados de predição para uma CU entre os dados de predição gerados pelo módulo de compensação de movimento 124 para a CU ou os dados de predição gerados pelo módulo de intrapredição 126 para a CU. Em alguns exemplos, o módulo de predição 100 seleciona os dados de predição para a CU com base no erro (isso é, distorção) nos conjuntos de dados de predição.
[0120] Depois que o módulo de predição 100 seleciona os dados de predição para uma CU, o módulo de geração residual 102 pode gerar dados residuais para a CU pela subtração de dados de predição selecionados da CU a partir dos valores de pixel da CU. Os dados residuais de uma CU podem incluir blocos residuais 2D que correspondem a diferentes componentes de pixel dos pixels na CU. Por exemplo, os dados residuais podem incluir um bloco residual que corresponde às diferenças entre os componentes de luminescência dos pixels nos dados de predição da CU e componentes de luminescência de pixels nos pixels originais da CU.Adicionalmente, os dados residuais da CU podem incluir blocos residuais que correspondem às diferenças entre componentes de crominância dos pixels nos dados de predição da CU e os componentes de crominância dos pixels originais da CU.
[0121] Uma CU pode ter uma ou mais unidades de transformada (TUs). Cada TU de uma CU pode corresponder a uma parte diferente de dados residuais da CU. Os tamanhos das TUs de uma CU podem ou não ser baseados nos tamanhos das PUs da CU. Em alguns exemplos, uma CU pode ser subdividida em unidades menores utilizando uma estrutura quadtree conhecida como "quadtree residual" (RQT). As TUs podem corresponder aos nós folha do RQT.
[0122] O módulo de transformada 104 pode gerar um ou mais blocos de coeficiente para cada TU de uma CU pela aplicação de uma transformada aos dados residuais correspondentes à TU. Cada um dos blocos de coeficiente pode ser uma matriz 2D de coeficientes. Em vários exemplos, o módulo de transformada 104 pode aplicar várias transformações aos dados residuais correspondentes a uma TU. Por exemplo, o módulo de transformada pode aplicar uma transformada de coseno discreto (DCT), uma transformada direcional ou uma transformada conceitualmente similar.
[0123] Depois que o módulo de transformada 104 gera um bloco de coeficiente para uma TU, o módulo de quantização 106 pode quantizar os coeficientes no bloco de coeficiente. A quantização se refere geralmente a um processo no qual os coeficientes em um bloco de coeficientes são quantizados para possivelmente reduzir a quantidade de dados utilizada para representar os coeficientes fornecendo compressão adicional. A quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um valor de bit n pode ser arredondado para baixo para um valor de bit m durante a quantização, onde n é maior que m.
[0124] O módulo de quantização inversa 108 e o módulo de transformada inversa 110 podem aplicar quantização inversa e transformada inversa para o bloco de coeficiente, respectivamente, para reconstruir os dados residuais a partir do bloco de coeficiente. O módulo de reconstrução 112 pode adicionar os dados residuais reconstruídos aos dados de predição gerados pelo módulo de compensação de movimento 124 ou módulo de intrapredição 126 para produzir um bloco de vídeo reconstruído para armazenamento no armazenador de imagem decodificada 114. O módulo de estimativa de movimento 122 e o módulo de compensação de movimento 124 podem utilizar uma imagem de referência que contém o bloco de vídeo reconstruído para realizar a interpredição em CUs de imagens subsequentes. Adicionalmente, o módulo de intrapredição 126 pode utilizar os valores de pixel reconstruídos de CUs da imagem atual para realizar a intrapredição.
[0125] O módulo de codificação por entropia 116 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, o módulo de codificação por entropia 116 pode enviar blocos de coeficiente do módulo de quantização 106 e pode receber elementos de sintaxe do módulo de predição 100. Quando o módulo de codificação por entropia 116 recebe dados, o módulo de codificação por entropia 116 pode realizar uma ou mais operações de codificação por entropia para gerar dados codificados por entropia. Por exemplo, o codificador de vídeo 20 pode realizar uma operação de codificação de comprimento variável adaptativa (CAVLC), uma operação CABAC, uma operação de codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), uma operação de codificação por Entropia por Divisão de Intervalor de Probabilidade (PIPE), ou outro tipo de operação de codificação por entropia nos dados.
[0126] O módulo de codificação por entropia 116 envia uma sequência de bits que inclui uma série de unidades NAL. Como discutido acima, cada uma das unidades NAL pode ser uma estrutura de sintaxe contendo uma indicação de um tipo de dados na unidade NAL e bits contendo os dados. Cada unidade NAL de fatia codificada na sequência de bits contém uma fatia codificada. Uma fatia codificada inclui um cabeçalho de fatia codificada e dados de fatia. Os dados de fatia podem incluir blocos de árvore codificados. Os blocos de árvore codificados podem incluir uma ou mais CUs codificadas. Cada CU codificada pode incluir um ou mais blocos de coeficiente codificados por entropia. O módulo de codificação por entropia 116 pode enviar a sequência de bits para decodificação em tempo real ou quase real ou para armazenamento e posterior decodificação pelo decodificador 30.
[0127] Como descrito acima, o codificador de vídeo 20 pode codificar os dados de vídeo de acordo com os primeiros aspectos das técnicas dessa descrição. Para codificar os dados de vídeo de acordo com o primeiro aspecto das técnicas, o módulo de estimativa de movimento 122 do codificador de vídeo 20 pode determinar, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte de uma imagem atual dos dados de vídeo da forma descrita acima. Em alguns casos, essa imagem de referência de longo prazo é uma imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 114, mas que não é especificada como uma ou mais imagens de referência de longo prazo em um conjunto de parâmetro de sequência associado com a imagem atual.
[0128] O módulo de estimativa de movimento 122 pode então determinar um número de bits a ser utilizado para representar um ou mais LSBs de um valor POC que identifica a imagem de referência de longo prazo em uma sequência de bits representativa de uma versão codificada dos dados de vídeo. Em outras palavras, o módulo de estimativa de movimento 122 pode determinar o "v" na codificação binária não sinalizada denotada como "u(v)" com o "u" novamente denotando a codificação binária não sinalizada. Frequentemente, esse número de LSBs é definido com base no número de LSBs necessários para encerrar a ambiguidade de LTRP de outros LTRPs ou qualquer outra imagem de referência armazenada no DPB. Em outras palavras, esse número pode variar com base em fatia, imagem ou GOP. Em alguns casos, o número de LSBs pode ser definido para toda a sequência de bits, ou partes da mesma. Em alguns casos, o número de LSBs utilizados para identificar essa diferença é definido estaticamente ou predefinido, tal como no padrão HEVC. Em alguns casos, o número de LSBs utilizados para identificar o LTRP pode ser derivado com base nos elementos de sintaxe determinados para a imagem atual e/ou imagens codificadas previamente dos dados de vídeo, onde o módulo de estimativa de movimento 122 pode então não precisar sinalizar o número de bits utilizado para representar esse LSB POC visto que o módulo de estimativa de movimento 122 pode realizar um processo de derivação similar para derivar o número "v" de bits utilizados para representar o LSB POC.
[0129] Em qualquer caso, o módulo de estimativa de movimento 122 pode então passar esses um ou mais LSBs do valor POC para o módulo de codificação por entropia 116, que pode especificar um ou mais LSBs do valor POC que identificam LTRP na sequência de bits utilizando o número determinado de bits utilizados para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. Em outras palavras, o módulo de codificação por entropia 116 pode especificar os LSBs POC notados acima na sequência de bits utilizando o número "v" de bits como um número binário não sinalizado. Tipicamente, o módulo de codificação por entropia 16 específica um ou mais bits menos significativos do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo em um cabeçalho de fatia associado com pelo menos a parte da imagem atual.
[0130] Em alguns casos, o módulo de estimativa de movimento 122 determina o número de bits a serem utilizados para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo na sequência de bits com base nos elementos de sintaxe previamente determinados para uma ou mais dentre a imagem atual e as imagens codificadas previamente dos dados de vídeo de modo a evitar a especificação na sequência de bits do número determinado e bits a serem utilizados para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo. Em alguns casos, tal como quando o número "v" de bits não é derivado de outros elementos de sintaxe (frequentemente como uma escolha de implementação), o módulo de codificação por entropia 116 também específica o número determinado de bits utilizados para representar um ou mais dos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a sequência de bits. Os vários módulos de codificador de vídeo 20, incluindo o módulo de estimativa de movimento 122, a unidade de compensação de movimento 124, o somador 102, o módulo de transformada 104, o módulo de quantização 106 e o módulo de codificação por entropia 116, podem então codificar pelo menos a parte da imagem atua utilizando LTRP.
[0131] O codificador de vídeo 20 também pode implementar o segundo aspecto das técnicas descritas nessa descrição potencialmente em conjunto com o primeiro aspecto das técnicas descritas nessa descrição. De acordo com o segundo aspecto das técnicas, o módulo de estimativa de movimento 122 pode determinar, para a imagem atual dos dados de vídeo, um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identificam uma imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos uma parte da imagem atual. O módulo de estimativa de movimento 122 pode então determinar se esses bits menos significativos são suficientes para identificar sem ambiguidade a imagem de referência de longo prazo a partir de qualquer outra imagem de referência armazenada no armazenador de imagem decodificada 114 no qual a imagem de referência de longo prazo também é armazenada (ou será armazenada dependendo da ordem na qual a imagem de referência de longo prazo é armazenada em comparação com quando essa determinação é feita).
[0132] O módulo de estimativa de movimento 122 pode determinar se esses bits menos significativos são suficientes para identificar sem ambiguidade a imagem de referência de longo prazo a partir de qualquer outra imagem de referência armazenada no armazenador de imagem decodificada 114, pelo menos em parte, pela determinação dos bits menos significativos para pelo menos um valor de contagem de ordem de imagem que identifica uma imagem respectiva das outras imagens armazenadas no armazenador de imagem decodificado 114. O módulo de estimativa de movimento 122 pode então determinar se os bits menos significativos para esse valor de contagem de ordem de imagem são iguais aos bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. Se esses dois bits menos significativos de valor de contagem de ordem de imagem forem iguais, o módulo de estimativa de movimento 122 pode então determinar que os bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação e decodificação de pelo menos uma parte da imagem atual são insuficientes para identificar de forma singular a imagem de referência de longo prazo adequada. Se, no entanto, esses dois bits menos significativos do valor de contagem de ordem de imagem não forem iguais, o módulo de estimativa de movimento 122 pode continuar a determinar os bits menos significativos dos valores de contagem de ordem de imagem que identificam outra imagem de referência de longo prazo armazenada no armazenador de imagem decodificada 114, comparando os dois bits menos significativos de contagem de ordem de imagem até que uma combinação seja encontrada ou todos os valores de contagem de ordem de imagem que identificam as imagens armazenadas no armazenador de imagem decodificado 114 tenham sofrido essa comparação.
[0133] Quando um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identificam qualquer outra imagem armazenada no armazenador de imagem decodificado 114 no qual a imagem de referência de longo prazo também é armazenada são iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, o módulo de estimativa de movimento 122 pode determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual. Para determinar os um ou mais bits mais significativos do valor de contagem de ordem de imagem, o módulo de estimativa de movimento 122 pode determinar os bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual de modo que os bits mais significativos em combinação com os bits menos significativos determinados sejam suficientes para identificar de forma singular o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador de imagem decodificada.
[0134] O módulo de estimativa de movimento 122 pode então enviar esses bits menos significativos e os bits mais significativos para o módulo de codificação por entropia 116. O módulo de codificação por entropia 116 pode especificar ambos os um ou mais bits menos significativos determinados e os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits representativa de uma versão codificada dos dados de vídeo.Os vários módulos de codificador de vídeo 20, incluindo o módulo de estimativa de movimento 122, a unidade de compensação de movimento 124, o somador 102, o módulo de transformada 104, o módulo de quantização 106 e o módulo de codificação por entropia 116, pode então codificar pelo menos a parte da imagem atual utilizando LTRP.
[0135] Em outras palavras, ao invés de apenas determinar que os LSBs POC que identificam a imagem de referência de longo prazo são suficientes para identificar de forma singular a imagem de referência de longo prazo a partir de qualquer outra imagem de referência de longo prazo especificada em SPS, PPS e/ou cabeçalho de fatia, módulo de estimativa de movimento 122 pode determinar que LSBs POC que identificam a imagem de referência de longo prazo são suficientes para identificar de forma singular a imagem de referência de longo prazo a partir de qualquer outra imagem de referência de longo prazo armazenada no armazenador de imagem decodificada 114. A esse respeito, o codificador de vídeo 20 pode evitar os casos que dão lugar a problemas notados acima onde o decodificador de vídeo é incapaz de identificar corretamente uma imagem de referência de longo prazo pelos LSBs POC sinalizados quando duas ou mais imagens de referência de longo prazo possuindo os mesmos LSBs POC são armazenadas no DPB, mas apenas uma dessas imagens de referência de longo prazo pode especificada no SPS, PPS e/ou cabeçalho de fatia. Como resultado disso, pela implementação dessas técnicas, o codificador de vídeo 20 pode codificar de forma mais robusta os dados de vídeo em comparação com os codificadores de vídeo convencionais que identificam apenas quando codificar de forma mais robusta a imagem de referência de longo prazo sinalizada com relação às imagens de referência de longo prazo sinalizadas em SPS, PPS e/ou cabeçalho de fatia.
[0136] A figura 3 é um diagrama em bloco que ilustra uma configuração ilustrativa de decodificador de vídeo 30. A figura 3 é fornecida para fins de explicação e não de limitação das técnicas como exemplificado de forma ampla e descrito nessa descrição. Para fins de explicação, essa descrição descreve o decodificador de vídeo 30 no contexto da codificação HEVC. No entanto, as técnicas dessa descrição podem ser aplicáveis a outros padrões de
codificação ou métodos.
[0137] No exemplo da figura 3, o decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 incluem um módulo de decodificação por entropia 150, um módulo de predição 152, um módulo de quantização inversa 154, um módulo de transformada inversa 156, um módulo de reconstrução 158, e um armazenador de imagem decodificada 160. O módulo de predição 152 inclui um módulo de compensação de movimento 162 e um módulo de intrapredição 164. Em alguns exemplos, o decodificador de vídeo 30 pode realizar uma passagem de decodificação geralmente alternada à passagem de codificação descrita com relação ao codificador de vídeo 20 da figura 2. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou outros componentes funcionais. Por exemplo, o decodificador de vídeo 30 pode incluir um filtro de desbloqueio para filtrar a saída do módulo de reconstrução 158 para remover os artefatos de bloqueio do vídeo reconstruído.
[0138] O decodificador de vídeo 30 pode receber uma sequência de bits que compreende os dados de vídeo codificados. Quando o codificador de vídeo 30 recebe a sequência de bits, o módulo de codificação por entropia 150 realiza uma operação de análise na sequência de bits. Como resultado da realização da operação de análise na sequência de bits, o módulo de codificação por entropia 150 pode gerar elementos de sintaxe decodificados por entropia. Os elementos de sintaxe decodificados por entropia podem incluir blocos de coeficiente decodificados por entropia. O módulo de predição 152, o módulo de quantização inversa 154, o módulo de transformada inversa 156, e o módulo de reconstrução 158 podem realizar uma operação de decodificação que utiliza os elementos de sintaxe para gerar os dados de vídeo decodificados.
[0139] Em alguns exemplos, o módulo de decodificação por entropia 150 pode analisar os elementos de sintaxe relacionados com os bits de uma contagem de ordem de imagem utilizada para identificar as imagens de referência e formar os conjuntos de imagem de referência de acordo com vários aspectos das técnicas descritas em maiores detalhes abaixo. O módulo de decodificação por entropia 150 pode fornecer esse elemento de sintaxe para o módulo de predição 152, que pode implementar as técnicas descritas nessa descrição para determinar a contagem de ordem de imagem a partir dos bits, formar um conjunto de imagens de referência que inclui uma imagem de referência associada com ou identificada pela contagem de ordem de imagem e decodificar uma ou mais imagens codificadas dos dados de vídeo utilizando o conjunto de imagem de referência.
[0140] Como discutido acima, a sequência de bits pode compreender uma série de unidades NAL. As unidades NAL da sequência de bits podem incluir unidades NAL de conjunto de parâmetro de sequência, as unidades NAL de conjunto de parâmetro de imagem, unidades NAL SEI e assim por diante. Como parte da realização da operação de análise na sequência de bits, o módulo de decodificação por entropia 150 pode realizar as operações de análise que extraem e decodificam por entropia os conjuntos de parâmetros de sequência a partir das unidades NAL de conjunto de parâmetro de sequência, os conjuntos de parâmetro de imagem das unidades NAL de conjunto de parâmetros de imagem, dados SEI a partir das unidades NAL SEI, e assim por diante. Um conjunto de parâmetros de sequência é uma estrutura de sintaxe que contém elementos de sintaxe que aplicam a zero ou mais sequências de vídeo codificadas. Um conjunto de parâmetros de imagem é uma estrutura de sintaxe contendo elementos de sintaxe que se aplicam a zero ou mais imagens codificadas totalmente. Um conjunto de parâmetros de imagem associado com uma determinada imagem pode incluir um elemento de sintaxe que identifica um conjunto de parâmetro de sequência associado com a imagem determinada.
[0141] Adi cionalmente, as unidades NAL da sequência de bits podem incluir unidades NAL de fatia codificada. Como parte da realização da operação de análise na sequência de bits, o módulo de decodificação por entropia 150 pode realizar as operações de análise que extraem e decodificam por entropia as fatias codificadas a partir das unidades NAL de fatia codificadas. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetros de imagem associado com uma imagem que contém a fatia. O módulo de codificação por entropia 150 pode realizar uma operação de decodificação por entropia, tal como uma operação de decodificação CAVLC, no cabeçalho de fatia codificado para recuperar o cabeçalho de fatia.
[0142] Depois da extração dos dados de fatia das unidades NAL de fatia codificada, o módulo de decodificação por entropia 150 pode extrair os blocos de árvore codificados dos dados de fatia. O módulo de decodificação por entropia 150 pode então extrair as CUs codificadas dos blocos de árvore codificados. O módulo de decodificação por entropia 150 pode realizar as operações de análise que extraem os elementos de sintaxe das CUs codificadas. Os elementos de sintaxe extraídos podem incluir blocos de coeficiente codificados por entropia. O módulo de decodificação por entropia 150 pode então realizar as operações de decodificação por entropia nos elementos de sintaxe. Por exemplo, o módulo de decodificação por entropia 150 pode realizar as operações CABAC nos blocos de coeficiente.
[0143] Quando o módulo de decodificação por entropia 150 realiza uma operação de decodificação por entropia em um conjunto de dados, o módulo de decodificação por entropia 150 pode selecionar um modelo de contexto. Nos exemplos onde o módulo de decodificação por entropia 150 utiliza CABAC, o modelo de contexto pode indicar as probabilidades dos compartimentos particulares. Nos exemplos onde o módulo de decodificação por entropia 150 utiliza CAVLC, o modelo de contexto pode indicar um mapeamento entre as palavras código e os dados correspondentes. O módulo de decodificação por entropia 150 pode então utilizar o modelo de contexto selecionado para realizar a operação de decodificação por entropia no conjunto de dados. Depois que o módulo de decodificação por entropia 150 realiza uma operação de análise em uma CU não dividida, o decodificador de vídeo 30 pode realizar uma operação de decodificação na CU não dividida. Para realizar a operação de decodificação em uma CU não dividida, o decodificador de vídeo 30 pode, em cada nível de quadtree residual da CU, realizar uma operação de decodificação em cada TU da CU. Pela realização da operação de decodificação para cada TU da CU, o decodificador de vídeo 30 pode reconstruir os dados residuais da CU.
[0144] Como parte da realização de uma operação de decodificação em uma TU não dividida, o módulo de quantização inversa 154 pode quantizar de forma inversa, isso é, desquantizar, os blocos de coeficiente associados com a TU. O módulo de quantização inversa 154 pode quantizar de forma inversa os blocos de coeficiente de forma similar aos processos de quantização inversa propostos para HEVC ou definidos pelo padrão de decodificação H.264. O módulo de quantização inversa 154 pode utilizar um parâmetro de quantização QPY calculado pelo codificador de vídeo 20 para uma CU do bloco de coeficiente para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa para o módulo de quantização inversa 154 para aplicação.
[0145] Depois que o módulo de quantização inversa 154 quantiza de forma inversa um bloco de coeficiente, o módulo de transformada inversa 156 pode gerar dados residuais para a TU associada com o bloco de coeficiente. O módulo de transformada inversa 156 pode gerar os dados residuais para a TU pelo menos em parte pela aplicação de uma transformada inversa ao bloco de coeficiente. Por exemplo, o módulo de transformada inversa 156 pode aplicar uma DCT inversa, uma transformada de inteiro inversa, uma transformada Karhunen-Loeve inversa (KLT), uma transformada de rotação inversa, uma transformada direcional inversa, ou outra transformada inversa ao bloco de coeficiente. Em alguns exemplos, o módulo de transformada inversa 156 pode determinar uma transformada inversa para aplicar ao bloco de coeficiente com base na sinalização do codificador de vídeo 20. Em tais exemplos, o módulo de transformada inversa 156 pode determinar a transformada inversa com base em uma transformada sinalizada no nó raiz de um quadtree para um bloco de árvore associado com o bloco de coeficiente. Em outros exemplos, o módulo de transformada inversa 156 pode inferir a transformada inversa a partir de uma ou mais características de codificação, tal como tamanho de bloco, modo de codificação, ou similares. Em alguns exemplos, o módulo de transformada inversa 156 pode aplicar a uma transformada inversa em cascata.
[0146] Se a CU for codificada utilizando interpredição, o módulo de compensação de movimento 162 pode realizar a compensação de movimento para gerar dados de predição para a CU. O módulo de compensação de movimento 162 pode utilizar informação de movimento para as PUs da CU para identificar amostras de referência para as PUs. A informação de movimento para uma PU pode incluir um vetor de movimento, um índice de imagem de referência, e uma direção de predição. O módulo de compensação de movimento 162 pode então utilizar as amostras de referência para as PUs para gerar dados de predição para a CU.
[0147] Em alguns exemplos, o módulo de compensação de movimento 162 pode refinar os dados de predição para uma CU pela realização da interpolação com base em filtros de interpolação. Identificadores para filtros de interpolação a serem utilizados para a compensação de movimento com precisão de subpixel pode ser incluída nos elementos de sintaxe. O módulo de compensação de movimento 162 pode utilizar os mesmos filtros de interpolação utilizados pelo codificador de vídeo 20 durante a geração dos dados de predição da CU para calcular os valores interpolados para os pixels subinteiros de um bloco de referência. O módulo de compensação de movimento 162 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 de acordo com a informação de sintaxe recebida e utilizar os filtros de interpolação para produzir dados de predição.
[0148] Se uma CU for codificada utilizando intrapredição, o módulo de intrapredição 164 pode realizar a intrapredição para gerar dados de predição para a CU. Por exemplo, o módulo de intrapredição 164 pode determinar um modo de intrapredição para a CU com base nos elementos de sintaxe na sequência de bits. O módulo de intrapredição 164 pode então utilizar o modo de intrapredição para gerar dados de predição (por exemplo, valores de pixel preditos) para a CU com base nos valores de pixel das CUs vizinhas.
[0149] O módulo de reconstrução 158 pode utilizar os dados residuais de uma CU e os dados de predição para a CU para reconstruir os valores de pixel para a CU. Em alguns exemplos, o decodificador de vídeo 30 pode aplicar um filtro de desbloqueio para remover os artefatos de bloqueio do filtro de valores de pixel reconstruído de uma fatia ou imagem. O armazenador de imagem decodificada 160 pode armazenar os valores de pixel decodificados para imagens dos dados de vídeo. O armazenador de imagem decodificada 160 pode fornecer imagens de referência para compensação de movimento subsequente, intrapredição, e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 da figura 1.
[0150] Como descrito acima, o decodificador de vídeo 30 pode implementar ou pode ser configurado para realizar o primeiro aspecto das técnicas descritas acima. O módulo de decodificação por entropia 150 do decodificador de vídeo 30 pode receber a sequência de bits que representa os dados de vídeo codificados tendo sido codificados de acordo com o primeiro aspecto das técnicas descritas nessa descrição. O módulo de decodificação por entropia 150 pode primeiro determinar, para uma parte de uma imagem atual dos dados de vídeo codificados, o número de bits utilizados para especificar um ou mais LSBs do valor POC que identifica um LTRP para uso na decodificação da imagem atual. Em alguns exemplos, o número de bits pode ser explicitamente sinalizados na sequência de bits como um elemento de sintaxe, por exemplo, no cabeçalho de fatia, como descrito acima. Em outros exemplos, o módulo de decodificação por entropia 150 pode derivar o número de bits como uma função de outros elementos de sintaxe especificados em qualquer um ou mais dentre SPS, um conjunto de parâmetros de imagem (PPS) e o cabeçalho de fatia.
[0151] O módulo de decodificação por entropia 150 pode então analisar o número determinado de bits a partir da sequência de bits, onde o número determinado analisado de bits representa um ou mais LSBs do POC que identifica LTRP. Frequentemente, o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo é um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 160, mas não é especificada como uma ou mais imagens de referência de longo prazo em um conjunto de parâmetros de sequência associados com a imagem atual. O número determinado de bits pode especificar o que foi referido como LSBs POC acima. O módulo de decodificação por entropia 150 pode passar os LSBs de valor POC para o módulo de compensação de movimento 162. O módulo de compensação de movimento 162 pode então recuperar, a partir do armazenador de imagem decodificada 160, LTRP a ser utilizado quando da decodificação de pelo menos a parte da imagem atual com base nos LSBs POC.
[0152] Para recuperar esse LTRP do armazenador de imagem decodificada, o módulo de compensação de movimento 162 pode comparar os bits menos significativos do valor POC que identifica LTRP com um mesmo número de bits menos significativos de um valor POC associado com pelo menos uma imagem armazenada no armazenador de imagem decodificada 160. O módulo de compensação de movimento 162 recupera uma das pelo menos uma imagem armazenada no armazenador de imagem decodificada 60 para uso como a imagem de referência de longo prazo na decodificação da imagem atual que possui os mesmos LSBs para o valor POC associado com uma das pelo menos uma imagem armazenada no armazenador de imagem decodificada 160 que os bits menos significativos determinados do LTRP a ser utilizado para decodificar a imagem atual. Em outras palavras, o módulo de compensação de movimento 162 pode combinar os LSBs POC com os bits menos significativos dos valores POC para imagens armazenadas no armazenador de imagem decodificada 160 e identificar a imagem com LSBs POC coincidentes que a imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 160, mas não especificado no SPS associado com a imagem atual.
[0153] O módulo de compensação de movimento 162 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem derivado para decodificar a parte da imagem atual. Em outras palavras, um ou mais vetores de movimento especificados para uma unidade de codificação da fatia atual da imagem atual pode fazer referência ao LTRP identificado pelos LSBs POC. O módulo de compensação de movimento 162 pode recuperar vários blocos do LTRP identificados por esses vetores de movimento, utilizando esses vários blocos como blocos de referência quando da realização da compensação de movimento. O decodificador de vídeo 30 pode adicionar dados residuais codificados para os blocos da fatia atual da imagem atual a esses blocos de referência para gerar os blocos decodificados de dados de vídeo e, dessa forma, reconstruir os dados de vídeo originais, como descrito acima. O decodificador de vídeo 30 pode armazenar os blocos decodificados de dados de vídeo para o armazenador de imagem decodificada 160 para uso posterior na decodificação de imagens subsequentes. O decodificador de vídeo pode então decodificar outras fatias, se alguma, da imagem de corrente, de forma similar à descrita acima.
[0154] O decodificador de vídeo 30 também pode implementar os segundos aspectos das técnicas descritas nessa descrição potencialmente em conjunto com o primeiro aspecto das técnicas descritas nessa descrição. De acordo com os segundos aspectos das técnicas, o módulo de decodificação por entropia 150 pode determinar, para uma imagem atual desses dados de vídeo codificados, bits menos significativos de um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação de pelo menos uma parte da imagem atual. Esses um ou mais bits menos significativos podem não identificar de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação a um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem presente no armazenador de imagem decodificada 160 qual a imagem de referência de longo prazo também é armazenada. Como notado acima, os bits menos significativos do valor de contagem de ordem de imagem pode identificar de forma singular o valor de contagem de ordem de imagem da imagem de referência de longo prazo com relação aos bits menos significativos de qualquer outro valor de contagem de ordem de imagem determinado com relação a um valor de contagem de ordem de imagem que identifica qualquer imagem de referência de longo prazo a ser utilizado como um candidato para decodificação da fatia da imagem atual.
[0155] A esse respeito, mesmo quando os LSBs POC delta são singulares para um subconjunto determinado das imagens armazenadas no armazenador de imagem decodificada 160, o módulo de decodificação por entropia 150 pode determinar os bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. Os bits mais significativos em combinação com os bits menos significativos determinados são potencialmente suficientes para distinguir o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a partir de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no armazenador de imagem decodificada 160. O módulo de decodificação por entropia 150 pode passar os bits menos significativos e os bits mais significativos para o módulo de compensação de movimento 162. O módulo de compensação de movimento 162 pode então recuperar a imagem de referência de longo prazo a partir do armazenador de imagem decodificada 160 com base nos bits menos significativos determinados do valor de contagem de ordem de imagem e os bits mais significativos determinados do valor de contagem de ordem de imagem. O módulo de compensação de movimento 162 (em conjunto com um ou mais dos módulos 154, 156 e 158) pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem determinado para decodificar a parte da imagem atual de uma forma similar à descrita acima.
[0156] A figura 4 é um fluxograma ilustrando a operação ilustrativa de um codificador de vídeo na realização do primeiro aspecto das técnicas descritas nessa descrição. Como um exemplo, o codificador de vídeo 20 ilustrado no exemplo da figura 2 pode codificar os dados de vídeo de acordo com os primeiros aspectos das técnicas dessa descrição. Para codificar os dados de vídeo de acordo com o primeiro aspecto das técnicas, o módulo de estimativa de movimento 122 do codificador de vídeo 20 pode determinar, para uma imagem atual de dados de vídeo, uma imagem de referência de longo prazo a ser utilizada quando da realização de interpredição para uma imagem atual dos dados de vídeo da forma descrita acima (170). Em alguns casos, essa imagem de referência de longo prazo é uma imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 114, mas que não é especificada como uma ou mais imagens de referência de longo prazo em um conjunto de parâmetros de sequência associado com a imagem atual.
[0157] O módulo de estimativa de movimento 122 pode identificar essa imagem de referência de longo prazo selecionada pelo valor de contagem de ordem de imagem descrito acima. O módulo de estimativa de movimento 122 pode acessar um conjunto de parâmetros de sequência para determinar se o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo selecionada está presente no conjunto de parâmetros de sequência, que como notado acima pode ser denotado como "SPS" (172). Em outras palavras, o módulo de estimativa de movimento 122 pode determinar se esse SPS já está sinalizando essa imagem de referência de longo prazo pela determinação de se SPS inclui, como um exemplo, o valor de contagem de ordem de imagem que identifica essa imagem de referência de longo prazo selecionada. Quando SPS inclui o valor de contagem de ordem de imagem ("SIM" 172), o módulo de estimativa de movimento 122 determina um índice dessa imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem, como um exemplo, em uma lista de valores de contagem de ordem de imagem que foram sinalizados no SPS para uso na codificação da imagem atual (e possivelmente outras imagens) (174). O módulo de estimativa de movimento 122 pode então passar esse índice para o módulo de codificação por entropia 116. O módulo de codificação por entropia 116 pode então especificar esse índice de imagem de referência de longo prazo em uma sequência de bits que representa uma versão codificada de dados de vídeo (176).
[0158] No entanto, se o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo selecionada não for especificado no SPS ("NÃO" 172), o módulo de estimativa de movimento 122 pode então determinar um número de bits a ser utilizado para representar um ou mais LSBs de um valor POC que identifica a imagem de referência de longo prazo, como descrito acima (178). O módulo de estimativa de movimento 122 pode então passar esses um ou mais LSBs do valor POC para o modo de codificação por entropia 116. O módulo de codificação por entropia 116 pode especificar um ou mais LSBs do valor POC que identifica o LTRP na sequência de bits utilizando o número determinado de bits utilizado para representar um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo (180).
[0159] O codificador de vídeo 20 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem para codificar a parte da imagem atual. Em outras palavras, o módulo de compensação de movimento 124 também pode ser configurado para determinar um bloco de predição pela realização de interpredição utilizando a imagem de referência de longo prazo da forma descrita acima (182). O módulo de compensação de movimento 124 então determina um bloco de vídeo residual com base no bloco de predição (184). Isso é, o módulo de compensação de movimento 124 então determina um bloco de vídeo residual pela subtração de valores de pixel do bloco predito dos valores de pixel do bloco de vídeo atual sendo codificado, formando os dados residuais como valores de diferença de pixel. O somador 50 representa o componente ou componentes que realizam essa operação de subtração.
[0160] O módulo de transformada 104 então transforma o bloco residual para determinar os coeficientes de transformada utilizando uma transformada, tal como uma transformada de coseno discreto (DCT) ou uma transformada conceitualmente similar (186). O módulo de transformada 104 pode converter os dados de vídeo residuais de um domínio de pixel (espacial) em um domínio de transformada, tal como um domínio de frequência. O módulo de transformada 104 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. O módulo de quantização 106 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bit (188). O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Seguindo a quantização, o módulo de codificação por entropia 116 codifica por entropia os coeficientes de transformada quantizados (190), inserindo os coeficientes de transformada quantizados por entropia na sequência de bits, associada com o índice e/ou os bits menos significativos do valor de contagem de ordem de imagem (que são comumente especificados em um cabeçalho de fatia associado com o bloco codificado de dados de vídeo).
[0161] A figura 5 é um fluxograma ilustrando a operação ilustrativa de um decodificador de vídeo na realização do primeiro aspecto das técnicas descritas nessa descrição. Como um exemplo, o decodificador de vídeo 30 implementa ou é configurado para realizar o primeiro aspecto das técnicas descritas acima. O módulo de decodificação por entropia 150 pode decodificar por entropia uma sequência de bits representativa de dados de vídeo codificados para determinar os coeficientes de transformada quantizados correspondendo a um bloco (que pode representar uma parte) dos dados de vídeo codificados (200). O módulo de decodificação por entropia 150 pode então passar esse coeficiente de transformada quantizado para o módulo de quantização inversa 154. O módulo de quantização inversa 154 pode realizar a quantização inversa com relação aos coeficientes de transformada quantizados para determinar os coeficientes de transformada (202). O módulo de transformada inversa 156 pode então realizar uma transformada inversa com relação aos coeficientes de transformada para gerar dados residuais para a imagem atual (204).
[0162] O módulo de decodificação por entropia 150 também pode analisar a sequência de bits para determinar, para o bloco de imagem atual, uma imagem de referência de longo prazo utilizada quando da realização da interpredição para o bloco da imagem atual (206). O módulo de decodificação por entropia 150 pode determinar se a imagem de referência de longo prazo já foi sinalizada no SPS associado com a imagem atual (208). Se essa imagem de referência de longo prazo já tiver sido sinalizada no SPS ("SIM" 208), o módulo de decodificação por entropia 150 pode determinar um índice dessa imagem de referência de longo prazo como especificado em uma lista de imagens de referência de longo prazo no SPS (210). O módulo de decodificação por entropia 150 pode então determinar o valor de contagem de ordem de imagem (POC) que identifica a imagem de referência de longo prazo a partir do SPS com base no índice (212).
[0163] No entanto, se a imagem de referência de longo prazo não for especificada no SPS ("NÃO" 208), o módulo de decodificação por entropia 150 determina o número de bits utilizados para sinalizar um ou mais LSBs do valor POC que identifica a imagem de referência de longo prazo par auso na decodificação da imagem atual (214). Em alguns exemplos, o número de bits pode ser explicitamente sinalizado na sequência de bits como um elemento de sintaxe, por exemplo, no cabeçalho de fatia, como descrito acima. Em outros exemplos, o módulo de decodificação por entropia 150 pode derivar o número de bits como uma função de outros elementos de sintaxe especificados em qualquer um ou mais dos SPS, um conjunto de parâmetros de imagem (PPS) e o cabeçalho de fatia.
[0164] O módulo de decodificação por entropia 150 pode então analisar o número determinado de bits a partir da sequência de bits, onde o número determinado analisado de bits representa um ou mais LSBs, do POC que identifica LTRP como um número binário não sinalizado (216). Frequentemente, o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo é um valor de contagem de ordem de imagem que identifica uma imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 160, mas que não é especificado como uma ou mais imagens de referência de longo prazo em um conjunto de parâmetro de sequência associado com a imagem atual. Novamente, o número determinado de bits pode especificar o que foi referido como LSBs POC acima. O módulo de decodificação por entropia 150 pode passar os LSBs de valor POC para o módulo de compensação de movimento 162. O módulo de compensação de movimento 162 pode receber então, a partir do armazenador de imagem decodificada 160, LTRP a ser utilizado quando a decodificação de pelo menos a parte da imagem atual com base nos LSBs POC da forma descrita acima (218).
[0165] O módulo de compensação de movimento 162 recupera uma da pelo menos uma imagem armazenada no armazenador de imagem decodificada 160 para uso como imagem de referência de longo prazo na decodificação de imagem atual que tem os mesmos LSBs para o valor POC associado com uma da pelo menos uma imagem armazenada no armazenador de imagem decodificada 160 que os bits menos significativos determinados no LTRP a ser utilizado para decodificar a imagem atual. Em outras palavras, o módulo de compensação de movimento 162 pode combinar os LSBs POC com os bits menos significativos dos valores POC para imagens armazenadas no armazenador de imagem decodificada 160 e identificar a imagem com os LSBs POC coincidentes como a imagem de referência de longo prazo que está presente no armazenador de imagem decodificada 160, mas não especificado no SPS associado com a imagem atual.
[0166] O módulo de compensação de movimento 162 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem derivado para decodificar a parte da imagem atual. Em outras palavras, um ou mais vetores de movimento especificados para uma unidade de codificação da fatia atual da imagem atual pode fazer referência a LTRP identificado pelos LSBs POC. O módulo de compensação de movimento 162 pode recuperar vários blocos de LTRP identificados por esses vetores de movimento, utilizando esses vários blocos como blocos de referência quando da realização da compensação de movimento. O decodificador de vídeo 30 pode adicionar dados residuais codificados aos blocos da fatia atual da imagem atual a esses blocos de referência para gerar blocos decodificados de dados de vídeo e, dessa forma, reconstruir os dados de vídeo originais, como descrito acima. Nesse sentido, o decodificador de vídeo 30 pode reconstruir o bloco da imagem atual com base na imagem de referência de longo prazo e os dados residuais (220). O decodificador de vídeo 30 pode armazenar os blocos decodificados de dados de vídeo no armazenador de imagem decodificada 160 par auso posterior na decodificação de imagens subsequentes. O decodificador de vídeo pode então decodificar outras fatias, se alguma, da imagem atual, de forma similar ao descrito acima.
[0167] A figura 6 é um fluxograma ilustrando a operação ilustrativa de um codificador de vídeo na realização do segundo aspecto das técnicas descritas nessa descrição. Como um exemplo, o codificador de vídeo 20 é configurado para implementar os segundos aspectos das técnicas descritas nessa descrição potencialmente em conjunto com o primeiro aspecto das técnicas. De acordo com os segundos aspectos das técnicas, o módulo de estimativa de movimento 122 do codificador de vídeo 20 pode determinar, para a imagem atual de dados de vídeo, uma imagem de referência de longo prazo ara uso quando da realização da interpredição para a imagem atual (230). O módulo de estimativa de movimento 122 pode determinar um ou mais bits menos significativos de um valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo (232). O módulo de estimativa de movimento 122 pode então determinar se esses bits menos significativos são suficientes para identificar sem ambiguidade a imagem de referência de longo prazo de qualquer outra imagem de referência armazenada no armazenador de imagem decodificada 114 no qual a imagem de referência de longo prazo também é armazenada (ou será armazenada dependendo da ordem na qual a imagem de referência de longo prazo é armazenada em comparação com quando essa determinação é feita) da forma descrita acima.
[0168] O módulo de estimativa de movimento 122 pode determinar se esses bits menos significativos são suficientes para identificar sem ambiguidade a imagem de referência de longo prazo a partir de qualquer outra imagem de referência armazenada no armazenador de imagem decodificada 115, pelo menos em parte, pela determinação dos bits menos significativos para pelo menos um valor de contagem de ordem de imagem que identifica uma imagem respectiva de outras imagens armazenadas no armazenador de imagem decodificada 114. O módulo de estimativa de movimento 122 pode então determinar se os bits menos significativos para esse valor de contagem de ordem de imagem são iguais aos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo. Se esses dois bits menos significativos do valor de contagem de ordem de imagem forem iguais, o módulo de estimativa de movimento 122 pode então determinar que os últimos bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação e decodificação de pelo menos a parte da imagem atual são insuficientes para identificar de forma singular a imagem de referência de longo prazo adequada. Se, no entanto, esses dois bits menos significativos de valor de contagem de ordem de imagem não forem iguais, o módulo de estimativa de movimento 122 pode continuar a determinar os bits menos significativos dos valores de contagem de ordem de imagem que identificam outra imagem de referência de longo prazo armazenada no armazenador de imagem decodificada 114, comparando os dois bits menos significativos de contagem de ordem de imagem até que uma combinação seja encontrada ou todos os valores de contagem de ordem de imagem que identificam as imagens armazenadas no armazenador de imagem decodificada 114 tenham sofrido essa comparação.
[0169] Em outras palavras, a unidade de estimativa de movimento 122 pode comparar os bits menos significativos determinados com os bits menos significativos de cada um dos valores de contagem de ordem de imagem que identificam imagem sim, imagem não, armazenadas no armazenador de imagem decodificada 114 (234). Quando um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem armazenada no armazenador de imagem decodificado 114 no qual a imagem de referência de longo prazo também é armazenada são iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo ("SIM" 236), o módulo de estimativa de movimento 122 pode determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem determinado que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual da forma descrita acima (238).
[0170] O módulo de estimativa de movimento 122 pode então enviar esses bits menos significativos e os bits mais significativos para o módulo de codificação por entropia 116. O módulo de codificação por entropia 116 pode especificar os bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual em uma sequência de bits que representa uma versão codificada de dados de vídeo (240). O módulo de codificação por entropia 116 também pode especificar os um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual na sequência de bits (242).
[0171] Quando, no entanto, um ou mais bits menos significativos de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem armazenada no armazenador de imagem decodificada 114 no qual a imagem de referência de longo prazo também é armazenada não são iguais aos um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo ("NÃO" 236), a unidade de estimativa de movimento 122 pode enviar apenas os bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo sem determinar os bits mais significativos visto que os bits menos significativos identificam de forma singular a imagem de referência e longo prazo com relação às imagens armazenadas no armazenador de imagem decodificada 114. O módulo de codificação por entropia 122 pode então especificar os um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação de pelo menos a parte da imagem atual na sequência de bits sem especificar os bits mais significativos novamente visto que os bits menos significativos identificam de forma singular a imagem de referência de longo prazo com relação às imagens armazenadas no armazenador de imagem decodificada 114 (242).
[0172] O codificador de vídeo 20 pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem para codificar a parte da imagem atual. Em outras palavras, o módulo de compensação de movimento 124 também pode ser configurado para determinar um bloco de predição pela realização da interpredição utilizando a imagem de referência de longo prazo da forma descrita acima (244). O módulo de compensação de movimento 124 então determina um bloco de vídeo residual com base no bloco predito (246). Isso é, o módulo de compensação de movimento 124 então determina um bloco de vídeo residual pela subtração de valores de pixel do bloco predito a partir dos valores de pixel do bloco de vídeo atual sendo codificado, formando os dados residuais como valores de diferença de pixel. O somador 50 representa o componente ou componentes que realizam essa operação de subtração.
[0173] O módulo de transformada 104 então transforma o bloco residual para determinar os coeficientes de transformada utilizando uma transformada, tal como uma transformada de coseno discreta (DCT) ou uma transformada conceitualmente similar (248). O módulo de transformada 104 pode converter os dados de vídeo residuais de um domínio de pixel (espacial) em um domínio de transformada, tal como domínio de frequência. O módulo de transformada 104 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. O módulo de quantização 106 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits (250). O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Seguindo a quantização, o módulo de codificação por entropia 116 codifica por entropia os coeficientes de transformada quantizados (252), inserindo os coeficientes de transformada quantizados por entropia na sequência de bits, associada com o índice e/ou os bits menos significativos do valor de contagem de ordem de imagem (que são comumente especificados em um cabeçalho de fatia associado com o bloco codificado de dados de vídeo).
[0174] A figura 7 é um fluxograma ilustrando a operação de um decodificador de vídeo na realização do segundo aspecto das técnicas descritas nessa descrição. Como um exemplo, o decodificador de vídeo 30 pode implementar os segundos aspectos das técnicas descritas nessa descrição potencialmente em conjunto com o primeiro aspecto das técnicas descritas nessa descrição. O módulo de decodificação por entropia 150 pode decodificar por entropia uma sequência de bits representativa dos dados de vídeo codificados para determinar os coeficientes de transformada quantizados correspondendo a um bloco (que pode representar uma parte) dos dados de vídeo codificados (260). O módulo de decodificação por entropia 150 pode então passar esse coeficiente de transformada quantizada para o módulo de quantização inversa 154. O módulo de quantização inversa 154 pode realizar a quantização inversa com relação aos coeficientes de transformada quantizados para determinar os coeficientes de transformada (262). O módulo de transformada inversa 156 pode então realizar a transformada inversa com relação aos coeficientes de transformada para gerar dados residuais para a imagem atual (264).
[0175] O módulo de decodificação por entropia 150 também pode analisar a sequência de bits para determinar, par ao bloco da imagem atual, uma imagem de referência de longo prazo utilizada quando da realização da interpredição par ao bloco de imagem atual. De acordo com segundos aspectos das técnicas, o módulo de decodificação por entropia 150 podem decodificar por entropia os bits menos significativos da sequência de bits de uma contagem de ordem de imagem que identifica uma imagem de referência de longo prazo a ser utilizada quando da decodificação, isso é, pela interpredição, pelo menos uma parte de uma imagem atual (266). O módulo de decodificação por entropia 150 pode determinar se os bits mais significativos (MSB) para o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo estão presentes na sequência de bits (frequentemente, pela análise de um elemento de sintaxe na forma de um indicador a partir da sequência de bits que indica se os bits mais significativos estão presentes) (268).
[0176] Se esses bits mais significativos estiverem presentes ("SIM" 268), o módulo de decodificação por entropia 150 pode decodificar por entropia a sequência de bits para determinar os bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da realização de interpredição para a imagem atual (270). O módulo de decodificação por entropia 150 pode passar os bits menos significativos e os bits mais significativos para o módulo de compensação de movimento 162. O módulo de compensação de movimento 162 pode então recuperar a imagem de referência de longo prazo do armazenador de imagem decodificada 160 com base nos bits menos significativos determinados do valor de contagem de ordem de imagem e os bits mais significativos determinados do valor de contagem de ordem de imagem (272). Se esses bits mais significativos não estiverem presentes ("NÃO" 268), o módulo de decodificação por entropia 150 pode passar os bits menos significativos para o módulo de compensação de movimento 162. O módulo de compensação de movimento 162 pode então recuperar a imagem de referência de longo prazo a partir do armazenador de imagem decodificada 160 com base nos bits menos significativos determinados do valor de contagem de ordem de imagem (274).
[0177] Depois da recuperação dessa imagem de referência de longo prazo, o módulo de compensação de movimento 162 (em conjunto com um ou mais dos módulos 154, 156 e 158) pode então utilizar a imagem de referência de longo prazo identificada pelo valor de contagem de ordem de imagem determinado para decodificar a parte da imagem atual de uma forma similar à descrita acima. Em outras palavras, um ou mais vetores de movimento especificados para uma unidade de codificação da fatia atual da imagem atual pode fazer referência a LTRP identificado pelos LSBs POC. O módulo de compensação de movimento 162 pode recuperar vários blocos de LTRP identificado por esses vetores de movimento, utilizando esses vários blocos como blocos de referência quando da realização da compensação de movimento. O decodificador de vídeo 30 pode adicionar dados residuais codificados para os blocos da fatia atual da imagem atual a esses blocos de referência para gerar blocos decodificados de dados de vídeo e, dessa forma, reconstruir os dados de vídeo original, como descrito acima. Nesse sentido, o decodificador de vídeo 30 pode reconstruir o bloco de imagem atual com base na imagem de referência de longo prazo e os dados residuais (276). O decodificador de vídeo 30 pode armazenar os blocos decodificados de dados de vídeo no armazenador de imagem decodificada 160 para uso posterior na decodificação de imagens subsequentes. O decodificador de vídeo pode então decodificar outras fatias, se alguma, da imagem atual, de forma similar à descrita acima.
[0178] Enquanto descrito acima com relação aos valores de contagem de ordem de imagem total, as técnicas também podem ser implementadas com relação aos valores de contagem de ordem de imagem delta computados como a diferença entre o valor de contagem de ordem de imagem que identifica a imagem atual e o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando da codificação (que é um termo que pode ser utilizado para fazer referência a ambas a codificação e decodificação) a imagem atual dos dados de vídeo. A esse respeito, referência a um valor de contagem de ordem de imagem pode fazer referência a ambos os valores de contagem de ordem de imagem total e valores de contagem de ordem de imagem delta. As técnicas não devem, portanto, ser limitadas a esse respeito.
[0179] Adi cionalmente, várias outras técnicas são descritas e são relacionadas com os primeiro e segundo aspectos das técnicas e de algumas formas descritas abaixo. Como notado acima, a última versão de HEVC WD6 utiliza um mecanismo com base em conjunto de imagem de referência (RPS) para gerenciar as imagens de referência. Um RPS se refere a um conjunto de imagens de referência associadas com uma imagem, consistindo de todas as imagens de referência que são anteriores à imagem associada na ordem de decodificação, que pode ser utilizada para interpredição da imagem associada ou qualquer imagem seguindo a imagem associada na ordem de decodificação. A ordem de decodificação pode fazer referência a ordem na qual os elementos de sintaxe são processados pelo processo de decodificação.
[0180] No HEVC, um RPS para cada imagem codificada pode ser sinalizado diretamente. Os elementos de sintaxe para sinalização de RPS são incluídos em ambos um conjunto de parâmetro de sequência (SPS) e um cabeçalho de fatia associado com cada imagem codificada.Para uma imagem codificada em particular, o RPS pode ser um desses conjuntos alternativos incluídos no SPS como indicado por um indicador no cabeçalho de fatia, ou sinalizados diretamente no cabeçalho de fatia.
[0181] O RPS para cada imagem consiste de cinco listas diferentes de imagens de referência, que também podem ser referidos como cinco subconjuntos RPS. O primeiro subconjunto RPS pode fazer referência a RefPicSetStCurrBefore, que inclui todas as imagens de referência de curto temor (STRPs) que são anteriores à imagem atual em ambas a ordem de decodificação e ordem de saída e que podem ser utilizadas na interpredição da imagem atual. O segundo subconjunto RPS pode fazer referência a RefPicSetStCurrAfter, que inclui todas as imagens de referência de curto termo que são anteriores à imagem atual na ordem de decodificação, que sucedem a imagem atual na ordem de saída, e que podem ser utilizadas na interpredição da imagem atual. O terceiro subconjunto RPS pode se referir a RefPicSetStFoll, que inclui todas as imagens de referência de curto termo que podem ser utilizadas na interpredição de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação e que não são utilizadas na interpredição da imagem atual. O quarto subconjunto RPS pode se referir a RefPicSetLtCurr, que inclui todas as imagens de referência de longo prazo que podem ser utilizadas na interpredição de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação e que não são utilizadas na interpredição da imagem atual. A ordem de saída pode se referir à ordem na qual as imagens decodificadas são enviadas a partir do armazenador de imagem decodificada (DPB) no caso de imagens decodificadas deverem ser enviadas a partir do DPB. A ordem de envio de uma imagem pode ser especificada pelo valor de contagem de ordem de imagem (POC), frequentemente independentemente de se a imagem deve ser enviada.
[0182] Em qualquer caso, existe um número de problemas em potencial com relação a como HEVC WD6 indica que esses subconjuntos RPS podem ser derivados e sinalizados. O primeiro problema se refere, HEVC WD6 subcláusula 8.3.2, equação (Eq.) 8-6, onde a derivação dos subconjuntos RPS de acordo com essa equação 8-6 podem depender da situação das imagens de referência no DPB como resultado da imagem anterior (devido ao termo "existe uma imagem de referência de longo prazo picX no DPB" ou similar). No entanto, essa frase na subcláusula 8.3.2 pode ser contrária a um princípio fundamental de RPS que a situação de imagens de referência no DPB é "intracodificada", que pode significar que não depende de uma situação anterior. Em outras palavras, a determinação de um RPS atual para uma imagem atual pode depender do armazenamento anterior de um LTRP ("picX") no DPB a despeito de um princípio fundamental de RPS é que a situação de imagem de referência no DPB é intracodificado e não intercodificado e, portanto, deve ser utilizado para a tomada de decisão de intercodificação temporal.
[0183] O segundo problema se refere à derivação de LTRPs no RPS. A partir da equação 8-6 na subcláusula 8.3.2 de HEVC WD6, LTRP é identificado por seu bit menos significativo POC (LSB) (que é denotado como "pic_order_ent_lsb"), se delta_poc_msb_present_flag[i] for igual a 0, ou seu valor POC total (denotado por "PicOrderCntVal") do contrário. No entanto, no último caso, a parte na equação 8-5 de HEVC WD6 para derivação de um valor POC total LTRP, "((PicOrderCntVal - DeltaPocLt[i] + MaxPicOrderCntLsb) % MaxPicOrderCntLsb) - (DeltaPocMSBCycleLt[i])* MaxPicOrderCntLsb", pode estar incorreto.
[0184] Po r exemplo, se MaxPicOrderCntLsb = 256, e a imagem atual possuir um valor POC total igual a 256*10 + 100 (LSB igual a 100), as imagens com valores POC totais 256*8 + 100 e 256*6 + 100 resulta em dois LTRPs com o mesmo valor LSB POC de 100. De acordo com o acima exposto. DeltaPocMSBCycleLt[i] para os dois LTRPs seria igual a 2 e 4, respectivamente. De acordo com a equação 8-5, os valores POC totais dos dois LTRPs seriam -256*2 e -256*4, respectivamente, o que está incorreto.
[0185] Um terceiro problema associado com a derivação RPS em HEVC WD6 pode ser que uma vez que uma imagem é sinalizada como um LTRP, a mesma nunca poderá ser sinalizada como uma imagem de referência de termo curto (STRP).
[0186] um quarto problema associado com a derivação RPS em HEVC WD6 pode ser que LSB POC de uma LTRP a ser incluído no RPS de uma imagem é sinalizado no cabeçalho de fatia como um delta de LSB dos valores POC delta, codificados utilizando-se ue(v). Isso pode ser ineficiente, visto que delta de LSB dos valores POC delta são tipicamente grandes para as LTRPs, exigindo, assim, muitos bits para ser representado. Isso também não é descomplicado para os codificadores descobrirem qual o valor para sinalizar no cabeçalho de fatia.
[0187] Um quinto problema associado com a derivação RPS em HEVC WD6 pode ser que, quando existem duas ou mais LTRPs possuindo o mesmo valor de LSB POC, os valores POC totais de todas essas LTRPs devem ser sinalizados, onde os valores MSB POC são sinalizados como um delta de duas LTRPs contínuas possuindo os mesmos LSBs POC, utilizando ue(v). Para uma primeira dentro de um conjunto de LTRPs sinalizadas continuamente possuindo os mesmos LSBs POC, MSB POC é diretamente sinalizado, utilizando ue(v). Pode haver dois aspectos de ineficiência aqui. O primeiro é que o delta de valores MSB POC e valor MSB POC sinalizado diretamente para a primeira TRP em um conjunto pode ser grande e, portanto, pode exibir muitos bits para representar os valores. O segundo é que, na maior parte dos casos, a adição de um pouco mais de LSB (ou de forma equivalente, tornar o comprimento do MSB um pouco maior) pode permitir a identificação singular de todas as LTRPs. De acordo, pode não ser necessário se sinalizar todos os valores MSB para LTRPs possuindo os mesmos valores LSB.
[0188] Para se solucionar potencialmente os problemas identificados acima, várias técnicas são descritas abaixo para derivação do conjunto de imagem de referência (RPS) e sinalização de imagens de referência de longo prazo (LTRPs) a serem incluídas no RPS de uma imagem codificada, incluindo os primeiro e segundo aspectos notados acima das técnicas descritas acima com relação às figuras de 1 a 7. Novamente, enquanto descrito abaixo com relação a HEVC WD6, as técnicas podem ser implementadas com relação a qualquer padrão de codificação de vídeo ou outras técnicas de codificação envolvendo a interpredição com relação aos dados de referência. Ademais, o destaque em cinza é utilizado abaixo para denotar as mudanças em HEVC WD6.
[0189] Em um aspecto, a sintaxe de cabeçalho de fatia e semânticas como especificadas em HEVC WD6 podem ser modificadas, onde a sintaxe de cabeçalho de fatia é alterada como segue: elementos de sintaxe poc_lsb_len_delta[i] e poc_lsb_lt[i] são adicionados, e elementos de sintaxe delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] e delta_poc_msb_cycle_lt_minus1[i] são removidos, com os outros elementos de sintaxe inalterados. A sintaxe de cabeçalho de fatia pode, portanto, lembrar o ilustrado abaixo na Tabela 1, onde as partes em negrito e em itálico ilustradas abaixo refletem as adições ou mudanças no HEVC em suporte de um ou mais aspectos das técnicas descritas nessa descrição. Tabela 1
Figure img0001
[0190] A semântica de cabeçalho de fatia também pode ser alterada como segue: semânticas de elementos de sintaxe poc_lsb_len_delta[i] e poc_lsb_lt[i] são adicionadas, e semânticas de elementos de sintaxe delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] e delta_poc_msb_cycle_lt_minus[i] são removidas, com as semânticas para outros elementos de sintaxe inalterados.
[0191] O elemento de sintaxe poc_lsb_len_delta[i] pode especificar o número de bits para representar poc_lsb_lt[i].
[0192] PocLsbLtLen[i] variável pode ser derivado como segue: if (i == 0) PocLsbLtLen[i] = log2_max_pic_order_cnt_lsb_minus4 + 4 + poc_lsb_len_delta[i] else PocLsbLtLen[i] = PocLsbLtLen [I - 1] + poc_lsb_len_delta[i]
[0193] O elemento de sintaxe poc_lsb_lt[i] pode especificar os bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo prazo i que é incluída no conjunto de imagens de referência de longo prazo da imagem atual. Esse elemento de sintaxe poc_lsb_lt[i] pode estar na faixa de 0 a (1 <<PocLsbLtLen[i])-1, inclusive. O comprimento de poc_lsb_lt[i] pode ser PocLsbLtLen[i]. Alternativamente, a variável PocLsbLtLen[i] pode ser derivada como segue: PocLsbLtLen[i]= log2_max_pic_order_cnt_lsb_minus4 +4+ poc_lsb_len_delta[i]
[0194] O processo de decodificação para os conjuntos de imagens de referência especificados na seção 8.3.3 de HEVC WD6 pode ser alterado como segue, onde o destaque em cinza ou o sombreamento indica adições e/ou mudanças na seção 8.3.2 de HEVC WD6 como atualmente especificado. O seguinte reproduz muito da seção 8.3.2 de HEVC WD6. Esse processo é invocado uma vez por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para a construção da lista de imagem de referência da fatia como especificado na subcláusula 8.3.3 de HEVC WD6. O processo pode resultar na marcação de uma ou mais imagens de referência como "não utilizadas para referência". NOTA 1 - O conjunto de imagens de referência é uma descrição absoluta das imagens de referência utilizadas no processo de decodificação das imagens codificadas atuais e futuras. A sinalização do conjunto de imagens de referência é explícita no sentido de todas as imagens de referência incluídas no conjunto de imagens de referência serem listadas explicitamente e não haver processo de construção de conjunto de imagem de referência padrão no decodificador que dependa da situação do armazenador de imagem decodificado. As imagens de referência de curto termo são identificadas por seus valores PicOrderCntVal. As imagens de referência de longo prazo são identificadas por bits menos significativos de seus valores PicOrderCntVal.
[0195] Cinco listas de valores de contagem de ordem de imagem ou bits menos significativos de contagem de ordem de imagem são construídas para derivar o conjunto de imagens de referência: PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll com o número de elementos NumPocStCurrBefore, NumPocStCurrAfter,NumPocStFoll, NumPocLtCurr e NumPocLtFoll, respectivamente. - Se a imagem atual for uma imagem IDR, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll são todos configurados como vazios, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr e NumPocLtFoll são todos configurados para 0. - Do contrário, o seguinte se aplica à derivação de cinco listas de valores de contagem de ordem de imagem e os números de registros.
Figure img0002
NumPocLtCurr = j NumPocLtFoll = k onde PicOrderCntVal é a contagem de ordem de imagem da imagem atual como especificado na subcláusula 8.2.1de HEVC WD6. NOTA 2 - Um valor de StRpsIdx na faixa de 0 a num_short_term_ref_pic_sets -1, inclusive, indica que um conjunto de imagem de referência de curto termo do conjunto de parâmetro de sequência ativa está sendo utilizado, onde StRpsIdx é o índice do conjunto de imagem de referência de curto termo para a lista de conjuntos de imagem de referência de curto termo na ordem na qual são sinalizados no conjunto de parâmetro de sequência. StRpsIds igual a num_short_term_ref_pic_sets indica que um conjunto de imagem de referência de curto termo sinalizado explicitamente no cabeçalho de fatia está sendo utilizado. O conjunto de imagem de referência consiste de cinco listas de imagens de referência; RefPicSetStCurrBefore,RefPicSetStCurrAfter,RefPic SetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. A variável NumPocTotalCurr é configurada igual a NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr. Quando da decodificação de uma fatia P ou B, é uma exigência da conformidade de sequência de bit que o valor de NumPocTotalCurr não seja igual a 0. NOTA 3 - RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr contêm todas as imagens de referência que podem ser utilizadas na interpredição da imagem atual e que podem ser utilizados na interpredição de uma ou mais imagens seguindo a imagem atual na ordem de decodificação. RefPicSetStFoll e RefPicSetLtFoll consistem de todas as imagens de referência que não são utilizadas na interpredição da imagem atual mas podem ser utilizados na interpredição de uma ou mais imagens seguindo a imagem atual na ordem de decodificação. A marcação de uma imagem de referência pode ser "não utilizada para referência", "utilizada para referência de curto termo", ou "utilizada para referência de longo prazo", mas apenas uma entre as três. Quando uma imagem de referência é referida como sendo marcada como "utilizada para referência" isso se refere coletivamente à imagem sendo marcada como "utilizada para referência de curto termo" ou "utilizada para referência de longo prazo" (mas não ambas). Uma imagem de referência que é marcada como "utilizada para referência de curto termo" é referida como uma imagem de referência de curto termo. Uma imagem de referência que é marcada como "utilizada para referência de longo prazo" é referida como uma imagem de referência de longo prazo.
[0196] O processo de derivação para o conjunto de imagem de referência e marcação de imagens é realizado de acordo com as etapas ordenadas a seguir, onde DPB se refere ao armazenador temporário de imagem como descrito no Anexo C de HEVC WD6: 1. O seguinte se aplica:
Figure img0003
Figure img0004
Figure img0005
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 temporário de imagem decodificada que não são incluídas em RefPicStLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll são marcadas como "não utilizadas para referência". NOTA 4 - Existem uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas que não estão presentes no armazenador de imagem decodificada. Quando a primeira imagem codificada na sequência de bits é uma imagem IDR ou a imagem codificada atual não e uma imagem dianteira da primeira imagem codificada na sequência de bits, os registros em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a "imagem de não referência" devem ser ignorados. Quando a primeira imagem codificada na sequência de bits não é uma imagem CRA ou a imagem codificada atual não é uma imagem dianteira da primeira imagem codificada na sequência de bits, uma perda de imagem não intencional deve ser inferida para cada registro RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr que é igual a "nenhuma imagem de referência". Alternativamente, nas etapas acima, as palavras "existe uma imagem de referência picX" são alteradas para "existe uma imagem picX". É uma exigência da conformidade de sequência de bits que o conjunto de imagem de referência seja restrito como segue: - Não deve haver qualquer imagem de referência com temporal_id maior do que da imagem atual incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr. - Para cada valor de i na faixa de 0 a NumPocLtCurr - 1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluído em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que a PicOrderCntVal para o qual Abs(PicOrderCntVal)% (2PocLsbLencurr[i] é igual a PocLtCurr[i]. Para cada valor de i na faixa de 0 a NumPocLtFoll-1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluído em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que tenha PicOrderCntval para o qual Abs(PicOrderCntVal)%(2PocLsbLenFoll[i] [e igual a PocLtFoll[i]. - Não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que precede, na ordem de saída, qualquer imagem CRA que precede a imagem atual tanto na ordem de decodificação quanto na ordem de saída. - Quando a primeira imagem codificada na sequência de bits é uma imagem IDR ou a imagem codificada atual não é uma imagem dianteira da primeira imagem codificada na sequência de bits, não deve haver qualquer registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter, ou RefPicSetLtCurr que seja igual a "sem imagem de referência". NOTA 5 - Uma imagem de referência não pode ser incluída em mais de uma das cinco listas de conjunto de imagem de referência.
[0197] Em outro aspecto, as técnicas podem modificar a sintaxe de cabeçalho de fatia e semânticas para adicionar elementos de sintaxe poc_lsb_lt[i], add_poc_lsb_len[i] e add_poc_lsb[i], e remover elementos de sintaxe delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] e delta_poc_msb_cycle_lt_minus[i], deixando os outros elementos de sintaxe inalterados. A Tabela 2 a seguir ilustra essas mudanças, onde adições e/ou mudanças são denotadas utilizando destaque em cinza ou sombreamento. Tabela 2
Figure img0006
[0198] A semântica de cabeçalho de fatia pode ser alterada para adicionar semânticas dos elementos de sintaxe poc_lsb_lt[i], add_poc_lsb_len[i] e add_poc_lsb[i], e remover as semânticas dos elementos de sintaxe delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] e delta_poc_msb_cycle_lt_minus1[i], deixando a semântica inalterada para outros elementos de sintaxe.
[0199] O elemento de sintaxe poc_lsb_lt[i] pode especificar os bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo prazo i que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. O comprimento de poc_lsb_lt[i] pode ser log2_max_pic_order_cnt_lsb_minus4 + 4 bits.
[0200] O elemento de sintaxe add_poc_lsb_len[i] pode especificar o número de bits menos significativos adicionais do valor de contagem de ordem de imagem da imagem de referência de longo prazo i que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. add_poc_lsb_len[i] deve estar na faixa de 0 a 32-log2_max_pic_order_cnt_lsb_minus4 - 4, inclusive.
[0201] O elemento de sintaxe add_poc_lsb[i] pode especificar o valor dos bits menos significativos adicionais do valor de contagem de ordem de imagem da imagem de referência de longo prazo e incluída no conjunto de imagem de referência de longo prazo da imagem atual. poc_lsb_lt[i] deve estar na faixa de 1 a (1<<add_poc_lsb_len[i])-1, inclusive. O comprimento de add_poc_lsb[i] é add_poc_lsb_len[i] bits.
[0202] O processo de decodificação para o conjunto de imagens de referência especificado na seção 8.3.3 de HEVC WD6 pode ser alterado como segue, onde novamente o destaque em cinza ou sombreamento indica adições e/ou mudanças na seção 8.3.2 de HEVC WD6 como atualmente especificado. O seguinte reproduz muito da seção 8.3.2 de HEVC WD6.
[0203] Esse processo é invocado uma vez por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para construção da lista de imagem de referência da fatia como especificado na subcláusula 8.3.3. O processo pode resultar na marcação de uma ou mais imagens de referência como "não utilizadas para referência". NOTA 1 - O conjunto de imagem de referência é uma descrição absoluta das imagens de referência utilizadas no processo de decodificação das imagens codificadas atuais e futuras. A sinalização de conjunto de imagem de referência é explícita no sentido de todas as imagens de referência incluídas no conjunto de imagens de referência são listadas explicitamente e não há qualquer processo de construção de conjunto de imagem de referência padrão no decodificador que depende da situação do armazenador de imagem decodificada. As imagens de referência de curto termo são identificadas por seus valores PicOrderCntVal. Imagens de referência long_term são identificadas pelos bits menos significativos de seus valores PicOrderCntVal.
[0204] Cinco listas de valores de contagem de ordem de imagem ou bits menos significativos da contagem de ordem de imagem são construídas para derivar o conjunto de imagens de referência; número de elementos PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll, respectivamente. - Se a imagem atual for uma imagem IDR, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll são todos configurados para vazio, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr e NumPocLtFoll são todos configurados para 0. - Do contrário, o seguinte se aplica à derivação de cinco listas dos valores de contagem de ordem de imagem e os números de registros.
Figure img0007
Figure img0008
Figure img0009
NumPocLtCurr = j NumPocLtFoll = k onde PicOrderCntVal é a contagem de ordem de imagem da imagem atual como especificado na subcláusula 8.2.1. NOTA 2 - Um valor de StRpsIdx na faixa de 0 a num_short_term_ref_pic_sets - 1, inclusive, indica que um conjunto de imagens de referência de curto termo a partir do conjunto de parâmetros de sequência ativa está sendo utilizado, onde StRpsIdx é o índice do conjunto de imagem de referência de curto termo para a lista de conjuntos de imagem de referência de curto termo na ordem na qual são sinalizados no conjunto de parâmetro de sequência. StRpsIdx igual a num_short_term_ref_pic_sets indica que um conjunto de imagens de referência de curto termo explicitamente sinalizado no cabeçalho de fatia está sendo utilizado. O conjunto de imagens de referência consiste de cinco listas de imagens de referência; RefPicSetCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. A variável NumPocTotalCurr é configurada igual a NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr. Quando da decodificação de uma fatia P ou B, é uma exigência de conformidade de sequência de bits que o valor de NumPocTotalCurr não deva ser igual a 0. NOTA 3 - RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr contêm todas as imagens de referência que podem ser utilizadas na interpredição de imagem atual e que podem ser utilizados na interpredição de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação. RefPicSetStFoll e RefPicSetLtFoll consiste de todas as imagens de referência que não são utilizadas na interpredição da imagem atual, mas podem ser utilizadas na interpredição de uma ou mais imagens seguindo a imagem atual na ordem de decodificação. A marcação de uma imagem de referência pode ser "não utilizada para referência", "utilizada para referência de curto termo", ou "utilizada para referência de longo prazo", mas apenas uma entre essas três. Quando uma imagem de referência é referida como sendo marcada como "utilizada para referência", isso se refere coletivamente à imagem sendo marcada como "utilizado para referência de curto termo", ou "utilizado para referência de longo prazo" (mas não ambas). Uma imagem de referência que é marcada como "utilizada para referência de curto termo" é referida como uma imagem de referência de curto termo. Uma imagem de referência que é marcada como "utilizada para referência de longo prazo" é referida como uma imagem de referência de longo prazo.
[0205] O processo de derivação para o conjunto de imagens de referência e marcação de imagem são realizados de acordo com as etapas ordenadas a seguir, onde DPB se refere ao armazenador temporário de imagem decodificada como descrito no Anexo C de HEVC WD6: 1. O seguinte se aplica:
Figure img0010
Figure img0011
Figure img0012
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 imagem decodificada que não são incluídas em RefPicSetLtCur, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll são marcadas como "não utilizadas para referência". NOTA 4 - Pode haver uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas que não estão presentes no armazenador de imagem decodificada. Quando a primeira imagem codificada na sequência de bits é uma imagem IDR ou a imagem codificada atual não é uma imagem dianteira da primeira imagem codificada na sequência de bits, os registros em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a "sem imagem de referência" devem ser ignorados. Quando a primeira imagem codificada na sequência de bits não é uma imagem CRA ou a imagem codificada atual não é uma imagem dianteira da primeira imagem codificada na sequência de bits, uma perda de imagem não intencional deve ser inferida para cada registro em RefPicSetStCurrBefore, RefPicSetStCurAfter, e RefPicSetLtCurr que é igual a "sem imagem de referência". Alternativamente, nas etapas acima, as palavras "existe uma imagem de referência PicX" são alteradas para "existe uma imagem picX".
[0206] É uma exigência da conformidade de sequência de bits que o conjunto de imagens de referência seja restringido como segue: - Não deve haver imagem de referência com temporal_id maior do que o da imagem atual incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr. - Para cada valor de i na faixa de 0 a NumPocLtCurr - 1, não deve haver mais de uma imagem de referência em DPB que não seja incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que tenha PicOrderCntVal para o qual Abs(PicOrderCntVal)% (2ExtPocLsbLenCurr[i] é igual a PocLtCurr[i]. Para cada valor de i na faixa de 0 a NumPocLtFoll-1, inclusive, não deve haver mais de uma imagem de referência no DPB que não esteja incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que tenha PicOrderCntVal para o qual Abs(PicOrderCntVal)%(2ExtPocLsbLenFoll[i] é igual a PocLtFoll[i]. - Não deve haver qualquer imagem de referência incluída no conjunto de imagem de referência que preceda, em ordem de saída, qualquer imagem CRA que preceda a imagem atual tanto em ordem de decodificação quanto em ordem de saída. - Quando a primeira imagem codificada na sequência de bits é uma imagem IDR ou imagem codificada atual não é uma imagem dianteira da primeira imagem codificada na sequência de bits, não deve haver qualquer registro em RefPicSetStCurrBefore, RefPicSetStCurrAfte ou RefPicSetLtCurr que seja igual a "sem imagem de referência". NOTA 5 - Uma imagem de referência não pode ser incluída em mais de uma das cinco listas de conjunto de imagem de referência.
[0207] Um terceiro aspecto das técnicas pode ser baseado no primeiro aspecto das técnicas descritas acima. Nesse terceiro aspecto, na sintaxe de cabeçalho de fatia, um ou mais elementos de sintaxe podem ser adicionados para cada LTRP a ser incluído no RPS para sinalizar o bit inicial de POC da LTRP, com o valor 0 indicando, como um exemplo, o início a partir do bit menos significativo (bit 0), o valor 1 indicando o início a partir do segundo bit menos significativo (bit 1), e assim por diante. PocLsbLtLen[i] pode então ser derivado da mesma forma que no primeiro aspecto das técnicas descritas acima onde PocLsbLtLen[i] [e derivado com base em poc_lsb_len_delta[i]. No entanto, nesse terceiro aspecto das técnicas, PocLsbLtLen[i] pode representar o número de bits de POC da LTRP iniciando a partir do bit inicial como identificado acima pelo elemento de sintaxe adicional onde poc_lsb_lt[i] específica o valor de PocLsbLtLen[i] bits de POC da LRTP iniciando a partir do bit inicial como identificado acima pelo elemento de sintaxe adicional.
[0208] Pode ser exigido que em DPB exista apenas uma imagem de referência (ou, alternativamente, apenas uma imagem) que tenha o mesmo conjunto de bits do valor POC igual ao indicado para LTRP, excluindo os incluídos em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll. Dessa forma, a LTRP pode então ser identificada de forma singular pelo conjunto de bits, e na equação 8-7 de HEVC WD6, essa condição (ao invés da condição que o conjunto de bits menos significativos do valor POC igual ao indicado para LTRP) pode ser utilizada para identificar uma imagem de referência (ou, alternativamente, uma imagem) a ser incluída em RefPicSetLtCurr[i] ou RefPicSetLtFoll[i]. As outras partes do terceiro aspecto das técnicas podem ser similares às descritas acima com relação ao primeiro aspecto das técnicas.
[0209] Um quarto aspecto de técnicas descritas nessa descrição pode representar uma variação de segundos aspectos das técnicas descritas acima. Nesse quarto aspecto, a sintaxe de cabeçalho de fatia pode incluir add_poc_lsb_len[i], que representa um delta do comprimento do LSB adicional sinalizado por add_poc_lsb[i]. Se i for igual a 0, add_poc_lsb_len[i] pode especificar o comprimento de LSB adicional sinalizado por add_poc_lsb[i]; do contrário, add_poc_lsb_len[i] pode especificar a diferença entre o comprimento add_poc_lsb[i] e o comprimento de add_poc_lsb[i-1]. As outras partes do quarto aspecto das técnicas podem ser similares às descritas acima com relação ao segundo aspecto das técnicas.
[0210] Um quinto aspecto das técnicas pode ser baseado no primeiro aspecto das técnicas descritas acima. Nesse quinto aspecto, para sinalizar uma LTRP, ao invés de sinalizar LSB POC começando a partir do bit menos significativo, um LSB POC truncado pode ser sinalizado.
[0211] A sintaxe de cabeçalho de fatia pode ser alterada para adicionar elementos de sintaxe poc_lsb_len_delta[i] e poc_lsb_lt[i]ver elementos de sintaxe delta_poc_lsb_lt[i], delta_poc_msb_present_flag[i] e delta_poc_msb_cycle_lt_minus[i] removido, deixando os outros elementos de sintaxe inalterados. A Tabela 3 a seguir ilustra como essas mudanças podem afetar o cabeçalho de fatia, com destaque cinza ou sombreamento denotando mudanças e/ou adições. Tabela 3
Figure img0013
Figure img0014
[0212] poc Isb len truncated delta [i] pode ser utilizado para especificar o número de bits para representar poc_lsb_truncated_lt[i]. A variável PocLsbLtTrunLen[i] pode ser derivada como segue: if(i == 0) PocLsbLtTrunLen[i]= log2_max_pic_order_cnt_lsb_minus4+4+ poc_lsb_len_truncated_delta[i] - NumTruncatedBits else PocLsbLtTrunLen[i]= PocLsbLtTrunLen[i-1]+ poc_lsb_len_truncated_delta[i] NumTruncatedBits pode ser configurado para: log2_max_pic_order_cnt_lsb_minus4 + 4, e nesse PocLsbLtTrunLen [0] é igual a poc_lsb_len_truncated_delta [0]. Esse valor também pode ser sinalizado em PPS ou SPS.
[0213] poc_lsb_truncated_lt[i] pode especificar os bits menos significativos, depois da truncagem dos bits NumTruncatedBits, do valor de contagem de ordem de imagem da imagem de referência de longo prazo i que é incluída conjunto de imagens de referência de longo prazo da imagem atual, em outras palavras, o bit NumTruncatedBits para o bit NumTruncatedBits + PocLsbLtTrunLen[i] - 1, inclusive do valor de contagem de ordem de imagem da imagem de referência de termo longo i que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. Esses bits são referidos como o conjunto de bits truncados para a LTRP i que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. O elemento de sintaxe poc_lsb_truncated_lt[i] pode estar na faixa de 0 a (1<<PocLsbLtTrunLen[i])-1, inclusive. O comprimento de poc_lsb_lt[i] pode, como um exemplo, ser PocLsbLtTrunLen[i].
[0214] As imagens de referência de longo prazo são tipicamente identificadas pelo conjunto de bit truncado de seus valores PicOrderCntVal. Duas imagens de referência (ou, alternativamente, duas imagens de referência) em DPB (excluindo as incluías em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll) ao podem ter o mesmo valor para o mesmo conjunto de bits para seus valores PicOrderCntVal. Dessa forma, a LTRP pode ser identificada de forma singular pelo conjunto de bit truncado, e na equação 8-7 de HEVC WD6, essa condição (ao invés da condição na qual o conjunto de bits menos significativos do valor POC é igual ao indicado para LTRP) é utilizado para identificar uma imagem de referência (ou, alternativamente, uma imagem) a ser incluída em RefPicSetLtCurr[i] ou RefPicSetLtFoll[i].
[0215] Como uma alternativa, NumTruncatedBits pode ser sinalizado em cada fatia, quando as imagens LTRP são sinalizadas. A Tabela 4 ilustra essa alternativa, com destaque em cinza ou sombreamento denotando mudanças e/ou adições; Tabela 4
Figure img0015
Na Tabela 4, num_truncated_bits pode especificar os bits menos significativos de um valor POC a ser truncado quando da identificação de uma LTRP a partir de LSB POC. Esse elemento de sintaxe pode estar na faixa de 0 a log2_max_pic_order_cnt_lsb_minus4+4, inclusive, e o comprimento pode ser ceil(log2(log2_max_pic_order_cnt_lsb_minus4+4+1)). Como outra alternativa, num_truncated_bits pode ser sinalizado em ue(v) e pode ser maior do que log2_max_pic_order_cnt_lsb_minus4+4.
[0216] É reconhecido que dependendo do exemplo, determinados atos ou eventos de qualquer uma das técnicas descritas aqui podem ser realizados em uma sequência diferente, podem ser adicionados, misturados ou deixados de fora completamente (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática das técnicas). Ademais, em determinados exemplos, atos ou eventos podem ser realizados simultaneamente, por exemplo, através de processamento de múltiplas sequências, processamento interrompido, ou múltiplos processadores, ao invés de sequêncialmente.
[0217] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento com base em hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível tal como mídia de armazenamento de dados, ou mídia de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com o protocolo de comunicação. Dessa forma, mídia legível por computador geralmente pode corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0218] Po r meio 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 ótico, armazenamento em disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estrutura de dados e que posas ser acessado por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se instruções forem transmitidas a partir de um sítio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo de fibra ótica, um par torcido, uma linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídas na definição de meio. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outro meio transitório, mas, são direcionados, ao invés disso, a meio de armazenamento tangível não transitório. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco a laser, disco ótico, disco versátil digital (DVD), disquete e disco bluray onde disquetes normalmente reproduzem os dados magneticamente, enquanto discos reproduzem os dados oticamente com lasers. As combinações do acima exposto também devem ser incluídas no escopo de meio legível por computador.
[0219] Instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos de lógica programável em campo (FPGAs), ou outro conjunto de circuito lógico discreto ou integrado equivalente. De acordo, o termo "processador", como utilizado aqui pode se referir a qualquer estrutura acima ou qualquer outra estrutura adequada para implementação das técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de hardware dedicado e/ou módulos de software configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0220] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por unidades de hardware diferentes. Ao invés disso, como descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com o software e/ou firmware adequados.
[0221] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (13)

1. Método para codificar dados de vídeo, o método compreendendo: prover, em um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência, uma lista de imagens de referência de longo prazo; determinar, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada ao codificar uma parte de uma imagem atual dos dados de vídeo; codificar a parte da imagem atual usando a imagem de referência de longo prazo em um fluxo de bits; determinar se a imagem de referência de longo prazo já está sinalizada dentro da lista no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência e, se estiver, especificar, em um cabeçalho de fatia associado com a parte da imagem atual dos dados de vídeo, o índice da imagem de referência de longo prazo a ser usado ao decodificar a parte da imagem atual dos dados de vídeo; em que onde for determinado que a imagem de referência de longo prazo ainda não está sinalizada dentro da lista no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência: determinar um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem representativo da imagem de referência de longo prazo; especificar, no cabeçalho de fatia associado com a parte da imagem atual dos dados de vídeo, os um ou mais bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo prazo usando o número de bits determinado usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem; determinar, quando um ou mais bits menos significativos de quaisquer outros valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada para um buffer de imagem decodificada no qual a imagem de referência de longo prazo também é armazenada são os mesmos que os um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, um ou mais bits mais significativos do valor de contagem de ordem de imagem que identificam a imagem de referência de longo prazo, o método caracterizado pelo fato de que o número dos um ou mais bits mais significativos que é especificado no cabeçalho de fatia é selecionado com base em uma análise de todas as imagens armazenadas no buffer de imagem decodificada de um modo que os um ou mais bits mais significativos permitem encerrar ambiguidade do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no buffer de imagem decodificada, e de modo que o método suporta que o número dos um ou mais bits menos significativos quando adicionados a um número dos um ou mais bits mais significativos resulta em um total que é menor do que um número de bits total para especificar o valor de contagem de ordem de imagem e especificar, no cabeçalho de fatia, os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando codificar pelo menos a parte da imagem atual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente especificar o número de bits determinado usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no fluxo de bits.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar o número de bits compreende determinar o número de bits a ser usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no fluxo de bits baseado em elementos de sintaxe previamente determinados para um ou mais da imagem atual e imagens previamente codificadas dos dados de vídeo, de forma a evitar especificar no fluxo de bits o número de bits determinado para ser usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar os um ou mais bits menos significativos para pelo menos um valor de contagem de ordem de imagem que identifica uma respectiva imagem das outras imagens armazenadas no buffer de imagem decodificada; e determinar se os um ou mais bits menos significativos para o pelo menos um valor de contagem de ordem de imagem que identifica a respectiva imagem das outras imagens armazenadas no buffer de imagem decodificada são os mesmos que os um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar os um ou mais bits mais significativos do valor de contagem de ordem de imagem compreende determinar os um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser usada ao codificar ao menos a parte da imagem atual tal que os um ou mais bits mais significativos em combinação com um ou mais bits menos significativos determinados é suficiente para identificar unicamente o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo de qualquer outro valor de contagem de ordem de imagem que identifica qualquer outra imagem no buffer de imagem decodificada.
6. Método para decodificar dados de vídeo codificados, o método compreendendo: receber um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência incluindo uma lista de imagens de referência de longo prazo que pode ser usado para decodificar uma parte de uma imagem atual; receber um cabeçalho de fatia associado com a parte da imagem atual, o cabeçalho de fatia identificando uma imagem de referência de longo prazo requerida para decodificar a parte da imagem atual; recuperar a imagem de referência de longo prazo identificada a partir de um buffer de imagem decodificada; decodificar a parte da imagem atual usando a imagem de referência de longo prazo recuperada; determinar, onde a imagem de referência de longo prazo é incluída no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência, a imagem de referência de longo prazo usando um índice sinalizado no cabeçalho de fatia; determinar, onde a imagem de referência de longo prazo não está incluída no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência, a imagem de referência de longo prazo por: determinar, a partir do cabeçalho de fatia, um ou mais bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo prazo incluindo um número de bits determinado usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem no cabeçalho de fatia; e determinar a partir do cabeçalho de fatia, quando o número determinado dos um ou mais bits menos significativos de quaisquer outros valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada ao buffer de imagem decodificada no qual a imagem de referência de longo prazo é também armazenada são os mesmos que os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, o método caracterizado pelo fato de que o número dos um ou mais bits mais significativos que é especificado no cabeçalho de fatia é selecionado com base em uma análise de todas as imagens armazenadas no buffer de imagem decodificada de tal modo que os um ou mais bits mais significativos permitem encerrar ambiguidade do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no buffer de imagem decodificada, e de modo que o método suporta que o número dos um ou mais bits menos significativos quando adicionados a um número dos um ou mais bits mais significativos resulta em um total que é menor que um número de bits total para especificar o valor de contagem de ordem de imagem.
7. Dispositivo de codificação de vídeo para codificar dados de vídeo, o dispositivo de codificação de vídeo compreendendo: meios para prover, em um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência, uma lista de imagens de referência de longo prazo; meios para determinar, para uma imagem atual dos dados de vídeo, uma imagem de referência de longo prazo a ser utilizada ao codificar uma parte de uma imagem atual dos dados de vídeo; meios para codificar a parte da imagem atual usando a imagem de referência de longo prazo; meios para determinar se a imagem de referência de longo prazo já está sinalizada dentro da lista no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência e, se estiver, especificar, em um cabeçalho de fatia associado com a parte da imagem atual dos dados de vídeo, um índice da imagem de referência de longo prazo a ser usado ao decodificar a parte da imagem atual dos dados de vídeo; em que quando é determinado que a imagem de referência de longo prazo ainda não está sinalizada dentro da lista no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência, o dispositivo compreende adicionalmente: meios para determinar um número de bits a ser utilizado para representar um ou mais bits menos significativos de um valor de contagem de ordem de imagem representativo da imagem de referência de longo prazo; meios para especificar, no cabeçalho de fatia associado a parte da imagem atual dos dados de vídeo, os um ou mais bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de termo longo utilizando o número de bits usado determinado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem; em que, quando um ou mais bits menos significativos de quaisquer outros valores de contagem de ordem de imagem que identifica qualquer outra imagem armazenada em um buffer de imagem decodificada no qual a imagem de referência de longo prazo é também armazenada são os mesmos que os um ou mais bits menos significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de termo longo, o dispositivo compreende meios para determinar um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, o dispositivo caracterizado pelo fato de que o número dos um ou mais bits mais significativos que é especificado no cabeçalho de fatia é selecionado com base em uma análise de todas as imagens armazenadas no buffer de imagem decodificada de tal modo que os um ou mais bits mais significativos permitem encerrar ambiguidade do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no buffer de imagem decodificada, e de modo que o dispositivo suporta que o número dos um ou mais bits menos significativos quando adicionados a um número dos um ou mais bits mais significativos resulta em um total que é menor que um número de bits total para especificar o valor de contagem de ordem de imagem e especificar, no cabeçalho de fatia, os um ou mais bits mais significativos determinados do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser utilizada quando codificar pelo menos a parte da imagem atual em um fluxo de bits.
8. Dispositivo de decodificação de vídeo para decodificar dados de vídeo codificados, o dispositivo de decodificação de vídeo compreendendo: meios para receber um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência incluindo uma lista de imagens de referência de longo prazo que pode ser usado para decodificar uma parte de uma imagem atual; meios para receber um cabeçalho de fatia associado com a parte da imagem atual, o cabeçalho de fatia identificando uma ou mais imagens de referência de longo prazo requeridas para decodificar a parte da imagem atual; meios para recuperar a imagem de referência de longo prazo a partir de um buffer de imagem decodificada; meios para decodificar a parte da imagem atual usando a imagem de referência de longo prazo recuperada; em que onde a imagem de referência de longo prazo é incluída no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência, o dispositivo compreende adicionalmente meios para determinar a imagem de referência de longo prazo usando um índice sinalizado no cabeçalho de fatia; onde a imagem de referência de longo prazo não está incluída no conjunto de parâmetros de imagem ou no conjunto de parâmetros de sequência, o dispositivo compreende adicionalmente: meios para determinar, a partir do cabeçalho de fatia, um ou mais bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo prazo incluindo um número de bits determinado usado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem no cabeçalho de fatia; e quando o número determinado dos um ou mais bits menos significativos de quaisquer outros valores de contagem de ordem de imagem que identificam qualquer outra imagem armazenada em um buffer de imagem decodificada para o qual a imagem de referência de longo prazo é também armazenada são os mesmos que os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, o dispositivo compreende adicionalmente meios para determinar, a partir do cabeçalho de fatia, um ou mais bits mais significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo, dispositivo caracterizado pelo fato de que o número dos um ou mais bits mais significativos que é especificado no fluxo de bits é selecionado com base em uma análise de todas as imagens armazenadas no buffer de imagem decodificada de modo que os um ou mais bits mais significativos permitem encerrar ambiguidade do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no buffer de imagem decodificada, e de modo que o dispositivo suporta que o número dos um ou mais bits menos significativos quando adicionados a um número dos um ou mais bits mais significativos resulta em um total que é menor que um número de bits total para especificar o valor de contagem de ordem de imagem.
9. Dispositivo de decodificação de vídeo, de acordo com a reivindicação 8, caracterizado pelo fato de que os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo no fluxo de bits compreende um número binário não sinalizado possuindo um número de bits igual ao número de bits determinado utilizado para representar os um ou mais bits menos significativos do valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo.
10. Dispositivo de decodificação de vídeo, de acordo com a reivindicação 8, caracterizado que os um ou mais bits menos significativos determinados da contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser usada ao decodificar pelo menos uma parte da imagem atual que identifica unicamente o valor de contagem de ordem de imagem de qualquer outro valor de contagem de ordem de imagem especificado em um ou mais de um cabeçalho de fatia associado com pelo menos uma parte da imagem atual, um conjunto de parâmetros de imagem associado com a imagem atual e um conjunto de parâmetros de sequência associado com a imagem.
11. Dispositivo de decodificação de vídeo, de acordo com a reivindicação 8, caracterizado pelo fato de que o valor de contagem de ordem de imagem compreende um valor de contagem de ordem de imagem delta computado como a diferença entre um valor de contagem de ordem de imagem que identifica a imagem atual e o valor de contagem de ordem de imagem que identifica a imagem de referência de longo prazo a ser usada ao codificar pelo menos uma parte da imagem atual.
12. Dispositivo de decodificação de vídeo, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que compreende adicionalmente um dispositivo de exibição, em que a parte da imagem atual é exibida no dispositivo de exibição.
13. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 5 e 6.
BR112014013373-5A 2011-12-02 2012-11-30 Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo BR112014013373B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161566359P 2011-12-02 2011-12-02
US61/566,359 2011-12-02
US201261589295P 2012-01-20 2012-01-20
US61/589,295 2012-01-20
US201261624933P 2012-04-16 2012-04-16
US61/624,933 2012-04-16
US13/689,547 2012-11-29
US13/689,547 US9432665B2 (en) 2011-12-02 2012-11-29 Coding least significant bits of picture order count values identifying long-term reference pictures
PCT/US2012/067355 WO2013082464A1 (en) 2011-12-02 2012-11-30 Coding least signficant bits of picture order count values identifying long-term reference pictures

Publications (3)

Publication Number Publication Date
BR112014013373A2 BR112014013373A2 (pt) 2017-06-13
BR112014013373A8 BR112014013373A8 (pt) 2021-02-23
BR112014013373B1 true BR112014013373B1 (pt) 2022-06-07

Family

ID=48523989

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112014013373-5A BR112014013373B1 (pt) 2011-12-02 2012-11-30 Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo
BR112014013365-4A BR112014013365B1 (pt) 2011-12-02 2012-11-30 Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112014013365-4A BR112014013365B1 (pt) 2011-12-02 2012-11-30 Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo

Country Status (21)

Country Link
US (2) US9432665B2 (pt)
EP (2) EP2786569B1 (pt)
JP (4) JP2015503287A (pt)
KR (2) KR101632815B1 (pt)
CN (2) CN103999463B (pt)
AU (2) AU2012345720C1 (pt)
BR (2) BR112014013373B1 (pt)
CA (2) CA2856726C (pt)
DK (1) DK2786569T3 (pt)
ES (1) ES2715980T3 (pt)
HK (1) HK1197125A1 (pt)
HU (1) HUE042033T2 (pt)
IL (2) IL232590B (pt)
IN (2) IN2014CN03797A (pt)
MY (1) MY170982A (pt)
PH (1) PH12014501170B1 (pt)
RU (2) RU2573204C1 (pt)
SG (2) SG11201402107WA (pt)
SI (1) SI2786569T1 (pt)
WO (2) WO2013082464A1 (pt)
ZA (1) ZA201404863B (pt)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2749027T3 (pl) 2011-08-25 2020-10-19 Sun Patent Trust Sposoby i urządzenia do kodowania i dekodowania wideo z użyciem zaktualizowanego opisu bufora
BR112013020486B1 (pt) 2011-09-07 2022-07-19 Sun Patent Trust Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e de decodificação de imagem
WO2013042329A1 (ja) 2011-09-19 2013-03-28 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
PL3742735T3 (pl) 2011-10-19 2022-11-14 Sun Patent Trust Sposób kodowania obrazów, sposób dekodowania obrazów, urządzenie do kodowania obrazów, urządzenie do dekodowania obrazów, i urządzenie do kodowania i dekodowania obrazów
US9432665B2 (en) * 2011-12-02 2016-08-30 Qualcomm Incorporated Coding least significant bits of picture order count values identifying long-term reference pictures
US20130272398A1 (en) * 2012-01-25 2013-10-17 Sharp Laboratories Of America, Inc. Long term picture signaling
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
JPWO2013128832A1 (ja) 2012-03-02 2015-07-30 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置および画像符号化復号装置
EP2839659A1 (en) 2012-04-16 2015-02-25 Telefonaktiebolaget LM Ericsson (PUBL) Encoder, decoder and methods thereof for video encoding and decoding
US9332309B2 (en) 2012-06-08 2016-05-03 Apple Inc. Sync frame recovery in real time video transmission system
US9332255B2 (en) * 2012-06-28 2016-05-03 Qualcomm Incorporated Signaling long-term reference pictures for video coding
US20140079138A1 (en) * 2012-09-14 2014-03-20 Sony Corporation Simplifiication of pic_order_cnt_lsb calculation in hm8
US9491487B2 (en) 2012-09-25 2016-11-08 Apple Inc. Error resilient management of picture order count in predictive coding systems
US9264737B2 (en) 2012-10-01 2016-02-16 Apple Inc. Error resilient transmission of random access frames and global coding parameters
JP6209772B2 (ja) 2013-01-15 2017-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. シグナリングを用いたビデオデコーダ
US9300965B2 (en) * 2013-01-16 2016-03-29 Telefonaktiebolaget L M Ericsson (Publ) Decoder and encoder and methods for coding of a video sequence using least significant bits of picture order count
US9590952B2 (en) 2014-09-05 2017-03-07 Microsoft Technology Licensing, Llc Lossy data stream decoder
KR101610725B1 (ko) 2014-09-23 2016-04-08 삼성전자주식회사 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치
CN107735404A (zh) * 2014-11-21 2018-02-23 尼古拉·弗拉基米罗维奇·鲍文 多价配体‑脂质构建体
KR102302674B1 (ko) * 2015-05-13 2021-09-16 삼성전자주식회사 영상신호 제공장치 및 영상신호 제공방법
US10595025B2 (en) 2015-09-08 2020-03-17 Microsoft Technology Licensing, Llc Video coding
US10313685B2 (en) 2015-09-08 2019-06-04 Microsoft Technology Licensing, Llc Video coding
US10097836B2 (en) * 2015-09-28 2018-10-09 Samsung Electronics Co., Ltd. Method and device to mark a reference picture for video coding
WO2019124191A1 (ja) * 2017-12-18 2019-06-27 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
SG11202012937WA (en) 2018-06-26 2021-01-28 Huawei Tech Co Ltd High-level syntax designs for point cloud coding
EP3815380A4 (en) * 2018-07-01 2022-03-30 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING PICTURE ORDER COUNT VALUES FOR PICTURES CONTAINED IN ENCODED VIDEO
EP3818700A1 (en) 2018-07-17 2021-05-12 Huawei Technologies Co., Ltd. Prediction type signaling and temporal order signaling in point cloud coding (pcc)
WO2020112488A1 (en) * 2018-11-30 2020-06-04 Futurewei Technologies, Inc. Signaling of reference picture lists in video coding
CN113170203A (zh) * 2018-12-10 2021-07-23 夏普株式会社 用于在视频编码中发送信号通知参考图片的系统和方法
KR102669450B1 (ko) * 2018-12-11 2024-05-28 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102504741B1 (ko) * 2019-01-02 2023-03-02 엘지전자 주식회사 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
US11184607B2 (en) * 2019-06-13 2021-11-23 Qualcomm Incorporated Same picture order count (POC) numbering for scalability support
EP4011063A4 (en) * 2019-08-09 2022-11-02 Huawei Technologies Co., Ltd. EXTERNAL DECODING REFRESH TO VIDEO CODING
US20220353536A1 (en) * 2019-08-22 2022-11-03 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
WO2021061025A1 (en) * 2019-09-24 2021-04-01 Huawei Technologies Co., Ltd. An encoder, a decoder with picture order counter derivation
CA3152933A1 (en) * 2019-09-24 2021-04-29 Ye-Kui Wang Support of mixed irap and non-irap pictures within an access unit in multi-layer video bitstreams
US20230076537A1 (en) * 2019-12-19 2023-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Picture header prediction
US20220108488A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Angular mode and in-tree quantization in geometry point cloud compression
US20230156218A1 (en) * 2021-11-18 2023-05-18 Tencent America LLC Derived motion vector with single reference signaling

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491530B1 (ko) 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
RU2335860C2 (ru) 2002-10-01 2008-10-10 Томсон Лайсенсинг С.А. Неявное взвешивание опорных изображений в видеодекодере
EP1728393A2 (en) 2004-03-08 2006-12-06 Koninklijke Philips Electronics N.V. Video decoder with scalable compression and buffer for storing and retrieving reference frame data
US20050207490A1 (en) 2004-03-18 2005-09-22 Wang Jason N Stored picture index for AVC coding
US7873107B2 (en) 2004-07-30 2011-01-18 Broadcom Corporation Tertiary content addressable memory based motion estimator
FR2874292B1 (fr) 2004-08-10 2007-01-26 Thales Sa Procede de mise en forme de trames d'une sequence video
CN101065780A (zh) 2004-10-14 2007-10-31 诺基亚公司 视频编码中的参考图像管理
KR100714696B1 (ko) * 2005-06-24 2007-05-04 삼성전자주식회사 다계층 기반의 가중 예측을 이용한 비디오 코딩 방법 및장치
ZA200805337B (en) * 2006-01-09 2009-11-25 Thomson Licensing Method and apparatus for providing reduced resolution update mode for multiview video coding
BRPI0621340A2 (pt) * 2006-02-13 2011-12-06 Toshiba Kk Toshiba Corp método e aparelho e programa de codificação/decodificação de vìdeo
WO2008005574A2 (en) * 2006-07-06 2008-01-10 Thomson Licensing Method and apparatus for decoupling frame number and/or picture order count (poc) for multi-view video encoding and decoding
US20080165860A1 (en) 2006-08-31 2008-07-10 Zohair Sahraoui H.264 Data processing
CN102780883B (zh) 2006-10-13 2015-03-04 汤姆逊许可公司 用于包含多视点视频编码的参考图像管理的方法
RU2426227C2 (ru) * 2006-11-14 2011-08-10 Квэлкомм Инкорпорейтед Кодирование кодов переменной длины с эффективным использованием памяти
EP2106666B1 (en) * 2007-01-08 2019-06-12 Nokia Technologies Oy Improved inter-layer prediction for extended spatial scalability in video coding
JP5023739B2 (ja) 2007-02-28 2012-09-12 ソニー株式会社 画像情報符号化装置及び符号化方法
US8629893B2 (en) 2008-04-02 2014-01-14 Cisco Technology, Inc. Video switching without instantaneous decoder refresh-frames
JP5131101B2 (ja) * 2008-09-09 2013-01-30 富士通株式会社 動画像編集装置および動画像編集プログラム
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5332773B2 (ja) * 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
WO2012052968A1 (en) 2010-10-20 2012-04-26 Nokia Corporation Method and device for video coding and decoding
US9432665B2 (en) * 2011-12-02 2016-08-30 Qualcomm Incorporated Coding least significant bits of picture order count values identifying long-term reference pictures

Also Published As

Publication number Publication date
WO2013082464A1 (en) 2013-06-06
BR112014013365A2 (pt) 2017-06-13
HK1197125A1 (en) 2015-01-02
AU2012345720B2 (en) 2016-05-12
BR112014013365A8 (pt) 2021-02-23
AU2012345720A1 (en) 2014-06-12
CN103999463B (zh) 2017-10-31
JP5866458B2 (ja) 2016-02-17
JP2015503287A (ja) 2015-01-29
CN103999463A (zh) 2014-08-20
BR112014013373A2 (pt) 2017-06-13
JP2018129837A (ja) 2018-08-16
EP2786571B1 (en) 2019-05-01
HUE042033T2 (hu) 2019-06-28
PH12014501170A1 (en) 2014-09-08
JP6556894B2 (ja) 2019-08-07
EP2786571A1 (en) 2014-10-08
SG11201402109PA (en) 2014-09-26
RU2594760C2 (ru) 2016-08-20
KR20140100557A (ko) 2014-08-14
WO2013082471A1 (en) 2013-06-06
IL232590B (en) 2018-02-28
CN104025596A (zh) 2014-09-03
JP6661419B2 (ja) 2020-03-11
IN2014CN03797A (pt) 2015-10-16
AU2012345727A1 (en) 2014-06-12
CA2856548C (en) 2018-08-28
ES2715980T3 (es) 2019-06-07
RU2573204C1 (ru) 2016-01-20
AU2012345720C1 (en) 2016-11-24
JP2015500590A (ja) 2015-01-05
CA2856548A1 (en) 2013-06-06
US9648321B2 (en) 2017-05-09
DK2786569T3 (en) 2019-04-01
US20130142256A1 (en) 2013-06-06
IN2014CN03837A (pt) 2015-07-03
IL232590A0 (en) 2014-06-30
EP2786569A1 (en) 2014-10-08
CA2856726C (en) 2021-05-11
KR20140100555A (ko) 2014-08-14
EP2786569B1 (en) 2018-12-19
SI2786569T1 (sl) 2019-04-30
IL232591B (en) 2018-02-28
BR112014013365B1 (pt) 2022-06-14
IL232591A0 (en) 2014-06-30
BR112014013373A8 (pt) 2021-02-23
CA2856726A1 (en) 2013-06-06
PH12014501170B1 (en) 2014-09-08
KR101632815B1 (ko) 2016-06-22
AU2012345727B2 (en) 2016-05-12
ZA201404863B (en) 2017-01-25
US9432665B2 (en) 2016-08-30
MY170982A (en) 2019-09-23
SG11201402107WA (en) 2014-09-26
JP2016158251A (ja) 2016-09-01
RU2014126865A (ru) 2016-02-10
US20130142257A1 (en) 2013-06-06
KR101632816B1 (ko) 2016-07-01

Similar Documents

Publication Publication Date Title
BR112014013373B1 (pt) Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo
US20130195171A1 (en) Method of coding video and storing video content
ES2877048T3 (es) Diseño de valor de Poc para codificación de vídeo multicapa
ES2935979T3 (es) Señalización de índices para estructuras de listas de imágenes de referencia
BR112016022079B1 (pt) Método e aparelho para codificação e decodificação de dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc), ou uma extensão de um padrão hevc, assim como memória legível por computador
BR112015016256B1 (pt) Sinalização de contagem de ordem de imagens para relações de informação de temporização para temporização de vídeo em codificação de vídeo
BR112014006842B1 (pt) Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador
BR112015006839B1 (pt) Sinalizando identificadores de camada para pontos de operação em codificação de vídeo
BR112014001860B1 (pt) Método e aparelho para decodificar e codificar dados de vídeo, e memória legível por computador
BR112016011311B1 (pt) Design de valor de poc para codificação de vídeo de várias camadas
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
BR112016011818B1 (pt) Projeto de valor de poc para codificação de vídeo de multicamada
BR112016021476B1 (pt) Método e dispositivo para codificar 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
BR112015025643B1 (pt) Codificação de dados de vídeo para um conjunto de camada de saída

Legal Events

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

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 patent gazette]
B15K Others concerning applications: alteration of classification

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

Ipc: H04N 19/58 (2006.01), H04N 19/70 (2006.01)

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 30/11/2012, OBSERVADAS AS CONDICOES LEGAIS