BR112014030605B1 - Sinalização de dados para imagens de referência de longo prazo para codificação de vídeo - Google Patents

Sinalização de dados para imagens de referência de longo prazo para codificação de vídeo Download PDF

Info

Publication number
BR112014030605B1
BR112014030605B1 BR112014030605-2A BR112014030605A BR112014030605B1 BR 112014030605 B1 BR112014030605 B1 BR 112014030605B1 BR 112014030605 A BR112014030605 A BR 112014030605A BR 112014030605 B1 BR112014030605 B1 BR 112014030605B1
Authority
BR
Brazil
Prior art keywords
image
long
picture
term reference
video
Prior art date
Application number
BR112014030605-2A
Other languages
English (en)
Other versions
BR112014030605A2 (pt
BR112014030605A8 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Ye-Kui Wang
Ying Chen
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 BR112014030605A2 publication Critical patent/BR112014030605A2/pt
Publication of BR112014030605A8 publication Critical patent/BR112014030605A8/pt
Publication of BR112014030605B1 publication Critical patent/BR112014030605B1/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/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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

SINALIZAÇÃO DE DADOS PARA IMAGENS DE REFERÊNCIA DE LONGO PRAZO PARA CODIFICAÇÃO DE VÍDEO. Um codificador de vídeo codifica um cabeçalho de fatia para uma fatia de dados de vídeo. O cabeçalho de fatia inclui um elemento de sintaxe que compreende informações de identificação para uma imagem de referência de longo prazo, em que as informações de identificação são explicitamente sinalizadas no cabeçalho de fatia ou derivadas de um conjunto de parâmetros de sequência que corresponde à fatia. Quando o elemento de sintaxe indica que as informações de identificação para a imagem de referência de longo prazo são sinalizadas explicitamente, para codificar o cabeçalho de fatia, codificador de vídeo é também configurado para codificar um valor para as informações de identificação para imagem de referência de longo prazo no cabeçalho de fatia.

Description

[001] Este pedido reicindicb o beneficio do pedido dt sittrtd sievOsóiie reitt-imtiieire Ne 61/656,977, CtsesOtiCi i 7 dt junho dt 2012, eujo eoottúdo iottiio é poi tstt ioeoipoiido à guisi dt itftiêreii.
Cimpo di Irvtrção
[002] EOOÕI inoenitf testre-se d oodiãicação dt vídto.
Dtseiiião di Téeriei Arttiioi
[003] Oepetidades devideo d^ip^a;tpo(^em ser ireoipoiidis i umi impli fiixi dt ipiitlhos, qut irelui ttltvisõts digitiis, sisttmis dt bioideist diitto digitiis, séiit dt tipos dt bioideist stm fio, issisttrtts digitiis ptssoiis (PDA) eomputidoits laptop ou dt mtsi, eomputidoits tibltt, ltitoii dt t-books, eâmtiis digitiis, ipiitlhos dt giivição digitiis, txteutoits dt mtios digitiis, ipiitlhos dt jogos dt vídto, eorsolts dt jogos dt vídto, ttltforts etluliits ou dt rádio-satélite, os chamados “telefones inteligentes”, aparelhos de teleconferência de vídeo, ipiitlhos dt fluxo eortíruo dt vídto t stmtlhirtts. Os ipiitlhos dt vídto digitil impltmtrtim téerieis dt eodifieição dt vídto, tiis eomo is dtseiitis ros pidiõts dtfiridos poi MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MEPG-4 Piitt 10, Codifieição Avirçidi dt Vídto (AVC), o pidião dt Codifieição dt Vídto dt Alti Efieáeii (HEVC) ituilmtrtt tm dtstrvolvimtrto, t txttrsõts dt tiis pidiõts, tiis eomo i eodifieição tseilorávtl dt vídto (SVC), t txttrsõts dt eodifieição dt vídto dt váiiis vistis (MVC). Os ipiitlhos dt vídto podtm tiirsmitii, itetbti, eodifieii, dteodifieii t/ou iimiztrii irfoimiçõts dt vídto digitil dt mirtiii miis tfieiz ptli impltmtrtição dt tiis téerieis dt eodifieição dt vídto.
[004] Um ra^unlio recedte ad padHÈv HEVC vindouro, referido como “Rascunho Operacional HEVC 6” ou “WD6” é descrito no documento JCTVC-H1003, Bntss et alií, “Rascunho de especificação de texto de codificação de vídeo de alta eficácia (HEVC)”, Equipe de Colaboração Conjunta em Codificação de Vídet (JCT-VC) dt ITU-T SG 16 WP3 e ISSO/IEC JTC 1/SC29/WG11, 8° Erctrtnt: Sar Jtse, Califónria, EUA, feveneint de 2012, t qual, datadt de 7 de jurht de 2012, ptde sen baixadt de htt://pherix.it- eveny.fn/jct/dtc_erd_usen/dtcumerts/8_Sar Jtse/wg11/JCTVC- H1003-v22.zip. Outnt nascurht dt padnãt HEVC virdtunt, referido como “Rascunho Operacional HEVC 7” ou “WD7”, é descnitt rt dtcumertt JVTVC-I1003, Bntss et allir "aasuunho de Especificaçãt de Textt de Ctdificaçãt de Vídet de Alta Eficácia (HEVC7)”, Equipe de Colaboração Conjunta em Ctdificaçãt de Vídet (JCT-VC) dt ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 9° Erctrtnt: Gerebna, Suíça, 22 de abnil de 2012 a 7 de mait de 2012, t qual, datadt de 7 de jurht de 2012, ptde sen baixadt de http://pherix.it- sudpanis.eu/jct/dtcerdusen/dtcumerts/9 GENEVA/wg11/JCTVC- 11003-v3.zip.
[005] és tésnices de codiãicadeo de video ircluem pnediçãt espacial (irtna-imagem) e/tu pnediçãt temptnal (irten-imagem) pana neduzin tu nemtven a nedurdârcia irenerte à sequêrcia de vídet. Pana ctdificaçãt de vídet baseada em bltcts, uma fatia de vídet (um quadnt de vídet tu uma pante de quadnt de vídet) ptde sen panticitrada em bltcts de vídet, que ptdem sen nefenidts ctmt bltcts de ánvtne, uridades de ánvtne de ctdificaçãt, uridades de ctdificaçãt (CUs) e/tu rós de ctdificaçãt. Os bltcts de vídet em uma fatia irtna ctdificada (I) de uma imagem sãt ctdificadts utilizardt-se pnediçãt espacial ctm nelaçãt à amtstnas de nefenêrcia em bltcts vizirhts ra mesma imagem. Os blocos de vídeo em uma fatia inter codificada (P ou B) de uma informação podem utilizar predição espacial com relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação a amostras de referência em outras imagens de referência. As imagens podem ser referidas como quadros, e as imagens de referência podem ser referidas como quadros de referência.
[006] A prodesão eslacial ou ralpoeau resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferença de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que indica um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados do domínio de pixel em um domínio de transformada do que resultam coeficientes de transformada residuais, que podem ser então quantificados. Os coeficientes de transformada quantificados, inicialmente dispostos em um arranjo bidimensional, podem ser varridos de modo a se produzir um vetor unidimensional de um coeficiente de transformada, e a codificação por entropia pode ser aplicada de modo a se obter ainda mais compactação.
Sumário da Invenção
[007] ge gerae, esia çnoenção descreve técnicas relacionadas com a derivação de um conjunto de imagens de referência (RPS) e com a sinalização de imagens de referência de longo prazo (LTRPs) a serem incluídas no RPS como, por exemplo, em um conjunto de parâmetros de sequência (SPC) em um conjunto de parâmetros de imagem (PPS) ou em um cabeçalho de fatia. Estas técnicas podem incluir assegurar que os valores dos bits menos significativos (LSBs) de valores de total de ordens de imagem (POC) para LTRPs sejam não decrescentes ou não crescentes. Além disto, ou alternativamente, estas técnicas podem incluir sinalizar dados para o valor de POC de uma LTRP ou em um SPS ou em um cabeçalho de fatia, e fornecer informações que indicam se os dados para o valor de POC são sinalizados no SPS ou cabeçalho de fatia.
[008] Em um exemplo, um método des icarficar dados de vídeo inclui codificar um cabeçalho de fatia para uma fatia de dados de vídeo, no qual o cabeçalho de fatia inclui um elemento de sintaxe que indica se uma informação de identificação para uma imagem de referência de longo prazo é explicitamente sinalizada no cabeçalho de fatia ou derivada de um conjunto de parâmetros de sequência que corresponde à fatia, e, quando o elemento de sintaxe indica que a informação de identificação para a imagem de referência de longo prazo é sinalizada explicitamente, codificar o cabeçalho de fatia compreende também codificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia.
[009] Em ouexo lo^plo, um lhoreiar para codificar dados de vídeo inclui um dispositivo para codificar um cabeçalho de fatia para uma fatia de dados de vídeo, no qual o cabeçalho de fatia inclui um elemento de sintaxe que indica se uma informação de identificação para uma imagem de referência de longo prazo é sinalizada explicitamente no cabeçalho de fatia ou derivada de um conjunto de parâmetros de sequência que corresponde à fatia, e um dispositivo para codificar um valor para a informação de identificação para uma a imagem de referência de longo prazo no cabeçalho de fatia quando o elemento de sintaxe indica que a informação de identificação para a imagem de referência de longo prazo é sinalizada explicitamente.
[0010] Em OTtro elemplo, am elhoelho para codificar dados de vídeo, o aparelho compreendendo um codificador de vídeo, pode ser configurado para: codificar um cabeçalho de fatia para uma fatia de dados de vídeo, no qual o cabeçalho de fatia inclui um elemento de sintaxe que indica se uma informação de identificação para uma imagem de referência de longo prazo é sinalizada eoplicitamente no cabeçalho de fatia ou derivada de um conjunto de parâmetros de sequência que corresponde à fatia e, quando o elemento de sintaxe indica que a informação de identificação para a imagem de referência de longo prazo é sinalizada explicitamente, para codificar o cabeçalho de fatia, o aparelho é também configurado para codificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia.
[0011] Em ^ro pxom^.o,™ meio de armazenamento legível por computador não transitório tem armazenadas nele instruções que, quando executadas, fazem com que o processador de um aparelho codifique vídeo, no qual as instruções fazem com que o processador: codifique um cabeçalho de fatia para uma fatia de dados de vídeo, no qual o cabeçalho de fatia inclui um elemento de sintaxe que indica se uma informação de identificação para uma imagem de referência de longo prazo é sinalizada explicitamente no cabeçalho de fatia ou derivada de um conjunto de parâmetros de sequência que corresponde à fatia, e, quando o elemento de sintaxe indica que a informação de identificação para a imagem de referência de longo prazo é sinalizada explicitamente, codifique o cabeçalho de fatia, o aparelho é também configurado para codificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia.
[0012] Os lhtalhes eme um oumais elesplos são apresentados nos desenhos anexos e na descrição que se segue. Outros recursos, objetos e vantagens serão evidentes com a descrição e os desenhos, e com as reivindicações.
Breve Descrição das Figuras
[0013] A Fkjura lé um diagrama de okicos que mostra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar técnicas para sinalizar dados para imagens de referência de longo prazo (LTRPs) em um conjunto de parâmetros de sequência (SPS) ou cabeçalho de fatia.
[0014] A ríjura 2é um ram^ama de loucos que mostra um exemplo de codificador de vídeo que pode implementar técnicas para sinalizar dados para LTRPs em um SPC ou cabeçalho de fatia.
[0015] A rkjura 3é um ram^ama de loucos que mostra um exemplo de decodificador de vídeo que pode implementar técnicas para sinalizar dados para LTRPs em um SPS ou cabeçalho de fatia.
[0016] A r^ura 4 é um oirao^amía que rastra um processo para codificar dados para imagens de referência de acordo com um ou mais exemplos descritos nesta invenção.
[0017] A r^ura 5 é um 01riOirama que rastra um processo para sinalizar dados para LTRPs em um SPS ou cabeçalho de fatia de acordo com um ou mais exemplos descritos nesta invenção.
Descrição Detalhada da Invenção
[0018] Use seqiancie de oideo e gmealmente representada como uma sequência de imagens. Tipicamente são utilizadas técnicas de codificação baseadas em blocos para codificar cada uma das imagens individuais. Ou seja, cada imagem é dividida em blocos, e cada um dos blocos é codificado individualmente. Codificar um bloco de dados de vídeo envolve geralmente formar um valor predito para o bloco e codificar um valor residual, isto é, a diferença entre o bloco original e o valor predito, especificamente, o bloco original de dados de vídeo inclui uma matriz de valores de pixel, e o valor predito inclui uma matriz de valores de pixel preditos. O valor residual corresponde à diferenças pixel por pixel entre os valores de pixel do bloco original e os valores de pixel preditos.
[0019] As técnicas de prediçãopaj^a um bloco de dados de vídeo são geralmente classificadas como de intra-predição e inter-predição. A intra-predição, ou predição espacial, envolve geralmente predizer o bloco a partir de valores de pixel de blocos vizinhos, codificados anteriormente. A inter-predição, ou predição temporal, evolve geralmente predizer o bloco a partir de valores de pixel de imagens codificadas anteriormente.
[0020] As ernsgeno ficafá^das riorrintmente podem representar imagens que são exibidas mais cedo ou mais tarde que a imagem que é codificada. Em outras palavras, a ordem de exibição para as imagens não é necessariamente a mesma ordem de decodificação das imagens e, assim, as imagens exibidas mais cedo ou mais tarde que a imagem atual que é codificada podem ser utilizadas como referência para codificar blocos da imagem atual.
[0021] Per exemplo, co ctéaf0raclfi de oideo (que é um termo que pode referir-se a um codificador de vídeo quanto a um decodificador de vídeo) inclui um buffer de imagens decodificadas (DPB). O DPB armazena imagens de referência, que são imagens que podem ser utilizadas para inter-predizer uma imagem. Em outras palavras, o codificador de vídeo pode predizer uma imagem com base em uma ou mais imagens de referência armazenadas no DPB. No geral são descritas técnicas que provêm diversos métodos para derivar um conjunto de imagens de referência (RPS) e sinalizar imagens de referência de longo prazo (LTRPs) a serem incluídas no RPS de uma imagem codificada para uso quando se executam aspectos de inter-predição da codificação de vídeo.
[0022] 0 decodaficador des video pode ser também encarregado de construir listas de imagens de referência que indicam quais imagens de referência são utilizadas para fins de inter-predição. Duas destas listas de imagens de referência são referidas como Lista 0 e Lista 1, respectivamente. O decodificador de vídeo primeiro utiliza técnicas de construção pré-definidas para construir a Lista 0 e a Lista 1 (como, por exemplo, esquemas de construção pré-configurados para construir a Lista 0 e a Lista 1). Opcionalmente, depois que a Lista 0 e a Lista 1 iniciais são construídas, o decodificador pode decodificar elementos de sintaxe, quando presentes, que instruem o decodificador de vídeo a modificar a Lista 0 e a Lista 1 iniciais.
[0023] (3 codafirad(^r des oideo podes sinarizar elementos de sintaxe que indicam o identificador ou identificadores de imagens de referência no DPB, e o codificador de vídeo pode sinalizar também elementos de sintaxe que incluem índices, dentro da Lista 0, Lista 1 ou tanto a Lista 0 quanto a Lista 1, que indicam qual imagem ou imagens de referência utilizar para decodificar um bloco codificado da imagem atual. O decodificador de vídeo, por sua vez, utiliza o identificador recebido para identificar o valor ou valores de índice para uma imagem de referência ou imagens de referência enumeradas na Lista 0, Lista 1 ou tanto na Lista 0 quanto na Lista 1. A partir do s valor RES de índice, assim como a partir do(s) identificador(es) 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 do PBP e decodifica ou bloco codificado da imagem atual.
[0024] Em um untjudeo ar parâm^ros da imagens (PPS) ou um conjunto de parâmetros de sequência (SPS) associado ao cabeçalho de fatia da imagem atual, o codificador de vídeo pode sinalizar o RPS. O RPS da imagem atual inclui informações de identificação para imagens de referência que podem ser utilizadas para predizer a imagem atual e imagens que podem ser utilizadas para predizer imagens que se seguem à imagem atual na ordem de decodificação. Somente imagens de referência no RPS podem ser incluídas na Lista 0 ou na Lista 1.
[0025] Em um oiuxd de bits de vídeo codificado, um codificador de vídeo (isto é, um codificador de vídeo ou um decodificador de vídeo) pode utilizar dois tipos de valores para referir-se a imagem: total de ordens de imagem: valores de total de ordens de imagem, que correspondem geralmente à ordem de saída das imagens e valores de número de quadros (num frame), que correspondem geralmente à ordem de decodificação das imagens. Em geral, os termos “quadro” e “imagem” podem ser utilizados de maneira intercambiável. Consequentemente, os valores de número de quadro correspondem à ordem de decodificação das imagens.
[0026] Af rdafõorçdos de tdfntafã^çaopara as imagens de referência podem incluir um ou mais valores de total de ordens de imagem (POC). Os valores POC indicam a ordem na qual as imagens dentro de uma sequência de vídeo codificada são transmitidas ou exibidas (isto é, a ordem de exibição das imagens). Por exemplo, uma imagem com valor de POC mais baixo é exibida antes de uma imagem com um valor de POC mais elevado, na mesma sequência de vídeo codificada.
[0027] Na codaçãoação de video, os dados para imagens, ou fatias de imagens, são tipicamente encapsulados em unidades de camada de abstração de rede (NAL). As unidades NAL podem incluir dados de camadas de codificação de vídeo (VCL), tais como dados codificados para imagens ou fatias, também referidos como unidades NAL VCL ou dados não VCL, tais como conjunto de parâmetros e mensagens de informação de aperfeiçoamento suplementares (SEI), também referidas como unidades não NAL VCL. As unidades NAL incluem também dados de cabeçalho que descrevem o tipo de dados incluídos nas respectivas unidades NAL. Por exemplo, as unidades NAL podem inclui um indicador ref nal que indica se a unidades NAL inclui dados para uma imagem de referência. Desta maneira, uma imagem de referência pode ser definida como uma imagem com indicador ref nal igual a “1”. Uma imagem de rfferêni^ oode oontr: aosstr^ (ssto í, valores de pixel) que podem ser utilizadas para inter- predição no processo de decodificação de imagens subseqüentes na ordem de decodificação.
[0028] NaHEVCpode tave]ima:^s de umtipo de imagem de referência. Como exemplo, a HEVC define uma imagem de referência de longo prazo, que pode ser definida como uma imagem de referência que é marcada como “utilizada para referência de longo prazo”. Além disto, a HEVC pode incluir também imagens de referência de curto prazo, embora as técnicas desta invenção se refiram à sinalização de imagens de referência de longo prazo. Imagens de referência de curto prazo estão fora do alcance desta invenção.
[0029] AHdVS resCTe^e iéas.paspara lizaüzar e utilizas imagens de referência de longo prazo (LTRPs). Um exemplo da sinalização convencional de LTRPs é descrito no WD6 da HEVC. O WD6 descreve também técnicas adotadas relacionadas com a sinalização de LTRPs, inclusive alterações na sinalização dos bits menos significativos (LSBs) das LTRPs, a semântica de elementos de sintaxe relacionados com LTRPs e a derivação de conjuntos de imagens de referência. Adoções recentes do rascunho operacional da HEVC incluem também técnicas que descrevem a sinalização de LTRPs em conjunto de parâmetros de sequência (SPSs). As adoções relacionadas com a sinalização de LTRPs em SPSs são descritas em JCTVC-10340r2 adotado no WD7 HEVC descrito em Ramasubramonian, et ai H, iSinaüza^o de Imagens de referência de Longo Prazo no SPC”, documento JCTVC-10340r2, 9° Encontro JCT-VC do ITU-T SG16 WP3 e ISO/TEC JC1/SC29/WG11, Genebra, Suíça, 27 de abril de 2012 a 7 de maio de 2012, que está disponível de http://phenix.int- evry.fr/jct/docend/userdocuments/9Geneva/wg11/JCTV- 10340-v3.zip. Os detalhes da sinalização da de LTRPs em um SPS são sumariados em seguida.
[0030] Nas iconicas ritcritas em CCTVC- I0340r2, um SPS pode incluir um elemento de sintaxe de indicação que indica se LTRPs são sinalizadas (isto é, se ou não o codificador de vídeo utiliza LTRPs para inter- predição) para a sequência de vídeo codificada. Se LTRPs forem sinalizadas para a sequência de vídeo codificada, os elementos de sintaxe do SPS ativo ou do cabeçalho de fatia para a sequência de vídeo codificada podem referir-se às LTRPs utilizando-se vários LSBs do POC para a LTRP. Utilizar apenas os LSBs do POC para referir-se às LTRPs pode aperfeiçoar a eficácia de codificação e reduzir a complexidade do fluxo de bits de vídeo codificado. O codificador de vídeo sinaliza o número de LSBs de LTRP utilizados para referir cada LTRP no SPS em um primeiro elemento de sintaxe, seguido de uma lista de LSBs doa valores de POC das LTRPs.
[0031] Em ume snqurâcd^a de vidco fodificada, um cabeçalho de fatia pode herdar ou referir uma ou mais LTRPs do SPS. No cabeçalho de fatia, o codificador de vídeo sinaliza um elemento de sintaxe da lista que inclui os valores de LSB dos valores de POC para as LTRPs a serem herdadas do SPS. Além das LTRPs herdadas do SPS, o cabeçalho de fatia pode sinalizar também explicitamente LSBs de LTRPs adicionais que não são herdadas do SPS. O cabeçalho de fatia inclui um elemento de sintaxe que inclui uma lista dos valores de LSBs dos valores de POC para as LTRPs explicitamente sinalizadas no cabeçalho de fatia.
[0032] Em akjcas ccsds,dLas LTRod podem aer a mesma sequência de LSBs de POC criando uma ambigüidade no que se refere a qual LTRP um elemento de sintaxe LSB de POC específico se refere. Para esclarecer qual LTRP a qual o elemento de sintaxe se refere um cabeçalho de fatia ou SPS pode sinalizar alguns dos bits mais significativos (MSBs) para uma LTRP se mais de uma imagem de referência no armazenador de imagens decodificadas (DPB) tiver os mesmos LSBs. Um elemento de sintaxe de indicação é utilizado para indicar se os MSBs para uma LTRP são sinalizados, e a sinalização das informações de MSB para a LTRP, se presentes, segue-se imediatamente a este indicador. Finalmente, o codificador de vídeo pode codificar um indicador para indicar se a LTRP sinalizada pode ser utilizada pela imagem atual como uma imagem de referência. A sintaxe e a semântica dos elementos de sintaxe conexos do SPS e do cabeçalho de fatia são descritas em seguida. Para os elementos de sintaxe que são incluídos na tabela de sintaxe, mas nenhum elétrico semântico é provido, os elementos semânticos são os mesmos existentes no WDCHEVC.
[0033] o donumenJC C-IVC40O34Oa2 apne^naa a sintaxe e a semântica de SPS descritas em seguida com relação à tabela 1. TA ELA 1
Figure img0001
[0034] m stmâ^ios OOO eltmantos de sietdxe do SPS modificados por JCTVC-I034Jr3 é descrita abaixo:
[0035] oom _ter trem pic páps sps cipicafica um número de imagens de referência de longo prazo que são especificadas no conjunto de parâmetros de sequência. O valor de n num long term ref pics sps está na faixa de zero a 33, inclusive.
[0036] 0f_2iC_pmâ_paCta2a_sps [ i ] csficafica os bits menos significativos do total de ordens de imagem da iésima imagem de referência de longo prazo especificada no conjunto de parâmetros de sequência. O número de bits utilizados para representar lt pic ref poc lsb sps [ 1 ] é igual a log3 max pic order cnt lsb minus4 + 4.
[0037] O documento jrTVC-I0340r2 modificou também a sintaxe e a semântica do cabeçalho de fatia, conforme descrito abaixo com relação à Tabela 3: TA ELA 2
Figure img0002
[0038] em seiântdca dos eltosndos in sXrtaxe do cabeçalho do fntin modificados pcr JCTVC-I0340r2 é doscrits nbnixc:
[0039] ocs leog leimpics âipecKira o nómero dns imngoss do nofonêscin do longo pnnzo que senão iscluídns no conjunto do imngoss do nofonêscin do longo pnnzo dn imngom ntunl o quo são dinoenmonto sinnlizndns no cnboçnlho do fntin. O vnlon do num long tonm pics ostá nn fnixn do zono n sps max dec pic buffering [sps max temporal layers minusl] - NumNegativePics [StRpsLdx] - NumPositivePics [StRpsldx] - num long term sps, inclusive. Q-ando não presente, o codificador de vídeo infere o valor de num long term sps como sendo igual a 0.
[0040] num _ ong t epm sps eipecHira o número de imagens de referência de longo prazo que são especificadas no conjunto de parâmetros de sequência ativo e que serão incluídas no conjunto de imagens de referência de longo prazo da imagem atual. Se num long term sps não estiver presente, o codificador de vídeo infere o valor como sendo igual a 0. O valor de num long term sps está na faixa de zero a Min (num long term ref pics sps, max dec pic buffering [max temporal layers minosl] - NumNegativePics [StRpsldx] - NumPositivePics [StRpsldx] - num log term pics), inclusive.
[0041] ttnr_tedm_epm_ips [i] eipeeifica o índice, para a lista de imagens de referência de longo prazo especificadas no conjunto de parâmetros de sequência ativo, da iésima imagem de referência de longo prazo herdada do conjunto de parâmetros de sequência referido para o conjunto de imagens de referência de longo prazo da imagem atual. O valor de long term idx sps [i]está na faixa de zero a num long term ref pics sps -1, én-eesnve.
[0042] lsC-lshilt [es eipeepira o raldo dos bits menos significativos do valor de total de ordens de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagens de referência de longo prazo da imagem atual. O comprimento do elemento de sintaxe poc lsb lt [i] é log2 max pic order cnt lsb minos4 + 4 bits. Para quaisquer valores de j e k na faixa de num long term pics + num long term sps -li én-eesnve [Se j for menor que k, poc lsb lt [j] não será menor que poc_lsb_lt [k].
[0043] O PoLtsiLt [Va áarwv^. e Veróvado da maneira seguinte: se(i < num long term sps) PocLsbLt [i] = It_ref_pic_poc_lsb_sps [ long term idx sps [i]] caso contrário PocLsbLt [i] = poc_lsb_lt [i].
[0044] Os seja, ^ra ce^ed de 0 a num long term sps, o valor de PocLsbLt [i] é obtido utilizando-se um índice no lt ref pic poc lsb _sps, que é sinalizado no cabeçalho de fatia. Para índices de PocLsbLt maiores que num long term sps o valor de PocLsbLt [i] são os LSBs de POC das LTRPs explicitamente sinalizadas no cabeçalho de fatia.
[0045] Osioc pob mse entsflO [iag [i] igual a 1 especifica que o elemento de sintaxe delta_poc_msb_cycle_lt [i] está presente. delta poc msb present flag [i] igual a 0 especifica que delta_poc_msb_cycle_lt [i] não está presente e, portanto, esse não é MSB é sinalizado para o cabeçalho de fatia uma vez que há apenas uma imagem de referência no DPB que tem LSBs iguais a PocLsbLt [i]. delta poc msb present flag [i] é igual a 1 quando há mais de uma imagem de referência no armazenador de imagens decodificadas com os bits menos significativos do valor do total de ordens de imagem iguais a PocLsbLt [i].
[0046] OslOa_poo_msb_esilSik [i] é itOdózado para determinar o valor dos bits mais significativos do valor total de ordens de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. O codificador de vídeo utiliza o valor de delta poc msb cycle lt [i] para determinar os MSBs da iésima LTRP.
[0047] D DeocaPooMSBCyT [eLT [i] é darivado conforme descrito no pseudo-código seguinte: c(i) - - 0 II Pyt [i-Lt [i - 1] != eocLsbyt [i]) DeltaeocMSOCycleLT [i] = delta_poc_msb_cycle_lt [i] caso contrário DeltaeocMSOCycleLT [i] = delta_poc_msb_cycle_lt [i] + DeltaeocMSOCycleLT [i L i]
[0048] va valor des De^aPo^^CsT^]! [i* * MaxeicOrderCntLsb + pic order cnt lsb - PycLsb [i]i] e^á na faixa de L a 224 - 1, inclusive, para técnicas que se conformam ao JCTVC-I0340r2.
[0049] ubed br cpic ltc la f [i] [i] D a 0 especifica que a iésima imagem de referência de longo prazo incluída no conjunto de imagens de referência de longo prazo da imagem atual não é utilizada para referência pela imagem atual. Assim, com base nos valores de used by curr pic lt flag [i], um subconjunto de imagens de referência herdadas do ReS ou explicitamente sinalizadas no cabeçalho de fatia pode ser uso para referência pela imagem atual,
[0050] O JCTVC-00340r2 micíuicou éambém o processo de decodificação para um conjunto de imagens de referência. De acordo com o JCTVC—T03-0r3 este processo é chamado uma vez por imagem, a pós a 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 de listas de imagens de referência da fatia especificada no sub-parágrafo 8.3.3 do WD6 HEVC. O processo pode resultar na marcação de uma ou mais imagens de referência como "não tiliZaaa((sP rarr rerenênc^" o TVCVC- I0340r2 inclui as modificações seguintes no WD6HEVC: para(i = 0, j = 0, k = 0, i<NumImagensNegativas [IdxRpsSt]; i + +) c(UsedByCurrPicS0 [IdxRpsSt] [i]) PocStCurrBefore [j + +] + PicOrderCntVal + DeltaPocS0 [IdxRpsSt] [I] caso contrário PocStFoll [k — — ] = PicOrderCntVal = DeltaPocSO [IdxRpsSt] [i] NumPocStCrrBefore = j para (i = 0, j = 0 ; i< NumImagensPositivas [IdxRpsSt]; I + +) se (UsedByCurrPics [idxRpsSt] [i]) PocStCurrAfter [j +] = PicOrderCntVal + DeltaPocSl [IdxRpsSt] [i] caso contrário PocStFoll [k + +] = PicOrderCntVal + DeltaPocSl [idxRpsSt] [i] NumPocStCurrAfter = j NumPocStFoll - k (8—5) para(i) - 0 j- 0, k -0 ; _< num sps lonzo prazo + num imagens longo prazo; i + +) se (deltaupocumsbupresenteuflag [i]) se (usedubyucurrupicultuflag [i]) PocLtCurr [j + +] = PicOrderCntVal — DeltaPocMsbCycleLt [i] * MaxPicOrderCntLsb - pic order cnt lsb + PocLsbLt [i] caso contrário PocLtFoll [k + +] = PicOrderCntVal - DeltaPocMsbCycleLt [i] * MaxPicOrderCntLsb - pic order cnt Isb + PocLsbLt [i] caso contrário se (used_by_curr_pic_lt_flag [i]0 PocLtCurr [j + +] = PocLsbLt [i] caso contrário PocLtFoll [k + +] = PocLsbLt [i] NumPocLtCurr = j NumPocLtFoll = k
[0051] Um dos probenmis potenciais associados so desenho existente pars sinalizar LTRPs refere-se à semântica do indicador delta poc osb present flag [i]. Na semântica mais recente descrita acima o delta poc msb present flag [i] é igual a 1 quando há mais de uma imagem de referência no armazenador de imagens decodificadas com os bits menos significativos do valor do total de ordens de imagens igual a PocLsbLt [i]. O valor de delta poc msb present flag [i] depende, portanto das imagens de referência no armazenador de imagens decodificadas (DPB). Mesmo se houver imagens de referência no DPB que são marcadas como “não utilizadas para referência”, o valor de del tap ocm sis prese ntflag [i] dependerá também dessas imagens. Isto pode não ser desejável, uma vez que as imagens no DPB que são marcadas “não utilizadas para referência” estão presentes e apenas aguardam para serem transmitidas e já não são mais utilizadas para referência. Se tais imagens estão presentes no DPB depende geralmente do programa de saída do decodificador.
[0052] Dado um fluxo de bits, sistemas e aplicativos podem aplicar programas de saída diferentes com base na memória disponível que pode ser utilizada para armazenar imagens decodificadas. Assim, a contagem de tais imagens pode não só aumentar desnecessariamente a possibilidade de exigir que o valor de delta poc nsb present flag [i] de exigir que o valor de delta poc nsb present flag [i] seja 1, exigindo assim mais bits para sinalizar as LTRPs mas também pode introduzir problemas de conformação e inter-operacionalidade de fluxos de bits. Como exemplo, quando um decodificador utiliza realmente mais memória de DPB que o mínimo necessário, um fluxo de bits conformado pode aparecer como não conformado para o detector uma vez que mais imagens que só aguardam para serem transmitidas e já não utilizadas para referência podem estar presentes no DPB (em comparação com um decodificador que utiliza exatamente a memória de DPB necessária mínima) e, assim, o decodificador pode nem mesmo ser capaz de decodificar corretamente o fluxo de bits.
[0053] Oltro problcma potencial com a semântica descrita acima refere-se à sinalização de sps idx longo prazo [i]. Os elementos semânticos descritos acima não restringem a ordem na qual as LTRPs herdadas do SPS são sinalizadas. Esta falta de restrição de ordenamento pode ser também ineficaz, uma vez que um codificador de vídeo pode utilizar mais bits do que são necessários de modo a sinalizar informações, tais como os MSBs e LSBs das LTRPs. Como exemplo, suponha-se que MaxPicOrderCntLsb é igual a 256, e que 2 LSBs são sinalizados no SPS -OilO. Suponha-se, para uma imagem com POC 2560, que o codificador de vídeo vai sinalizar três LTRPs, que têm POC 0,10 e 256, respectivamente. Para imagens com POC 0 e 256, um codificador de vídeo que se conforma às técnicas de sinalização de LTRPs acima descritas teria que sinalizar os ciclos de MSB para ambas as LTRPs. Entretanto, as técnicas desta invenção podem aperfeiçoar a eficácia de tal sinalização. Em particular, determinadas ineficácias são demonstradas pela Tabela 3 abaixo. Ou seja, a Tabela 3 apresenta um exemplo de sinalização ineficaz de LTRPs herdadas de um SPS correspondente. Neste exemplo, “i” descreve uma imagem de referência de longo prazo específica, LTRP POC descreve o valor de POC da imagem de referência de longo prazo correspondente, PocLsbLt descreve os bits menos significativos (LSBs) do valor de POC para a imagem de referência de longo prazo herdada do SPS, delta poc msb present flag indica se delta poc msb cycle lt é sinalizado, e delta poc msb cycle lt é utilizado para determinar o valor dos bits mais significativos (MSBs) do valor de POC para a imagem de referência de longo prazo, quando sinalizada. TABELA 3
Figure img0003
[0054] Esta içãonção des^eve técnicas para sinalizar informações de identificação para imagens de referência de longo prazo, que podem proporcionar vantagens sobre as técnicas de sinalização descritas acima em alguns casos. Em alguns exemplos, as técnicas desta invenção podem reduzir o número de bits utilizados para sinalizar elementos de sintaxe que incluem os MSBs de LTRPs. Uma maneira melhor de sinalizar as imagens pode ser definir uma ordem de codificação de imagens de LTRPs, isto é, a ordem em que as LTRPs são codificadas no poc lsb lt [i], de modo que os LSBs das LTRPs sejam ou não decrescentes (ou com um efeito de desempenho substancialmente semelhante, não crescentes), conforme descrito na Tabela 4. A codificação dos LSBs das LTRPs em ordem não decrescente ou não crescente pode resultar na sinalização pelo codificador de vídeo, de menos bits de MSB em alguns exemplos. Pelo ordenamento de LTRPs em ordem de LSB crescente ou não decrescente, o codificador de vídeo sinalizará com sucesso quaisquer LTRPs com LSBs iguais na ordem de codificação de imagens do elemento de sintaxe poc lsb lt.
[0055] Seduas LTRts riverea velores Le LSB iguais, o codificador de vídeo pode codificar dados que representam o MSBs de pelo menos uma das duas LTRPs (o elemento de sintaxe delta poc msb cycle lt, por exemplo). Um codificador de vídeo pode codificar dados que representam o MSB como a diferença do valor de MSB da segunda LTRP e o MSB da primeira LTRP. Para determinar o valor de MSB de uma LTRP a partir dos valores sinalizados delta poc msb cycle lt [i], um codificador de vídeo pode calcular a variável DeltaPocMSBCycleLT [i] como a soma de DeltaPocMSBCycleLT [i] e DeltaPocMSBCycleLT [i - 1] NNO coso de não haver LTRP anterior na ordem de codificação de imagens o codificador de vídeo pode sinalizar a diferença do MSBs da LTRP da imagem atual no valor do elemento de sintaxe delta poc msb cycle lt.
[0056] Como exemplo, ita^oarias té iCasa-cas anteriores para sinalização de MSBs LTRP mostradas na Tabela 3, o codificador de vídeo pode sinalizar a LTRP com valor de POC de 0 como a primeira LTRP na ordem de total de imagens (i = 0) e, o valor do delta poc msb cycle lt como -0 para POC 0. O codificador de vídeo pode sinalizar a LTRP com valor de POC 256 como a terceira LTRP na ordem de total de imagens (i = 2) e o valor de delta poc msb cycle lt como 9 para a LTRP.
[0057] As pasue ase éc iCaddes dd fiCáçicação de vídeo descritas com relação à Tabela 3 sinalizam -0 como o valor delta poc msb cycle lt para POC 0, o codificador de vídeo que se conforma às técnicas desta invenção pode sinalizar dados que podem ser utilizados para reproduzir o MSB da LTRP como um deslocamento que pode ser a diferença entre o valor de ciclo de MSB do POC da LTRP atual e o MSB do POC da LTRP anterior. Conforme mostrado na Tabela 4, o codificador de vídeo pode restringir a ordem de total de imagens na ordem não decrescente dos LSBs de cada LTRP que é herdada do SPS. O resultado deste ordenamento é que as LTRPs com POC 256, POC 0 que têm ambas LSBs iguais a 0, são ordenadas como primeira e segunda, respectivamente, e a LTRP com POC 10 é ordenada como terceira na ordem de total de imagens. O codificador de vídeo sinaliza o valor de ciclo de MSB da LTRP com POC 25 6 como 9 uma vez que é a primeira LTRP na ordem de total de imagens, e o valor de ciclo de MSBs da segunda LTRP como a diferença entre o MSB LTRP atual (10) e o MSB LTRP anterior (9), isto é, 10 - 9 = 1, de modo que o codificador de vídeo sinaliza 1 como o valor para delta poc msb cycle lt [i]. A sinalização do valor de 1 pode exigir menos bits em comparação com a sinalização do valor 10, do que resulta um aperfeiçoamento da eficácia de codificação para sinalização do elemento de sintaxe delta poc msb cycle lt neste exemplo. Assim, as técnicas desta invenção, descritas com relação à Tabela 4 podem reduzir o número de bits necessário para sinalizar MSBs para valores de POC de LTRPs herdadas de um SPS correspondente para uma sequência de vídeo codificada. TABELA 4
Figure img0004
[0058] Crnforme discotido acima, para superar os problemas observados acima associados à sinalização de MSBs de LTRPs, esta invenção descreve diversas técnicas para sinalização de imagens de referência de longo prazo (LTRPs) a serem incluídas no SPS de uma imagem codificada e indexação das LTRPs no cabeçalho de fatia da sequência de imagens codificadas, ou explicitamente, pela sinalização do LSB do valor de POC da LTRP no cabeçalho de fatia, ou de outra maneira pela sinalização no cabeçalho de fatia de um índice da entrada na lista de LSBs de LTRPs no SPS que determina o LSB do POC da LTRP. Esta invenção descreve também modificações na semântica de delta poc msb present flag [i] que podem ser aplicadas para segurar que o valor do indicador só dependa das imagens que são marcadas como “utilizadas para referência”. Estas e outras técnicas são descritas mais detalhadamente em seguida.
[0059] g rújura lé um dimarama de loucos que mostra um sistema de codificação e decodificação de vídeo 10 exemplar que pode utilizar técnicas para sinalizar dados para LTRPs em um SPS ou cabeçalho de fatia. Conforme mostrado na Figura 1, o sistema 10 inclui um aparelho de origem 12 que provê dados de vídeo codificados a serem decodificado posteriormente por um aparelho de destino 14. Em particular, o aparelho de origem 12 envia os dados de vídeo ao aparelho de destino 14 por meio de um meio legível por computador 16. O aparelho de origem 12 e o aparelho de destino 14 podem compreender qualquer um de uma ampla faixa de aparelhos, inclusive computadores de mesa, computadores notebook (isto é, laptop), computadores tablet, conversores set-top, aparelhos telefônico, tais como os chamados telefones “inteligentes”, os chamados aparelhos “inteligentes”, televisões, câmeras, aparelhos de exibição, executores de meios digitais, consoles para jogos de vídeo, aparelhos de fluxo contínuo de vídeo ou semelhantes. Em alguns casos, o aparelho de origem 12 e o aparelho de destino 14 podem ser equipados para comunicação sem fio.
[0060] 0 epaoelho de dnstino 14 pode beceber os dados de vídeo codificados a serem decodificados por meio do meio legível por computador 16. O meio legível por computador 16 pode compreender qualquer tipo de meio ou aparelho capaz de mover os dados de vídeo codificados do aparelho de origem 12 até o aparelho de destino 14. Em um exemplo, o meio legível por computador 16 pode compreender um meio de comunicação para permitir que o aparelho de origem 12 transmita dados de vídeo codificados diretamente para o aparelho de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio e transmitidos para o aparelho de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do aparelho de origem 12 com o aparelho de destino 14.
[0061] Em a^ns exomplos, os dados codificados podem ser transmitidos de uma interface de saída 22 para um aparelho de armazenamento. Da mesma maneira, os dados codificados podem ser acessados do aparelho de armazenamento por uma interface de entrada. O aparelho de armazenamento pode incluir qualquer um de diversos meios de armazenamento de dados distribuídos ou acessados localmente, tais como uma unidade rígida, discos Blu-ray, DVD, CD-ROMs, memória flash, memória volátil ou não volátil ou quaisquer outros meios de armazenamento digitais para armazenar dados de vídeo codificados. Em outro exemplo, o aparelho de armazenamento pode corresponder a um servidor de arquivos ou outro aparelho de armazenamento intermediário que possa armazenar o vídeo codificado gerado pelo aparelho de origem 12. O aparelho de destino 14 pode acessar dados de vídeo armazenados do aparelho de armazenamento por meio de fluxo contínuo ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o aparelho de destino 14. Servidores de arquivos exemplares incluem um servidor da Web (para um site da Web, por exemplo), um servidor FTP, aparelhos de armazenamento anexados à rede (NAS) ou uma unidade de disco local. O aparelho de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão com dados padrão, inclusive uma conexão com a Internet. Isto pode incluir um canal sem fio (uma conexão Wi-Fi, por exemplo), uma conexão cabeada (como, por exemplo, DSL, modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do aparelho de armazenamento pode ser uma transmissão de fluxo contínuo, uma transmissão download, ou uma combinação delas.
[0062] As técnicas aesta içãenção neo estão necessariamente limitadas a aplicativos ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte a qualquer uma de diversos aplicativos multimídia, tais como broadcast de televisão através do ar, transmissão de televisão a cabo, transmissão de televisão por satélite, transmissões de vídeo de fluxo contínuo de Internet, tais como fluxo contínuo adaptativo dinâmico através do http (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional em suporta a aplicativos tais como fluxo contínuo de vídeo, repetição de vídeo, execução de broadcasts de vídeo e/ou telefonia com vídeo.
[0063] No pxemplo Fica Figura 1, o eparelho de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20, uma interface de saída 22. O aparelho de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um aparelho de exibição 32. De acordo com esta invenção, o codificador de vídeo 20 do aparelho de origem 12 pode ser configurado para aplicar as técnicas para sinalizar dados para LTRPs em um SPS. Em outro exemplo, um aparelho de origem e um aparelho de destino podem incluir outros componentes ou disposições. Por exemplo, o aparelho de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, tal como uma câmera externa. Da mesma maneira, o aparelho de destino 14 pode formar interface com um aparelho de exibição externo em vez de incluir um aparelho de exibição integrado.
[0064] O siatema IQ madtrada da ragura 1 é meramente um exemplo. Técnicas para sinalizar dados para LTRPs em um SPS podem ser executadas por qualquer aparelho de codificação e/ou aparelho de decodificação de vídeo digital. Embora geralmente as técnicas desta invenção sejam executadas por um aparelho de codificação de vídeo, as técnicas podem ser também executadas por um codificador/decodificador, tipicamente referido como “CODEC”, além do mais, as técnicas desta invenãõa pddmn err também executadas por um pré-processador de vídeo. O aparelho de origem 12 e o aparelho de origem 14 são meramente exemplos de aparelhos de codificação nos quais o aparelho de origem 12 gera dados de vídeo codificados para transmissão para o aparelho de destino 14. Em alguns exemplos, os aparelhos 14, q4, podem funcionar de maneira substancialmente simétrica, de modo que cada um dos aparelhos 12, 14, inclui componentes de codificação e decodificação de vídeo. Consequentemente, o sistema 10 pode suportar transmissão de vídeo unidirecional ou bidirecional entre os aparelhos de vídeo 12, 14, como, por exemplo, para fluxo contínuo de vídeo, repetição de vídeo, execução de broadcast de vídeo ou telefonia com vídeo.
[0065] A fonte de vid1o 18 ao elhoeldo de origem 12 pode incluir um aparelho de captação de vídeo, tal como uma câmara de vídeo, um arquivo de vídeo que contém vídeo previamente captado e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em gráficos de computador como o vídeo de origem ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o aparelho de origem 12 e o aparelho de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, as técnicas descritas nesta invenção podem ser aplicadas às codificação de vídeo em geral e podem ser aplicadas a aplicativos sem fio e/ou cabeados. Em cada caso, o vídeo captado, pré-captado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem ser então transmitidas pela interface de saída 22 em um meio legível por computador 16.
[0066] Omeio Vegivel por uOmputador 16 pode incluir meius OtansiOótius, tais cumu uma Otansmissãu de broadcast sem fiu uu de rede cabeada, uu meius de atmazenamenOu (isOu é, meius de atmazenamenOu nãu OtansiOótius), Oais cumu um discu tígidu, uma unidade flash, um CD, um discu de vídeu digiOal, um discu Blu-tay uu uuOtus meius legíveis put cumpuOadut. Em alguns exemplus, um setvidut de tede, nãu musOtadu, pude tecebet dadus de vídeu cudificadus du apatelhu de utigem 12 e enviat us dadus de vídeu cudificadus au apatelhu de desOinu 14, cumu, put exemplu, put meiu de Otansmissãu em tede. Da mesma maneita, um apatelhu de cumpuOaçãu de uma insOalaçãu de ptuduçãu de meiu, Oal cumu uma insOalaçãu de esOampagem de discu, pude tecebet dadus de vídeu cudificadus du apatelhu de utigem 12 e ptuduzit um discu que cunOém us dadus de vídeu cudificadus. PutOanOu, pude-se enOendet u meiu legível put cumpuOadut 16 cumu incluindu um uu mais meius legíveis put cumpuOadut de divetsas futmas, em divetsus exemplus.
[0067] A tnacrface de entrada 28 do elarelho de desOinu 14 tecebe infutmações du meiu legível put cumpuOadut 16. As infutmações du meiu legível put cumpuOadut 16 pudem incluit infutmações de sinOaxe definidas pelu cudificadut de vídeu 20, que é Oambém uOilizadu pelu decudificadut de vídeu 30 que incluem elemenOus de sinOaxe que desctevem as catacOetísOicas e/uu ptucessamenOu de blucus e/uu uuOtas unidades cudificadas, cumu GOPs, put exemplu. O apatelhu de exibiçãu 32 exibe us dadus de vídeu cudificadus pata u usuátiu e pude cumpteendet qualquet um de divetsus apatelhus de exibiçãu Oais cumu um Oubu de taius caOódicus (CRT), uma Oela de ctisOal líquidu (LCD), ema Oela de plasma, uma Oela de diodo emissor de luz orgânico (OLED) ou outro tipo de aparelho de exibição.
[0068] O foCáfocador dv video 20 e o decodificador de vídeo 30 podem funcionar de acordo com um padrão de codificação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento e podem conformar-se ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com outros padrões patenteados ou industriais, tais como o padrão ITU-T H.264, alternativamente referido como MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC) ou extensões de tais padrões. As técnicas desta invenção, contudo, não estão limitadas a qualquer padrão de codificação específico. Outros exemplos de padrões de codificação de vídeo incluem o MPEG-2 e o ITU-T H.263. Embora não mostrado na Figura 1, sob alguns aspectos o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados com um codificador e decodificar e áudio e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para processar a codificação tanto de áudio tanto de vídeo em um fluxo de dados comum em um fluxo de dados separados. Se aplicável, as unidades MUX-DEMUX podem conformar-se ao protocolo de multiplexador ITU H.223 ou a outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0069] O podrão ITU-T H.M64/MHEG--4 (AVC) foi formulado pelo Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) juntamente com o Grupo de Especialistas em Imagens em Movimento ISO/IEC (MPEG) como o produto de uma parceria coletiva conhecida como a Equipe de Vídeo Conjunta (JVT). Sob alguns aspectos, as técnicas descritas nesta invenção podem ser aplicadas a aparelhos que se conformam geralmente ao padrão H.264. O padrão H,264 é descrito na recomendação H.264 do ITU-T, Codificação Avançada de Vídeo para Serviços Audiovisuais Genéricos pelo Grupo de Estudos ITU-T, e datado de março de 2005, que pode ser aqui referido como o padrão H.264 ou especificação H.264, ou o padrão ou especificação H.264/AVC. A Equipe de Vídeo Conjunta (JVT) continua a trabalhar em extensões do H.264/MPEG-4 AVC.
[0070] O codaficador de video 20 e o decodificador de vídeo 30 podem ser, cada um, implementados como qualquer um de diversos circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativos (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação deles. Quando as técnicas são implementadas parcialmente em software, um aparelho pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta invenção. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificado respectivamente, um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo aparelho.
[0071] O JCT-VC está trhandoando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um aparelho de codificação de vídeo referido como o Modelo de Teste HEVC (HM). O HM, presume várias capacidades adicionais de aparelhos de codificação de vídeo relativas a aparelhos existentes de acordo com o ITU-T H.264/AVC, por exemplo. Por exemplo, ao passo que o H.264 apresenta nove modos de codificação intra-preditiva, o HM pode apresentar um máximo de trinta e três modos de codificação intra-preditiva.
[0072] Em leral, o lodelo opeonclonal do HM descreve que um quadro ou imagem de vídeo pode ser dividida em uma sequência de bloco de árvore ou maiores unidades de codificação (LCUs) (também referidos como “unidades de árvore de codificação”) que incluem amostras tanto luma quanto croma. Dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para a LCU, que é a maior unidade de codificação em termos do número de pixels. Uma fatia inclui vários blocos de árvore consecutivos em ordem de codificação. Um quadro ou imagem de vídeo pode ser particionada em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidades de codificação (CUs) de acordo com uma transformação quad-tree. Em geral, uma estrutura de dados de transformação quad-tree inclui um nó por CU, com um nó-raiz correspondendo ao bloco de árvore. Se uma CU for dividia em quadro sub-CUs o nó que corresponde à CU inclui quatro nós-folha, cada um dos quais corresponde a uma das sub-CUs.
[0073] cor eEueegmenle, o cepaflrador de video 20 pode codificar uma série de LCUs que formam uma fatia de uma imagem. Além disto, o codificador de vídeo 20 pode utilizar as técnicas desta invenção para codificar um cabeçalho de fatia para a fatia. O cabeçalho de fatia pode incluir dados que podem ser utilizados durante a decodificação da fatia. Por exemplo, o cabeçalho de fatia pode incluir dados que indicam imagens de referência que podem ser utilizadas durante a decodificação dos dados de vídeo incluídos na fatia. De acordo com as técnicas desta invenção, o codificador de vídeo 20 pode codificar dados do cabeçalho de fatia que indicam se dados que representam informações de identificação para uma imagem de referência de longo prazo específica são explicitamente codificados no cabeçalho de fatia, ou se tais informações de identificação são herdadas de um conjunto de parâmetros de sequência (SPS) que corresponde a uma sequência de imagens que inclui uma imagem na qual a fatia ocorre.
[0074] De aesma manara, o decodafirador de vídeo 30 pode utilizar as técnicas desta invenção para decodificar o cabeçalho de fatia, que podem incluir decodificar os dados que indicam se as informações de identificação para uma imagem de referência de longo prazo específica são explicitamente codificadas no cabeçalho de fatia, ou se as informações de identificação são herdadas de um SPS que corresponde à fatia. Se o cabeçalho de fatia indicar que as informações de identificação são explicitamente codificadas, o decodificador de vídeo 30 pode decodificar as informações de identificação para a imagem de referência de longo prazo a partir do cabeçalho de fatia. Entretanto, se o cabeçalho de fatia indicar que as informações de identificação são herdadas do SPS, o decodificador de vídeo 30 pode recuperar as informações de identificação para o SPS do SPS. As técnicas para codificar um cabeçalho de fatia são explicadas mais detalhadamente em seguida.
[0075] Cada nó da uturatura de dados da transformação quad-tree pode prover dados de sintaxe para a CU correspondente. Por exemplo, um nó na transformação quad-tree pode incluir um indicador de divisão, que indica se a CU que corresponde ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos recursivamente e podem depender de a CU ser ou não dividida em sub-CUs. Se uma CU não for dividida adicionalmente, ela é referida como CU-folha. Nesta invenção, quatro sub-CUs de uma CU-folha serão referidas como CUs-folha mesmo se não houver divisão explícita da CU-folha original. Por exemplo, se uma CU no tamanho 16 x 16 não for dividida adicionalmente, as quatro sub-CUs 8x8 serão também referidas como CUs-folha, embora a CU 16 x 16 não tenha sido nunca dividida.
[0076] Uma (^U tem uma linalidade lhiaet^nte à de um macro-bloco no padrão H.264, exceto pelo fato de que uma CU não tem uma distinção de tamanho. Por exemplo, um bloco de árvore pode ser dividido em quatro nós-filho (também referidos como sub-CUs) e cada nó-filho pode por sua vez ser um nó-pai e ser dividido em outros quatro nós- filho. Um nó-filho não dividido final, referido como um nó- folha da transformação quad-tree, compreende um nó de codificação, também referido como uma CU-folha. Os dados de sintaxe associados a um fluxo de bits codificados podem definir um número máximo de vezes em que um bloco de árvore pode ser dividido, referido como profundidade de CU máxima e podem definir também um tamanho máximo dos nós de codificação. Por conseguinte, um fluxo de bits pode definir também a menor unidade de codificação (SCU). Esta invenção utiliza o termo “bloco” para referir-se a qualquer uma de uma CU, PU ou TU, no contexto da HEVC, ou estruturas de dados semelhantes no contexto de outros padrões (macro- blocos e sub-blocos deles no H.264/AVC, por exemplo).
[0077] Uma in inclui um ní des fodaçi^çeo e unidades de predição (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. O tamanho da CU corresponde ao tamanho do nó de codificação e deve ser de conformação quadrada. O tamanho da CU pode variar na faixa de 8 x 8 pixels até o tamanho do bloco de árvore com o máximo de 64 x 64 pixels ou mais. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se a CU é saltada ou codificada no modo direto, codificada no modo de intra- predição ou codificada no modo de inter-predição. As PUs podem ser particionadas como sendo de conformação não quadrada. Os dados de sintaxe associados a uma CU podem descrever também, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma transformação quad-tree. Uma TU pode ser de conformação quadrada ou não quadrada (retangular, por exemplo).
[0078] O podrão HEVC proporciona transformações de acordo com TUs que podem ser diferentes para CUs diferentes. As TUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada. Embora este possa não ser sempre o caso. As TUs são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores utilizando-se uma estrutura de transformação quadtree conhecida como “transformação quad-tree residual” (RQT). Os nós-folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados de modo a se produzirem coeficientes de transformada, que podem ser quantificados.
[0079] Uma Cl-folha pode uirluir uma ou mais unidades de predição (PUs). Em geral, uma PU representa uma área espacial que corresponde a toda ou uma parte da CU correspondente e pode incluir dados para recuperar uma amostra de referência para a PU. Além do mais, uma PU inclui dados relacionados com predição. Por exemplo, quando a PU é codificada de maneira intra-modal, dados para a PU podem ser incluídos em uma transformação quad-tree residual (RQT), que pode incluir dados que descrevem um modo de intra-predição para uma TU que corresponde à PU. Como outro exemplo, quando a PU é codificada de maneira inter-modal, a PU pode incluir dados que definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (precisão de um quarto de pixel ou precisão de um oitavo de pixel, por exemplo), uma imagem de referência que o vetor de movimento indica e/ou uma lista de imagens de referência (Lista 0, Lista 1 ou Lista C, por exemplo) para o vetor de movimento.
[0080] Uma ol-aolPiu que tem umu oa maPs PUs pode também uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas utilizando-se uma RQT (também referida como estrutura de transformação quad-tree de TU), conforme discutido acima. Por exemplo, um indicador de divisão pode indicar se uma CU-folha é dividida em quatro unidades de transformada. Em seguida, cada unidade de transformada pode ser dividida também em outras sub-TUs. Quando uma TU não é dividida adicionalmente ela pode ser referida como uma TU-folha. Geralmente para intra-codificação, todas as TUs-folha pertencentes a uma CU-folha compartilham o mesmo modo de intra-predição. Ou seja, o mesmo modo de intra-predição é geralmente aplicado para calcular valores preditos para todas as TUs de uma CU-folha. Para intra-codificação, um codificador de vídeo pode calcular um valor residual para cada TU-folha utilizando o modo de intra-predição, como uma diferença entre a parte da CU que corresponde à TU e o bloco original. Uma TU não está necessariamente limitada ao tamanho de uma PU. Assim, as TUs podem ser maiores ou menores que uma PU. Para intra-codificação uma PU pode ser co-localizada com uma TU-folha correspondente para a mesma CU. Em alguns exemplos, o tamanho máximo de uma TU-folha pode corresponder ao tamanho da CU-folha correspondente.
[0081] Al ém do mais as TUs de CUs-folhd podem ser também associadas a respectivas estrutura de dados de transformação quad-tree, referidas como transformações quad-tree residuais (RQTs). Ou seja, uma CU-folha pode incluir uma transformação quad-tree que indica como a CU- folha é particionada em TUs. O nó-raiz de uma transformação quad-tree de TU corresponde geralmente a uma CU-folha, enquanto o nó-raiz de uma transformação quad-tree de CU corresponde geralmente a um bloco de árvore (ou LCU). As TUs da RQT que não são divididas são referidas como TUs- folha. Em geral, esta invenção utiliza os termos CU e TU para referir-se a CU-folha e TU-folha respectivamente, a menos que observado de outro modo.
[0082] Uma snqi^^ia de oideo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, em um cabeçalho de uma ou mais das imagens ou em qualquer outro lugar, que descrevem várias imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para respectiva fatia. O codificador de vídeo 20 funciona tipicamente em blocos de vídeo dentro de fatias de vídeo individuais de modo a codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanho fixos ou variáveis e podem diferir em tamanho de acordo com o padrão de codificação especificado.
[0083] Como el^mplo, o HUp stporta pçeo.ção em diversos tamanhos de PU. Supondo-se que o tamanho de uma CU específica seja 2N x 2N, o HM suporta intra-predição em tamanhos de PU de 2N x 2N ou N x N, e inter-predição em tamanhos de PU simétricos de 2N x 2N, 2 x N, N x 2N ou N x N. O HM suporta também particionamento assimétrico para inter-predição em tamanhos de PU de 2N x nU, 2N x nD, nL x 2N e nR x 2N. No particionamento assimétrico uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25 e 75. A parte da CU que corresponde à partição de 25 é indicada por um n seguido de uma indicação de “Para Cima”, “Para Baixo”, “Esquerda” ou “Direita”. Assim, por exemplo, “20 x nU” refere-se a uma CU de 2N x 2N que é particionada em sentido horizontal com uma PU de 2N x 0,5N no topo e uma PU de 2N x 1,5N na base.
[0084] Nesia inãonção, “N ” N" o “of po” N" podem ser utilizados de maneira intercambiável para referir-se à dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, como, por exemplo, 16 x 16 pixels ou 16 por 16 pixels. Em geral um bloco de 16 x 16 terá 16 pixels na direção vertical (y = 16) e 16 pixels na direção horizontal (x = 16) . Da mesma maneira, um bloco N x N tem geralmente N pixels na direção vertical e N pixels na direção horizontal onde N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Além do mais, não é necessário que os blocos tenham os mesmos números de pixels na direção horizontal que têm na direção vertical. Por exemplo, os blocos podem compreender N x N pixels, onde N não é necessariamente a N.
[0085] ornfoome rbadovadi ad.iM, o fididOrador de vídeo 20 e o decodificador de vídeo 30 poden eer configurados para intra-predizer ou inter-predizer as PUe de una CU. En geral, a inter-codificação envolve predição con relação a una ou naie inagene de referência. Una inagen de referência pode eer una inagen anterior na orden tenporal, una inagen futura ou una conbinação de prediçõee de duae ou naie inagene codificadae anteriornente. O codificador de vídeo 20 ou o decodificador de vídeo 30 pode arnazenar a inagene de referência en un arnazenador de inagene decodificadae (DPB). O codificador de vídeo 20 pode einalizar un valor de unidade NAL que indica que una inagen eerá utilizada cono una inagen de referência pela narcação da inagen cono una inagen de referência de curto prazo ou una inagen de referência de longo prazo. O codificador de vídeo 20 e o decodificador de vídeo 30 arnazenan ae inagene de referência de longo prazo e curto prazo en una lieta de inagene de referência. O codificador de vídeo 20 ou o decodificador de vídeo 30 pode arnazenar inagene de referência de longo prazo no DPB por un tenpo naie longo que ae inagene de referência de curto prazo e poden eer utilizadae, portanto, cono inagene de referência para naie inagene que ae inagene de referência de curto prazo.
[0086] O focafórador de oideo 20 ou decodificador de vídeo 30 pode renover inagene de referência do DPB de váriae naneirae. Quando ae inagene de referência já não eão naie neceeeáriae, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode narcar a inagen de referência cono não naie neceeeária para referência e pode renover finalnente ae inagene não naie neceeeáriae para referência do DPB, cono, por exenplo, tranenitindo a inagen de referência para exibição ou deecartando a inagen de referência ee a inagen de referência já tiver sido transmitida para exibição. Se o DPB já estiver cheio, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode remover a imagem de referência de curto prazo mais antiga.
[0087] Aiem de arma^naa imagens de rêfciancia no DPB, o codificador de vídeo 20 ou o decodificador de vídeo 30 armazena imagens de referência em um de duas listas de imagens de referência, referidas como lista 0 e lista 1. As imagens de referência armazenadas na lista 0 e na lista 1 que são utilizadas para predizer uma imagem específica podem ser referidas como o conjunto de imagens de referência (RPS). As imagens armazenadas nas listas 0 e 1 podem originar-se de diversas fontes diferentes, tais como o SPS e o PPS. Conforme descrito acima, o cabeçalho de fatia pode também sinalizar explicitamente imagens a serem incluídas no RPS, que é definido como um conjunto de imagens de referência associadas a uma imagem, que consistem em todas as imagens de referência que são anteriores à imagem conexa na ordem de decodificação que podem ser utilizada na inter-predição de blocos na imagem conexa ou qualquer imagem que segue à imagem conexa na ordem de decodificação, por exemplo, até a imagem de renovação de decodificação instantânea (IDR), ou imagem de acesso de link quebrado (BLA). Em outras palavras, as imagens de referência no conjunto de imagem de referência podem exigir as características seguintes: (1) elas são todas anteriores à imagem atual na ordem de decodificação e (2) elas podem ser utilizadas para inter-predizer a imagem atual ou inter-predizer qualquer imagem que segue à imagem atual na ordem de decodificação e, em alguns exemplos, até a imagem IDR ou imagem BLA seguinte.
[0088] 0 eodalidadol de video 2 o ou o decodificador de vídeo 30 pode derivar o RPS e, após tal derivação pode construir as listas de imagens de referência, como, por exemplo, a lista 0 e a lista 1. O codificador de vídeo 20 ou decodificador de vídeo 30 pode utilizar imagens de referência da lista 0 quando prediz uma fatia P e imagens de referência da lista 0 ou lista 1 quando prediz uma fatia bi-predita. Somente imagens de referência no RPS podem ser imagens de referência candidatas que são utilizadas para construir as listas de imagens de referência.
[0089] Pcra cons^uir n unnjuneo da emagens de referência, o codificador de vídeo pode construir uma série de sub-conjuntos de imagem. O WD 9 descreve cinco sub-conjuntos de imagens de referência que o decodificador de vídeo constrói. A combinação dos sub-conjuntos de imagens de referência pode formar o conjunto de imagens de referência. Por exemplo, o codificador de vídeo 20 pode sinalizar explicitamente, em um fluxo de bits codificados, valores que permitem que um decodificador de vídeo determine identificadores para as imagens de referência que são incluídas no conjunto de imagens de referência. Por exemplo, os identificadores das imagens de referência podem os totais de ordens de imagem. Cada imagem é associada a um valor de POC. O valor de POC de uma imagem indica a ordem de saída ou ordem de exibição da imagem correspondente com relação à imagem IDR anterior na ordem de decodificação e, em algumas outras alternativas, indica a posição da imagem conexa na ordem de saída com relação às posições na ordem de saída das outras imagens na mesma sequência de vídeo codificada. Por exemplo, dentro de uma sequência de vídeo codificada, uma imagem com um valor de POC menor é transmitida ou exibida mais cedo que uma imagem com um valor de POC maior.
[0090] Ooneorme resorito acima, as imsgens de referência são armazenadas no DPB e poden ser sinalizadas no SPS PPS ou no cabeçalho de fatia. O PPS pode herdar un sub-conjunto de imagens de referência do SPS e pode sinalizar imagens de referência adicionais que poden ser utilizadas para sinalizar imagens que o codificador de vídeo 20 ou o decodificador de vídeo 30 pode utilizar durante a inter-predição da inagen atual. O codificador de vídeo pode deterninar identificadores para as inagens de referência, cono, por exenplo, valores de POC ou outros identificadores e a partir destes identificadores construir a série de sub-conjuntos de inagens de referência.
[0091] Pode riversas irneiras pelas quais o decodificador de vídeo 30 pode deterninar os identificadores para inagens que pertencen ao conjunto de inagens de referência. En geral, o codificador de vídeo 20 pode sinalizar valores a partir dos quais o decodificador de vídeo 30 pode deterninar os identificadores para inagens, inclusive as inagens que pertencen ao conjunto de inagens de referência. Os identificadores das inagens poden ser o POC para cada una das inagens. Conforne descrito acina, o valor de POC pode indicar a orden de exibição ou a orden de saída de una inagen onde as inagens con valores de POC nenores são exibidas nais cedo que as inagens con valores de POC naiores. O valor de POC de una dada inagen pode ser relativo à inagen IDR anterior. Por exenplo, o PicOrderCnt (isto é, o valor de POC) para una inagen IDR pode ser 0, o valor de POC para inagen anterior à inagen IDR na orden de exibição ou orden de saída pode ser 1, o valor de POC para inagen posterior con valor de POC 1 na orden de exibição ou orden de saída pode ser 2, e assin por diante.
[0092] P joartid dsstes sun-cnnOu^os de imagens de aefeaênsia, u desudifisadua de video pude deaivaa u sunjcntu de imagem de aefeaênsia, sunfuame dessaitu mais detalhadamente em segcida. Em algcns exemplus, sada cm dus scb-sun-cntus de imagens de aefeaênsia inslci imagens de aefeaênsia difeaentes, nu sentidu de qce nãu há scpeapusiçãu de imagens de aefeaênsia nus scb-sun-cntus de imagens de aefeaênsia. Desta maneiaa, sada cma das imagens de aefeaênsia pude estaa em apenas cm dus scb-sun-cntus de imagens de aefeaênsia e em nenhcm uctau scb-sun-cntu de imagens de aefeaênsia.
[0093] Dspdis de detea^iusr SS ndfnSiSOaeUores (valuaes de POC, pua exemplu) das imagens de aefeaênsia nu sunjcntu de imagens de aefeaênsia uc secs scb-sun-cntus, u desudifisadua de vídeu pude sunstacia us scb-sun-cntus de imagens de aefeaênsia. Cunfuame dessaitu mais detalhadamente em segcida, u desudifisadua de vídeu pude sunstacia sinsu scb-sun-cntus de imagens de aefeaênsia, embuaa se-a pussível qce u desudifisadua de vídeu sunstaca mais uc menus scb-sun-cntus de imagens de aefeaênsia.
[0094] ssin u-sco sob-cenOunS<ss ma in^des de aefeaênsia sãu shamadus: RefPisSetStCcaaBefuae, RefPisSetStCcaaAftea, RefPisSetStFull, RefPisSetStCcaa e RefPisSetLtFull.
[0095] Os soe-cenOuntos de imsgens de aefeaênsia RefPisSetStCcaaBefuae, RefPisSetStCcaaAftea e RefPisSetStFull pudem identifisaa imagens de aefeaênsia de scatu paazu. Em algcns exemplus, estes scb-sun-cntus de imagens de aefeaênsia pudem identifisaa imagens de aefeaênsia de scatu paazu sum base em se as imagens de aefeaênsia de scatu paazu sãu anteaiuaes na uadem de exibiçãu uc pusteaiuaes na uadem de exibiçãu à imagem atcal qce é sudifisada, assim sumu se as imagens de aefeaênsia de curto prazo podem ser potencialmente utilizadas para inter- predizer a imagem atual e imagens que se seguem à imagem atual na ordem de decodificação, ou podem ser potencialmente utilizadas para inter-predizer apenas as imagens que se segue à imagem atual na ordem de decodificação.
[0096] Por exemplo, o sub-uonpnlio de imagens de referência RefPicSetStCurrBefore pode incluir, e pode incluir apenas informações de identificação, tais como valores de POC de todas as imagens de referência de curto prazo que têm uma ordem de saída ou ordem de exibição anterior à imagem atual, e que podem ser potencialmente utilizadas para referência na inter-predição da imagem atual, e podem ser potencialmente utilizadas para referência na inter-predição de uma ou mais imagens que se seguem à imagem atual na ordem de decodificação. O subconjunto de imagens de referência RefPicSetStCurrAfter pode incluir, e pode incluir apenas, informações de identificação de todas as imagens de referência de curto prazo que têm uma ordem de saída ou ordem de exibição posterior à imagem atual e que podem ser potencialmente utilizadas para referência na inter-predição da imagem atual, e podem ser potencialmente utilizadas para referência na inter-predição de uma ou mais imagens que se seguem à imagem atual na ordem de decodificação.
[0097] b soO-cnneuneo da ^gees ef rênciancia RefPicSetStFoll pode incluir, e pode incluir apenas, informações de identificação de todas as imagens de referência de curto prazo que têm uma ordem de saída ou ordem de exibição anterior à imagem atual, que podem ser potencialmente utilizadas para referência na inter-predição de uma ou mais imagens que se seguem à imagem atual na ordem de decodificação, e que não põem ser utilizadas para referência na inter-predição da imagem atual.
[0098] Os sub-uonjurtos de imagens de referência RefPicSetStCurr e RefPicSetLtFoll podem identificar imagens de referência de longo prazo. Em alguns exemplos, estes sub-con-untos de imagens de referência podem identificar imagens de referência de longo prazo com base em se as imagens de referência de longo prazo são anteriores na ordem de exibição ou posteriores na ordem de exibição à imagem atual que é codificada.
[0099] eoe exemplo, o suO-uonjuntis da imagens de referência RefPicSetStCurr pode incluir e pode incluir apenas as informações de identificação de todas as imagens de referência de longo prazo que podem ser potencialmente utilizadas para referência na inter-predição da imagem atual, e que podem ser potencialmente utilizadas para referência na inter-predição de uma ou mais imagens que se seguem à imagem atual na ordem de decodificação. O sub-conjunto de imagens de referência RefPicSetLtFoll pode incluir, e pode incluir apenas, as informações de identificação de todas as imagens de referência de longo prazo que podem ser potencialmente utilizadas para referência na inter-predição de uma ou mais imagens que se seguem à imagem atual na ordem de decodificação, e que não podem ser utilizadas para referência na inter-predição da imagem atual.
[00100] Em ansune ep^mp^s, os suo-junjontos RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetStCurr podem incluir todas as imagens de referência que podem ser utilizadas na inter-predição de um bloco na imagem atual e que podem ser utilizadas na inter- predição de uma ou mais das imagens que se seguem à imagem atual na ordem de decodificação. Os sub-con-untos RefPicSetLtFoll e o RefPicSetLtFoll podem incluir todas as imagens de referência que não são utilizadas na inter- predição do bloco na imagem atual, mas podem ser utilizadas na inter-predição de uma ou mais das imagens que se seguem à imagem atual na ordem de decodificação.
[00101] Pa ra constrnLros scb-junjontos de imagens de referência RefPicSetStCurr e RefPicSetStCurrAfter, o decodificador de vídeo itera através do DPB e adiciona LTRPs armazenadas no DPB aos subconjuntos de imagens de referência RefPicSetStCurr e RefPicSetStCurrAfter de acordo com o pseudo-código seguinte: para(i + 0;i<—umPocOtCurr; i++) se(!CurrDeltaPocMsbPresentFlag [i]) se(houver uma imagem de referência de longo prazo picX no DPB com pic order ent lsb igual a PocLtCurr [i]) RefPicSetLtCurr [i] = picX caso contrário se(houver uma imagem de referência de longo prazo picX no DPB com PicOrderCntVal = a PocLtCurr [i]) RefPicSetLtCur [i] = picX caso contrário se(houver uma imagem de referência de curto prazo picY no DPB com PicOrderCntVal = a PocLtCurr [i]) RefPicSetLtCurr [i] = picY caso contrário RefPicSetOtCurr [i] = “nenhuma imagem de referência” para(i = 0; i - NUOCOOLOIOKI.; i ++) se(!FollDeltaPocMsbPresentFlag [i]) se(houver uma imagem de referência de longo prazo picX no DPB com pic order cnt lsb = a PocFoll [i]) RefPicSetOtFoll [i] + picX caso contrário se(houver uma imagem de referência de curto prazo picY no DPB com pic order cnt lsb = a PocLtFoll [i]) RefPicSetLtFoll [i] = picY caso contrário RefPicSetLtFoll [i] = “nenhuma imagem de referência” caso contrário se(houver uma imagem de referência de longo prazo picX no DPB com PicOrderVal para PocLtFoll [i]) RefPicSetLtFoll [i] = picX caso contrário se(houver uma imagem de referência de curto prazo picY no DPB com PicOrderCntVal = a PocLtFoll [i]) RefPicSetLtFoll [i] = picY caso contrário RefPicSetLtFoll [i] = “nenhuma imagem de referência”
[00102] Dep^isde constaras listas de referência RefPicSetStCurr e RefPicSetLtFoll, o decodificador de vídeo 30 marca cada uma das imagens nas imagens de referência como “utilizada” para referência de longo prazo.
[00103] aara conseruir os juntodos de imasens de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr, o decodificador de vídeo pode executar o pseudo-código seguinte, que é iterado através do DPB e adiciona imagens do DPB com valores de POC ao conjunto de imagens de referência correspondentes: para(i = 0; i<NumPocStCurrBefore; i + +) se(houver uma imagem de referência de curto prazo picX no DPB com PicOrderVntVal = a PocStCurrBefore [i]) RefPicSetStCurrBefore [i] = picX caso contrário RefPicSetStCurrBefore [i] = “nenhuma imagem de referência” para(i =0; i < NumPocStCurAfter; i + +) se(houver uma imagem de referência de curto prazo picX no DPB com PicOrderCntVal igual a PocStCurrAfter [i]) RefPicSetStCurrAfter [i] = picX caso contrário RefPicSetStCurrAfter [i] = “nenhuma imagem de referência” (8 - 7) para(i =0; i > NumPocStFoll; i + +) se(houver uma imagem de referência de curto prazo picX no DPB com PicOrderCntVal igual a PocStFoll [i]) RefPicSetStFoll [i] = picX caso contrário RefPicSetStFoll [i] = “nenhuma imagem de referência”
[00104] 0 decodifdoadorde video30 marca quaisquer imagens de referência que não são incluídas em um dos cinco sub-conjuntos de iaggnns de referênc^ oow "não utilizadas para referência”.
[00105] Se a gie^gem atual aser iecoCCfica for uma imagem IDR, o decodificador de vídeo pode fixar os sub-conjuntos de imagens de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr RefPicSetLtFoll em vazio. Isto pode ser porque a imagem IDR pode não ser inter-predita e que nenhuma imagem após a IDR na ordem de decodificação pode utilizar qualquer imagem anterior à imagem IDR na decodificação para referência. Caso contrário (quando a imagem atual é uma imagem não IDR, por exemplo), o decodificador de vídeo 30 pode construir os sub-conjuntos de imagens de referência de curto prazo e os sub-conjuntos de imagens de referência de longo prazo implementando o pseudo-código seguinte.
[00106] Umeveuqoe o decodiaicrdoe Ví vid30 30 deriva o conjunto de imagens de referência da série de sub-conjuntos de imagens de referência, o decodificador de vídeo pode construir as listas de imagens de referência (lista 0 e lista 1, por exemplo) a partir do conjunto de imagens de referência. Por exemplo, a construção das listas de imagens de referência pode incluir uma etapa de inicialização e possivelmente uma etapa de modificação.
[00107] Em unsure ep^mploo o dododCfioador de vídeo podem ser configurado para implementar uma técnica construção de listas de referência pré-definida na qual o decodificador de vídeo utiliza os sub-conjuntos de imagens de referência para construir listas de imagens de referência iniciais. Em seguida, se uma modificação das listas de imagens de referência não for necessária, as listas de imagens de referência finais podem ser idênticas às listas de imagens de referência iniciais, sem necessidade de qualquer reordenamento das listas de imagens de referência.
[00108] DnrMte i 0nteropcçdição de urna PU predita unidirecionalmente, o codificador de vídeo 20 ou o decodificador de vídeo 30 utiliza as imagens de referência da lista 0 de imagens de referência para predizer os valores atuais e luma e croma do bloco atual. Durante a inter-predição de uma PU predita bidirecionalmente, o codificador de vídeo 20 ou o decodificador de vídeo 30 utiliza as imagens de referência tanto da lista 0 de imagens de referência quanto a lista 1 de imagens de referência para predizer os valores dos blocos luma e croma atuais.
[00109] 0 decodifdo^rde video30 pode endereçar imagens de referência, tais como LTRPs e STRPs pela indexação em uma das duas listas de imagens de referência, referidas como RefPicListO e RefPicListl. A RefPicListO e a RefPicListl incluem imagens de referência dos cinco sub-conjuntos de imagens de referência, RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll quando decodifica uma PU predita unidirecionalmente, o decodificador de vídeo 30 pode utilizar uma das imagens armazenadas na RefPicListO para predizer os valores do blocos luma e croma atuais. Quando decodifica uma PU bi- predita, o decodificador de vídeo 30 pode utilizar uma imagem da RefPicListO e uma imagem da RefPicListl para predizer as CUs da fatia atual. No início da decodificação de uma fatia P ou B, o decodificador de vídeo 30 pode construir uma lista de imagens de referência temporária, RefPicList0, de acordo com o pseudo-código seguinte: rldx = 0 enquanto(rldx < NumRpsCurrTempList0){ para(i =0; i < NumPocStCurrBefore & & rldx < NumRpxCurTempList0; rldx + +, i + +) RefPicListTemp0 [rldx] + RefPicSetStCurrBefore [i] para(i =0; i < NumPocStCurrAfter & & rldx < NumRpsCurrTemList0, rldx + +, i = =) RefPicListTemp0 [rldx] RefPicSetStCurrAfter [i] para(i) =0; i < NumPocLtCurr & & rldx < NumRpsCurrTempList0; rldx + +, i + +) RefPicListTemp0 [rldx] = RefPicStLtCurr [i] }
[00110] No rasd da a PiCLictEsOEpS seu uma variável temporária que inclui o conteúdo de RefPioSetStCurrBefore seguido de RefPicSetStCurrAfter e RefPicSetLtCurr.
[00111] Em unsung c^os o X^xo dei Cits pode sinalizar que as imagens na lista 0 devem ser reordenadas. O decodificador de vídeo 30 pode reordenar a RefPicListTempO com base em um indicador ref pic list modification 10. Depois de construir a RefPicListTempO, o decodificador de vídeo 30 constrói a RefPicListO de acordo com o pseudo-código seguinte: para(rldx = 0, rldx < = num ref idx 10, active minus1; rldx + + RefPicList0 [rldx] = ref pic list modification flag 10? RefPicListTemp0 [list entry 10 [ rldx]] RefPicListTemp0 [rldx]
[00112] QOMCIO P PU ataal b bi-prtdita, o decodificador de vídeo 30 constrói uma versão temporária da RefPicList1, referida como RefPicListTemp1 de acordo com o pseudo-código seguinte em uma processo semelhante utilizado para construir a RefPicListTemp0: rldx = 0 enquanto(rldx < NumRpsCurrTempList1) { para(i =0; i < NumPocStCurrAfter & & rldx < NumRpsCurrTemList1; rldx + +, i + +) RefPicListTemp1 [rldx] = RefPicSetStCurrAfter [i] para(i =0; i < NumPocStCurrBefore & & rldx < NumRpsCurrTempList1, rldx + +, i + +) RefPicListTemp1 [rldx] = RefPicSetStCurrBefore [i] para(i = 0; i , NumPocStCurr & & rldx < NumRpsCurrTemListl; rldx + +, i + +) RefPicListTem1 [rldx] = RefPicSetLtCurr [i] )
[00113] 0 Oecodifdo^rde video30 pode reordenar a RefPicListTempl com base no ref pic list modification flag 11 de acordo com o pseudocódigo seguinte: para(rldx = 0; rldx < = num ref idx 11 active minus1; rldx = =) RefPicList1 [rldx] = ref pic list modification flag 11 ? RefPicListTemp1 [list entry 11 [rldx]]: RefPicListTemp1 [rldx]
[00114] fo nf^iid cescoita aa^a, f xouxd de bits HEVC inclui unidades de codificação (CUs) que são constituídas por unidades de predição (PUs) e unidades de transformada (Tus). Para PUs inter-preditas, cada unidade de predição pode incluir informações de predição de movimento, tais como o modo de inter-predição específico da PU, um ou mais valores de diferença entre vetores de movimento (MVDs) e imagens de referência a serem utilizadas quando se predizem os valores de pixel da CU. Pode haver uma ou duas imagens de referência sinalizadas para cada PU, uma imagem de referência se a CU for predita unidirecionalmente, e duas imagens de referência se a CU for predita bidirecionalmente.
[00115] Uma PU vetervestfita deuma iatia eode incluir elementos de sintaxe ref idx 10 e ref idx 11. O valor de cada um do ref idx 10 e ref idx 11 são índices nas listas de imagens de referência, a RefPicList0 e RefPicListl respectivamente. O ref idx 10 e ref idx 11 sinalizam as imagens de referência que o decodificador de vídeo utiliza em conjunto com os valores de diferença entre vetores de movimento para determinar um conjunto de amostras de predição que o decodificador de vídeo 30 utiliza para predizer os valores croma e luma do bloco atual.
[00116] Em um raso emquu uma Pé é prtaita unidirecionalmente ou bidirecionalmente, o decodificador de vídeo 30 utiliza os valores MVD da PU para reconstruir um ou mais vetores de movimento croma e vetores de movimento luma. O decodificador de vídeo 30 pode reconstruir os vetores de movimento luma e croma determinando um preditor de vetor de movimento para a CU e combinando o preditor de vetor de movimento com a MVD de modo a se formar o vetor de movimento para a CU. O decodificador de vídeo 30 pode determinar o preditor de vetor de movimento a partir de outra CU codificada anteriormente, como, por exemplo, uma CU vizinha codificada anteriormente. Em alguns casos, uma PU pode ser codificada utilizando-se a chamada predição de vetor de movimento de fusão ou avançada (AMVP), na qual o decodificador de vídeo 30 determina o preditor de vetor de movimento para a PU atual apenas com base em um ou mais vetores de movimento das CUs codificadas anteriormente. Neste caso, a PU atual não inclui quaisquer valores MVD sinalizados.
[00117] Umavezque deioicaioador de eodeo 30 tenha reconstruído os vetores de movimento croma e luma para a PU atual, o decodificador de vídeo 30 determina um arranjo de amostras de predição luma, um arranjo de amostras de predição croma e um arranjo de amostra residuais croma com base na imagem ou imagens de referência sinalizadas por seus índices na PU. Para calcular as amostras de predição luma (valores preditivos, por exemplo) para o bloco luma atual, o decodificador de vídeo 30 calcula uma parte inteira e uma parte fracionária do vetor de movimento luma. O decodificador de vídeo 30 adiciona as coordenadas x e y do canto de topo esquerdo do bloco luma atual ao vetor de movimento luma de modo a determinar um deslocamento inteiro ou fracionário correspondente para as amostras luma da imagem de referência indicada. Com base no deslocamento o codificador de vídeo 20 pode interpolar os valores de sub-posições fracionárias com base em valores de pixel totais das amostras luma da imagem de referência de modo a determinar as amostras de predição luma para o bloco luma atual. Como exemplo, a diferença entre vetores de movimento luma, quando combinada com o preditor de vetor de movimento pode referir uma localização de um quarto de pixel específica das amostras de predição luma. O decodificador de vídeo 30 pode interpolar os valores de um quarto de pixel com base em um ou mais filtros de interpolação. Os filtros de interpolação podem utilizar conjuntos de pixels totais de suporte das amostras de referência luma de modo a gerarem os valores de um quarto de pixel. O decodificador de vídeo 30 pode utilizar os valores luma de um quarto de pixel gerado como valores preditivos do bloco luma atual.
[00118] O decoicaioador des vkleo pode cxtautar um processo semelhante para determinar amostras de predição para o bloco croma atual. O decodificador de vídeo reconstrói, pelo menos um vetor de movimento croma, que pode diferir do vetor de movimento luma, e utiliza o vetor de movimento croma para determinar um deslocamento nas amostras croma da imagem de referência. Além disto, ao passo que o vetor de movimento luma pode ter até uma precisão de um quarto de pixel, o vetor de movimento croma pode ter até uma precisão de um oitavo de pixel. Com base no deslocamento nas amostras croma da imagem de referência, o decodificador de vídeo 30 pode interpolar valores croma de sub-pixel preditivos como preditores dos valores croma do bloco croma atual.
[00119] Nos c^os eq qua P PU atuaé é bi- predita, o decodificador de vídeo 30 determina dois arranjos de amostras de predição luma, um para cada um dos dois vetores de movimento luma, e dois arranjos de amostras de predição croma, um para cada um dos dois vetores de movimento croma. O decodificador de vídeo 30 combina as duas amostras de predição luma e os dois arranjos de amostras de predição croma, de modo a formar um único arranjo de amostras de predição. A técnica utilizada para predizer cada um dos arranjos de amostras luma e croma depende de dois elementos de sintaxe de indicação de predição, prdFlagLO e prdFlagLl, que indica qual de dois de predição de amostra ponderados o decodificador de vídeo 30 executa. Os pesos específicos atribuídos a cada um dos dois arranjos de amostras de predição croma e luma são definidos por uma tabela de sintaxe de predição ponderada, que pode ser sinalizada em um cabeçalho de segmento de fatia.
[00120] Em segaida à codcaiã^^ío iatra- preditiva ou inter-preditiva que utiliza as PUs de uma CU, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode calcular dados residuais para as PUs da CU. As PUs podem compreender dados de sintaxe que descrevem um método ou modo para gerar dados de pixel preditivos no domínio espacial (também referido como domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, como, por exemplo, uma transformada de co-seno discreta (DCT), uma transformada de número inteiro, uma transformada wavelet ou uma transformada conceptualmente semelhante para dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre os pixels da imagem não codificada e os valores de predição que correspondem à PU. O codificador de vídeo 20 ou o decodificador de vídeo 30 pode formar as TUs incluindo os dados residuais para a CU, e em seguida transformar as TUs de modo a transformar coeficientes de transformada para a CU.
[00121] Em segaida q iuqús^er trfosforaadas para produzir coeficientes de transformada, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode efetuar a quantificação dos coeficientes de transformada. A quantificação refere-se geralmente a um processo no qual os coeficientes de transformada são quantificados de modo a se reduzi a quantidade de dados utilizados para representas os coeficientes, obtendo-se compactação adicional. O processador de quantificação pode reduzir a profundidade de bit associada a alguns ou a todos os coeficientes. Por exemplo, um valor de bbitspodrseaarredondadopars um valor de b trnzd ranm'lia q ontefiCOçãção, dede m i maiue que m.
[00122] sp ós a treneCaÇcoção, o eoeiarcrdor de vídeo pode varrer os coeficientes de transformada produzindo um vetor unidimensional a partir da matriz bidimensional que inclui os coeficientes de transformada quantificados. A varredura pode ser projetada para colocar coeficientes de energia mais elevada (e, portanto, de frequência mais baixa) na frente do arranjo e para coloca coeficientes de energia mais baixa (e, portanto, de frequência elevada) na parte de trás do arranjo. Em alguns exemplos, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode utilizar uma ordem de varredura pre-definida para varrer os coeficientes de transformada quantificados de modo a produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode efetuar uma varredura adaptativa. Depois de varrer os coeficientes de transformada quantificados de modo a formar um vetor unidimensional, o codificador de vídeo 20 ou o decodificador de vídeo 30 pode codificar por entropia o vetor unidimensional, como, por exemplo, de acordo com a codificação de comprimento variável adaptativa ao contexto (CAVLC), a codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), Codificação por Entropia por Particionamento com Intervalos de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 pode codificar por entropia também elementos de sintaxe associados aos dados de vídeo codificados para utilização pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[00123] aarf euetuar a AABAC, o codiaicrdor de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode referir-se a, por exemplo, se os valores vizinhos do símbolo são não zero ou não. Para efetuar AAVLA, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. Palavras de código na VLA podem ser construídas de modo que códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais compridos correspondem a símbolos menos prováveis. Desta maneira a utilização da VLA pode levar à obtenção de economias de bits em comparação, por exemplo, com a utilização de palavras de código de comprimento igual para cada semântica a ser transmitido. A determinação de probabilidade pode ser baseada ao contexto atribuído ao símbolo.
[00124] 0 ifdCaicrdor de video 20 pode témbém enviar dados de sintaxe, tais como dados de sintaxe baseados em blocos, dados de sintaxe baseados em quadros e dados de sintaxe baseados em GOP, ao decodificador de vídeo 30, como, por exemplo, em um cabeçalho de quadro, um cabeçalho de bloco, um cabeçalho de fatia ou um cabeçalho de GOP. Os dados de sintaxe de GOP podem descrever o número de quadros no respectivo GOP, e os dados de sintaxe de quadro podem indicar o modo de codificação/predição utilizado para codificar o quadro correspondente.
[00125] As ticnicad dasti invãoção sr eremrem para aperfeiçoar a sinalização de imagens de referência em um fluxo de bits de vídeo codificado. Em geral, para economizar bits quando são sinalizadas referências a valores de POC de imagens de referência, o WD6 indica que apenas um determinado número de bits menos significativos (LSBs) de valores de POC são sinalizados para referir-se a imagens de referência de longo prazo, ao passo que imagens de referência de curto prazo são identificadas pelo valor de POC total.
[00126] Esta ençe^^) vrovê técnicas relacionadas com a sinalização de imagens de referência de longo prazo, que o codificador de vídeo 20 e o decodificador de vídeo 30 podem implementar. Em particular, esta invenção descreve técnicas para sinalizar informações de identificação para imagens de referência de longo prazo, como, por exemplo, em um cabeçalho de fatia. Em particular as técnicas desta invenção referem-se a técnicas para aperfeiçoar a sinalização dos bits mais significativos (MSBs) e bits menos significativos de imagens de referência de longo prazo no cabeçalho de fatia de uma sequência de vídeo codificada. As técnicas desta invenção referem-se também a técnicas para sinalizar, no cabeçalho de fatia, imagens de referência adicionais que não são incluídas no conjunto de imagens de referência incluído no conjunto de parâmetro de sequência ativo ou no conjunto de parâmetro de imagem para a imagem de codificação atual.
[00127] Um prim^ro espectodas nécns:a^ dasta invenção refere-se à sinalização de imagens de referência de longo prazo e, mais especificamente à sinalização dos bits mais significativos de bits de referência de longo prazo no cabeçalho de fatia de uma sequência de vídeo codificada. Em geral, as técnicas desta invenção podem implementar a sintaxe de cabeçalho de fatia como a descrita com relação à Tabela 2 acima. De acordo com a Tabela 2, o cabeçalho de fatia inclui os elementos de sintaxe long term idx sps [i] e poc lsb lt. Para um valor de índice específico i, o valor de long term idx sps [i] especifica um índice na lista de imagens de referência de longo prazo candidatas do conjunto de parâmetros de sequência ativo, e o valor de poc lsb lt [i] especifica os bits menos significativos para a iésima imagem de referência de longo prazo.
[00128] tastm eiraira, oe mentored de taneaxe long term idx sps e poc lsb lt identificam um sub-conjunto das imagens de referência de longo prazo que são herdadas do conjunto de parâmetros de sequência, e que o decodificador de vídeo 30 utiliza para predizer as CUs da fatia atual. As técnicas desta invenção restringem a ordem dos valores de LSB POC LTRP herdados do SPS no elemento de sintaxe long term idx sps [i]. A restrição da ordem dos valores LSB POC LTRP de long term idx sps [i] de acordo com as técnicas desta invenção pode reduzir a complexidade de um fluxo de bits de vídeo codificado. Por conseguinte, a semântica dos elementos de sintaxe de cabeçalho de fatia da Tabela 2 pode ser modificada de maneira seguinte, com relação à semântica descrita com relação à Tabela 2 acima.
[00129] aara um icdice especcoico, i, va vrlor de long term idx sps [i] especifica o índice, para a lista de imagens de referência de longo prazo especificadas no conjunto de parâmetros de sequência ativo, da iésima imagem de referência de longo prazo herdada do conjunto de parâmetros de sequência referido para o conjunto de imagem de referência de longo prazo da imagem atual. O valor de long term idx sps [i] pode estar na faixa de zero a num long term ref pics sps - i cncliseve.
[00130] As ticn^s desta énvãoção témbém modificam o ordenamento dos valores de poc lsb lt de modo que, para quaisquer valores de j e k na faixa de zero a num long term sps - 1, iuslve^e, se éf°r oenorque k, lt ref pic poc lsb sps [long term idx sps [j]] não é menor que lt ref pic poc lsb sps [long idx sps [k]]. Neste exemplo os valores de POC LSB de long term idx lsp [j] não é menor que os valores de POC LSB de long term idx sps [k] para todo j < k.
[00131] O evaehoHiodf iatia eod? luiluir também o elemento de sintaxe delta poc msb present flag [i]. delta poc msb present flag [i] especifica se ou não um número especificado de MSBs é sinalizado par a iésima LTRP, isto é, a LTRP indicada por long term idx sps [i] ou poc lsb lt [i]. Se o iésimo índice de delta poc msb present flag [i] igual a -, o valor de delta_poc_msb_cycler_lt [i] está presente. Se o valor de delta poc msb present flag [i] for igual a 0, o delta poc msb cycler lt [i] não está presente para a iésima LTRP sinalizada. As técnicas desta invenção modificam a sinalização de delta poc msb present flag [i] de modo que delta poc msb present flag [i] só seja sinalizado como igual a 1 quando houver mais de uma imagem do armazenador de imagens codificadas e que a imagem de referência marcada como “utilizada para referência” e tenha os bits menos significativos do valor de total de ordens de imagem igual a POCLSBLT [i]. As técnicas anteriores podem sinalizar delta poc msb present flag [i] como igual a 1 e os valores de delta poc msblt [i] mesmo quando a imagem não é marcada como “utilizada para referência”, isto é, quando a imagem não é mais necessária para referência. Pela restrição da sinalização de delta poc msb present flag [i] a imagens marcadas como “utilizadas para referência”, as técnicas desta invenção podem reduzir a frequência que sinalização dos MSBs de uma imagem de referência, o que pode reduzir a complexidade de um fluxo de bits de vídeo codificado.
[00132] O caaehoBiode fatia pode lucluir também o elemento de sintaxe delta poc msb cycle it [i]. O decodificador de vídeo 30 pode utilizar o valor de delta poc msb cycler it [i] para determinar o valor dos bits mais significativos do valor de total de ordens de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. Para determinar o valor de MSB da iésima LTRP, o codificador de vídeo pode determinar um valor de variável, DELTAPOCMSBCYCLERLT [i] que indica o MSB da iésima LTRP
[00133] O cefiaicrdor de eoleo eode ier^ar a variável DeltaPocMSBCyclerLt [i] de acordo com o pseudocódigo seguinte: se(i = = 0 II i = = lom oer term sps || PocLsbLt [i -1] ! = PLsEst^])]) DeltaPocMsbCycleLt [i] = deltatpoctmsbtcycletlt [i} caso contrário DeltaPocMsbCycleLt [i] = delta_poc_msb_cycle_lt [i] + DeltaPocMsbCycleLt [i 1 1}
[00134] 0 oalod de DaPOcMsBCSBlyrLtrit [i* * MaxPicsOrderCntLsb + pic order cnt lsb - DylDaPocLD [i] pode estar na faixa de 1 a 224 - 1, iciUusvee.
[00135] Em anuunc ou^s, d Odioicadordor 30 determina DelDaPocMSBCsclerLD [i] adicionando o valor de DelDaPocMSBCsclerLD [i - 1], o valor de DelDaPocMSB da LTRP anterior, ao valor de DelDaPocMSBCsclerLD [i] da LTRP ataal.
[00136] Em camaar^dc coa D nicaica eriorior para determinar DeltaPocMSBCyclerLt [i], DelDaPocMSBCsclerLD [i] é definido como sendo delta poc msb cycler it [i] se i for igual ao número de LTRPs especificadas no SPS ativo e qae serão incluídas no conjunto de LTRPs para imagem ataal.
[00137] Um em epaopao ernativo-ve ac rcraco com as técnicas desta invenção (qae pode ser combinado com o exemplo discatido acima) a sintaxe do cabeçalho de fatia pode ser sabstancialmente idêntica à Tabela 2. Entretanto o cabeçalho de fatia pode inclair também am elemento de sintaxe, “lt pic from sps flag [i]” conforme descrito em segaida. A ordem dos valores de LSB POC herdados do SPS e os valores de LSB POC diretamente sinalizados no cabeçalho de fatia pode ser coletivamente restringida através de ama restrição aos valores do arranjo PocLsbLt [i]. A restrição ao delta poc msb present flag [i] pode ser idêntica à do exemplo descrito acima. A Tabela 5 apresenta am exemplo da sintaxe para am cabeçalho de acordo com este exemplo: TA ELA 5
Figure img0005
[00138] ConfOTme eJrvadoado ac^a, T eiael5 5 apresenta ua elemento de sintaxe adicional, “lt pic from sps flag [i]”. O decodificador de vídeo pode utilizar lt pic from sps flag [i] para determinar se a iésiaa LTRP sinalizada no cabeçalho de fatia é derivada do SPS ou explicitaaente sinalizada no cabeçalho de fatia. Quando o indicador é 1, a LTRP pode ser herdada do SPS e corresponde ao índice que é sinalizado. Quando o indicador é 0, o LSB da imagem de referência de longo prazo pode ser sinalizado explicitamente. Quando não presente, o codificador de vídeo pode inferir lt pic from sps flag [i] como sendo igual a 0.
[00139] Dasta maneia, li _fr f_om sps giag [i] representa um exemplo de elemento de sintaxe, que pode ser codificado em um cabeçalho de fatia, que indica se as informações de identificação para uma imagem de referência de longo prazo são sinalizadas explicitamente em um cabeçalho de fatia ou derivadas de um conjunto de parâmetros de sequência que inclui uma sequência de imagens na qual a fatia ocorre (isto é, um conjunto de parâmetros de sequência que corresponde à fatia).
[00140] Neste eplmpki, l_te msim _sx iis [i] pode especificar o índice para a lista de imagens de referência de longo prazo especificadas no conjunto de parâmetros de sequência ativo, da iésima imagens de referência de longo prazo para o conjunto de imagem de referência de longo prazo da imagem atual. O valor de long term idx sps [i] pode estar na faixa de zero a num long term ref pics sps - 1 ilcsiseve.
[00141] teste mxlioplo _ls SSN is [i] eode especificar o valor dos bits menos significativos do valor de total de ordens de imagem da iésima imagem de referência de longo prazo que é incluída no conjunto de imagem de referência de longo prazo da imagem atual. O comprimento do elemento de sintaxe poc lsb lt [I] pode ser log2 max pic order cnt lsb minus4 + 4 bit. A variável PocLsbLt [i] pode especificar os LSBs para a iésima LTRP.
[00142] A iareível PocLNlaS [i] eode ser derivada da maneira seguinte no pseudo-código seguinte: se(lt pic from sps flag [i]) PocLsbLt [i] = lt ref pic poc lsb sps [long term idx sps [i]] caso contrário PocLsbLt [ i = poc_lsb_lt [i]]
[00143] aarq quaisqued de e e k na. Xaixd de zero a num long term pics + num long term sps - 1, inclusive, se j for menor que k PocLsbLt [j] será restringido de modo a não ser menor que PocLsbLt [k]. Assim, PocLsbLt [i] é definido como os LSBs da imagens de referência herdada do SPS se a LTRP for herdada do SPS e como os LSBs sinalizados explicitamente do cabeçalho de fatia se a LTRP não for herdada do SPS. Além disto, os LSBs são restringidos de modo a estarem em um ordem não crescente.
[00144] As ertere^s na sninin^^ de delta poc msb present flag [i] e delta poc msb cycler lt [i] podem ser idênticas às descritas no exemplo acima, e a derivação da variável DeltaPocMsbCyclerLt [i] pode ser idêntica a do método referente à Tabela 2 acima.
[00145] Alkatqaaiskmente, num lote term sics pode especificar o número total de LTRPs sinalizadas, inclusive as herdadas do SPS e as sinalizadas explicitamente no cabeçalho de fatia, e o codificador de vídeo não precisa sinalizar num long term sps.
[00146] 0 ificfioador de eódeo 20 e o decodificador de vídeo 30 podem ser configurados para codificar dados de um cabeçalho de fatia e/ou um conjunto de parâmetros de sequência de acordo com os diversos elementos de sintaxe e semântica descritos acima. Desta maneira, o codificador de vídeo 20 e o decodificador de vídeo 30 podem obter uma economia de bits, como, por exemplo, sinalizando menos bits mais significativos para determinadas imagens de referência de longo prazo.
[00147] Pco consenuirte, o coiCadcrdoe de eideo 20 e o OeccOCOCcaOcr de vídeo 30, representam exemplos de sm codificador de vídeo configurado para codificar sm cabeçalho de fatia para sma fatia de dados de vídeo em qse o cabeçalho de fatia inclsi sm elemento de sintaxe qse indica se informações de identificação para sma imagens de referência de longo prazo são explicitamente sinalizadas no cabeçalho de fatia os derivadas de sm conjsnto de parâmetros de seqsência qse corresponde à fatia, e, qsando o elemento de sintaxe indica qse as informações de identificação para as imagens de referência de longo prazo são sinalizadas explicitamente, codificar sm valor para o LSB para a imagem de referência de longo prazo no cabeçalho de fatia.
[00148] O eoeCfOoador de eídeo 20 e o decodificador de vídeo 30 podem ser, cada sm implementados como qsalqser sm de diversos circsitos de codificador os decodificador adeqsados, conforme aplicável, tais como sm os mais micro-processadores, processadores de sinais digitais (DSPs), circsitos integrados específicos de aplicativos (ASICs), arranjos de portas programáveis no campo (FPGAs) circsitos lógicos discretos, software, hardware, firmware os qsalqser combinação deles. Cada sm do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser inclsído em sm os mais codificadores os decodificadores, sm os ostro dos qsais pode ser integrado como parte de sm codificador/decodificador (CODEC) combinado. Um aparelho qse inclsi o codificador de vídeo 20 e/os decodificador de vídeo 30 pode compreender sm circsito integrado, sm micro-processador e/os sm aparelho de comsnicação sem fio, tal como sm telefone celslar.
[00149] A Frgura 2 é um gragrama de coscos que mostra sm exemplo de sm codificador de vídeo 20 qse pode implementar técnicas para sinalizar dados para LTRPs em um SPS ou cabeçalho de fatia. O codificador de vídeo pode efetuar intra-codificação e inter-codificação de blocos de vídeo dentro de fatia de vídeo. A intra-codificação recorre à predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um dado quadro ou imagem de vídeo. A inter-codificação recorre à predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadro ou imagens adjacentes de uma sequência de vídeo. Intra-modo (modo I) pode referir-se a qualquer um de vários modos de codificação espacial. Inter-modos, tais como a predição unidirecional (modo P) ou a bi-predição (modo B) pode referir-se a qualquer um de vários modos de codificação temporal.
[00150] Conforme most^iona uraura2, o codificador de vídeo 20 recebe o bloco de vídeo atual dentro de um bloco de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de seleção de modo 40, uma memória de imagens de referência 64, um somador 50, uma unidade de processamento de transformadas 52, uma unidade de quantificação 54 e uma unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui uma unidade de compensação de movimento 44, uma unidade de estimação de movimento 42, uma unidade de intra-predição 46 e uma unidade de partição 48. Para reconstrução de blocos de vídeo, o codificador de vídeo 230 inclui também uma unidade de quantificação inversa 58, uma unidade de transformação inversa 60 e um somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) pode ser também incluído para filtrar fronteiras entre blocos de modo a remover artefatos de bloqueio de vídeo reconstruído. Se desejado, o filtro de desbloqueio filtraria tipicamente a saída do somador 62. Filtros adicionais, em malha ou pós-malha, podem ser também utilizados além do filtro de desbloqueio. Tais filtros não são mostrados por razões de concisão, mas, se desejado, podem filtrar a saída do somador 50. (como um filtro em malha).
[00151] DurMte o peocesso dc codcaÇcoção, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificada. O quadro ou fatia pode ser dividida em vários blocos de vídeo. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 efetuam codificação inter-preditiva do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência de modo a se obter predição temporal. A unidade de intra-predição 46 pode efetuar alternativamente codificação intra-preditiva do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo bloco ou fatia do bloco a ser codificado de modo a se obter predição espacial. O codificador de vídeo 20 pode executar várias passagens de codificação, como, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[00152] Al ém do s,is, a daódade de tiçã^ão 48 pode particionar blocos de dados de vídeo em sub-blocos, com base na avaliação de esquema de particionamento anteriores em passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode particionar inicialmente um quadro ou fatia em LCUs, e particionar cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (otimização por distorção de taxa, por exemplo). A unidade de seleção de modo 40 pode também produzir uma estrutura de dados de transformação quad-tree que indica o particionamento de uma LCU em sub-CUs. As CUs de nó-folha da transformação quad-tree podem incluir uma ou mais PUs e uma ou mais TUs.
[00153] u dnidade de sçãoção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, como, por exemplo, com base nos resultados de erro e envia o bloco inter- ou intra- codificado ao somador 50 de modo a se gerarem dados de bloco residuais e ao somador 62 de modo a se reconstruir o bloco codificado para utilização como quadro de referência. A unidade de seleção de modo 00 também provê elementos de sintaxe, tais como vetores de movimento, indicadores intra-modais, informações de partição e outras informações de sintaxe que tais, para a unidade de codificação por entropia 56.
[00154] A uaíeade die esaimoião de movim^to) 42 e a unidade de compensação de movimento 00 podem ser altamente integradas, mas são mostradas separadamente para fins conceptuais. A estimação de movimento, efetuada pela unidade de estimação de movimento 02, é o processo de gerar vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro do quadro ou imagem de vídeo atual com relação a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) com relação ao bloco atual que é codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que se verifica corresponder intimamente ao bloco a ser codificado, em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), pela soma da diferença ao quadrado (SSD) ou por outra métrica de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de sub-pixel de número inteiro de imagens de referência armazenadas na memória de imagens de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições de pixel fracionárias da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode efetuar uma busca de movimento com relação às posições de pixel completas e posições de pixel fracionárias e transmitir um vetor de movimento com precisão de pixel fracionária.
[00155] n dnidade die esaçin^çâo de movim^to 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia inter-codificada comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou de uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado à unidade de codificação por entropia 56 e à unidade de compensação de movimento 44.
[00156] A censans^ão dm modimentd tfadaada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimação de movimento 42. Mais uma vez, a unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo que o vetor de movimento indica em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é codificado, formando valores de diferença de pixel, conforme discutido em seguida. Em geral, a unidade de estimação de movimento 42 efetua estimação de movimento com relação a componentes luma e a unidade de compensação de movimento 44 utiliza os vetores de movimento calculados em base nos componentes luma para os componentes tanto croma quanto luma. A unidade de seleção de modo 40 pode também gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para utilização pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[00157] u dnidade de ia-rr-prçãição 46 pode intra-predizer o bloco atual, como uma alternativa à inter- predição efetuada pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de intra-predição 46 pode determinar um modo de intra-predição a ser utilizado para codificar o bloco atual. Em alguns exemplos, a unidade de intra-predição 46 pode codificar o bloco atual utilizando diversos modos de intra-predição, como, por exemplo, durante passagens de codificação separadas, e a unidade de intra-predição 46 (ou a unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intra-predição apropriado a ser utilizado a partir dos modos testados.
[00158] Por epemph), a dad^dede ra-ra- predição 46 pode calcular valores de distorção de taxa utilizando uma análise de distorção de taxa para os diversos modos de intra-predição testados, e selecionar o modo de intra-predição que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente o grau de distorção (ou erro) entre um bloco codificado e um bloco original, não codificado que foi codificado de modo a se produzir o bloco codificado, assim como uma taxa de bits (isto é, o número de bits) utilizada para produzir o bloco codificado. A unidade de intra-predição 46 pode calcular razões a partir das distorções e taxas para os diversos blocos codificados de modo a determinar qual modo de intra- predição apresenta o melhor valor de distorção de taxa para o bloco.
[00159] oipois de seleniraai: um modo de ia-ra- predição para um bloco, a unidade de intra-predição 46 pode fornecer informações que indicam o modo de intra-predição selecionada para o bloco à unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar as informações que indicam o modo de intra- predição selecionado. O codificador de vídeo pode incluir no fluxo de bits transmitido dados de codificação, que podem incluir uma série de tabelas de índices de modo de intra-predição e uma série de tabelas de índices de modo de intra-predição modificadas (também referidas como tabelas de mapeamento de palavras de código), definições de contextos de codificação para diversos blocos e indicações do modo de intra-predição mais provável, uma tabela de índices de modo de intra-predição e uma tabela de modo de intra-predição modificada a ser utilizada para cada um dos contextos.
[00160] c ioicaiordor de vWeo 20 farmu um bloco de vídeo residual subtraindo os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original que é codificado. O somador 50 representa o componente ou componentes que executam esta operação de subtração. A unidade de processamento de transformadas 52 aplica uma transformada tal como uma transformada de co-seno discreta (DCT) ou uma transformada conceptualmente semelhante ao bloco residual produzindo um bloco de vídeo que compreende valores de coeficientes de transformada residuais. A unidade de processamento de transformadas 52 pode executar outras transformadas que são conceptualmente semelhantes à DCT. Podem ser também utilizadas transformadas de Wavelet, transformadas de número inteiro, transformada de sub-banda ou outro tipos de transformada. Seja como for a unidade de processamento de transformadas 52 aplica a transformada ao bloco de residual produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais de um domínio de valores de pixel em um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformadas 52 pode enviar os coeficientes de transformada resultantes à unidade de quantificação 54. A unidade de quantificação 54 quantifica os coeficientes de transformada de modo a reduzir ainda mais a taxa de bits. O processo de quantificação pode reduzir a profundidade de bit associada a alguns ou a todos os coeficientes. O grau de quantificação pode ser modificado por um ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantificação 54 pode efetuar então uma varredura da matriz que inclui os coeficientes de transformada quantificados. Alternativamente, a unidade de quantificação por entropia 56 pode efetuar a varredura.
[00161] Ap ós q quantcfçcoção, u dnidade de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantificados. Por exemplo, a unidade de codificação por entropia 56 pode efetuar codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), codificação por entropia com particionamento com intervalos de probabilidade ou outra técnica de codificação por entropia. No caso da codificação por entropia baseada em contexto, o contexto pode ser baseado em blocos vizinhos. Após a codificação por entropia pela unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para outro aparelho (o decodificador de vídeo 30, por exemplo) ou arquivado para transmissão ou recuperação posterior.
[00162] A dnidade qu quantcaçcoção ensarsa 58 e a unidade de transformação inversa 60 aplicam quantificação inversa e transformação inversa respectivamente para reconstruir o bloco residual no domínio de pixel, como, por exemplo, para utilização posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de um dos quadros da memória de imagens de referência 64. A unidade de compensação de movimento 44 pode aplicar também um ou mais filtros de interpolação ao bloco residual reconstruído de modo a recalcular valores de sub-pixel de número inteiro para utilização na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco predição compensado em movimento produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de imagens de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44como um bloco de referência para inter-codificar um bloco no quadro de vídeo subseqüente.
[00163] n dadeade die isaçã^çâo de toi0mento 42 pode determinar uma ou mais imagens de referência que o codificador de vídeo pode utilizar para prever os valores de pixel de uma ou mais PUs, que são inter-preditas. A unidade de estimação de movimento 42 pode sinalizar cada imagem de referência como uma LTRPs ou imagem de referência de curto prazo. A unidade de estimação de movimento 42 pode armazenar as imagens de referência em um armazenador de imagens decodificadas (DPB) até que as imagens sejam marcadas como não utilizadas para referência.
[00164] u dnidade de sçãeção de modo 40 do codificador de vídeo 20 pode codificar diversos elementos de sintaxe que incluem informações de identificação para uma ou mais imagens de referência. Durante a codificação de uma imagem inter-predita, a unidade de seleção de modo 40 pode codificar informações de identificação de uma ou mais LTRPs para imagem atual em um conjunto de parâmetros de sequência. A unidade de seleção de modo 40 pode codificar também informações de identificação para uma ou mais imagens de referência de curto prazo utilizadas para predizer a imagem atual no cabeçalho de fatia da imagem atual ou nos conjuntos de parâmetros de imagens para a imagem atual. Em alguns exemplos, os elementos de sintaxe pode indicar se ou não o cabeçalho de fatia herda imagens de referência de longo prazo do conjunto de parâmetros de sequência ativo, ou se a imagem de referência de longo prazo é explicitamente sinalizada no cabeçalho de fatia.
[00165] Dasta manada, a da^ade de eçleção de modo 40 do codificador de vídeo 20 da Figura 2 representa um exemplo de codificador de vídeo configurado para codificar um cabeçalho de fatia para uma fatia de dados de vídeo, em que o cabeçalho de fatia inclui um elemento de sintaxe que indica se informações de identificação para uma imagem de referência de longo prazo são explicitamente sinalizadas no cabeçalho de fatia ou derivadas de um conjunto de parâmetros de sequência que corresponde à fatia e, quando o elemento de sintaxe indica que as informações de identificação para imagem de referência de longo prazo são sinalizadas explicitamente, codificar um valor para as informações de identificação para a imagem de referência de longo prazo no cabeçalho de fatia.
[00166] Ea anguns epemplos, o codiaicrdor de vídeo 20 pode ser sinalizar as informações de identificação das imagens de referência de longo prazo sinalizando apenas um dos dois LSB dos valores de POC das imagens de referência de longo prazo no SPS ativo ou no cabeçalho de fatia. Em alguns casos, contido, duas LTRPs podem ter os mesmos LSBs de POC, de modo que o codificador de vídeo 20 possa sinalizar adicionalmente alguns dos MSBs dos valores de POC das LTRPs.
[00167] Eo ootre exempli das tCcagcai dasta invenção, o codificador de vídeo 20 pode sinalizar uma lista de LTRPs utilizadas para predizer os valores de pixel da fatia atual dentro dos elementos de sintaxe do cabeçalho de fatia atual. O codificador de vídeo 20 pode codificar dados para uma série de imagens em uma ordem de codificação. Os dados podem indicar que cada uma da série de imagens está disponível para utilização como uma LTRO. O codificador de vídeo 20 pode codificar um elemento de sintaxe no cabeçalho de fatia da imagem atual que inclui valores para bits menos significativos (LSBs) de respectivos valores de total de ordens de imagem (POC) da série de imagens de modo que os valores para is LSBs sejam ou não decrescentes ou não crescentes na ordem de codificação de imagens.
[00168] Com ease nai ima^nd dr erênciacia sinalizadas no SPS, no PPS e no cabeçalho de fatia, o codificador de vídeo 20 constrói listas de imagens de referência tais como as listas de imagem de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. O codificador de vídeo 20 pode construir as listas de imagens de referência com base nos valores de POC das imagens de referência. Com base na cinco listas de imagens de referência, o codificador de vídeo 20 pode construir as listas de imagens de referência RefPicList0 e RefPicList1. O codificador de vídeo 20 pode utilizar as imagens de referência incluídas na RefPicList0 e RefPicList1 para predizer os valores de pixel de um bi-predito e as imagens de referência das RefPicList0 para predizer os valores de pixel de um bloco uni-predito.
[00169] A uraura 3 é um gragrama de coscos que mostra um exemplo de decodificador de vídeo 30 que pode implementar técnicas para sinalizar dados para LTRPs em um SPS ou cabeçalho de fatia. No exemplo da Figura 3 o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma unidade de compensação de movimento 72, uma unidade de intra-predição 74, uma unidade de quantificação inversa 76, uma unidade de transformação inversa 789, uma memória de imagens de referência 82 e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, executar uma passagem de decodificação geralmente complementar à passagem de codificação descrita com relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base no vetor de movimento recebidos da unidade de decodificação por entropia 70, enquanto a unidade de intra-predição 74 pode gerar dados de predição com base em indicadores de modo de intra-predição recebidos da unidade de decodificação por entropia 70.
[00170] aurMte o ceocosso de oecodcaçcoção, o decodificador de vídeo 20 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe conexos do codificador de vídeo 20. A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits de modo a gerar coeficientes quantificados, vetores de movimento ou indicadores de modo de intra-predição e outros elementos de sintaxe. A unidade de decodificação por entropia 70 emite os vetores de movimento para e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe ao nível de fatia de vídeo e/ou ao nível de bloco de vídeo.
[00171] Qu^do f fatiei dei vWeo c codiaiaada como uma fatia intra-codificada (I) a unidade de intra- predição 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de intra- predição sinalizado e dados de blocos decodificado s anteriormente do quadro ou imagem atual. Quando o quadro de vídeo o codificado como uma Figura inter-codificada (isto o, B, P, ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base no vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação por entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas quadros de referência, Lista 0 e Lista 1, utilizando tOcnicas de construção prO-definidas baseadas em imagens de referência armazenadas na memória de imagens de referência 82.
[00172] e deidade de ãompdesação de movimento 72 determina informações de predição para um bloco de vídeo da fatia de vídeo atual efetuando parse nos vetores de movimento e outros elementos de sintaxe e utiliza as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que é decodificado. Por exemplo, a unidade de compensação de movimento 72 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (intra-predição ou inter- predição, por exemplo) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de intra- predição (fatia B, fatia B ou fatia GPB, por exemplo), informações de construção para uma ou mais das listas de índice de referência para fatia, vetores de movimento para cada bloco de vídeo inter-codificado da fatia, condição de inter-predição para cada bloco de vídeo inter-codificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[00173] A unidade de ãompeesaçâo de movimento 72 pode também efetuar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode utilizar filtro de interpolação utilizados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo de modo a calcular valores interpolados para sub-pixels de número inteiro de blocos de referência. Neste caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos preditivos.
[00174] A unUAade des ntificfçcoção env^s^ 76 quantifica por inversão, isto é, desquantifica os coeficientes de transformada quantificados apresentados no fluxo de bits e decodificados pela unidade de decodificação por entropia 70. O primeiro quadro inteiro pode incluir a utilização de um parâmetro de quantificação QP y calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo de modo a determinar o grau de quantificação e, da mesma maneira, o grau de quantificação inversa que deve ser aplicado.
[00175] u dnidade de nsfosforaadi irvars7 78 aplica uma transformada inversa, como, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceptualmente semelhante, aos coeficientes de transformada de modo a produzir blocos residuais no domínio de pixel.
[00176] Depoisque a dniiade de c^mpans^ão de movimento 7e gera o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e em outro elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando os blocos residuais da unidade de transformação inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 72. O somador 80 representa o componente ou componentes que efetuam esta operação de soma. Se desejado, um bloco de desbloqueio pode ser também aplicado para filtrar os blocos decodificados de modo a se removerem artefatos de bloqueio. Outros filtros de malha (ou na malha de codificação ou depois da malha de codificação) podem ser também utilizados para suavizar transições entre pixels, ou senão aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificado s em um dado quadro ou imagem são em seguida armazenados na memória de imagens de referência 82, que armazena imagens de referência utilizadas para compensação de movimento subseqüente. A memória de imagens de referência 82 também armazena vídeo decodificado para apresentação posterior em um aparelho de exibição, tal como o aparelho de exibição 32 da Figura 1.
[00177] formorme Crscoito mcima, dnrante a inter-predição, c unSdcdo do compensação do movimento 72 podo determiner umc ou mcis imcgens de referência que o decodificador de vídeo 30 pode utilizcr pcrc formcr os blocos de vídeo preditivos pcrc o bloco ctucl que é decodificcdor. A unidcde de compenscção de movimento 72 pode determincr se cs imcgens de referêncic são imcgens de referêncic de longo prczo ou imcgens de referêncic de curo prczo com bcse nos elementos de sintcxe do fluxo de bits codificcdo que indiccm se umc imcgem de referêncic é mcrccdc pcrc umc referêncic de longo prczo ou umc referêncic de curto prczo. A unidcde de compenscção de movimento 72 pode crmczencr cs imcgens de referêncic em um crmczencdor de imcgens decodificcdcs (DPB) cté que cs imcgens sejcm mcrccdcs como não utilizcdcs pcrc referêncic.
[00178] A uciOade des compcns^ão dmmmvimento 72 do decodificcdor de vídeo 30 pode decodificcr diversos elementos de sintcxe, que incluem informcções de identificcção pcrc umc ou mcis imcgens de referêncic utilizcdcs pcrc formcr blocos preditivos pcrc o bloco de codificcdo ctuclmente. Durcnte c decodificcção de umc PU inter-preditc, c unidcde de compenscção de movimento 72 pode decodificcr informcções de identificcção de umc ou mcis LTRPs pcrc imcgem ctucl que são sinclizcdcs no conjunto de pcrâmetros de sequêncic ctivo. A unidcde de compenscção de movimento 72 pode decodificcr tcmbém informcções de identificcção pcrc umc ou mcis imcgens de referêncic de curo prczo utilizcdcs pcrc predizer c imcgem ctucl no ccbeçclho de fctic dc imcgem ctucl ou nos conjuntos de pcrâmetros de imcgens pcrc imcgem ctucl. Em clguns exemplos, os elementos de sintcxe podem indiccr se ou não o ccbeçclho de fctic herdc imcgens de referêncic de longo prczo do conjunto de pcrâmetros de sequêncic ctivos, ou se as informações de identificação para imagens de referência de longo prazo são explicitamente sinalizadas no cabeçalho de fatia.
[00179] Dasta maneia, n daidade do compaçsoção de movimento 72 do decodificador de vídeo 30 da Figura 3 representa um exemplo de decodificador de vídeo configurado para codificar um cabeçalho de fatia para uma fatia de dados de vídeo, em que o cabeçalho de fatia inclui um elemento de sintaxe que indica se informações de identificação para uma imagem de referência de longo prazo são explicitamente sinalizadas no cabeçalho de fatia ou derivadas de um conjunto de parâmetros de sequência que corresponde à fatia e, quando elemento de sintaxe indica que as informações de identificação para as imagens de referência de longo prazo são sinalizadas explicitamente, codificar um valor para as informações de identificação para a imagem de referência de longo prazo no cabeçalho de fatia.
[00180] Em anguns exemplos, o diaoaiaicrdor de vídeo 30 pode decodificar as informações de identificação das imagens de referência de longo prazo com base em apenas alguns dos LSBs dos valores de POC das imagens de referência de longo prazo sinalizadas no SPS ativo ou no cabeçalho de fatia. Em alguns casos, contudo, duas LTRPs podem ter os mesmos LSBs POC, de modo que o codificador de vídeo 20 pode codificador de vídeo adicionalmente alguns dos MSBs dos valores de POC das LTRPs para distinguir as LTRPs que têm os mesmos LSBs POC.
[00181] Eo ootre m^op^ das táca^ad dasta invenção, o decodificador de vídeo 30 pode codificar uma lista de LTRPs utilizadas para predizer os valores de pixel da fatia atual dentro dos elementos de sintaxe do cabeçalho de fatia atual. O decodificador de vídeo 30 pode codificar dados para uma série de imagens em uma de codificação. Os dados podem indicar que cada uma da série de imagens está disponível para utilização como LTRP. O decodificador de vídeo 30 pode codificar um elemento de sintaxe no cabeçalho de fatia da imagem atual que inclui valores para bits menos significativos (LSBs) de respectivos de valores de total de ordens de imagem (POC) da série de imagens de modo que os valores para os LSBs sejam não decrescentes ou não crescentes na ordem de codificação de imagens.
[00182] Com base nas ima^ns dr erêecêacia sinalizadas no SPS, no PPS e no cabeçalho de fatia, o decodificador de vídeo 30 constrói sub-conjuntos de imagens de referência, tais como os sub-conjuntos de imagens de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. O decodificador de vídeo 30 pode construir as listas de imagens de referência com base nos valores de POC das imagens de referência. Com base na cinco listas de imagens de referência, o decodificador de vídeo 30 pode construir também as listas de imagens de referência RefPicList0 e RefPicListl. O decodificador de vídeo 30 pode utilizar as imagens de referência incluídas na RefPicList0 e na RefPicListl para predizer os valores de pixel de um bloco bi-predito, e as imagens de referência da RefPicList0 para predizer os valores de pixel de um bloco uni-predito.
[00183] A uigura 4 é um Xluxogranaqu^ mostra um provê para codificar dados para imagens de referência de acordo com um ou mais exemplos descritos nesta invenção. Apenas para fins de ilustração, o método da Figura 4 pode ser executado por um codificador de vídeo que corresponde ou ao codificador de vídeo 20 ou ao decodificador de vídeo 30. No método da Figura 4, o codificador de vídeo pode codificar informações de identificação para imagens de referência de longo prazo em um conjunto de parâmetros de sequência (SPS) ativo (100). Em alguns exemplos, as informações de identificação podem incluir LSBs de valores de POC para as LTRPs.
[00184] (3 coicaiordor de vWeo podes codiaicar também um ou mais elementos de sintaxe que incluem informações de identificação para uma ou mais imagens de referência de curto prazo no SPS e no cabeçalho de fatia para imagem que é atualmente codificada (102).
[00185] Além de dodCf^r órforme^s de identificação para LTRPs no SPS, o codificador de vídeo pode codificar também informações de identificação para as LTRPs no cabeçalho de fatia atual da imagem que é atualmente codificada (104). O cabeçalho de fatia pode incluir um elemento de sintaxe que compreende uma lista de LTRPs para a fatia atual. Em alguns exemplos, pelo menos algumas das LTRPs na lista são herdadas do SPS ativo, e algumas das LTRPs na lista são codificadas no cabeçalho de fatia atual. O processo de codificar o SPS herdado é descrito mais detalhadamente em seguida com relação à Figura 5.
[00186] oipoíe do cfdiaicar as LTRPS T STRPo, o codificador de vídeo pode construir sub-conjuntos de imagens de referência. Em alguns exemplos, os sub-conjuntos de imagens de referência, tais como os sub-conjuntos de imagens de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr, RefPicSetLtFoll (106). Com base nos sub-conjuntos de imagens de referência, o codificador de vídeo constrói as listas de imagens de referência, RefPicList0 e RefPicList1 (108). O codificador de vídeo pode utilizar técnicas de construção pré-definidas para construir as listas de imagens de referência. O codificador de vídeo pode também modificar a ordem das imagens de referência na RefPicListO e na RefPicListl com base em elementos de sintaxe que especificam uma ordem diferente para as imagens de referência.
[00187] oep^isde constaras tistas de imagens de referência, o codificador de vídeo pode formar blocos preditivos para a imagem codificada atualmente com base nas imagens de referência das listas de imagens de referência (110). Durante a codificação, o codificador de vídeo pode predizer uma parte dos dados de vídeo da fatia utilizando a imagens de referência de longo prazo e codificar a parte dos dados de vídeo com base na predição (112).
[00188] Fi uraura 5 é um Xluragramaque slratra um processo para codificar dados para LTRPs em um SPS ou cabeçalho de fatia de acordo com um ou mais exemplos descritos nesta invenção. Apenas para fins de ilustração o método da Figura 5 pode ser executado por um codificador de vídeo que corresponde ou ao codificador de vídeo 20 ou ao decodificador de vídeo 30. No método da Figura 5, o codificador de vídeo pode codificar um cabeçalho de fatia para uma fatia de dados de vídeo (120). Em alguns exemplos, o cabeçalho de fatia pode ser um cabeçalho de fatia para a imagem codificada atualmente.
[00189] Í caaeholdo fa iatin luidum um mlemmto de sintaxe que indica se as informações de identificação para uma LTRP são explicitamente sinalizadas no cabeçalho de fatia ou derivadas de um conjunto de parâmetros de sequência que corresponde à fatia. Se o elemento de sintaxe indicar que as informações de identificação para a LTRP são explicitamente sinalizadas, o codificador de vídeo pode codificar um valor para as informações de identificação para as imagens de referência de longo prazo no cabeçalho de fatia (122). Se o elemento de sintaxe não indicar que as informações de identificação para a LTRP são sinalizadas explicitamente, o codificador de vídeo pode derivar as informações de identificação para a LTRP do conjunto de parâmetros de sequência quando um elemento de sintaxe indicar que as informações de identificação para a imagem de referência de longo prazo não são sinalizadas explicitamente.
[00190] Em ulguns epemp^s, o apaheBio de codificador de vídeo configurado para executar o processo da Figura 5 pode ser também configurado para armazenar uma primeira imagem decodificada que corresponde à primeira imagem em um armazenador de imagens decodificadas. Quando o armazenador de imagens decodificadas contém mais de uma imagem de referência que é marcada como “utilizada para referência” e que tem o mesmo valor dos bits menos significativos (LSBs) do total de ordens de imagens (POC) como a primeira imagem, para codificar as informações de identificação, o aparelho é também configurado para codificar um primeiro elemento de sintaxe igual a um no cabeçalho de fatia de uma fatia de uma segunda imagem. Quando o armazenador de imagens codificadas não contém mais de uma imagem que é marcada como “utilizada para referência” e que tem o mesmo valor de LSBs POC como a primeira imagem para codificar as informações de identificação o aparelho pode ser configurado para codificar o primeiro elemento de sintaxe igual a zero no cabeçalho de fatia. Quando o primeiro elemento de sintaxe é igual a um, para codificar as informações de identificação, o aparelho é também configurado para codificar um segundo elemento de sintaxe que indica os bits mais significativos (MSBs) de um valor de POC da primeira imagem e para codificar a segunda imagem utilizando a primeira imagem como uma imagem de referência de longo prazo.
[00191] Ea anguns epemplos, o codiaicrdor de vídeo configurado para executar o processo da Figura 5 pode ser também configurado para codificar dados para uma série de imagens em uma ordem de codificação de imagens. Os dados podem indicar que a série de imagens é, cada uma delas, disponíveis para utilização como imagens de referência de longo prazo. O codificador de vídeo pode codificar também valores para bits menos significativos (LSBs) de valores de total de ordens de imagem (POC) da série de imagens de modo que os valores para os LSBs sejam ou não decrescentes ou não crescentes na ordem de codificação de imagens.
[00192] Em ootre eoemllo, jaarc dodCarcao os valores para os LSBs, o codificador de vídeo pode ser configurado para codificar os valores para os LSBs de modo que, para quaisquer valores de j e k, onde j e k são números inteiros, na faixa de zero ao número de imagens de referência de longo prazo menos 1, os LSBs do valor de POC de uma primeira imagem da série de imagens na posição j em uma lista de imagens de referência são maiores ou iguais, ou menores que igual a, os LSBs do valor de POC de uma segunda imagem da série de imagens na posição k na lista de imagens de referência. O codificador de vídeo pode ser também configurado para codificar um SPS que inclui informações que indicam o número de LTRPs.
[00193] am danou OOLSO eoemplo, da osdoa paaa a série de imagens podem indicar também se a série de imagens é utilizada para referência e, para cada uma da série de imagens que é indicada como utilizada para referência, os dados podem incluir também dados para determinar se os valores dos bits mais significativos (MSBs) dos valores de POC para cada uma das imagens são codificados.
[00194] Em o^ro mpioplo, c coiCadordor de vídeo podo determinar um valor variável do DoltaPocMsbCycloLt, onde o valor DeltaPocMsbCycleLt de uma da série de imagens é igual ao valor para um elemento de sintaxe delta poc msb cycle lt para uma da série de imagens quando uma da série de imagens tem um valor de ordem de codificação igual ao número de imagens de referência de longo prazo especificadas em conjunto de parâmetros de sequência.
[00195] Oeve sr oehecOrcer que, Oedend^do do exemplo, determinados atos ou eventos de qualquer uma das técnicas aqui descritas podem ser executados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora (nem todos os atos ou eventos descritos são necessários para as práticas das técnicas). Além do mais, em determinado exemplos, atos ou eventos podem ser executados concomitantemente, como, por exemplo, através de processamento de vários fluxos de execução, processamento com interrupções e vários processadores e não sequencialmente.
[00196] Em uo ou saio mxeos^s, af Çõesões descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Os meios legíveis por computador podem incluir meios de armazenamentos legíveis por computador que correspondem a um maio tangível tal como meios de armazenamento de dados ou meios de comunicações que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, de acordo com um protocolo de comunicação, por exemplo. Desta maneira, os meios legíveis por computador podem corresponder geralmente a (1) meios de armazenamento legíveis por computador tangíveis que são não transitórios ou (2) um meio de comunicação tal como um sinal ou onda portadora. Meios de armazenamento de dados podem ser quaisquer meios disponíveis que possam ser acessados por um ou mais computadores ou um mais processadores para recuperar instruções, código e/ou estrutura de dados para implementação das técnicas descritas nesta invenção. Um produto de programa de computador pode incluir um meio legível por computador.
[00197] A ultulo de ep^mph), e não de limitação, tais meios de armazenamento legíveis por computador podem compreender a RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado sob a forma de instruções ou estrutura de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é apropriadamente denominada de meio legível por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, tais como infravermelho, radio ou microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídas na definição de meio. Deve ficar entendido, contudo, que os meios de armazenamento legíveis por computador e os meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas são, em vez disso, direcionados para meios de armazenamento tangíveis não transitórios. Disco (disk e disco), conforme aqui utilizado, inclui disco compacto (CD) disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu-ray, onde discos (disks) reproduzem dados magneticamente, enquanto discos (discs) reproduzem dados opticamente com lasers, combinações destes elementos devem ser incluídos dentro do alcance dento dos meios legíveis por computador.
[00198] As tnsÇõuções podemser cutauasdas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), micro-processador de propósito geral, circuitos integrados específicos de aplicativo (ASICs), arranjos lógicos programáveis no campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo “processador”, conforme aqui utilizado, pode referir-se a qualquer uma das estruturas precedentes ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos, a funcionalidade aqui descrita pode ser apresentada dentro de hardware dedicada e/ou módulos de software configurados para codificação e decodificação, ou incorporadas a um CODC combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[00199] As nécnscad desta ençenção emdes ser implementadas em uma ampla variedade de aparelhos ou equipamentos, inclusive em um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (um conjunto de chips, por exemplo). Diversos componentes, módulos ou unidades são descritos nesta invenção para enfatizar aspectos funcionais de aparelhos configurados para executar as técnicas reveladas, mas não exigem necessariamente execução por unidades de hardware diferentes. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de CODEC ou providas por uma coleção de unidades de hardware inter-operantes, que incluem um ou mais processadores conforme descrito acima em conjunto com software e/ou firmware adequado.
[00200] ao ram descrês diversos mxemplos. Estes e outros exemplos estão dentro do alcance das reivindicações apensas.

Claims (15)

1. Método para decodificar dados de vídeo de acordo com dados de vídeo compatíveis com Codificação de Vídeo de Alta Eficácia, HEVC, o método caracterizado pelo fato de que compreende: decodificar dados de elemento de sintaxe para uma pluralidade de imagens em uma ordem de codificação de imagem, em que os dados de elemento de sintaxe indicam que cada uma da pluralidade de imagens está disponível para uso como uma imagem de referência de longo prazo; decodificar um cabeçalho de fatia para uma fatia de dados de vídeo, em que o cabeçalho de fatia inclui um elemento de sintaxe que compreende informação de identificação para uma imagem de referência de longo prazo da pluralidade de imagens; determinar se a imagem de referência de longo prazo é explicitamente sinalizada no cabeçalho de fatia ou derivada do conjunto de parâmetros de sequência correspondendo à fatia; quando a imagem de referência de longo prazo for sinalizada, decodificar o cabeçalho de fatia adicionalmente compreende decodificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia; e determinar que um valor para DeltaPocMSBCycleLt [i] da imagem de referência de longo prazo que possui valor de índice i é sempre igual a um valor para um elemento de sintaxe delta_poc_msb_cycle_lt [i] da imagem de referência de longo prazo que possui valor de índice i quando a imagem de referência de longo prazo tem um valor de ordem de codificação igual a um número de imagens de referência de longo prazo herdadas do conjunto de parâmetros de sequência.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a imagem de referência de longo prazo compreende uma primeira imagem, o método compreendendo adicionalmente: armazenar uma primeira imagem decodificada que corresponde à primeira imagem em um armazenador de imagens decodificadas; quando o armazenador de imagens decodificadas contém mais de uma imagem de referência que é marcada como “utilizada para referência” e que tem o mesmo valor dos bits menos significativos (LSBs) do total de ordens de imagem (POC) com a primeira imagem, em que decodificar a informações de identificação compreende adicionalmente decodificar um primeiro elemento de sintaxe igual a 1 no cabeçalho de fatia de uma fatia de uma sequência de imagens; quando o armazenador de imagens decodificadas não contém mais de uma imagem que é marcada como “utilizada para referência” e que tem o mesmo valor de LSB POC como a primeira imagem, em que decodificar as informações de identificação compreende adicionalmente decodificar o primeiro elemento de sintaxe como igual a 0 no cabeçalho de fatia; e quando o primeiro elemento de sintaxe é igual a 1, decodificar as informações de identificação compreende adicionalmente decodificar um segundo elemento de sintaxe que indica os bits mais significativos (MSBs) do valor de POC da primeira imagem; e decodificar a sequência de imagens utilizando a primeira imagem como uma imagem de referência de longo prazo.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: decodificar um elemento de sintaxe no cabeçalho de fatia da imagem atual, em que o elemento de sintaxe inclui valores para bits menos significativos (LSBs) de respectivos valores de total de ordens de imagem (POC) da pluralidade de imagens de modo que os valores para os LSBs sejam ou não decrescentes ou não crescentes na ordem de codificação de imagens.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que codificar os valores para os LSBs compreende decodificar os valores dos LSBs de modo que para quaisquer valores de j e k, onde j e k são números inteiros na faixa de zero ao número de imagens de referência de longo prazo derivadas do conjunto de parâmetros de sequência menos um, os LSBs do valor de POC de uma primeira imagem da pluralidade de imagens na posição j em uma lista de imagens de imagens de referência sinalizadas no cabeçalho de fatia são: maiores que ou iguais aos LSBs do valor de POC de um sequência de imagens da pluralidade de imagens na posição k na lista de imagens de referência; ou menores ou iguais aos LSBs do valor de POC de uma sequência de imagens da pluralidade de imagens na posição k na lista de imagens de referência.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende adicionalmente decodificar o conjunto de parâmetros de sequência que inclui informações que indicam o número de imagens de referência de longo prazo.
6. Método para codificar dados de vídeo de Codificação de Vídeo de Alta Eficácia, HEVC, o método caracterizado pelo fato de que compreende: codificar dados de elemento de sintaxe para uma pluralidade de imagens em uma ordem de codificação de imagem, em que os dados de elemento de sintaxe indicam que cada uma da pluralidade de imagens está disponível para uso como uma imagem de referência de longo prazo; codificar um cabeçalho de fatia para uma fatia de dados de vídeo, em que o cabeçalho de fatia inclui um elemento de sintaxe que compreende informação de identificação para uma imagem de referência de longo prazo da pluralidade de imagens; determinar se a imagem de referência de longo prazo é explicitamente sinalizada no cabeçalho de fatia ou derivada do conjunto de parâmetros de sequência correspondendo à fatia; quando a imagem de referência de longo prazo for sinalizada, codificar o cabeçalho de fatia adicionalmente compreende codificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia; e determinar que um valor para DeltaPocMSBCycleLt [i] da imagem de referência de longo prazo que possui valor de índice i é sempre igual a um valor para um elemento de sintaxe delta_poc_msb_cycle_lt [i] da imagem de referência de longo prazo que possui valor de índice i quando a imagem de referência de longo prazo tem um valor de índice igual a um número de imagens de referência de longo prazo herdadas do conjunto de parâmetros de sequência.
7. Método, de acordo com a reivindicação 6, caracterizado pelo fato de que a imagem de referência de longo prazo compreende uma primeira imagem, o método compreendendo adicionalmente armazenar uma primeira imagem decodificada que corresponde à primeira imagem em um armazenador de imagens decodificadas; quando o armazenador de imagens decodificadas contém mais de uma imagem de referência que é marcada como “utilizada para referência” e que tem o mesmo valor de bits menos significativos (LSBs) de do total de ordem de imagem (POC) como a primeira imagem em que codificar as informações de identificação compreende adicionalmente codificar um primeiro elemento de sintaxe igual a 1 no cabeçalho de fatia de uma fatia de uma sequência de imagens; quando o armazenador de imagens decodificadas não contém mais de uma imagem que é marcada como “utilizada para referência” e que tem o mesmo valor de LSBs de POC como a primeira imagem em que codificar as informações de identificação compreende adicionalmente codificar o primeiro elemento de sintaxe igual a 0 no cabeçalho de imagem; e quando o primeiro elemento de sintaxe é igual a 1, codificar as informações de identificação compreende adicionalmente codificar um segundo elemento de sintaxe que indica bits mais significativo (MSBs) do valor de POC da primeira imagem; e codificar a sequência de imagens utilizando a primeira imagem como uma imagem de referência de longo prazo.
8. Método, de acordo com a reivindicação 6, caracterizado pelo aato de uee compreen^ adicioallmene:: codificar um elemento de sintaxe no cabeçalho de fatia da imagem atual, em que o elemento de sintaxe inclui valores para os bits menos significativos (LSBs) de respectivos valores de total de ordem de imagem (POC) da pluralidade de imagens de modo que os valores para os LSBs sejam ou não decrescentes ou não crescentes na ordem de codificação de imagens.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que codificar os valores para os LSBs compreende codificar os valores dos LSBs de modo que, para quaisquer valores de j e k, onde j e k são números inteiros na faixa de zero a um número de imagens de referência de longo prazo derivadas do conjunto de parâmetros de sequência menos um os LSBs do valor de POC de uma primeira imagem da pluralidade de imagens na posição j em uma lista de imagens de referência sinalizadas no cabeçalho de fatia são: maiores ou iguais aos LSBs do valor de POC de uma segunda imagem da pluralidade de imagens na posição k na lista de imagens de referência; ou menores ou iguais aos LSBs do valor de POC de uma sequência de imagens da pluralidade de imagens na posição k na lista de imagens de referência.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente codificar o conjunto de parâmetros de sequência que indica informações que indicam o número de imagem de referência de longo prazo.
11. Dispositivo para codificar dados de vídeo de Codificação de Vídeo de Alta Eficácia, HEVC, o dispositivo caracterizado pelo atoo de uee compreed^ um codificadrr de vídeo HEVC configurado para: codificar dados de elemento de sintaxe para uma pluralidade de imagens em uma ordem de codificação de imagem, em que os dados de elemento de sintaxe indicam que cada uma da pluralidade de imagens está disponível para uso como uma imagem de referência de longo prazo; codificar um cabeçalho de fatia para uma fatia de dados de vídeo, em que o cabeçalho de fatia inclui um elemento de sintaxe que compreende informação de identificação para uma imagem de referência de longo prazo da pluralidade de imagens; determinar se a imagem de referência de longo prazo é explicitamente sinalizada no cabeçalho de fatia ou derivada do conjunto de parâmetros de sequência correspondendo à fatia; quando a imagem de referência de longo prazo for sinalizada, codificar o cabeçalho de fatia adicionalmente compreende codificar um valor para a informação de identificação para a imagem de referência de longo prazo no cabeçalho de fatia; e determinar que um valor para DeltaPocMSBCycleLt [i] da imagem de referência de longo prazo que possui valor de índice i é sempre igual a um valor para um elemento de sintaxe delta_poc_msb_cycle_lt [i] da imagem de referência de longo prazo que possui valor de índice i quando a imagem de referência de longo prazo tem um valor de índice igual a um número de imagens de referência de longo prazo herdadas do conjunto de parâmetros de sequência.
12. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato cie que a imagem de referência de longo prazo compreende uma primeira imagem, no qual o dispositivo é adicionalmente configurado para: armazenar uma primeira imagem decodificada que corresponde à primeira imagem em um armazenador de imagens decodificadas; quando o armazenador de imagens decodificadas compreende mais de uma imagem de referência que é marcada como “utilizada para referência” e que tem o mesmo valor dos bits menos significativos (LSBs) do total de ordens de imagem (POC) da primeira imagem, para codificar as informações de identificação, o dispositivo é adicionalmente configurado para: codificar um primeiro elemento de sintaxe igual a um no cabeçalho de fatia de uma fatia de uma segunda imagem; quando o armazenador de imagens decodificadas não contém mais de uma imagem que é marcada como “utilizada para referência”, e que tem o mesmo valor de LSB POC da primeira imagem, para codificar as informações de identificação, o dispositivo é adicionalmente configurado para: codificar o primeiro elemento de sintaxe igual a 0 no cabeçalho de fatia; e quando o primeiro elemento de sintaxe é igual a um, para codificar as informações de identificação, o dispositivo é adicionalmente configurado: codificar um segundo elemento de sintaxe que indica os bits mais significativos (MSBs) do valor de POC da primeira imagem; e codificar a segunda imagem utilizando a primeira imagem como uma imagem de referência de longo prazo.
13. Dispositivo, de acordo com a reivindicação 11, aracterizzdOo pel o fat o de que o dispositivo é adicionalmente configurado para: codificar valores para os bits menos significativos (LSBs) de valores de total de ordens de imagem (POC) da pluralidade de imagens de modo que os valores para os LSBs sejam ou não decrescentes ou não crescente na ordem de codificação de imagens.
14. Dispositivo, de acordo com a reivindicação 13, rzcterirZzade pela fate duqpa paro fodfficti os valores para os LSBs, o dispositivo é configurado para codificar os valores para os LSBs de modo que, para quaisquer valores de j e k, onde j e k são números inteiros, na faixa de zero ao número de imagem de referência de longo prazo derivadas do conjunto de parâmetros de sequência menos um, os LSBs do valor de POC de uma primeira imagem da pluralidade de imagens na posição j em uma lista de imagens de referência sinalizadas no cabeçalho de fatia são: maiores ou iguais aos LSBs do valor de POC de uma segunda imagem da pluralidade de imagens na posição k na lista de imagens de referência; ou menores ou iguais aos LSBs do valor de POC de uma segunda imagem da pluralidade de imagens na posição k na lista de imagens de referência sinalizadas no cabeçalho de fatia.
15. Memória, aracterizzddp oelo oato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 10.
BR112014030605-2A 2012-06-07 2013-05-14 Sinalização de dados para imagens de referência de longo prazo para codificação de vídeo BR112014030605B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261656877P 2012-06-07 2012-06-07
US61/656,877 2012-06-07
US13/828,354 2013-03-14
US13/828,354 US9319679B2 (en) 2012-06-07 2013-03-14 Signaling data for long term reference pictures for video coding
PCT/US2013/040938 WO2013184305A1 (en) 2012-06-07 2013-05-14 Signaling data for long term reference pictures for video coding

Publications (3)

Publication Number Publication Date
BR112014030605A2 BR112014030605A2 (pt) 2017-06-27
BR112014030605A8 BR112014030605A8 (pt) 2021-06-15
BR112014030605B1 true BR112014030605B1 (pt) 2023-04-11

Family

ID=48614115

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112014030605-2A BR112014030605B1 (pt) 2012-06-07 2013-05-14 Sinalização de dados para imagens de referência de longo prazo para codificação de vídeo

Country Status (17)

Country Link
US (1) US9319679B2 (pt)
EP (1) EP2859725A1 (pt)
JP (1) JP6162228B2 (pt)
KR (1) KR101676938B1 (pt)
CN (1) CN104365106B (pt)
AU (1) AU2013272130B2 (pt)
BR (1) BR112014030605B1 (pt)
CA (1) CA2873419C (pt)
HK (1) HK1203116A1 (pt)
IL (1) IL235632A (pt)
MX (1) MX353754B (pt)
MY (1) MY168265A (pt)
PH (1) PH12014502598A1 (pt)
RU (1) RU2635248C2 (pt)
SG (1) SG11201407369SA (pt)
WO (1) WO2013184305A1 (pt)
ZA (1) ZA201500075B (pt)

Families Citing this family (21)

* 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
ES2685431T3 (es) 2011-09-07 2018-10-09 Sun Patent Trust Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
ES2844148T3 (es) 2011-09-19 2021-07-21 Sun Patent Trust Procedimiento de descodificación de imágenes, dispositivo de descodificación de imágenes
CN104025598B (zh) 2011-10-19 2017-11-14 太阳专利托管公司 图像编码方法、图像编码装置
US20130188709A1 (en) * 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
US9979958B2 (en) 2012-04-20 2018-05-22 Qualcomm Incorporated Decoded picture buffer processing for random access point pictures in video sequences
US9479776B2 (en) * 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
US9584825B2 (en) * 2012-09-27 2017-02-28 Qualcomm Incorporated Long-term reference picture signaling in video coding
US10250902B2 (en) * 2013-05-24 2019-04-02 Kt Corporation Method for inducing motion information in multilayer structure and apparatus using same
US10645414B2 (en) * 2015-11-11 2020-05-05 Samsung Electronics Co., Ltd. Method for encoding/decoding image, and device therefor
AU2019297829B2 (en) * 2018-07-01 2022-10-06 FG Innovation Company Limited Systems and methods for signaling picture order count values for pictures included in coded video
CN114501018B (zh) 2018-08-17 2024-01-09 华为技术有限公司 参考图像管理的解码方法、设备和系统
EP3854099A4 (en) * 2018-09-21 2022-06-29 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
WO2020122062A1 (en) * 2018-12-10 2020-06-18 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
CN118714324A (zh) * 2019-01-28 2024-09-27 Op方案有限责任公司 扩展长期参考图片保留的显式信令
BR112021016926A2 (pt) * 2019-02-28 2021-11-03 Samsung Electronics Co Ltd Método de decodificação de imagem, aparelho de decodificação de imagem, e método de codificação de imagem
WO2021033749A1 (en) * 2019-08-22 2021-02-25 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding
CN115209153B (zh) * 2019-09-24 2023-06-06 华为技术有限公司 编码器、解码器及对应方法
WO2021107638A1 (ko) * 2019-11-27 2021-06-03 엘지전자 주식회사 슬라이스 관련 정보를 시그널링하는 방법 및 장치
WO2024080917A1 (en) * 2022-10-13 2024-04-18 Telefonaktiebolaget Lm Ericsson (Publ) Quantization parameter (qp) coding for video compression
WO2024080916A1 (en) * 2022-10-13 2024-04-18 Telefonaktiebolaget Lm Ericsson (Publ) Inter-predicted reference picture lists

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100491530B1 (ko) * 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
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 诺基亚公司 视频编码中的参考图像管理
CN101455084A (zh) * 2006-03-30 2009-06-10 Lg电子株式会社 用于解码/编码视频信号的方法和装置
MX357910B (es) * 2006-07-06 2018-07-30 Thomson Licensing Método y aparato para desacoplar el número de cuadro y/o la cuenta del orden de imagen (poc) para la codificación y decodificación de video de múltiples vistas.
US8532178B2 (en) * 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
US8948256B2 (en) * 2006-10-13 2015-02-03 Thomson Licensing Reference picture list management syntax for multiple view video coding
WO2008048515A2 (en) * 2006-10-13 2008-04-24 Thomson Licensing Method for reference picture management involving multiview video coding
CA2666452C (en) * 2006-10-16 2014-12-16 Nokia Corporation System and method for implementing efficient decoded buffer management in multi-view video coding
US20100266042A1 (en) * 2007-03-02 2010-10-21 Han Suh Koo Method and an apparatus for decoding/encoding a video signal
WO2010086500A1 (en) * 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
CN102047670B (zh) 2009-03-26 2014-03-12 松下电器产业株式会社 编码装置及方法、错误检测装置及方法、解码装置及方法
US20110194613A1 (en) 2010-02-11 2011-08-11 Qualcomm Incorporated Video coding with large macroblocks
US20110249729A1 (en) * 2010-04-07 2011-10-13 Apple Inc. Error resilient hierarchical long term reference frames
US9008176B2 (en) 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
ES2685431T3 (es) * 2011-09-07 2018-10-09 Sun Patent Trust Procedimiento de decodificación de imágenes y aparato de decodificación de imágenes
BR122021007881B1 (pt) * 2011-10-28 2023-03-21 Samsung Electronics Co., Ltd Método de decodificação de vídeo, e método de codificação de vídeo
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists

Also Published As

Publication number Publication date
JP6162228B2 (ja) 2017-07-12
RU2014153876A (ru) 2016-08-10
IL235632A0 (en) 2015-01-29
RU2635248C2 (ru) 2017-11-09
MX353754B (es) 2018-01-26
AU2013272130B2 (en) 2017-04-20
BR112014030605A2 (pt) 2017-06-27
ZA201500075B (en) 2017-01-25
US9319679B2 (en) 2016-04-19
WO2013184305A1 (en) 2013-12-12
CA2873419C (en) 2018-02-06
CN104365106B (zh) 2018-04-17
EP2859725A1 (en) 2015-04-15
PH12014502598B1 (en) 2015-01-26
JP2015523012A (ja) 2015-08-06
MX2014014919A (es) 2016-07-28
CN104365106A (zh) 2015-02-18
PH12014502598A1 (en) 2015-01-26
IL235632A (en) 2017-01-31
MY168265A (en) 2018-10-16
KR101676938B1 (ko) 2016-11-16
SG11201407369SA (en) 2015-02-27
BR112014030605A8 (pt) 2021-06-15
HK1203116A1 (en) 2015-10-16
AU2013272130A1 (en) 2014-12-11
US20130329787A1 (en) 2013-12-12
KR20150024867A (ko) 2015-03-09
CA2873419A1 (en) 2013-12-12

Similar Documents

Publication Publication Date Title
US12088819B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
BR112014030605B1 (pt) Sinalização de dados para imagens de referência de longo prazo para codificação de vídeo
TWI848166B (zh) 用於產生縮放比例和完整解析度圖片的系統和方法
EP3308543B1 (en) Systems and methods of determining illumination compensation status for video coding
US9860529B2 (en) Processing illumination compensation for video coding
KR102099494B1 (ko) 비대칭 모션 파티셔닝을 이용한 비디오 코딩 기법들
KR102180859B1 (ko) 3d 비디오 코딩에서 디스패리티 벡터 도출 및 모션 벡터 예측에 대한 단순화
KR102187723B1 (ko) 3 차원(3d)비디오 코딩을 위한 진보된 병합 모드
US11909960B2 (en) Method and apparatus for processing video signal
KR102264104B1 (ko) 백워드 뷰 합성 예측
US9674542B2 (en) Motion vector prediction for video coding
BR112021005357A2 (pt) aprimoramentos em preditor de vetor de movimento baseado em histórico
WO2019147826A1 (en) Advanced motion vector prediction speedups for video coding
KR20190120389A (ko) 아핀 모션 정보 도출
JP2019514292A (ja) ビデオコーディングにおけるコロケート参照インデックスのための適合制約
BR112015032977B1 (pt) Equipamento e método para codificar informações de vídeo, equipamento e método para decodificar informações de vídeo, e memória legível por computador
BR112018006408B1 (pt) Predição intra de vídeo melhorada usando combinação de predição dependente de posição para codificação de vídeo
CN108028929A (zh) 用于视频译码的改进双向光流
EP3308544A1 (en) Systems and methods of determining illumination compensation status for video coding
BR112014032473B1 (pt) Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador
BR112015008574B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112016006677B1 (pt) Tipo de dependência inter-vista em mv-hevc
KR102276276B1 (ko) 스케일러블 비디오 코딩을 위한 공간 모션 벡터 스케일링
TW202226836A (zh) 重疊區塊運動補償
BR112017020635B1 (pt) Método para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo, e memória legível por computador

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]
B15K Others concerning applications: alteration of classification

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

Ipc: H04N 19/105 (2014.01), H04N 19/174 (2014.01), H04N

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 14/05/2013, OBSERVADAS AS CONDICOES LEGAIS