BR112014031749B1 - Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo - Google Patents

Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo Download PDF

Info

Publication number
BR112014031749B1
BR112014031749B1 BR112014031749-6A BR112014031749A BR112014031749B1 BR 112014031749 B1 BR112014031749 B1 BR 112014031749B1 BR 112014031749 A BR112014031749 A BR 112014031749A BR 112014031749 B1 BR112014031749 B1 BR 112014031749B1
Authority
BR
Brazil
Prior art keywords
image
rap
pictures
picture
images
Prior art date
Application number
BR112014031749-6A
Other languages
English (en)
Other versions
BR112014031749A2 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Ye-Kui Wang
Rajan Laxman Joshi
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
Priority claimed from US13/784,006 external-priority patent/US9591303B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014031749A2 publication Critical patent/BR112014031749A2/pt
Publication of BR112014031749B1 publication Critical patent/BR112014031749B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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

Abstract

ACESSO RANDÔMICO E SINALIZAÇÃO DE IMAGENS DE REFERÊNCIA DE LONGO TERMO EM CODIFICAÇÃO DE VÍDEO. Um codificador de vídeo pode ser configurado para codificar uma imagem de ponto de acesso randômico (RAP) e codificar uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.

Description

[0001] Esse pedido reivindica os benefícios de: pedido provisório U.S. No. 61/665.862, depositado em 28 de junho de 2012; e pedido provisório U.S. No. 61/666.688, depositado em 29 de junho de 2012, cada um dos quais é incorporado aqui por referência em sua totalidade.
Campo Técnico
[0002] Essa descrição geralmente se refere à codificação de vídeo.
Fundamentos
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou desktop, computadores tablet, leitoras de e-book, câmeras digitais, dispositivos de gravação digital, aparelhos de reprodução de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones celulares ou de rádio satélite, os chamados "smart phones", dispositivos de videoconferência, dispositivos de sequenciamento de vídeo, e similares. Dispositivos de vídeo digital implementam técnicas de codificação de vídeo, tal como as descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T, H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Um rascunho recente do padrão HEVC emergente, referido como "Rascunho de Trabalho HEVC 7" ou "WD7", é descrito no documento HCTVC-11003, Bross et al., "High Efficiency Video Coding (HEVC) Text Specification Draft 7", Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 9o. Encontro, Genebra, Suíça, 27 de abril de 2012 a 7 de maio de 2012 que, a partir de 5 de fevereiro de 2013 pode ser descarregado a partir de http://phenix-it- sudparis.eu/jct/doc end user/documents/9 Geneva/wg11/JCTVC- 11003-v5.zip. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital de forma mais eficiente pela implementação de tais técnicas de codificação de vídeo.
[0004] As técnicas de codificação de vídeo incluem previsão espacial (intraimagem) e/ou previsão temporal (interimagem) para reduzir ou remover a redundância inerente às sequências de vídeo. Para codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser dividido em blocos de vídeo, que também podem ser referidos como blocos de árvore, unidades de árvore de codificação, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados utilizando-se previsão espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem utilizar previsão espacial com relação às amostras de referência nos blocos vizinhos na mesma imagem ou previsão temporal com relação às 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 um quadro de referência.
[0005] A previsão espacial ou temporal resulta em um bloco de previsão para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco de previsão. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco de previsão, e os dados residuais indicando a diferença entre o bloco codificado e o bloco de previsão. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem se transformados do domínio de pixel para um domínio de transformação, resultando em coeficientes de transformação residuais, que então podem ser quantizados. Os coeficientes de transformação quantizados, inicialmente dispostos em um conjunto bidimensional, podem ser digitalizados a fim de produzir um vetor unidimensional dos coeficientes de transformação e a codificação por entropia pode ser aplicada para alcançar uma compressão ainda maior.
Sumário
[0006] Em geral, essa descrição descreve técnicas para suportar acesso randômico e sinalização de imagens de referência de longo termo na codificação de vídeo. Essa descrição propõe várias restrições para suportar o acesso randômico com base em vários tipos de imagens. Em um exemplo, todas as imagens marcadas para descarte (TFD) para uma imagem de ponto de acesso randômico (RAP) podem ter um valor de ordem de exibição que é anterior ao valor de ordem de exibição para todas as imagens dianteiras decodificáveis (DLPs) para RAP. Essa descrição também propõe uma restrição na qual a intercalação de imagens dianteiras com "imagens traseiras" na ordem de decodificação é evitada. Isso é, de acordo com as técnicas dessa descrição, os codificadores de vídeo podem garantir que todas as imagens dianteiras (incluindo imagens TFD e DLPs) possuam valores de ordem de decodificação anteriores aos valores de ordem de decodificação das imagens que possuem ambos os valores de ordem de exibição maiores do que o valor de ordem de exibição da imagem RAP correspondente e valores de ordem de decodificação maiores do que os valores de ordem de decodificação da imagem RAP correspondente. A ordem de exibição pode ser referida também como uma ordem de envio. As imagens TFD também podem ser referidas como imagens dianteiras puladas de acesso randômico (RASL) e imagens DLP também podem ser referidas como imagens dianteiras decodificáveis de acesso randômico (RADL).
[0007] Em um exemplo, um método de codificação de dados de vídeo inclui a codificação de uma imagem de ponto de acesso randômico (RAP); e codificação de uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são alvo de descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0008] Em outro exemplo, um dispositivo para codificação de dados de vídeo inclui um codificador de vídeo configurado para codificar uma imagem de ponto de acesso randômico (RAP); e codificar uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0009] Em outro exemplo, um aparelho para codificação de dados de vídeo inclui meios para codificar uma imagem de ponto de acesso randômico (RAP);e meios para codificar uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0010] Em outro exemplo, um meio de armazenamento legível por computador armazenando instruções que quando executadas por um ou mais processadores fazem com que um ou mais processadores codifiquem uma imagem de ponto de acesso randômico (RAP); e codifiquem uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0011] Em outro exemplo, um método de codificação de dados de vídeo inclui a codificação de uma imagem de ponto de acesso randômico (RAP) e a codificação de uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0012] Em outro exemplo, um dispositivo para codificação de dados de vídeo inclui um codificador de vídeo configurado para codificar uma imagem de ponto de acesso randômico (RAP); e codifique uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0013] Em outro exemplo, um aparelho para codificação de dados de vídeo inclui meios para a codificação de uma imagem de ponto de acesso randômico (RAP) e meios para codificação de uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0014] Em outro exemplo, um meio de armazenamento legível por computador armazena instruções que quando executadas por um ou mais processadores fazem com que um ou mais processadores codifiquem uma imagem de ponto de acesso randômico (RAP); e codifiquem uma ou mais imagens dianteiras decodificáveis (DLPs) para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição.
[0015] Os detalhes de um ou mais exemplos são apresentados nos desenhos em anexo e na descrição abaixo. Outras características, objetivos e vantagens serão aparentes a partir da descrição e dos desenhos, e das reivindicações.
Breve Descrição dos Desenhos
[0016] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo que pode utilizar as técnicas para sinalização de imagens de referência de longo termo em cabeçalhos de fatia.
[0017] A figura 2 é um diagrama em bloco ilustrando um exemplo de um codificador de vídeo que pode implementar as técnicas para sinalização de imagens de referência de longo termo em cabeçalhos de fatia.
[0018] A figura 3 é um diagrama em bloco ilustrando um exemplo de um decodificador de vídeo que pode implementar as técnicas para sinalização de imagens de referência delongo termo em cabeçalhos de fatia.
[0019] A figura 4 é um diagrama conceitual ilustrando uma sequência de imagens de vídeo codificadas.
[0020] A figura 5 é um diagrama em bloco ilustrando um conjunto ilustrativo de dispositivos que formam parte de uma rede.
[0021] A figura 6 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens de ponto de acesso randômico (RAP) de acordo com as técnicas dessa descrição.
[0022] A figura 7 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens RAP de acordo coma as técnicas dessa descrição.
[0023] A figura 8 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens RAP de acordo com as técnicas dessa descrição.
[0034] A figura 9 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens RAP de acordo com as técnicas dessa descrição.
[0035] A figura 10 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens RAP de acordo com as técnicas dessa descrição.
[0026] A figura 11 é um fluxograma ilustrando uma operação ilustrativa para codificação de imagens RAP de acordo com as técnicas dessa descrição.
Descrição Detalhada
[0027] Em geral, os dados de vídeo são representados por uma sequência de imagens que são capturadas ou exibidas em rápida sucessão. Deve-se compreender que, em alguns exemplos, as imagens ou partes de imagens podem ser geradas, por exemplo, utilizando-se gráficos de computador, em vez de (ou em adição a) serem capturadas. A ordem na qual as imagens devem ser exibidas (que pode ou não ser igual à ordem na qual as imagens foram capturadas ou geradas) pode diferir de uma ordem na qual as imagens codificadas são incluídas na sequência de bits. A ordem de exibição das imagens dentro de uma sequência de vídeo codificada pode ser representada pelos valores de contagem de ordem de imagem (POC), enquanto a ordem de codificação das imagens pode ser representada pelos valores de número de quadro (frame_num).
[0028] A codificação de imagens geralmente envolve se levar vantagem dos dados redundantes que ocorrem nas imagens. Por exemplo, a codificação espacial, também referida como codificação de intraprevisão, leva vantagem das redundâncias que ocorrem entre valores de blocos de pixel espacialmente vizinhos de uma imagem comum. Como outro exemplo, a codificação temporal, também referida como codificação de interprevisão, leva vantagem das redundâncias que ocorrem entre imagens diferentes que são capturadas, geradas ou exibidas em momentos temporais diferentes. Mais particularmente, uma imagem pode ser dividida em fatias, que podem ser designadas para inter ou interprevisão. Ademais, cada fatia pode ser dividida em blocos (por exemplo, unidades de codificação maiores (LCUs), também referidas como unidades de árvore de codificação), e cada um dos blocos pode ser adicionalmente dividido ou codificado com base no fato de se a fatia correspondente foi designada para intra ou interprevisão.
[0029] Com relação ao exemplo da codificação de interprevisão, os blocos de uma imagem atualmente sendo codificada (também referida como "imagem atual") podem ser previstos a partir de uma imagem de referência. WD7 define uma "imagem de referência" como uma imagem com um nal_ref_flag igual a 1. A nal_ref_flag é um elemento de sintaxe de uma unidade de camada de abstração de rede (NAL) indicando se os dados incluídos na unidade NAL devem ser tratados como uma imagem de referência. WD7 também fornece que uma imagem de referência contenha amostras (isso é, valores de pixel) que podem ser utilizadas para a interprevisão no processo de decodificação de imagens subsequentes na ordem de decodificação.
[0030] Como introduzido acima, em geral, dados de vídeo incluem vários tipos de imagens. Por exemplo, dados de vídeo incluem pontos de acesso randômico (RAPs) que podem ser utilizados para iniciar uma sequência de dados de vídeo. RAPs são imagens que são codificadas independentemente, por exemplo, como imagens codificadas por intraprevisão (imagens I). RAPs incluem imagens de atualização de decodificador instantânea (IDR), imagens de acesso à conexão interrompida (BLA), imagens de acesso randômico limpas (CRA), e imagens de atualização de decodificação gradual (GDR). Outros tipos de imagens incluem imagens que são marcadas para descarte (TFD), imagens dianteiras decodificáveis (DLPs), e imagens traseiras. Em geral, DLPs (como todas as imagens dianteiras) são imagens que possuem uma ordem de saída que é anterior a uma ordem de saída de uma RAP correspondente. No entanto, DLPs são imagens dianteiras que são decodificáveis sem a recuperação de dados que precede a RAP correspondente na ordem de decodificação. As imagens traseiras, por outro lado, possuem uma ordem de saída que é posterior à ordem de saída da RAP correspondente. As imagens que são TFD não podem ser decodificadas adequadamente quando da realização do acesso randômico a partir de uma RAP correspondente. Isso é geralmente devido ao fato de uma imagem TFD sendo prevista a partir de dados que precedem a RAP correspondente na ordem de decodificação, imagens TFD, que dependem de dados anteriores à RAP na ordem de decodificação, e não são corretamente decodificados quando a RAP é utilizada como um ponto de acesso randômico, e podem, portanto, ser descartados sem serem decodificados. As imagens TFD "dependem" de dados anteriores no sentido de serem previstos com relação a uma ou mais imagens ocorrendo antes na ordem de decodificação da RAP.
[0031] Unidades NAL podem receber valores de tipo de unidade NAL particulares, por exemplo, em um cabeçalho de unidade NAL, para indicar o tipo de dado incluído na unidade NAL correspondente. As unidades NAL podem incluir geralmente dados de camada de codificação de vídeo (VCL), também referidos como unidades NAL VCL, ou dados não VCL, também referidas como unidades NAL não VCL. Dados não VCL incluem, por exemplo, conjuntos de parâmetros tal como conjuntos de parâmetros de imagem (PPSs), conjuntos de parâmetros de sequência (SPSs), e conjuntos de parâmetros de adaptação (APSs), além de mensagens de informação de melhoria suplementar (SEI). Dados VCL geralmente incluem dados de vídeo codificados. O tipo de unidade NAL pode fornecer uma indicação de um tipo de dado incluído na unidade NAL, incluindo se os dados de vídeo codificados na unidade NAL correspondem a uma RAP, e se for esse o caso, se os dados de vídeo codificados correspondem a uma imagem CRA, BLA ou IDR. O tipo de unidade NAL pode indicar se a unidade NAL inclui outros tipos de dados também. A Tabela 1 abaixo fornece um exemplo de alguns valores de tipo de unidade NAL e dados incluídos em uma unidade NAL correspondente, como foi fornecido em WD7: Tabela 1
[0032] Ademais, WD7 distingue as imagens de referência de longo termo de imagens de referência de curto termo. Por exemplo, WD7 define uma imagem de referência de longo termo como uma imagem de referência que é marcada como "utilizada para referência de longo termo". WD7 fornece que um indicador em um conjunto de parâmetros de sequência (SPS) indique se as imagens de referência de longo termo são sinalizadas de alguma forma para uma sequência de vídeo codificada. De acordo com WD7, os codificadores de vídeo sinalizam os bits menos significativos (LSBs) dos valores POC de imagens de referência de longo termo em cabeçalhos de fatia das fatias. A sinalização de LSBs pode resultar em economia de bit, com relação à sinalização de valor POC total. Os codificadores de vídeo, de acordo com WD7, podem sinalizar os bits mais significativos (MSBs) dos valores POC de uma imagem de referência de longo termo se houver mais de uma imagem de referência em um armazenador de imagem decodificada (DPB) que tenha os mesmos bits LSB que a imagem de referência de longo termo. Ademais, de acordo com WD7, os codificadores de vídeo podem utilizar um indicador para indicar se as imagens de referência de longo termo sinalizadas podem ser utilizadas por uma imagem atual para referência.
[0033] Uma consideração para o desenho do conjunto de imagens de referência (RPS) de HEVC é que a derivação RPS deve ser robusta para perdas de imagem, desde que os valores POC relativos possam ser estabelecidos corretamente, para ambas as imagens de referência de curto termo (STRPs), e imagens de referência de longo termo (LTRPs). Para se realizar isso, a derivação RPS para qualquer Imagem pode ser autocontida, isso é, não depender da situação de armazenamento da imagem decodificada (DPB). Com esse princípio de desenho, STRPs, de acordo com WD7, são sinalizadas utilizando-se seus valores POC delta, com relação à imagem atual. Dessa forma, o decodificador também pode derivar os valores POC dessas imagens de referência mesmo quando algumas imagens são perdidas e, dessa forma, verificar se cada uma das STRPs está presente.
[0034] Essa descrição reconhece determinados problemas na sinalização de cabeçalho de fatia atual das LTRPs na presença de perdas de imagem de WD7. Derivação errônea de RPS é possível na presença de perdas. Isso se deve à sinalização apenas da quantidade de LSBs POC para LTRPs que é igual que a sinalização do valor POC para cada imagem atual (isso é, pic_order_cnt_lsb), apesar de em alguns casos os valores POC totais utilizando o elemento de sintaxe delta_poc_msb_cycle_lt serem sinalizados para LTRPs. Se houver uma imagem no DPB que tenha o mesmo LSB que o sinalizado para LTRP, então pode haver ambiguidade na derivação de RPS, e resultado incorreto de RPS pode ocorrer, como ilustrado nos exemplos apresentados abaixo. Nos exemplos discutidos abaixo, "MaxPicOrderCntLsb" é considerado igual a 256, ou em outras palavras, log2_max_pic_order_cnt_lsb_minus4 é igual a 4.
[0035] Como um primeiro exemplo para ilustrar os problemas discutidos acima, considera-se três imagens n - 1, n e n + 1, que são sucessivas na ordem de decodificação. Assume-se que a imagem n-1 tenha imagens de referência com valores POC de 0 a 256 como LTRPs, e imagens n e n + 1 apenas possuam uma imagem de referência com POC 256 como LTRP. Os valores POC das imagens n - 1, n e n + 1 estão todos dentro da faixa de 257 a 511, inclusive. Também assume-se que nenhuma das imagens n - 1, n, e n + 1 ou qualquer outra imagem em DPG tenha valor LSB igual a 0. Sob a sinalização de WD7 HEVC, os elementos de sintaxe relevantes de uma sequência de bits de conformação são ilustrados na Tabela 2. Tabela 2
[0036] Para a imagem n, apesar de apenas a imagem 256 ser sinalizada como LTRP, quando RPS da imagem n é derivado, a imagem 0 ainda estará em DPB. Dessa forma, mesmo para a imagem n, delta_poc_msb_present_flag é configurada para 1, e o valor de delta_poc_msb_msb_cycle_lt é enviado. Depois da derivação RPS para a imagem n, a imagem 0 é marcada como "não utilizada para referência" e pode ser removida de DPB. Para a imagem n + 1, no entanto, visto que apenas uma LTRP está presente em DPB, delta_poc_msb_present_flag é configurado para 0 e delta_poc_msb_cycle_lt não está presente.
[0037] Sob a estrutura de sintaxe de WD7, a tabela acima corresponderá a uma sequência de bits de conformação. No entanto, se a imagem n for perdida, então a sinalização LTRP para a imagem n + 1 será insuficiente para resolver qual imagem de DPB deve ser escolhida como LTRP. Ambos 0 e 256 possuem LSB igual a 0, e o decodificador não poderá resolver o problema. O decodificador precisará que delta_poc_msb_present_flag seja igual a 1 para a imagem n + 1 para identificar de forma singular a imagem a ser utilizada como LTRP apenas.
[0038] Um segundo exemplo dos problemas discutidos acima, relacionados para o primeiro exemplo acima, é como segue. A descrição da Tabela 3 é similar à descrição da Tabela 2, com a exceção de que a imagem 0 é sinalizada como LTRP e a imagem 246 é sinalizada como STRP para a imagem n - 1. Tabela 3
[0039] Aqui novamente, se a imagem n for perdida, o decodificador pode não ser capaz de identificar corretamente que LTRP sinalizada como a imagem 256, e o decodificador pode precisar que delta_poc_msb_present_flag seja igual a 1 para identificar de forma singular a imagem a ser utilizada como LTRP apenas.
[0040] Um terceiro exemplo dos problemas discutidos acima é descrito com relação à Tabela 4. Tabela 4
[0041] Com relação ao exemplo da Tabela 4, supõe- se que uma imagem com POC 255 seja recebida, seguida pela imagem 258 (em outras palavras, imagens 256 e 257 foram perdidas). Depois da decodificação do cabeçalho de fatia para a imagem 258, a imagem 0 (em vez da imagem 256) será marcada como uma LTRP. Em vez de descobrir que a imagem de referência 256 não está presente para a imagem 258, o decodificador derivará incorretamente que a imagem 0 é sinalizada LTRP e continuará a decodificação (fornecidos outros aspectos do trabalho de processo de decodificação para essas perda).
[0042] A partir dos exemplos acima, uma solução simples para se solucionar os problemas acima pode parecer ser sinalizar o valor POC total atual das LTRPs. Também pareceria que a derivação RPS fosse autocontida com a sinalização POC total. No entanto, a possibilidade de imagens CRA poderem iniciar uma sequência de bits, ou de as imagens CRA poderem ser convertidas em uma imagem BLA por um elemento de união elimina a sinalização do valor POC total. Por exemplo, considere-se uma imagem CRA em uma sequência de bits com um valor PC de 256 (ainda assumindo MaxPicOrderCntLsb = 256), e deixe algumas imagens que seguem a imagem CRA na ordem de decodificação possuírem a imagem CRA como uma LTRP. Se o POC total da imagem CRA, que é 256, for sinalizado, e a imagem CRA for convertida em uma imagem BLA ou iniciar uma sequência de bits, então LTRP pode ser derivada incorretamente, e a sequência de bits se tornará não conformada. Quando uma imagem CRA é convertida em uma imagem BLA ou inicia uma sequência de bits, o decodificador deriva seu valor POC apenas com base em seu LSB, de acordo com as técnicas de WD7. No exemplo acima, POC da imagem CRA (que é agora uma imagem BLA) será determinado como sendo igual a 0. Quando um decodificador busca por uma LTRP com POC 256, DPB não conterá qualquer imagem dessas visto que agora a imagem CRA derivou POC de 0. Isso resultaria em "nenhuma imagem de referência" em RPS, e se a imagem atual não for uma imagem TFD associada com a imagem CRA, a sequência de bits resultante pode não estar em conformidade.
[0043] Essa descrição descreve as técnicas para suportar o acesso randômico para dados de vídeo. Em alguns casos, essas técnicas podem ser utilizadas para superar os problemas acima de WD7. Mais particularmente, essa descrição propõe várias restrições para suportar o acesso randômico com base em vários tipos de imagens. Primeiro, de acordo com uma técnica dessa descrição, todas as imagens TFD para uma imagem RAP devem possuir um valor de ordem de exibição que é anterior ao valor de ordem de exibição para todos os DLPs para RAP. Essa restrição pode aperfeiçoar a experiência de visualização do observador evitando cortes na taxa de quando. Isso é, se houver uma ou mais imagens que não podem ser decodificadas corretamente (isso é, imagens TFD) e se essas imagens possuírem valores de ordem de exibição entrelaçados com DLPs, a taxa de quadro parecerá entrecortada, o que reduz a experiência do usuário. De acordo com outra técnica, essa descrição também propõe uma restrição na qual a intercalação de imagens dianteiras com "imagens traseiras" na ordem de decodificação é evitada. Isso é, de acordo com as técnicas dessa descrição, os codificadores de vídeo podem garantir que todas as imagens dianteiras (incluindo ambas as imagens TFD e DLPs) possuam valores de ordem de decodificação anteriores aos valores de ordem de decodificação das imagens que possuem valores de ordem de exibição maiores do que o valor de ordem de exibição da imagem RAP correspondente. Como notado acima, "imagens traseiras" são imagens que seguem a imagem RAP em ambas a ordem de decodificação e a ordem de exibição.
[0044] Como introduzido acima, em geral, os dados de vídeo incluem vários tipos de imagens. Por exemplo, dados de vídeo incluem RAPs que podem ser utilizados para iniciar uma sequência de dados de vídeo. RAPs são imagens que são codificadas independentemente, por exemplo, como imagens codificadas por intraprevisão (imagens I). RAPs incluem imagens IDR, imagens BLA e imagens CRA.
[0045] Outros tipos de imagens incluem TFD, DLPs e imagens traseiras. Em geral, DLPs (como todas as imagens dianteiras) são imagens que possuem uma ordem de saída que á anterior à ordem de saída da imagem RAP correspondente, mas uma ordem de decodificação que é posterior à ordem de decodificação da RAP correspondente. No entanto, DLPs são imagens dianteiras que são decodificáveis sem recuperação de dados que precedem a imagem RAP correspondente na ordem de decodificação. Em outras palavras, DLPs são imagens dianteiras que são previstas com relação aos dados de uma ou mais imagens incluindo e/ou seguindo a RAP correspondente. As imagens traseiras, por outro lado, possuem uma ordem de saída que é posterior à ordem de saída da RAP correspondente além de uma ordem de decodificação que é posterior à ordem de decodificação da imagem RAP correspondente.
[0046] As imagens que são imagens TFD não podem ser adequadamente decodificadas quando da realização do aceso randômico a partir da imagem RAP correspondente. Isso é geralmente decorrente do fato de uma imagem TFD ser prevista a partir dos dados que precedem a imagem RAP correspondente na ordem de decodificação. Visto que o acesso randômico de uma imagem RAP omite a recuperação de dados anteriores à imagem RAP, as imagens TFD dependendo dos dados anteriores à imagem RAP não serão corretamente decodificadas, e podem, portanto, ser descartadas sem serem decodificadas.
[0047] Essa descrição propõe várias restrições para suportar o acesso randômico com base em vários tipos de imagens. Primeiro, todas as imagens TFD de uma imagem RAP devem ter um valor de ordem de exibição que é anterior ao valor de ordem de exibição para todas as DLPs da imagem RAP. Essa restrição pode aperfeiçoar a experiência de visualização do observador, visto que evita os cortes na taxa de quadro. Isso é, se houver uma ou mais imagens que não podem ser corretamente decodificadas (tal como as imagens TFD), se essas imagens possuírem valores de ordem de exibição entrelaçados com as DLPs, a taxa de quadro pode parecer entrecortada, o que reduz a experiência do usuário.
[0048] Essa descrição também propõe uma restrição na qual a intercalação das imagens dianteiras com "imagens traseiras" na ordem de decodificação é evitada. Isso é, de acordo com as técnicas dessa descrição, os codificadores de vídeo podem garantir que todas as imagens dianteiras (incluindo imagens TFD e DLPs) tenham valores de ordem de decodificação anteriores aos valores de ordem de decodificação das imagens que possuem valores de ordem de exibição superiores ao valor de ordem de exibição da imagem RAP correspondente. Como notado acima, "imagens traseiras" são imagens que seguem a imagem RAP em ambas a ordem de decodificação e na ordem de exibição. A implementação das técnicas dessa descrição, um codificador de vídeo pode ser configurado para codificar uma imagem RAP e codificar uma ou mais DLPs para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de saída. Da mesma forma, um decodificador de vídeo não precisa tentar decodificar as imagens TFD seguindo uma imagem RAP que é utilizada como um ponto de acesso randômico. Em vez disso, o decodificador de vídeo pode simplesmente analisar os dados para tais imagens TFD, sem tentar decodificar os dados. Isso pode fornecer uma economia de recursos para um dispositivo tal como um decodificador de vídeo. Por exemplo, essas técnicas podem economizar energia de bateria e/ou aperfeiçoar a eficiência do processamento. Pela não intercalação das imagens dianteira e traseira na ordem de decodificação, um sistema (tal como MANE ou um decodificador de vídeo) pode identificar com facilidade as imagens dianteiras associadas com a imagem RAP, sem precisar analisar além da primeira imagem traseira que sucede a imagem RAP associada. A identificação de imagens dianteiras pode ser útil na decisão do envio no acesso randômico visto que a imagem dianteira ocorre antes da RAP na ordem de exibição e pode ser útil para remover as imagens dianteiras se um sistema intermediário for configurado para fazer isso. Ademais, como notado acima, essas técnicas podem resultar em uma experiência de usuário aperfeiçoada evitando o corte da taxa de quadro.
[0049] A figura 1 é um diagrama em bloco ilustrando um sistema de codificação e decodificação de vídeo ilustrativo 10 que pode utilizar as técnicas para sinalização de imagens de referência de longo termo nos cabeçalhos de fatia. Como ilustrado na figura 1, o sistema 10 inclui um dispositivo fonte 12 que fornece dados de vídeo codificados a serem decodificados posteriormente por um dispositivo de destino 14. Em particular, o dispositivo fonte 12 fornece dados de vídeo para o dispositivo de destino 14 através de um meio legível por computador 16. O dispositivo fonte 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores desktop, computadores notebook (isso é, laptop), computadores tablet, caixas de decodificação, aparelhos telefônicos tal como os chamados "smart" phones, os chamados "smart" pads, televisões, câmeras, dispositivos de exibição, aparelhos de reprodução de mídia digital, consoles de jogos de vídeo, dispositivo de sequenciamento de vídeo, ou similares. Em alguns casos, o dispositivo fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0050] O dispositivo de destino 14 pode receber dados de vídeo codificados a serem decodificados através do meio legível por computador 16. O meio legível por computa 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo fonte 12 para o dispositivo de destino 14. Em um exemplo, o meio legível por computador 16 pode compreender um meio de comunicação para permitir que o dispositivo fonte 12 transmita os dados de vídeo codificados diretamente para o dispositivo 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 dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação com ou sem fio, tal como o espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O 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 dispositivo fonte 12 com o dispositivo de destino 14.
[0051] Em alguns exemplos, os dados codificados podem ser enviados a partir da interface de saída 22 para um dispositivo de armazenamento. De forma similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento pela interface de entrada. O dispositivo de armazenamento pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente tal como um disco rígido, discos Blu- ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou qualquer outro meio de armazenamento digital para o armazenamento de dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que possa armazenar o vídeo codificado gerado pelo dispositivo fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento através do sequenciamento ou download. O servidor de arquivo pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Exemplos de servidores de arquivo incluem um servidor de rede (por exemplo, para um sítio da rede), um servidor FTP, dispositivos de armazenamento anexados à rede (NAS), ou um acionador de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão WiFi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequado para acessar os dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão de sequenciamento, uma transmissão de download, ou uma combinação dos mesmos.
[0052] As técnicas dessa descrição não são necessariamente limitadas às aplicações ou configurações sem fio. AS técnicas podem ser aplicadas a uma codificação de vídeo que suporta qualquer um dentre uma variedade de aplicativos de multimídia, tal como difusões de televisão através do ar, transmissões de televisão por cabo, transmissões de televisão via satélite, transmissões de vídeo de sequenciamento de Internet, tal como sequenciamento adaptativo dinâmico através de HTTP (DASH), vídeo digital que é codificado em um meio de armazenamento de dados, a 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 de via única ou duas vias para suportar os aplicativos tal como sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo, e/ou vídeotelefonia.
[0053] No exemplo da figura 1, o dispositivo fonte 12 inclui a fonte de vídeo 18, o codificador de vídeo 20 e a interface de saída 22. O dispositivo de destino 14 inclui a interface de entrada 28, o decodificador de vídeo 30 e o dispositivo de exibição 32. De acordo com essa descrição, o codificador de vídeo 20 do dispositivo fonte 12 pode ser configurado para aplicar as técnicas de sinalização de imagens de referência de longo termo em cabeçalhos de fatia. Em outros exemplos, um dispositivo fonte e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo fonte 12 pode receber dados de vídeo de uma fonte de vídeo externa 18, tal como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode interfacear com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0054] O sistema ilustrado 10 da figura 1 é meramente um exemplo. As técnicas para sinalização de imagens de referência de longo termo nos cabeçalhos de fatia podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Apesar de geralmente as técnicas dessa descrição serem realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como "CODEC". Ademais, as técnicas dessa descrição também podem ser realizadas por um pré-processador de vídeo. O dispositivo fonte 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação nos quais o dispositivo fonte 12 gera os dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, os dispositivos 12, 14 podem operar de uma forma substancialmente simétrica de modo que cada um dos dispositivos 12, 14 inclua componentes de codificação e decodificação de vídeo. Dessa forma, o sistema 10 pode suportar a transmissão de vídeo de via única ou duas vias entre os dispositivos de vídeo 12, 14, por exemplo, para sequenciamento de vídeo, reprodução de vídeo, difusão de vídeo ou vídeotelefonia.
[0055] A fonte de vídeo 18 do dispositivo fonte 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo vídeo previamente capturado, e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo 18 pode gerar dados com base em gráficos de computador como o vídeo fonte, ou uma combinação de vídeo ao vivo, vídeo arquivado, e vídeo gerado por computador. Em alguns casos, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmera ou videofones. Como mencionado acima, no entanto, as técnicas descritas nessa descrição podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicativos com e/ou sem fio. Em cada caso, o vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificada pode então ser enviada pela interface de saída 22 em um meio legível por computador 16.
[0056] O meio legível por computador 16 pode incluir meio transiente, tal como difusão sem fio ou transmissão de rede com fio, ou meio de armazenamento (isso é, meio de armazenamento não transitório), tal como um disco rígido, acionador flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outro meio legível por computador. Em alguns exemplos, um servidor de rede (não ilustrado) pode receber dados de vídeo codificados do dispositivo fonte 12 e fornecer os dados de vídeo codificados para o dispositivo de destino 14, por exemplo, através da transmissão de rede. De forma similar, um dispositivo de computação de uma instalação de produção de meio, tal como uma instalação de estampagem de disco, pode receber dados de vídeo codificados do dispositivo fonte 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, o meio legível por computador 16 pode ser compreendido como incluindo um ou mais meios legíveis por computador de várias formas, em vários exemplos.
[0015] A interface de entrada 28 do dispositivo de destino 14 recebe informação do meio legível por computador 16. A informação do meio legível por computador 16 pode incluir informação de sintaxe definida pelo codificador de vídeo 20, que também é utilizada pelo decodificador de vídeo 30, que inclui os elementos de sintaxe que descrevem as características e/ou processamento dos blocos e outras unidades codificadas, por exemplo, GOPs. O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição tal como um tubo de raio catodo (CRT), um monitor de cristal líquido (LCD), um monitor de plasma, um monitor de diodo de emissão de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0058] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar 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 Eficiência (HEVC) atualmente em desenvolvimento, e pode se conformar ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou da indústria, tal como padrão ITU- T H.264, alternativamente referido como MPEG-4, Parte 10, Codificação de Vídeo Avançado (AVC), ou extensões de tais padrões. As técnicas dessa descrição, no entanto, não são limitadas a qualquer padrão de codificação em particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.264. Apesar de não ilustrado na figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ,cada um, ser integrados com um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX adequadas, ou outro hardware e software, para manusear a codificação de ambos áudio e vídeo em uma sequência de dados comum ou sequências de dados separadas. Se aplicável, as unidades MUX-DEMUX podem se conformar ao protocolo de multiplexador ITU H.223, ou outros protocolos tal como o protocolo de datagrama de usuário (UDP).
[0059] O padrão ITU-T H.264/MPEG-4 (AVC) foi formulado pelo Grupo de Especialistas de Codificação de Vídeo ITU-T (VCEG) juntamente com o Grupo de Especialistas em Imagem em Movimento ISO/IEC (MPEG) como o produto de uma parceria coletiva conhecida como Equipe de Vídeo Conjunta (JVT). Em alguns aspectos, as técnicas descritas nessa descrição podem ser aplicadas aos dispositivos que se conformam geralmente ao padrão H.264. O padrão H.264 é descrito a Recomendação ITU-T H.264, Codificação de Vídeo Avançada para serviços audiovisuais genéricos, pelo Grupo de Estudos ITU-T, e datado de março de 2005, que pode ser referido aqui como o padrão H.264 ou especificação H.264, ou padrão ou especificação H.264/AVC. A Equipe de Vídeo Conjunta (JVT) continua a trabalhar nas extensões para H.264/MPEG-4 AVC.
[0060] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo 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 realizar as técnicas dessa descrição. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um dispositivo respectivo.
[0061] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um dispositivo de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume várias capacidades adicionais de dispositivos de codificação de vídeo com relação aos dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, ao passo que H.264 fornece nove modos de codificação de intraprevisão, HM pode fornecer tanto quanto trinta e três modos de codificação de intraprevisão. Apesar de essa descrição poder as vezes se basear em WD7 ou HEVC para fins de explicação, as técnicas dessa descrição não são de forma alguma limitadas a WD7. O padrão HEVC continua a evoluir e é contemplado que as técnicas dessa descrição podem ser compatíveis com versões futuras de HEVC. Por exemplo, as técnicas nessa descrição podem ser utilizadas em conjunto com o "Rascunho de Trabalho HEVC 10" ou "WD10", que é descrito no documento JCTVC-L1003_v18, Bross et al., "High Efficiency Video Coding (HEVC) Text Specification Draft 10," Joint Collaborative Team on Video Coding (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12o. Encontro: Genebra, Suíça, 14 a 23 de janeiro de 2013, que, a partir de 5 de fevereiro de 2013, pode ser descarregado a partir de http://phenix.it- sudparis.eu/jct/doc end user/documents/12 Geneva/wg11/JCTVC -L1003-v18.zip.
[0062] Em geral, o modelo de trabalho de HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos de árvore ou unidades de codificação maiores (LCU) que inclui ambas as amostras de luminescência e crominância. Dados de sintaxe dentro de uma sequência de bits podem definir um tamanho para a LCU, que é uma maior unidade de codificação em termos do número de pixels. Uma fatia inclui um número de blocos de árvore consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser dividido em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidades de codificação (CUs) de acordo com um quadtree. Em geral, uma estrutura de dados de quadtree inclui um nó por CU, com um nó raiz correspondendo ao bloco de árvore. Se uma CU for dividida em quatro sub-CUs, o nó correspondente ao CU inclui quatro nós folha, cada um dos quais corresponde a uma das sub-CUs.
[0063] Cada nó da estrutura de dados de quadtree pode fornecer dados de sintaxe para a CU correspondente. Por exemplo, um nó no quadtree pode incluir um indicador dividido, indicando se a CU correspondente ao nó é dividida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos de forma recursiva, e podem depender de se a CU é dividida em sub-CUs. Se uma CU não for dividida adicionalmente, é referida como uma CU folha. Nessa descrição, quatro sub-CUs de uma CU folha também serão referidas como CUs folha mesmo se não houver qualquer divisão explícita da CU folha original. Por exemplo, se uma CU no tamanho de 16 x 16 não for dividida adicionalmente, as quatro sub-CUs 8 x 8 também serão referidas como CUs folha apesar de a CU 16 x 16 nunca ter sido dividida.
[0064] Uma CU possui uma finalidade similar como um macro bloco do padrão H.264, exceto que uma CU não possui uma distinção de tamanho. Por exemplo, um bloco árvore pode ser dividido em quatro nós criança (também referidos como sub-CUs), e cada nó criança pode, por sua vez, ser um nó parente e a divisão em outros quatro nós criança. Um nó criança não dividido final referido como um nó folha de quadtree, compreende um nó de codificação, também referida como uma CU folha. Os dados de sintaxe associados com uma sequência de bits codificada podem definir um número máximo de vezes em que um bloco árvore pode ser dividido, referido como uma profundidade CU máxima, e pode também definir um tamanho mínimo de nós de codificação. De acordo, uma sequência de bits também ode definir uma unidade de codificação menor (SCU).Essa descrição utiliza o termo "bloco" para fazer referência a qualquer uma dentre CU, PU, ou TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macro blocos e sub-blocos dos mesmos em H.264/AVC).
[0065] Uma CU inclui um nó de codificação e unidades de previsão (PUs) e unidades de transformação (TUs) associadas com o nó de codificação. Um tamanho da CU correspondente a um tamanho do nó de codificação e deve ter um formato quadrado. O tamanho da CU pode variar de 8 x 8 pixels até o tamanho do bloco de árvore com um máximo de 64 x 64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados com uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir entre se a CU foi codificada por modo de pulo ou direto, codificada no modo de intraprevisão, ou codificada no modo de interprevisão. As Pus podem ser divididas para terem um formato não quadrado. Os dados de sintaxe associados com uma CU também pode descrever, por exemplo, a divisão da CU em uma ou mais TUs de acordo com um quadtree. Uma TU pode ser quadrada ou não (por exemplo, retangular).
[0066] O padrão HEVC permite a transformação de acordo com as TUs, que podem ser diferentes para diferentes CUs. As TUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma CU determinada definida para uma LCU dividida, apesar disso poder nem sempre ser o caso. As TUs são tipicamente do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores utilizando uma estrutura de quadtree conhecida como "quad tree residual" (RQT). Os nós folha do RQT podem ser referidos como unidades de transformação (TUs). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir os coeficientes de transformação, que podem ser quantizadas.
[0067] Uma CU folha pode incluir uma ou mais unidades de previsão (PUs). Em geral, uma PU representa uma área espacial correspondente a toda ou uma parte da CU correspondente, e pode incluir dados para recuperação de uma amostra de referência para a PU. Ademais, uma PU inclui dados relacionados para previsão. Por exemplo, quando a PU é codificada por intramodo, os dados para a PU podem ser incluídos no quadtree residual (RQT), que pode incluir dados descrevendo um modo de intraprevisão para uma TU correspondendo à PU. Como outro exemplo, quando a PU é codificada por intermodo, a PU pode incluir dados definindo um ou mais vetores de movimento para a PU. Os dados definindo o vetor de movimento para uma PU pode 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 (por exemplo, precisão de um quarto de pixel ou uma precisão de um oitavo de pixel), uma imagem de referência à qual os pontos de vetor de movimento e/ou uma lista de imagem de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0068] Uma CU folha possuindo uma ou mais PUs também pode incluir uma ou mais unidades de transformação (TUs). As unidades de transformação podem ser especificadas utilizando um RQT (também referido como uma estrutura de quadtree TU), como discutido acima. Por exemplo, um indicador de divisão pode indicar se uma CU folha foi dividida em quatro unidades de transformação. Então, cada unidade de transformação pode ser dividida adicionalmente em sub-TUs adicionais. Quando uma TU não é mais dividida, pode ser referida como uma TU folha. Geralmente, para intracodificação, todas as TUs folha pertencentes a uma CU folha compartilham o mesmo modo de intraprevisão. Isso é, o mesmo modo de intraprevisão é geralmente aplicado para calcular os valores previstos para todas as TUs de uma CU folha. Para a intracodificação, um codificador de vídeo pode calcular um valor residual para cada TU folha utilizando o modo de intraprevisão, como uma diferença entre a parte da CU correspondente à TU e o bloco original. Uma TU não é necessariamente limitada ao tamanho de uma PU. Dessa forma, as TUs podem ser maiores ou menores que uma PU. Para a intracodificação, uma PU pode ser colocalizada com uma TU folha correspondente para a mesma CU. Em alguns exemplos, o tamanho máximo de TU folha pode corresponder ao tamanho da CU folha correspondente.
[0069] Ademais, TUs das CUs folha também podem ser associadas com estruturas de dados de quadtree respectivas, referidas como quadtrees residuais (RQTs). Isso é, uma CU folha pode incluir um quadtree indicando como a CU folha é dividida em TUs. O nó raiz de um quadtree TU geralmente corresponde a uma CU folha, enquanto o nó raiz de um quadtree CU geralmente corresponde a um bloco árvore (ou LCU). TUs de RQT que não são divididas são referidas como TUs folha. Em geral, essa descrição utiliza os termos CU e TU para fazer referência à CU folha e TU folha, respectivamente, a menos que notado o contrário.
[0070] Uma sequência de vídeo inclui tipicamente a série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho de GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreve um número de imagens incluído no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a fatia respectiva. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem diferir de tamanho de acordo com um padrão de codificação especificado.
[0071] Como um exemplo, HM suporta a previsão em vários tamanhos PU. Assumindo-se que o tamanho de uma CU em particular é 2N x 2N, HM suporta a intraprevisão em tamanhos de PU de 2N x N ou N x N, e interprevisão em tamanhos PU simétricos de 2N x 2N, 2N x N, N x 2N, ou N x N. HM também suporta a divisão assimétrica para interprevisão em tamanhos de PU de 2N x nU, 2N x nD, nL x 2N e nR x 2N. Na divisão assimétrica, uma direção de uma CU não é dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU correspondente à divisão de 25% é indicada por um "n" seguido por uma indicação de "para cima", "para baixo", "para a esquerda" ou "para a direita". Dessa forma, por exemplo, "2N x nU" se refere a uma CU 2N x 2N que é dividida horizontalmente com uma PU 2N x 0,5N em cima e uma PU 2N x 1,5N em baixo.
[0072] Nessa descrição, "N x N" e "N por N" podem ser utilizados de forma intercambiável para fazer referência às dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, pixel 16 x 16 ou pixels de 16 por 16. Em geral, um bloco 16 x 16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). Da mesma forma, um bloco N x N possui geralmente N pixels em uma direção vertical e N pixels em uma direção horizontal, onde N representa um valor inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, os blocos não precisam ter necessariamente o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender N x M pixels, onde M não é necessariamente igual a N.
[0073] Seguindo a codificação por intraprevisão ou interprevisão utilizando as PUs de uma CU, o codificador de vídeo 20 pode calcular os dados residuais para as TUs da CU. As PUs podem compreender dados de sintaxe descrevendo um método ou modo de geração de dados de pixel de previsão no domínio espacial (também referido como domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformação seguindo a aplicação de uma transformação, por exemplo, uma transformação de cosseno discreto (DCT), uma transformação de inteiro, uma transformação de wavelet, ou uma transformação conceitualmente similar aos dados de vídeo residuais. Os dados residuais podem corresponder às diferenças de pixel entre os pixels da imagem não codificada e valores de previsão correspondendo às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU, e então transforma as TUs para produzir os coeficientes de transformação para a CU.
[0074] Seguindo qualquer uma das transformações para produzir os coeficientes de transformação, o codificador de vídeo 20 pode realizar a quantização dos coeficientes de transformação. A quantização se refere geralmente a um processo no qual os coeficientes de transformação são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, fornecendo a compressão adicional. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para baixo para um valor de m bits durante a quantização, onde n é maior quem.
[0075] Seguindo a quantização, o codificador de vídeo pode digitalizar os coeficientes de transformação, produzindo um vetor unidimensional a partir da matriz bidimensional incluindo os coeficientes de transformação quantizados. A digitalização pode ser projetada para colocar coeficientes de energia mais alta (e, portanto a menor frequência) no fundo do conjunto. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de digitalização predefinida para digitalizar os coeficientes de transformação quantizados para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma digitalização adaptativa. Depois da digitalização dos coeficientes de transformação quantizados para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativa de contexto (CAVLC), a codificação aritmética binária adaptativa de contexto (CABAC), a codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), a codificação por Entropia de Divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 também pode codificar por entropia elementos de sintaxe associados com os dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação de dados de vídeo.
[0076] Para realizar CABAC, o codificador de vídeo 20 pode designar um contexto dentro de um modelo de contexto para um símbolo a ser transmitido. O contexto pode se referir a, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. Palavras código em VLC podem ser construídas de modo que os códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Dessa forma, o uso de VLC pode alcançar uma economia de bits através, por exemplo, utilizando palavras código de mesmo comprimento para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto designado para o símbolo.
[0077] De acordo com as técnicas dessa descrição, o codificador de vídeo 20 e decodificador de vídeo 30 pode ser configurado para executar uma função ilustrativa "GetLSB(poc, len)," onde poc é um inteiro e len é um inteiro positivo, como segue: GetLSB(poc, len) = poc -(1 << len)*Floor (poc/1<<len) (1) No exemplo da função (1), "<<" representa um operador de mudança para a esquerda na direção de bit e Floor() retorna um valor de argumento passado para o mesmo que é arredondado para baixo.
[0078] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar uma ou mais várias técnicas para derivação de conjuntos de imagem de referência (RPSs) e sinalização de imagens de referência de longo termo (LTRPs) a serem incluídas nos RPSs de uma imagem codificada. Em geral, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar qualquer um ou todos os exemplos descritos nessa descrição, sozinhos ou em qualquer combinação. Em geral, essa descrição descreve as técnicas relacionadas com as técnicas de codificação e decodificação a seguir, onde o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar todas ou quaisquer técnicas em combinação com outras técnicas de WD7 ou outras estruturas de trabalho de codificação de vídeo.
[0079] Em um exemplo, a informação sinalizada para um LTRP em particular a ser incluída em RPS da imagem atual pode ser o valor POC delta, entre a imagem atual e LTRP ou entre LTRP e a imagem RAP anterior na ordem de decodificação. Como uma alternativa, a sinalização e derivação LTRP podem permanecer iguais como em WD7, exceto que o elemento de sintaxe delta_poc_msb_cycle_lt[i] é sempre sinalizado para cada LTRP no cabeçalho de fatia, pela remoção de elemento de sintaxe delta_poc_msb_present_flag[i], ou pela obrigação de que delta_poc_msb_present_flag[i] seja igual a 1 para todas as LTRPs. Como outra alternativa, a informação sinalizada para uma LTRP em particular a ser incluída nos RPS da imagem atual pode ser o valor POC delta entre LTRP e a imagem RAP anterior na ordem de decodificação, ou o método alternativo acima pode ser aplicado.
[0080] Em uma alternativa, as imagens seguindo uma imagem CRA ou BLA na ordem de decodificação podem ser desativadas para utilizar as imagens precedendo as imagens CRA ou BLA na ordem de decodificação como LTRPs. Consequentemente, imagens dianteiras podem ser desativadas para fazer referência às imagens que precedem a imagem CRA ou BLA associada, na ordem de decodificação, como LTRPs. Para imagens não TFC, o número de bits necessários para sinalizar LSB LTRP podem ser determinados pela imagem com POC menor que não é marcado como TFD, e que precede, na ordem de decodificação, a imagem atual, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação inclusive da imagem RAP anterior na ordem de decodificação. Para imagens TFD, o número de bits necessários ara sinalizar LSB LTRP pode ser determinado pela imagem com o menor POC que precede, na ordem de decodificação, a imagem atual, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação inclusive da imagem RAP anterior na ordem de decodificação.
[0081] Em uma alternativa, as imagens TFD associadas com uma imagem RAP pode ser desativada para suceder, na ordem de decodificação, qualquer imagem DLP associada com a mesma imagem RAP. Para imagens não TFD, o número de bits necessário para sinalizar LSB LTRP pode ser determinado pela imagem com menor POC que não é marcada como uma imagem TFD, e que precede a imagem atual, na ordem de decodificação, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação, inclusive da imagem RAP anterior na ordem de decodificação. Para imagens TFD, o número de bits necessário para sinalizar LSB LTRP pode ser determinado pela imagem com menor POC que precede, na ordem de decodificação, a imagem atual, e sucede, na ordem de saída, a RAP antes da imagem RAP anterior na ordem de decodificação inclusive da RAP antes da imagem RAP anterior na ordem de decodificação.
[0082] Em uma alternativa, as imagens dianteiras associadas com uma imagem CRA ou BLA podem ser desativadas para fazer referência à imagem CRA ou BLA associada ou outras imagens dianteiras associadas com a mesma imagem CRA ou BLA como LTRPs. O número de bits necessário para sinalizar o LSB LTRP pode ser determinado pela imagem RAP que precede na ordem de saída, a imagem atual.
[0083] Em uma alternativa, a restrição a seguir pode ser imposta. Qualquer imagem precedendo uma imagem CRA ou BLA na ordem de decodificação deve preceder qualquer imagem DLP associada com a imagem CRA ou BLA na ordem de saída. Adicionalmente, a restrição a seguir também pode ser imposta onde qualquer imagem TFD associada com uma imagem CRA ou BLA deve preceder qualquer imagem DLP associada com a imagem CRA ou BLA na ordem de saída. Essas restrições ilustrativas desativam os casos nos quais as imagens DLP são intercaladas, na ordem de saída, com as imagens TFD ou imagens anteriores, na ordem de decodificação, à imagem CRA ou BLA associada. Nesses casos, quando o acesso randômico ou realização de comutação de sequência da imagem CRA ou BLA, a taxa de imagem inicial seria menor do que depois que as imagens DLP são enviadas. No sequenciamento de adaptação com comutação frequente de corrente, por exemplo, no contexto de sequenciamento adaptativo dinâmico através de HTTP (DASH), tal flutuação na taxa de imagem pode causar uma experiência indesejável para o usuário. Para uma imagem CRA ou BLA, WD7 fornece que não deve haver imagem anterior à imagem CRA ou BLA na ordem de decodificação e imagem CRA ou BLA seguinte na ordem de saída. A inclusão para essa restrição foi por uma razão similar.
[0084] Em uma alternativa, as imagens dianteiras (mais especificamente, imagens TFD) associadas com uma primeira imagem podem utilizar as imagens DLP associadas com uma segunda imagem para referência de interprevisão como STRPs ou LTRPs, onde a primeira imagem é uma imagem CRA, a segunda imagem é uma imagem CRA ou BLA, e a segunda imagem e a primeira imagem são duas imagens RAP contínuas na ordem de decodificação, com a primeira imagem sucedendo a segunda imagem na ordem de decodificação. Tal referência de interprevisão de imagens DLP pelas imagens dianteiras pode ser ativada permitindo-se que tais imagens DLP estejam presentes no conjunto de imagens de referência de tais imagens dianteiras, e pode permitir uma codificação mais flexível e de maior eficiência das imagens dianteiras. De acordo, as definições de imagens CRA e BLA podem ser alteradas para permitir tal interprevisão.
[0085] Em uma alternativa, a intercalação de ordem de decodificação das imagens TFD associadas com uma imagem ou imagens CRA ou BLA sucedendo a imagem CRA ou BLA em ambas a ordem de decodificação e a ordem de envio, isso é, imagens traseiras da imagem CRA ou BLA podem ser desativadas. Em outras palavras, quaisquer imagens TFD associadas com uma imagem CRA ou BLA pode precisar preceder qualquer imagem traseira da imagem CRA ou BLA na ordem de decodificação.
[0086] Alternativamente, a intercalação de ordem de decodificação das imagens dianteiras associadas com uma imagem CRA ou BLA sucedendo a imagem CRA ou BLA em ambas a ordem de decodificação e ordem de envio podem ser desativadas. Em outras palavras, qualquer imagem dianteira associada com uma imagem CRA ou BLA pode precisar preceder qualquer imagem, na ordem de decodificação, que sucede a imagem CRA ou BLA em ambas a ordem de decodificação e a ordem de saída.
[0087] Os exemplos a seguir das implementações fornecem detalhes adicionais para os exemplos descritos abaixo. Deve-se compreender que várias técnicas descritas nas implementações ilustrativas podem ser utilizadas sozinhas ou em qualquer combinação.
[0088] Uma primeira implementação ilustrativa fornece um método para tentar solucionar o problema de resiliência de erro e garantir que o desvio RPS seja autocontido (isso é, não dependa da situação DPB), e é, ao mesmo tempo, livre de problemas quando um acesso randômico é realizado a partir de uma imagem CRA ou quando uma imagem CRA é convertida em uma imagem BLA. Nessa primeira implementação ilustrativa, a informação sinalizada para uma LTRP em particular a ser incluída na RPS da imagem atual é valor POC delta, entre a imagem atual e LTRP (modo 1) ou entre LTRP e a imagem RAP anterior na ordem de decodificação (modo 2). Essa primeira implementação ilustrativa também é alinhada com a sinalização RPS atual e a derivação para STRPs de WD7. Os codificadores, tal como o codificador de vídeo 20, podem escolher um dos dois modos para cada LTRP a ser sinalizada que resulte em menos bits sendo utilizados. Por exemplo, se LTRP estiver mais perto da RAP anterior na ordem de decodificação do que a imagem atual na distância da ordem de saída/exibição, então o codificador de vídeo 20 pode ser configurado para utilizar o modo 2. Do contrário, o codificador de vídeo 20 pode utilizar o modo 1. Da mesma forma, o decodificador de vídeo 30 pode receber dados de sintaxe descrevendo o modo de uso, e utiliza o modo sinalizado pelos dados de sintaxe.
[0089] Para se alcançar a primeira implementação ilustrativa, a mudanças de sintaxe, semântica e processo de codificação a seguir, com relação a WD7, podem ser utilizadas, onde texto sublinhado representa uma mudança com relação a WD7. A Tabela 5 abaixo fornece um conjunto ilustrativo de sintaxe para um conjunto de parâmetros de imagem (PPS). Tabela 5
[0090] Nessa primeira implementação ilustrativa, como ilustrado na Tabela 5, a sintaxe PPS inclui um elemento de sintaxe adicional, poc_lt_idc, com relação a WD7. A semântica para outros elementos de sintaxe pode permanecer igual. Nesse exemplo, poc_lt_idc pode ser utilizado para indicar a presença de delta_poc_lt_curr_pic_flag[i] no cabeçalho de fatia e, quando delta_poc_lt_curr_pic_flag[i] não está presente no cabeçalho de fatia, para determinar o valor inferido de delta_poc_lt_curr_pic_flag[i] no cabeçalho de fatia. Se poc_lt_idc for igual a 0 ou 1, delta_poc_lt_curr_pic_flag[i] não está presente no cabeçalho de fatia e o valor é inferido como sendo igual a poc_lt_idc, nesse exemplo. Quando poc_lt_idc é igual a 2, delta_poc_lt_curr_pic_flag[i] é sinalizado no cabeçalho de fatia, nesse exemplo. O valor 3 para poc_lt_idc é reservado para uso futuro, nesse exemplo.
[0091] A Tabela 6 fornece um conjunto ilustrativo de sintaxe para um cabeçalho de fatia de acordo com a primeira implementação ilustrativa. Tabela 6
[0092] Nesse exemplo, o cabeçalho de fatia inclui elementos de sintaxe adicionais de delta_poc_lt_curr_pic_flag[i], delta_poc_lt_len[i], e em alguns casos, delta_poc_lt[i]. Um conjunto ilustrativo de semânticas é descrito para esses elementos de sintaxe abaixo. A semântica para outros elementos de sintaxe pode permanecer igual a WD7.
[0093] Nessa primeira implementação ilustrativa, delta_poc_lt_curr_pic_flag[i] igual a 1 pode especificar que delta_poc_lt[i] representa a diferença de contagem de ordem de imagem entre a imagem atual e a imagem de referência de longo termo i. delta_poc_lt_curr_pic_flag[i] igual a 0 pode especificar que delta_poc_lt[i] representa a diferença de contagem de ordem de imagem entre a imagem RAP anterior na ordem de decodificação e a imagem de referência de longo termo i. Se poc_lt_idc (por exemplo, da Tabela 5) é igual a 0 ou 1, o valor de delta_poc_lt_curr_pic_flag[i] pode ser inferido como sendo igual a poc_lt_idc.
[0094] Na primeira implementação ilustrativa, delta_poc_lt_len[i] pode ser utilizada para especificar o número de bits para representar delta_poc_lt[i]. Se delta_poc_lt_curr_pic_flag[i] for igual a 0, o valor de delta_poc_lt_len[i] pode estar na faixa de 0 a 24, inclusive. Do contrário (delta_poc_lt_curr_pic_flag[i] é igual a 1), o valor de delta_poc_lt_len[i] pode estar na faixa de 1 a 24, inclusive.
[0095] A variável DeltaPocLtLen[i] pode ser derivada como segue: se (i == 0) DeltaPocLtLen[i] = delta_poc_lt_len[i] ou DeltaPocLtLen[i] = DeltaPocLtLen[i- 1]+delta_poc_let_len[i].
[0096] Alternativamente, delta_poc_lt_len[i] pode ser alterado para poc_lt_len[i], que é codificado com comprimento fixo, por exemplo, como u(N), com N sendo igual a 5. Nesse caso, a semântica pode ser como segue. poc_lt_len[i] pode especificar o número de bits para representar delta_poc_lt[i]. Se delta_poc_lt_curr_pic_flag[i] for igual a 0, o valor de poc_lt_len[i] pode estar na faixa de 0 a 24, inclusive. Do contrário (delta_poc_lt_curr_pic_flag[i] é iguala 1), o valor de poc_lt_len[i] pode estar na faixa de 1 a 24, inclusive. A variável DeltaPocLtLen[i] pode ser determinada como sendo igual a poc_lt_len[i].
[0097] Nessa primeira implementação ilustrativa, delta_poc_lt[i] pode especificar o valor de contagem de ordem de imagem delta da imagem de referência de longo termo i que é incluída no conjunto de imagens de referência de longo termo da imagem atual. O comprimento de delta_poc_lt[i] pode ser DeltaPocLtLen[i].
[0098] O decodificador de vídeo 30 pode ser configurado para realizar um processo de decodificação para um conjunto de imagens de referência de acordo com essa primeira implementação ilustrativa como segue. O codificador de vídeo 20 pode realizar um processo similar enquanto codifica os dados de vídeo para gerar o conjunto de imagens de referência. O decodificador de vídeo 30 pode invocar esse processo de decodificação uma vez por imagem, depois de decodificar um cabeçalho de fatia, mas antes de decodificar qualquer unidade de codificação e antes do processo de decodificação para a construção da lista de imagens de referência da fatia como especificado na subcláusula 8.3.3 de WD7. O processo pode resultar na marcação de uma ou mais imagens de referência como "não utilizadas para referência". As citações de WD7 começando com "NOTA" devem ser reconhecidas meramente como citações tiradas diretamente de WD7 e não como necessárias para as técnicas dessa descrição. Nota 1 - O conjunto de imagens de referência é uma descrição absoluta das imagens de referência utilizadas no processo de decodificação das imagens codificadas atuais e futuras. A sinalização do conjunto de imagens de referência é explícita no sentido de todas as imagens de referência incluídas no conjunto de imagens de referência serem listadas explicitamente e não haver um processo de construção de conjunto de imagens de referência padrão no decodificador que dependa da situação do armazenador de imagens decodificadas.
[0099] Imagens de referência podem ser identificadas por valores PicOrderCntVal.
[0100] Cinco listas de valores de contagem de ordem de imagens podem ser construídos para derivar o conjunto de imagens de referência - PocStCurrBefore, PocStCurrAfter, PocSTFoll, PocLtCurr, e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll número de elementos, respectivamente.
[0101] Se a imagem atual for uma imagem CRA que é a primeira imagem codificada na sequência de bits, uma imagem IDR ou uma imagem BLA, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll são todos configurados como vazios, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll podem todos ser determinados para 0.
[0102] Do contrário, o apresentado a seguir pode se aplicar para a derivação de cinco listas de valores de contagem de ordem de imagem e os números de registros. com( i = 0, j = 0, k = 0; i < NumNegativePics[StRpsIdx] ; i++ ) se( UsedByCurrPicS0[StRpsIdx][i] ) PocStCurrBefore[j++] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] ou PocStFoll[k++] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] NumPocStCurrBefore = j com( i = 0, j = 0; i < NumPositivePics[ StRpsIdx ]; i++ ) se( UsedByCurrPicS1[StRpsIdx][i] ) PocStCurrAfter[j++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] ou PocStFoll[k++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] NumPocStCurrAfter = j NumPocStFoll = k (8-5) com( i = 0, j = 0, k = 0; i < num_long_term_pics; i++ ) se( used by curr pic It flag[i] ) { se( delta poc It curr pic flag[i] ) PocLtCurr[j] = PicOrderCntVal - delta poc lt[i] ou PocLtCurr[j] = PrevRapPicPoc + delta poc lt[i] j++ } ou { se( delta poc lt curr pic flag[i] ) PocLtFoll[k] = PicOrderCntVal - delta poc lt[i] ou PocLtFoll[k] = PrevRapPicPoc + delta poc lt[i] k+ + } NumPocLtCurr = j NumPocLtFoll = k onde PicOrderCntVal e PrevRapPicPoc são os valores de contagem de ordem de imagem da imagem atual e a imagem RAP anterior na ordem de decodificação, respectivamente, como especificado na subcláusula 8.2.1. Nota 2 — Um valor de StRpsIdx na faixa de 0 a num_short_term_ref_pic_sets - 1, inclusive, pode indicar que um conjunto de imagens de referência de curto termo do conjunto de parâmetros de sequência ativa está sendo utilizado, onde StRpsIdx é o índice da imagem de referência de curto termo para a lista de conjuntos de imagem de referência de curto termo na ordem na qual são sinalizados no conjunto de parâmetros de sequência. StRpsIdx igual a num_short_term_ref_pic_sets indica que um conjunto de imagens de referência de curto termo sinalizado explicitamente no cabeçalho de fatia está sendo utilizado.
[0103] O conjunto de imagens de referência pode incluir cinco listas de imagens de referência - RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. A variável NumPocTotalCurr pode ser configurada igual a NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr. Quando da decodificação de uma fatia P ou B, WD7 exige, para a conformação de sequência de bits, que o valor de NumPocTotalCurr não seja igual a 0. Nota 3 - RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr podem conter todas as imagens de referência que podem ser utilizadas na interprevisão da imagem atual e que podem ser utilizadas na interprevisão de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação. RefPicSetStFoll e RefPicSetLtFoll podem incluir todas as imagens de referência que não são utilizadas na interprevisão da imagem atual, mas podem ser utilizadas na interprevisão de uma ou mais imagens seguindo a imagem atual na ordem de decodificação.
[0104] A marcação de uma imagem de referência pode ser "não utilizada para referência", "utilizada para referência de curto termo" ou "utilizada para referência de longo termo", mas apenas uma dentre essas três, em WD7. Quando uma imagem de referência é referida como uma sendo marcada, como "utilizada para referência," isso se refere coletivamente à imagem sendo marcada como "utilizada para referência de curto termo" ou "utilizada para referência de longo termo" (mas não ambas em WD7). Uma imagem de referência que é marcada como "utilizada para referência de curto termo" é referida como uma imagem de referência de curto termo. Uma imagem de referência que é marcada como "utilizada para referência de longo termo" é referida como uma imagem de referência de longo termo.
[0105] O processo de derivação para o conjunto de imagens de referência e a marcação de imagens é realizada de acordo com as etapas ordenadas a seguir, onde DPB ser refere ao armazenador de imagem decodificado como descrito no Anexo C de WD7, onde (#-#) se refere a um número de equação de WD7: 1. O seguinte se aplica: com( i = 0; i < NumPocLtCurr; i++ ) { se( houver uma imagem picX no DPB com PicOrderCntVal igual a PocLtCurr[i] ) RefPicSetLtCurr[i] = picX ou RefPicSetLtCurr[i] = “sem imagem de referência” } (8-6) com( i = 0; i < NumPocLtFoll; i++ ) { se( houver uma imagem picX no DPB com PicOrderCntVal igual a PocLtFoll[i] ) RefPicSetLtFoll[i] = picX ou RefPicSetLtFoll[ i ] = “sem imagem de referência” } 2. Todas as imagens de referência incluídas RefPicSetLtCurr e RefPicSetLtFoll são marcadas como "utilizadas para referencia de longo termo” 3. O seguinte se aplica: com( i = 0; i < NumPocStCurrBefore; i++ ) se( houver uma imagem picX no DPB com PicOrderCntVal igual a PocStCurrBefore[i]) RefPicSetStCurrBefore[i] = picX ou RefPicSetStCurrBefore[i] = “sem imagem de referencia” com( i = 0; i < NumPocStCurrAfter; i++ ) se(houver uma imagem de referencia picX no DPB com PicOrderCntVal igual a PocStCurrAfter[i]) RefPicSetStCurrAfter[i] = picX ou RefPicSetStCurrAfter[i] = “sem imagem de referencia” (8-7) com( i = 0; i < NumPocStFoll; i++ ) se(houver uma imagem picX no DPB com PicOrderCntVal igual a PocStFoll[i]) RefPicSetStFoll[i] = picX ou RefPicSetStFoll[i] = “sem imagem de referencia” 4. Todas as imagens de referência incluídas em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetStFoll são marcadas como "utilizadas para referência de curto termo".
[0106]Todas as imagens de referência no armazenador de imagens decodificadas que não são incluídas em RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll podem ser marcadas como "não utilizadas para referência". Nota 4 - Pode haver uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas não presentes no armazenador de imagem decodificada. Os registros em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a "sem imagem de referência" devem ser ignorados. A menos que uma das duas condições a seguir seja verdadeira, uma perda de imagem não intencional deve ser inferida, em WD7, para cada registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr que é igual a "sem imagem de referência": (a) uma primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits; (b) a imagem RAP anterior que precede a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA.
[0107] Alternativamente, WD7 pode exigir que, acima, cada picX identificada em DPB deva ser marcada como "utilizada para referência". Alternativamente, WD7 pode restringir que uma imagem marcada como "não utilizada para referência" nunca deva ser marcada como "utilizada para referência".
[0108] Alternativamente, as cinco etapas acima podem ser substituídas pelas seguintes: 1. O seguinte se aplica: com( i = 0; i < NumPocLtCurr; i++ ) { se( houver uma imagem picX em DPB que tenha PicOrderCntVal igual a PocLtCurr[i] e que seja marcada como "utilizada para referencia" ) RefPicSetLtCurr[i] = picX ou RefPicSetLtCurr[i ] = “sem imagem de referencia” } (8-6) com( i = 0; i < NumPocLtFoll; i++ ) { se( houver uma imagem picX em DPB que tenha PicOrderCntVal igual a PocLtFoll[i] e que seja marcada como "utilizada como referencia" ) RefPicSetLtFoll[i] = picX ou RefPicSetLtFoll[i] = “sem imagem de referencia” } 2. Todas as imagens de referência incluídas em RefPicSetLtCurr e RefPicSetLtFoll são marcadas como "utilizadas para referência de longo termo". 3. O seguinte se aplica: com( i = 0; i < NumPocStCurrBefore; i++ ) se( houver uma imagem picX em DPB que tenha PicOrderCntVal igual a PocStCurrBefore[i] e que seja marcada como "utilizada para referencia") RefPicSetStCurrBefore[i] = picX ou RefPicSetStCurrBefore[i] = “sem imagem de referencia” com( i = 0; i < NumPocStCurrAfter; i++ ) se( houver uma imagem picX em DPB que tenha PicOrderCntVal igual a PocStCurrAfter[i] e que seja marcada como "utilizada como referencia") RefPicSetStCurrAfter[i] = picX ou RefPicSetStCurrAfter[i] = “sem imagem de referencia” (8-7) com( i = 0; i < NumPocStFoll; i++ ) se( houver uma imagem picX em DPB que tenha PicOrderCntVal igual a PocStFoll[i] e que seja marcada como "utilizada para referência") RefPicSetStFoll[i] = picX ou RefPicSetStFoll[i] = “sem imagem de referencia” 4. Todas as imagens de referência incluídas em RefPicSetStCurrBefore, RefPicSetStCurAfter e RefPicSetStFoll são marcadas como "utilizadas para referência de curto termo". 5. Todas as imagens de referência no armazenador de imagem decodificada que não são incluídas em RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll são marcadas como "não utilizadas para referência". Nota 4 - Pode haver uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas não estão presentes no armazenador de imagem decodificada. Os registros em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a "sem imagem de referência" devem ser ignorados, de acordo com WD7. A menos que uma das duas condições a seguir seja verdadeira, uma perda de imagem não intencional deve ser inferida para cada registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr que é igual a "sem imagem de referência" em WD7: (a) a primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits; (b) a imagem RAP anterior precedendo a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA.
[0109] Alternativamente, a ordem as etapas acima pode ser alterada para 3, 4, 1, 2 e 5.
[0110] Em alguns exemplos, WD7 exige, para a conformação de sequência de bits, que o conjunto de imagens de referência seja restrito como segue: Não deve haver qualquer imagem de referência com temporal_id superior a da imagem atual incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter, e RefPicSetLtCurr. Quando a imagem atual é uma imagem TLA, não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência com temporal_id superior a ou igual a temporal_id da imagem atual. Não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que precede, na ordem de saída, qualquer imagem RAP que preceda a imagem atual tanto na ordem de decodificação quanto na ordem de saída. A menos que uma das condições a seguir seja verdadeira, não deve haver registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr que seja igual a "sem imagem de referência": (a) a primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits: (b) a imagem RAP anterior que precede a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA. Nota 5 - Uma imagem de referência não pode ser incluída em mais de uma dentre as cinco listas de conjuntos de imagem de referência.
[0111]Em alguns exemplos, WD7 fornece que as restrições acima podem ser como segue: Não deve haver qualquer imagem de referência com temporal_id maior do que o da imagem atual incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr. Quando a imagem atual é uma imagem TLA, não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência com temporal_id maior do que ou igual a temporal_id da imagem atual. Deixemos prevRapPic ser a imagem RAP anterior na ordem de decodificação. Quando a imagem atual é uma imagem RAP ou precede, na ordem de saída, prevRapPic, não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que preceda, na ordem de saída, qualquer imagem RAP que precede a imagem atual tanto na ordem de decodificação quanto na ordem de saída. Deixemos prevRapPic ser a imagem RAP anterior na ordem de decodificação. Quando a imagem atual não é a imagem RAP e segue prevRapPic na ordem de saída, não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que precede prevRapPic na ordem de decodificação e não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que seja imagem TFD. A menos que qualquer uma das seguintes condições seja verdadeira, não deve haver qualquer registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr que seja igual a "sem imagem de referência": (a) a primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits: (b) a imagem RAP anterior que precede a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA. Nota 5 - Uma imagem de referência não pode ser incluída em mais de uma das cinco listas de conjuntos de imagens de referência, de acordo com WD7.
[0112] Uma segunda implementação ilustrativa, que é baseada na estrutura de sintaxe em HEVC WD7, inclui um método para sempre sinalizar o ciclo MSB de LTRP e remover o elemento de sintaxe delta_poc_msb_present_flag[i]. Novamente, deve-se compreender que várias técnicas da primeira implementação ilustrativa e da segunda implementação ilustrativa podem ser combinadas em qualquer combinação. O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser configurados para realizar toda ou qualquer uma das técnicas dessa segunda implementação ilustrativa, sozinha ou em combinação com uma ou mais das técnicas da primeira implementação ilustrativa discutida acima. A Tabela 7 abaixo fornece um conjunto ilustrativo de sintaxe para um cabeçalho de fatia de acordo com essa segunda implementação ilustrativa. Tabela 7
[0113] Na sintaxe de cabeçalho de fatia ilustrativa da Tabela 7, o elemento de sintaxe delta_poc_msb_cycle_lt[i] é adicionado, com relação a WD7. A semântica para esse elemento de sintaxe pode ser como descrito abaixo, enquanto a semântica para outros elementos de sintaxe pode permanecer igual a WD7, a menos que indicado o contrário. Nessa segunda implementação ilustrativa, delta_poc_msb_cycle_lt[i] ode ser utilizado para determinar o valor dos bits mais significativos do valor de contagem de ordem de imagem da imagem de referência de longo termo i que é incluída no conjunto de imagens de referência de longo termo da imagem atual.
[0114] Nessa segunda implementação ilustrativa, a variável DeltaPocMSBCycleLt[i] pode ser derivada como segue, onde (#-#) se refere a um número de equação de WD7 e o texto sublinhado representa uma mudança com relação a WD7: se(i = = 0) DeltaPocMSBCycleLt[i] = delta_poc_msb_cycle_lt[i]; ou (7-37) DeltaPocMSBCycleLt[i] = delta_poc_msb_cycle_lt[i] + DeltaPocMSBCycleLt[i-1];
[0115] O decodificador de vídeo 30 pode realizar o seguinte processo de decodificação para um conjunto de imagens de referência. O codificador de vídeo 20 pode ser configurado para realizar um processo substancialmente similar enquanto codifica os dados de vídeo para gerar o conjunto de imagens de referência. Esse processo é invocado uma vez por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para a construção da lista de imagem de referência da fatia como especificado na subcláusula 8.3.3 de WD7. O processo pode resultar na marcação de uma ou mais imagens de referência como "não utilizadas para referência". Nota 1 - O conjunto de imagens de referência é uma descrição absoluta das imagens de referência utilizadas no processo de decodificação das imagens codificadas atuais e futuras. A sinalização do conjunto de imagens de referência é explícita no sentido de todas as imagens de referência incluídas no conjunto de imagens de referência serem listadas explicitamente e não existir qualquer processo de construção de conjunto de imagens de referência padrão no decodificador que dependa da situação do armazenador de imagem decodificada.
[0116] As imagens de referência são identificadas por seus valores PicOrderCntVal nessa segunda implementação ilustrativa.
[0117] Cinco listas de valores de contagem de ordem de imagem podem ser construídas para derivar o conjunto de imagens de referência - PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr e NumPocLtFoll número de elementos, respectivamente. Se a imagem atual for uma imagem CRA que é a primeira imagem codificada na sequência de bits, uma imagem IDR ou uma imagem BLA, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll são todos configurados para vazio, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll são todos configurados para 0. Do contrário, o seguinte se aplica à derivação de cinco listas de valores de contagem de ordem de imagem e os números de registros. com( i = 0, j = 0, k = 0; i < NumNegativePics[tRpsIdx] ; i++ ) se( UsedByCurrPicS0[StRpsIdx][i] ) PocStCurrBefore[j++] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] ou PocStFoll[k++] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] NumPocStCurrBefore = j com( i = 0, j = 0; i < NumPositivePics[StRpsIdx]; i++ ) se( UsedByCurrPicS1[StRpsIdx][i] ) PocStCurrAfter[j++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] ou PocStFoll[k++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] NumPocStCurrAfter = j NumPocStFoll = k com( i = 0, j = 0, k = 0; i < num_long_term_pics; i++ ) se( utilizado por curr pic lt flag[i] ) PocLtCurr[j++] PicOrderCntVal DeltaPocMSBCycleLt[i] * MaxPicOrderCntLsb pic order cnt Isb + poc Isb lt[i] ou PocLtFoll[k++] = PicOrderCntVal - DeltaPocMSBCycleLt[i] * MaxPicOrderCntLsb pic order cnt Isb + poc Isb lt[i] NumPocLtCurr = j NumPocLtFoll = k onde PicOrderCntVal é a contagem de ordem de imagem da imagem atual como especificado na subcláusula 8.2.1 de WD7. Nota 2 - Um valor de StRpsIdx na faixa de 0 a num_short_term_ref_pic_sets - 1, inclusive, nesse exemplo indica que um conjunto de imagens de referência de curto termo do conjunto de parâmetros de sequência ativa está sendo utilizado, onde StRpsIdx é o índice do conjunto de imagens de referência de curto termo para a lista de conjuntos de imagem de referência de curto termo na ordem na qual são sinalizados no conjunto de parâmetros de sequência. StRpsIdx igual a num_short_term_ref_pic_sets indica que um conjunto de imagens de referência de curto termo sinalizado explicitamente no cabeçalho de fatia está sendo utilizado.
[0118] O conjunto de imagens de referência pode incluir cinco listas de imagens de referência - RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr e RefPicSetLtFoll. A variável NumPocTotalCurr pode ser configurada igual a NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr. Quando da decodificação de uma fatia Poc B, WD7 exige, para a conformidade de sequência de bits, que o valor de NumPocTotalCurr não seja igual a 0. Nota 3 - RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr podem conter todas as imagens de referência que podem ser utilizadas na interprevisão da imagem atual e que podem ser utilizadas na interprevisão de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação. RefPicSetStFoll e RefPicSetLtFoll podem incluir todas as imagens de referência que não são utilizadas na interprevisão da imagem atual, mas podem ser utilizadas na interprevisão de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação.
[0119] A marcação de uma imagem de referência pode ser "não utilizada para referência", "utilizada para referência de curto termo", ou "utilizada para referência de longo termo", mas apenas uma dentre essas três em WD7. Quando uma imagem de referência é referida como sendo marcada como "utilizada para referência" isso se refere coletivamente à imagem sendo marcada como "utilizada para referência de curto termo" ou "utilizada para referência de longo termo" (mas não ambas, em WD7). Uma imagem de referência que é marcada como "utilizada para referência de curto termo" é referida como uma imagem de referência de curto termo. Uma imagem de referência que é marcada como "utilizada para referência de longo termo" é referida como imagem de referência de longo termo.
[0120] O processo de derivação para o conjunto de imagens de referência e marcação de imagem pode ser realizado, para a segunda implementação ilustrativa, da mesma forma que na primeira implementação ilustrativa.
[0121] Uma terceira implementação ilustrativa fornece um método de sinalização LTRP simplificado, juntamente com uma restrição na qual imagens seguindo uma imagem CRA ou BLA na ordem de decodificação são desativadas para uso das imagens que antecedem as imagens CRA ou BLA na ordem de decodificação como LTRPs. Consequentemente, as imagens dianteiras são desativadas para fazer referência às imagens que precedem a imagem CRA ou BLA associada, na ordem de decodificação, como LTRPs. Para imagens não TFD, o número de bits necessários para sinalizar LSB LTRP pode ser determinado pela imagem com menor POC que não é marcada como TFD, e que precede, na ordem de decodificação, a imagem atual, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação inclusive da imagem RAP anterior na ordem de decodificação.
[0122] Para imagens TFD, o número de bits necessários para sinalizar LSB LTRP é determinado pela imagem com menor POC que precede, na ordem de decodificação a imagem atual, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação inclusive da imagem RAP anterior na ordem de decodificação. A estrutura de sintaxe é baseada em Wang et al., "On Reference Picture Set," JCTVC-10342, contribuição para JCTVC, 9o. Encontro, Genebra, Suíça, 27 de abril a 27 de maio de 2012, que desde 5 de fevereiro de 2013 está disponível a partir de http://phenix.int- evry.fr/jct/doc end user/documents/9 Geneva/wg11/JCTVC- 10342-vl.zip, que é incorporado aqui por referência, onde o comprimento de LSB LTRP é sinalizado, seguido pelos bits LSB propriamente ditos. As mudanças na semântica e processo de decodificação do conjunto de imagens de referência, com relação a HEVC WD7, são sublinhadas na descrição dessa terceira implementação ilustrativa abaixo. Ademais, deve-se compreender que as técnicas da terceira implementação ilustrativa podem ser combinadas com as técnicas das primeira e/ou segunda implementações ilustrativas, em qualquer combinação.
[0123] A Tabela 8 fornece um conjunto ilustrativo de sintaxe para um cabeçalho de fatia de acordo com essa terceira implementação ilustrativa. Tabela 8
[0124] No exemplo da Tabela 8, o cabeçalho de fatia inclui elementos de sintaxe adicionais poc_lsb_len_delta[i] e poc_lsb_lt[i]. A semântica para esses elementos de sintaxe é descrita abaixo, e a semântica para determinados elementos de sintaxe que são alterados com relação a WD7 também é descrita abaixo. A semântica para outros elementos de sintaxe pode permanecer igual como em WD7, a menos que indicado o contrário.
[0125] No exemplo da Tabela 8, poc_lsb_len_delta[i] pode ser utilizado para especificar o número de bits para representar poc_lsb_lt[i].
[0126] Deixe CurrPicOrderCntVal ser PicOrderCntVal de uma imagem atual. As variáveis PrevLtRefPicPoc e PrevLtRefPicPocForTFD são derivadas como segue. se( RapPicFlag || ( ( CurrPicOrderCntVal < PrevLtRefPicPoc ) && ( nal unit type != 2 ) ) ) PrevLtRefPicPoc = CurrPicOrderCntVal se( RapPicFlag || ( CurrPicOrderCntVal < PrevLtRefPicPoc ) ) PrevLtRefPicPocForTFD = CurrPicOrderCntVal
[0127] A variável MaxPocLsbLtLen pode ser derivada como segue. se( nal unit type == 2 ) MaxPocLsbLtLen = Log2(Ceil(CurrPicOrderCntVal PrevLtRefPicPocForTFD)) ou MaxPocLsbLtLen = Log2(Ceil(CurrPicOrderCntVal PrevLtRefPicPoc))
[0128] A variável PocLsbLtLen[i] pode ser determinada igual a MaxPocLsbLtLen.
[0129] Alternativamente, a variável PocLsbLtLen[i] pode ser derivada como segue: se (i = = 0) PocLsbLtLen[i] = log2_max_pic_order_cnt_lsb_minus4 + 4 + poc_lsb_len_delta[i] ou PocLsbLtLen[i] = PocLsbLtLen[i-1] + poc_lsb_len_delta[i]
[0130] O valor de PocLsbLtLen[i] pode estar na faixa de log2 max pic order cnt lsb minus4 + 4 para MaxPocLsbLtLen.
[0131] Alternativamente, o elemento de sintaxe não precisa ser sinalizado, e a variável PocLsbLtLen[i] pode ser determinada para igual a MaxPocLsbLtLen.
[0132] No exemplo da Tabela 8, poc_lsb_lt[i] pode especificar os bits menos significativos do valor de contagem de ordem de imagem da imagem de referência de longo termo i que é incluído no conjunto de imagens de referência de longo termo da imagem atual. poc_lsb_lt[i] deve estar na faixa de 0 a (1 << PocLsbLtLen[i])-1, inclusive. O comprimento de poc_lsb_lt[i] é PocLsbLtLen[i]. O decodificador de vídeo 30 pode realizar o seguinte processo de decodificação para um conjunto de imagens de referência de acordo com essa terceira implementação ilustrativa. O codificador de vídeo 20 pode ser configurado para realizar um processo substancialmente similar enquanto codifica os dados de vídeo para gerar o conjunto de imagens de referência. Esse processo pode ser invocado uma ver por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para a construção da lista de imagem de referência da fatia como especificado na subcláusula 8.3.3 de WD7. O processo pode resultar na marcação de uma ou mais imagens de referência como "não utilizadas para referência". Nota 1 - O conjunto de imagens de referência pode ser uma descrição absoluta das imagens de referência utilizadas no processo de decodificação das imagens codificadas atuais e futuras. A sinalização do conjunto de imagem de referência pode ser explícita no sentido de todas as imagens de referência incluídas no conjunto de imagem de referência serem listadas explicitamente e não haver um processo de construção de conjunto de imagens de referência padrão no decodificador que dependa da situação do armazenador de imagem decodificada.
[0134] Imagens de referência de curto termo podem ser identificadas por seus valores PicOrderCntVal. As imagens de referência de longo termo podem ser identificadas por os bits menos significativos de seus valores PicOrderCntVal.
[0135] Cinco listas de valores de contagem de ordem de imagem ou bits menos significativos dos valores de contagem de ordem de imagem podem ser construídos para derivar o conjunto de imagem de referência - PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll número de elementos, respectivamente. Se a imagem atual for uma imagem CRA que é a primeira imagem codificada na sequência de bits, uma imagem IDR, ou uma imagem BLA, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll podem todos ser configurados para vazio, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr e NumPocLtFoll podem todos ser configurados para 0. Do contrário, o seguinte pode se aplicar à derivação de cinco listas de valores de contagem de ordem de imagem e números de registos. com( i = 0, j = 0, k = 0; i < NumNegativePics[StRpsIdx] ; i++ ) se( UsedByCurrPicS0[StRpsIdx][i] ) PocStCurrBefore[ j++ ] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] ou PocStFoll k++] = PicOrderCntVal + DeltaPocS0[StRpsIdx][i] NumPocStCurrBefore = j com( i = 0, j = 0; i < NumPositivePics[StRpsIdx]; i++ ) se( UsedByCurrPicS1[ StRpsIdx][i] ) PocStCurrAfter[j++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] ou PocStFoll[k++] = PicOrderCntVal + DeltaPocS1[StRpsIdx][i] NumPocStCurrAfter = j NumPocStFoll = k com( i = 0, j = 0, k = 0; i < num_long_term_pics; i++ ) se( used by curr pic It flag[i] ) { PocLtCurr[j] = poc lsb lt[i] PocLsbLenCurr[j] = PocLsbLtLen[i] j++ } ou { PocLtFoll[k] = poc lsb lt[i] PocLsbLenFoll[k] = PocLsbLtLen[i] k+ + } NumPocLtCurr = j NumPocLtFoll = k onde PicOrderCntVal é a contagem de ordem de imagem da imagem atual como especificado na subcláusula 8.2.1 de WD7. Nota 2 — Um valor de StRpsIdx na faixa de 0 a num_short_term_ref_pic_sets - 1 inclusive, pode indicar que um conjunto de imagens de referência de curto termo a partir do conjunto de parâmetros de sequência ativa está sendo utilizado, onde StRpsIdx é o índice do conjunto de imagens de referência de curto termo para a lista de conjuntos de imagem de referência de curto termo na ordem na qual são sinalizados no conjunto de parâmetros de sequência. StRpsIdx igual a num_short_term_ref_pic_sets pode indicar que um conjunto de imagem de referência de curto termo que é explicitamente sinalizado no cabeçalho de fatia está sendo utilizado.
[0136] O conjunto de imagens de referência pode incluir cinco listas de imagens de referência RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoll, RefPicSetLtCurr RefPicSetLtFoll. A variável NumPocTotalCurr é configurada igual a NumPocStCurrBefore + NumPocStCurrAfter + NumPocLtCurr. Quando da decodificação de uma fatia P ou B, WD7 exige, para a conformidade com a sequência de bits, que o valor de NumPocTotalCurr não seja igual a 0. Nota 3 - RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr pode conter todas as imagens de referência que podem ser utilizadas na interprevisão da imagem atual e que podem ser utilizadas na interprevisão de uma ou mais das imagens seguindo a imagem atual na ordem de decodificação. RefPicSetStFoll e RefPicSetLtFoll podem incluir todas as imagens de referência que não são utilizadas na interprevisão da imagem atual, mas podem ser utilizadas na interprevisão de uma ou mais imagens seguindo a imagem atual na ordem de decodificação.
[0137] A marcação de uma imagem de referência pode ser "não utilizada para referência", "utilizada para referência de curto termo", ou "utilizada para referência de longo termo", mas apenas uma dentre essas três em WD7. Quando uma imagem de referência é referida como sendo marcada como "utilizada pare referência de curto termo" ou "utilizada para referência de longo termo" (mas não ambos em WD7). Uma imagem de referência é marcada como "utilizada para referência de curto termo" é referida como uma imagem de referência de curto termo. Uma imagem de referência que é marcada como "utilizada para referência de longo termo" é referida como uma imagem de referência de longo termo.
[0138] O processo de derivação para o conjunto de imagens de referência e a marcação de imagem são realizados de acordo com as etapas ordenadas a seguir, onde DPB ser refere ao armazenador de imagem decodificada como descrito no Anexo C de WD7: 1. O seguinte se aplica: com( i = 0; i < NumPocLtCurr; i++ ) { se( houver uma imagem de referencia de longo termo picX em DPB com PicOrderCntVal para o qual GetLSB(PicOrderCntVal, PocLsbLenCurr[i]) é igual a PocLtCurr[i] ) RefPicSetLtCurr[i] = picX ou se( houver uma imagem de referencia de curto termo picY em DPB com PicOrderCntVal para o qual GetLSB(PicOrderCntVal, PocLsbLenCurr[i]) é igual a PocLtCurr[i] ) RefPicSetLtCurr[i] = picY ou RefPicSetLtCurr[i] = “nenhuma imagem de referencia” } (8-6) com( i = 0; i < NumPocLtFoll; i++ ) { se( houver uma imagem de referência de longo termo picX em DPB com PicOrderCntVal para o qual GetLSB(PicOrderCntVal, PocLsbLenFoll[i]) é igual a PocLtFoll[i] ) RefPicSetLtFoll[i] = picX ou se( houver uma imagem de referência de curto termo picY em DPB GetLSB(PicOrderCntVal, PocLsbLenFoll[i]) é igual a PocLtFoll[i] ) RefPicSetLtFoll[i] = picY ou RefPicSetLtFoll[i] = “sem imagem de referência” } 2. Todas as imagens de referência incluídas em RefPicSetLtCurr e RefPicSetLtFoll são marcadas como "utilizadas para referência de longo termo". 3. O seguinte se aplica: com( i = 0; i < NumPocStCurrBefore; i++ ) se( houver uma imagem de referencia de curto termo picX em DPB com PicOrderCntVal igual a PocStCurrBefore[i]) RefPicSetStCurrBefore[i] = picX ou RefPicSetStCurrBefore[i] = “sem imagem de referencia” com( i = 0; i < NumPocStCurrAfter; i++ ) se( houver uma imagem de referencia de curto termo picX em DPB com PicOrderCntVal igual a PocStCurrAfter[i]) RefPicSetStCurrAfter[i] = picX ou RefPicSetStCurrAfter[i] = “sem imagem de referencia” (8-7) com( i = 0; i < NumPocStFoll; i++ ) se( houver uma imagem de referencia de curto termo picX em DPB com PicOrderCntVal igual a PocStFoll[i]) RefPicSetStFoll[i] = picX ou RefPicSetStFoll[i] = “sem imagem de referencia” 4. Todas as imagens de referência incluídas em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetStFoll são marcadas como "utilizadas para referência de curto termo". 5. Todas as imagens de referência no armazenador de imagem decodificada que não são incluídas em RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll são marcadas como "não utilizadas para referência". Nota 4 - Pode haver uma ou mais imagens de referência que são incluídas no conjunto de imagens de referência, mas não presentes no armazenador de imagem decodificada. Os registros em RefPicSetStFoll ou RefPicSetLtFoll que são iguais a "sem imagem de referência" devem ser ignorados de acordo com WD7. A menos que uma das duas condições a seguir seja verdadeira, uma perda de imagem não intencional pode ser inferida para cada registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr que é igual a "nenhuma imagem de referência": (a) a primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits; (b) a imagem RAP anterior que precede a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA.
[0139] WD7 exige, para a conformidade com a sequência de bits, que o conjunto de imagens de referência seja restrito como segue, como revisado por essa terceira implementação ilustrativa: Não deve haver qualquer imagem de referência com temporal_id superior ao da imagem atual incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr. Quando a imagem atual é uma imagem TLA, não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência com temporal_id superior a ou igual a temporal_id da imagem atual. Não deve haver qualquer imagem de referência incluída no conjunto de imagens de referência que preceda, na ordem de saída, qualquer imagem RAP que preceda a imagem atual tanto na ordem de decodificação quanto na ordem de saída. A menos que uma das condições a seguir seja verdadeira, não deve haver registro em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetLtCurr que seja igual a "nenhuma imagem de referência"; (a) a primeira imagem codificada na sequência de bits é uma imagem CRA e a imagem codificada atual é uma imagem TFD associada com a primeira imagem codificada na sequência de bits; (b) a imagem RAP anterior precedendo a imagem codificada atual na ordem de decodificação é uma imagem BLA e a imagem codificada atual é uma imagem TFD associada com a imagem BLA. Nota 5 - Uma imagem de referência não pode ser incluída em mais de uma das cinco listas de conjuntos de imagem de referência. Para cada valor de i na faixa de 0 a NumPocLtCurr - 1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluída em RefPicSetStCurrBefore,RefPicSetStCurrAfter ou RefPicSetStFoll, e que possua PicOrderCntVal para o qual GetLSB (PicOrderCntVal, PocLsbLenCurr[i]) é igual a PocLtCurr[i]. Para cada valor de i na faixa de 0 a NumPocLtFoll - 1, inclusive, não deve haver mais de uma imagem de referência em DPB que não é incluído em RefPicSetStCurrBefore,RefPicSetStCurrAfter ou RefPicSetStFoll, e que possui PicOrderCntVal para o qual GetLSB (PicOrderCntVal,PocLsbLenFoll [i] )é igual a PocLtFoll[i]. Deixemos prevRapPic ser a imagem RAP anterior na ordem de decodificação. Quando a imagem atual é uma imagem RAP ou precede, em ordem de envio, prevRapPic, não deve haver qualquer imagem de referência incluída em RefPicSetLtCurr ou RefPicSetLtFoll que precede, na ordem de decodificação, prevRapPic.
[0140] Uma quarta implementação ilustrativa fornece um método de sinalização LTRP com base na estrutura de sintaxe na terceira implementação ilustrativa discutida acima, onde o comprimento de LSB LTRP é sinalizado, seguido pelos bits LSB propriamente ditos. A restrição nas imagens dianteiras não referentes às imagens antes da RAP associada é removida nessa quarta implementação ilustrativa. As imagens TFD associadas com uma imagem RAP são desativadas para suceder, na ordem de decodificação, qualquer imagem DLP associada com a mesma imagem RAP nessas quarta implementação ilustrativa. Para imagens não TFD, o número de bits necessários para sinalizar LSB LTRP pode ser determinado pela imagem com POC menor que não é marcado como uma imagem TFD, e que precede a imagem atual, na ordem de decodificação, e sucede, na ordem de decodificação, a imagem RAP anterior na ordem de decodificação, inclusive da imagem RAP anterior na ordem de decodificação. Para imagens TFD, o número de bits necessário para sinalizar LSB LTRP pode ser determinado pela imagem com o menor POC que precede, na ordem de decodificação, a imagem atual, e sucede, na ordem de saída, a RAP antes da imagem RAP anterior na ordem de decodificação inclusive cada RAP antes da imagem RAP anterior na ordem de decodificação. Apenas mudanças na semântica e processo de derivação RPS a partir da terceira implementação ilustrativa são apresentadas abaixo. Deve-se compreender que as técnicas da quarta implementação ilustrativa pode ser combinada com qualquer uma das técnicas das primeira, segunda e/ou terceira implementações ilustrativas, em qualquer combinação. O texto sublinhado representa as mudanças relativas à terceira implementação ilustrativa descrita acima.
[0141] Nessa quarta implementação ilustrativa, poc_lsb_len_delta[i] pode ser utilizado para especificar o número de bits para representar poc_lsb_lt[i].
[0142] Deixe CurrPicOrderCntVal ser PicOderCntVal de uma imagem atual. Deixemos PrevRapPicPoc ser PicOrderCntVal da imagem RAP que precede, na ordem de decodificação,a imagem atual.As variáveis PrevPrevLtRefPicPoc e PrevLtRefPicPoc são derivados como segue. se (RapPicFlag) PrevPrevLtRefPicPoc=PrevRapPicPoc se ( RapPicFlag||( ( CurrPicOrderCntVal < PrevLtRefPicPoc )&&( nal unit type ! = 2 ) ) ) PrevLtRefPicPoc = CurrPicOrderCntVal
[0143] A variável MaxPocLsbLtLen pode ser derivada como segue. se (( nal unit type==4 )||( nal unit type == 5 ) || ( nal unit type == 2 ) ) MaxPocLsbLtLen = Log2(Ceil(CurrPicOrderCntVal - PrevPrevLtRefPicPoc)) ou MaxPocLsbLtLen = Log2(Ceil(CurrPicOrderCntVal - PrevLtRefPicPoc))
[0144] O processo de derivação para PocLsbLtLen[i] pode ser realizado da mesma forma que na Terceira implementação ilustrativa, como descrito acima.
[0145] O decodificador de vídeo 30 pode realizar o processo de decodificação a seguir para um conjunto de imagem de referência. O codificador de vídeo 20 pode ser configurado para realizar um processo substancialmente similar enquanto a codificação de dados de vídeo para gerar o conjunto de imagens de referencia. Esse processo pode ser invocado uma vez por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para a construção de lista de imagens de referencia da fatia como especificado na subcláusula 8.3.3 de WD7. O processo pode resultar na marcação de uma ou mais imagens de referencia como "não utilizado par referencia". Nota 1 - O conjunto de imagens de referencia pode ser uma descrição absoluta das imagens de referencia utilizadas no processo de decodificação das imagens codificadas atual e future. O conjunto de imagens de referência sinalizando é explícito no sentido de todas as imagens de referencia incluídas no conjunto de imagens de referencia serem listadas explicitamente e não há processo de construção de conjunto de imagens de referencia padrão no decodificador que depende da situação do armazenador de imagem decodificada.
[0146] Nessa quarta implementação ilustrativa, imagens de referência são identificadas por seus valores PicOrderCntVal.
[0147] Cinco listas dos valores de contagem de ordem de imagem podem ser construídas para derivar o conjunto de imagem de referência - PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll número de elementos, respectivamente.
[0148] Elipses abaixo representam que o texto podem permanecer iguais como na terceira implementação ilustrativa e/ou na versão atual de WD7: Se a imagem atual for uma imagem CRA que é a primeira imagem codificada na sequência de bits, uma imagem IDR, ou uma imagem BLA, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll são todos configurados para vazio e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll são todos configurados para 0. Para cada valor de i na faixa de 0 a NumPocLtCurr - 1, inclusive, não deve haver mais de uma imagem de referência em DPB que não é incluído em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que possui PicOrderCntVal para o qual GetLSB(PicOrderCntVal, PocLsbLenCurr[i]) é igual a PocLtCurr[i]. Para cada valor de i na faixa de 0 a NumPocLtFoll-1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que possua PicOrderCntVal para o qual GetLSB(PicOrderCntVal, PocLsbLenFoll[i]) seja igual a PocLtFoll[i]. Qualquer imagem TFD associada com a imagem CRA ou BLA deve preceder qualquer imagem que não seja marcada TFD, preceder, na ordem de saída, a imagem CRA ou BLA e suceder, na ordem de decodificação, a imagem CRA ou BLA.
[0149] Uma quinta implementação ilustrativa também e geralmente baseada na terceira implementação ilustrativa. Essa quinta implementação ilustrativa descreve um método que desativa as imagens dianteiras associadas com uma imagem CRA ou BLA para fazer referência à imagem CRA ou BLA associada ou outras imagens dianteiras associadas com a mesma imagem CRA ou BLA como LTRPs. A restrição, na terceira implementação ilustrativa, nas imagens dianteiras não fazendo referência às imagens antes da RAP associada como LTRPs é removida nessa quinta implementação ilustrativa. O número de bits necessários para sinalizar o LSB LTRP pode ser determinado pela imagem RAP que precede, na ordem de saída, a imagem atual nessa quinta implementação ilustrativa. Ademais, deve-se compreender que as técnicas dessa quinta implementação ilustrativa podem ser combinadas com qualquer uma das técnicas das primeira, segunda. terceira e/ou quarta implementações ilustrativas em qualquer combinação.
[0150] Nessa quinta implementação ilustrativa, a semântica de cabeçalho de fatia da terceira implementação ilustrativa pode ser alterada como indicado pelo texto sublinhado abaixo:
[0151]Deixemos CurrPicOrderCntVal ser PicOrderCntVal de uma imagem atual. Deixemos PrevRapPicPoc ser PicOrderCntVal da imagem RAP que precede, na ordem de entrada, a imagem atual. A variável MaxPocLsbLtLen pode ser derivada como segue. MaxPocLsbLtLen = Log2(Ceil(CurrPicOrderCntVal - PrevRapPicPoc))
[0152] O processo de derivação para PocLsbLtLen[i] pode ser realizado da mesma forma que na terceira implementação ilustrativa.
[0153] O decodificador de vídeo 30 pode realizar o processo de decodificação a seguir para um conjunto de imagem de referência. O codificador de vídeo 20 pode ser configurado para realizar um processo substancialmente similar enquanto codifica os dados de vídeo para gerar o conjunto de imagem de referência. Esse processo pode ser invocado uma vez por imagem, depois da decodificação de um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação e antes do processo de decodificação para a construção da lista de imagem de referência da fatia como especificado na subcláusula 8.3.3 de WD7. O processo pode resultar na marcação de uma ou mais imagens de referência, como "não utilizado para referência". Nota 1 - O conjunto de imagens de referência pode ser uma descrição absoluta das imagens de referência utilizada no processo de decodificação das imagens codificadas atuais e futuras. A sinalização do conjunto de imagens de referência é explícita no sentido de todas as imagens de referência incluídas no conjunto de imagens de referência serem listadas explicitamente e não haver processo de construção de conjunto de imagens de referência padrão no decodificador que depende de situações do armazenador de imagem decodificada.
[0154] Nessa quinta implementação ilustrativa, as imagens de referência são identificadas por seus valores PicOrderCntVal.
[0155] As cinco listas dos valores de contagem de ordem de imagem podem ser construídas para derivar o conjunto de imagens de referência - PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr, e PocLtFoll com NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll número de elementos, respectivamente.
[0156] As elipses abaixo representam que o texto pode permanecer igual como na terceira implementação ilustrativa e/ou na versão atual de WD7: Se a imagem atual for uma imagem CRA que é a primeira imagem codificada na sequência de bits, uma imagem IDR, ou uma imagem BLA, PocStCurrBefore, PocStCurrAfter, PocStFoll, PocLtCurr e PocLtFoll são todos configurados para vazio, e NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll, NumPocLtCurr, e NumPocLtFoll são todos configurados para 0. Par cada valor de i na faixa de 0 a NumPocLtCurr - 1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluído em RefPicStStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que tenha PicOrderCntVal para o qual GetLSB (PicOrderCntVal, PocLsbLenCurr[i]) seja igual a PocLtCurr[i]. Para cada valor de i na faixa de 0 a NumPocLtFoll-1, inclusive, não deve haver mais de uma imagem de referência em DPB que não seja incluída em RefPicSetStCurrBefore, RefPicSetStCurrAfter ou RefPicSetStFoll, e que tenha PicOrderCntVal para o qual GetLSB (PicOrderCntVal, PocLsbLenFoll[i]) seja igual a PocLtFoll[i]. Deixemos prevRapPic ser a imagem RAP anterior na ordem de decodificação. Quando a imagem atual precede, na ordem de saída, prevRapPic, não deve haver imagem de referência incluída em RefPicSetLtCurr ou RefPicSetLtFoll, que seja prevRapPic ou qualquer imagem que preceda, na ordem de saída prevRapPic, mas suceda prevRapPic, na ordem de decodificação.
[0157] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um dentre uma variedade de conjuntos de circuito de codificador ou decodificador adequados, como aplicável, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), conjuntos de porta programáveis em campo (FPGAs), conjunto de circuitos lógicos discretos, software, hardware, firmware ou qualquer combinação dos mesmos. Cada codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador de vídeo combinado (CODEC). Um dispositivo incluindo um codificador de vídeo 20 e/ou decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[0158] A figura 2 é um diagrama em bloco ilustrando um exemplo de codificador de vídeo 20 que pode implementar as técnicas para sinalização de imagens de referência de longo termo em cabeçalhos de fatia. O codificador de vídeo 20 pode realizar intra e intercodificação de blocos de vídeo dentro das fatias de vídeo. A intracodificação se baseia na previsão espacial para reduzir ou remover a redundância espacial no vídeo dentro de um quadro ou imagem de vídeo determinado. A intercodificação se baseia na previsão temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode fazer referência a qualquer um dos modos de codificação com base em espaço. Os intermodos, tal como a previsão unidirecional (modo P) ou previsão dupla (modo B), podem fazer referência a qualquer um dos vários modos de codificação com base em tempo.
[0159] Como ilustrado na figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da figura 2, o codificador de vídeo 20 inclui a unidade de seleção de modo 40, a memória de imagem de referência 64, o somador 50, a unidade de processamento de transformação 52, a unidade de quantização 54, e a unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, a unidade de estimativa de movimento 42, a unidade de processamento de intraprevisão 46, e a unidade de divisão 48. Par a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de processamento de transformação inversa 60, e o somador 62. Um filtro de desbloqueio (não ilustrado na figura 2) também pode ser incluído para filtrar os limites de bloco para remover os artefatos de bloqueio do vídeo reconstruído. Se desejável, o filtro de desbloqueio filtrará tipicamente o resultado do somador 62. Filtros adicionais (em circuito ou pós-circuito) também podem ser utilizados em adição ao filtro de desbloqueio. Tais filtros não são ilustrados por motivos de brevidade, mas se desejado, podem filtrar a saída do somador 50 (como em um filtro em circuito).
[0160] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam a codificação interprevisão do bloco de vídeo recebido com relação a um ou mais blocos em um ou mais quadros de referência para fornecer a previsão temporal. A unidade de processamento de intraprevisão 46 pode realizar alternativamente a codificação de intraprevisão do bloco de vídeo recebido com relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer previsão espacial. O codificador de vídeo 20 pode realizar múltiplas passagens de codificação, por exemplo, para selecionar um modo de codificação adequado para cada bloco de dados de vídeo.
[0161] Ademais, a unidade de partição 48 pode dividir os blocos de dados de vídeo em sub-blocos, com base na avaliação dos esquemas de partição anteriores nas passagens de codificação anteriores. Por exemplo, a unidade de partição 48 pode dividir inicialmente um quadro ou fatia em LCUs, e dividir cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode adicionalmente produzir uma estrutura de dados quadtree indicativa da divisão de uma LCU em sub-CUs. As CUs de nó folha do quadtree podem incluir uma ou mais PUs e uma ou mais TUs.
[0162] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base nos resultados de erro, e fornecer o bloco intra ou intercodificado resultante para o somador 50 para gerar dados de bloco residuais e para o somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, tal como vetores de movimento, indicadores de intramodo, informação de partição, e outras informações de sintaxe, para a unidade de codificação por entropia 56.
[0163] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro ou imagem de vídeo atual com relação a um bloco de previsão dentro de um quadro de referência (ou outra unidade codificada) com relação ao bloco atual sendo codificado dentro do quadro atual (ou outra unidade codificada). Um bloco de previsão é um bloco que é considerado muito próximo do bloco a ser codificado em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD), soma da diferença quadrada (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para as posições de pixel subinteiro das imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar os valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixel fracionadas da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento com relação às posições de pixel cheio e posições de pixel fracionados e enviar um vetor de movimento com a precisão de pixel fracionado.
[0164] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU para a posição de um bloco de previsão 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 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 imagem de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e unidade de compensação de movimento 44.
[0165] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver coletar ou gerar o bloco de previsão com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Novamente, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser integradas de forma funcional, em alguns exemplos. Depois do recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de previsão ao qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual pela subtração de valores de pixel do bloco de previsão dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel, como discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza a estimativa de movimento relativa aos componentes de luminescência, e a unidade de compensação de movimento 44 utiliza os vetores de movimento calculados com base nos componentes de luminescência para ambos os componentes de crominância e os componentes de luminescência. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação de blocos de vídeo da fatia de vídeo.
[0166] A unidade de seleção de modo 40 pode implementar as restrições dessa descrição, quando da seleção das imagens de referência a partir da memória de imagem de referência 64. Por exemplo, a unidade de seleção de modo 40 pode determinar se uma imagem em particular segue uma imagem que foi selecionada como uma RAP. Se for esse o caso, a unidade de seleção de modo 40 pode determinar se a imagem é uma imagem dianteira e segue uma imagem DLP que é associada com a mesma RAP na ordem de saída. Se for esse o caso, a unidade de seleção de modo 40 seleciona os modos de codificação para a imagem de modo que a imagem seja tratada como uma imagem DLP. Isso é, a unidade de seleção de modo 40 garante que a imagem atual não seja prevista a partir de quaisquer imagens precedendo a RAP ou qualquer uma das imagens TFD associadas, e, dessa forma, todas as imagens TFD precedem toda as imagens DLP na ordem de saída. Em outras palavras, uma imagem que pode, do contrário ter sido codificada como uma imagem TFD é codificada como uma imagem DLP se a imagem seguir outra imagem DLP na ordem de codificação. De forma similar, a unidade de seleção de modo 40 pode selecionar os modos de codificação para garantir que todas as imagens dianteiras precedam na ordem de decodificação todas as imagens traseiras para uma RAP.
[0167] A unidade de processamento de intraprevisão 46 pode intraprever um bloco atual, como uma alternativa para a interprevisão realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de processamento por intraprevisão 46 pode determinar um modo de intraprevisão para utilizar para codificar um bloco atual. Em alguns exemplos, a unidade de processamento de intraprevisão 46 pode codificar um bloco atual utilizando vários modos de intraprevisão, por exemplo, durante passagens de codificação separadas, uma unidade de processamento de intraprevisão 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão adequado para utilizar a partir dos modos testados.
[0168] Por exemplo, a unidade de processamento por intraprevisão 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para os vários modos de intraprevisão testados, e selecionar o modo de intraprevisão possuindo as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificador original que foi codificado para produzir o bloco codificado, além de uma taxa de bit (isso é, um número de bits) utilizada para produzir o bloco codificado. A unidade de processamento por intraprevisão 46 pode calcular as razões das distorções e taxas para vários blocos codificados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0168] Por exemplo, a unidade de processamento de intraprevisão 46 pode calcular os valores de distorção de taxa utilizando uma análise de distorção de taxa para os vários modos de intraprevisão testados, e seleciona o modo de intraprevisão possuindo as melhores características de distorção de taxa dentre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um original, o bloco não codificado que foi codificado para produzir o bloco codificado, além de uma taxa de bit (isso é, um número de bits) utilizado para produzir o bloco codificado. A unidade de processamento de intraprevisão 46 pode calcular razões a partir de distorções e taxas para vários blocos codificados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0169] Depois da seleção de um modo de intraprevisão para um bloco, a unidade de processamento por intraprevisão 46 pode fornecer a informação indicativa do modo de intraprevisão selecionado para o bloco para a unidade de codificação por entropia 56. A unidade de codificação por entropia 56 pode codificar a informação indicando o modo de intraprevisão selecionado. O codificador de vídeo 20 pode incluir na sequência de bits transmitida dados de configuração, que pode incluir uma pluralidade de tabelas de índice de modo de intraprevisão e uma pluralidade de tabelas de índice de modo de intraprevisão modificadas (também referidas como tabelas de mapeamento de palavra código), definições de contextos de codificação para vários blocos, e indicações de um modo de intraprevisão mais provável, uma tabela de índice de modo de intraprevisão, e uma tabela de índice de modo de intraprevisão modificada para uso para cada um dos contextos.
[0170] O codificador de vídeo 20 forma um bloco de vídeo residual pela subtração de dados de previsão a partir da unidade de seleção de modo 40 do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou componentes que realiza essa operação de subtração. A unidade de processamento de transformação 52 aplica uma transformação, tal como uma transformação de cosseno discreto (DCT) ou uma transformação conceitualmente similar, para o bloco residual, produzindo um bloco de vídeo compreendendo valores de coeficiente de transformação residuais. A unidade de processamento de transformação 52 pode realizar outras transformações que são conceitualmente similares a DCT. Transformações wavelet, transformações de inteiro, transformações de sub-banda, ou outros tipos de transformações também podem ser utilizadas. Em qualquer caso, a unidade de processamento de transformação 52 aplica a transformação ao bloco residual, produzindo um bloco de coeficientes de transformação residuais. A transformação pode converter a informação residual de um domínio de valor de pixel para um domínio de transformação, tal como um domínio de frequência. A unidade de processamento de transformação 52 pode enviar os coeficientes de transformação resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformação para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes. O grau de quantização pode ser modificado pelo ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma digitalização da matriz incluindo os coeficientes de transformação quantizados. Alternativamente, a unidade de codificação por entropia 56 pode realizar a digitalização.
[0171] Seguindo a quantização, a unidade de codificação por entropia 56 codifica por entropia os coeficientes de transformação quantizados. Por exemplo, a unidade de codificação por entropia 56 pode realizar a codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto com base em sintaxe (SBAC), codificação por entropia de divisão de intervalo de probabilidade (PIPE) ou outra técnica de codificação por entropia. No caso de codificação por entropia com base em contexto, o contexto pode ser baseado em blocos vizinhos. Seguindo a codificação por entropia pela unidade de codificação por entropia 56, a sequência de bits codificada pode ser transmitida para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivada para transmissão ou recuperação posterior.
[0172] A unidade de quantização inversa 58 e a unidade de processamento de transformação inversa 60 aplicam a quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência pela adição do bloco residual a um bloco de previsão de um dos quadros da memória de imagem de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular os valores de pixel subinteiro para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído para o bloco de previsão de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de imagem de referência 64. O bloco de vídeo reconstruído pode ser utilizado pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 como um bloco de referência para intercodificar um bloco em um quadro de vídeo subsequente.
[0173] O codificador de vídeo 20 da figura 2 representa um exemplo de um codificador de vídeo que pode ser configurado para realizar qualquer uma das técnicas dessa descrição. Por exemplo, o codificador de vídeo 20 pode ser configurado para codificar uma imagem RAP e codificar uma ou mais imagens dianteiras decodificáveis DLPs para a imagem RAP de modo que todas as imagens que são alvo de eliminação precedam as DLPs associadas com a imagem RAP na ordem de exibição. DLPs podem incluir uma ou mais imagens possuindo valores de ordem de exibição anteriores a um valor de ordem de exibição da imagem RAP e que não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação. O codificador de vídeo 20 também pode codificar uma ou mais imagens dianteiras com relação à imagem RAP de modo que todas as imagens dianteiras para a imagem RAP precedam toda as imagens traseiras para a imagem RAP na ordem de decodificação, onde as imagens traseiras incluem imagens possuindo valores de ordem de exibição que são superiores a um valor de ordem de exibição da imagem RAP. A imagem RAP pode incluir, por exemplo, uma dentre uma imagem CRA e uma imagem BLA. Qualquer imagem anterior a uma imagem CRA ou BLA na ordem de decodificação pode preceder qualquer imagem DLP associada com a imagem CRA ou a imagem BLA na ordem de exibição. O codificador de vídeo 20 também pode codificar uma ou mais imagens dianteiras associadas com a imagem RAP, onde as imagens dianteiras precedem a imagem RAP no valor de ordem de exibição e sucedem a imagem RAP na ordem de decodificação, e o codificador de vídeo 20 pode codificar uma ou mais imagens traseiras associadas com a imagem RAP de modo que todas as imagens dianteiras precedam todas as imagens traseiras na ordem de decodificação, onde as imagens traseiras sucedem a imagem RAP tanto no valor de ordem de exibição e na ordem de decodificação.
[0174] O codificador de vídeo 20 também pode codificar uma ou mais imagens marcadas para descarte (TFD) associadas com a imagem RAP. As uma ou mais imagens TFD podem preceder a imagem RAP no valor de ordem de exibição e suceder a imagem RAP na ordem de decodificação e fazer referência aos dados de vídeo anteriores à imagem RAP na ordem de decodificação. O codificador de vídeo 20 pode codificar uma ou mais DLPs para a imagem RAP pela codificação de uma ou mais DLPs associadas com a imagem RAP de modo que todas as imagens TFD precedam as DLPs na ordem de exibição, onde as DLPs precedem a imagem RAP na ordem de exibição e sucedem a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
[0175] O codificador de vídeo 20 também pode codificar uma ou mais imagens que precedem a imagem RAP em uma ordem de decodificação. O codificador de vídeo 20 pode codificar uma ou mais DLPs pela codificação de uma ou mais DLPs associadas com a imagem RAP de modo que todas as imagens que precedem a imagem RAP na ordem de decodificação também precedam todas as DLPs na ordem de exibição. As DLPs podem preceder a imagem RAP na ordem de exibição e suceder a imagem RAP na ordem de decodificação e não fazer referência aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
[0176] A figura 3 é um diagrama em bloco ilustrando um exemplo de decodificador de vídeo 30 que pode implementar as técnicas para sinalização de imagens de referência de longo termo em cabeçalhos de fatia. No exemplo da figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 70, uma unidade de compensação de movimento 72, uma unidade de processamento de intraprevisão 74, uma unidade de quantização inversa 76, uma unidade de processamento de transformação inversa 78, uma memória de imagem de referência 82 e o somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realiza uma passagem de decodificação geralmente alternada para a 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 previsão com base em vetores de movimento recebidos da unidade de decodificação por entropia 70, enquanto a unidade de processamento intraprevisão 74 pode gerar dados de previsão com base em indicadores de modo de intraprevisão recebidos da unidade de decodificação por entropia 70.
[0177] Durante o processo de decodificação, o decodificador de vídeo 30 recebe uma sequência de bits de vido codificada que representa os blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20. A unidade de decodificação por entropia 70 do decodificador de vídeo 30 decodifica por entropia a sequência de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo intraprevisão e outros elementos de sintaxe. A unidade de decodificação por entropia 70 envia 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 elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo.
[0178] Quando a fatia de vídeo é codificada como uma fatia intracodificada (I), a unidade de processamento de intraprevisão 74 pode gerar dados de previsão para um bloco de vídeo da fatia de vídeo atual com base em um modo de intraprevisão sinalizado e dados dos blocos decodificados previamente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isso é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos de previsão para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação por entropia 70. Os blocos de previsão podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0, e Lista 1, utilizando as técnicas de construção padrão com base nas imagens de referência armazenadas na memória de quadro de referência 92. A unidade de compensação de movimento 72 determina a informação de previsão para um bloco de vídeo da fatia de vídeo atual pela análise de vetores de movimento e outros elementos de sintaxe, e utiliza a informação de previsão para produzir os blocos de previsão para o bloco de vídeo atual sendo codificado. Por exemplo, a unidade de compensação de movimento 72 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra ou interprevisão) utilizado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interprevisão (por exemplo, fatia B, fatia P, ou fatia GPB), informação de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, situação de interprevisão para cada bloco de vídeo intercodificado da fatia, e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0179] A unidade de compensação de movimento 72 também pode realizar a interpolação com base nos filtros de interpolação. A unidade de compensação de movimento 72 pode utilizar filtros de interpolação como utilizados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular os valores interpolados para pixels subinteiro de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar aos filtros de interpolação para produzir os blocos de previsão.
[0180] A unidade de quantização inversa 76 quantiza de forma inversa, isso é, desquantiza, os coeficientes de transformação quantizados fornecidos na sequência de bits e decodificados pela unidade de decodificação por entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicada.
[0181] A unidade de processamento de transformação inversa 78 aplica uma transformação inversa, por exemplo, uma DCT inversa, uma transformação de inteiro inversa, ou um processo de transformação inversa conceitualmente similar, aos coeficientes de transformação a fim de produzir blocos residuais no domínio de pixel.
[0182] Depois que a unidade de compensação de movimento 72 gera o bloco de previsão para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado pela soma de blocos residuais a partir da unidade de processamento de transformação inversa 78 com os blocos de previsão correspondentes gerados pela unidade de compensação de movimento 72. O somador 90 representa o componente ou componentes que realizam essa operação de soma. Se desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados a fim de remover os artefatos de bloqueio. Outros filtros de circuito (no circuito de codificação ou depois do circuito de codificação) também podem ser utilizados para suavizar as transições de pixel, ou de outra forma aperfeiçoar a qualidade de vídeo. Os blocos de vídeo decodificados em um determinado quadro ou imagem são então armazenados na memória de imagem de referência 92, que armazena as imagens de referência utilizadas para a compensação de movimento subsequente. A memória de imagem de referência 82 também armazena o vídeo decodificado para apresentação futura em um dispositivo de exibição, tal como o dispositivo de exibição 32 da figura 1.
[0183] Quando da implementação das técnicas dessa descrição, o decodificador de vídeo 30 pode receber uma imagem RAP e determinar que a imagem RAP é utilizada como um ponto de acesso randômico para uma sequência de bits. A determinação de que a imagem RAP deve ser utilizada pelo decodificador de vídeo 30 como um ponto de acesso randômico pode, por exemplo, ser baseada na sinalização na sequência de bits. Para imagens seguindo a imagem RAP na ordem de codificação, o decodificador de vídeo pode determinar se as imagens são imagens TFD. Se uma imagem for uma imagem TFD, então o decodificador de vídeo 30 pode analisar a sintaxe associada com a imagem TFD sem necessariamente decodificar a imagem TFD. Por exemplo, com base em um tipo de unidade NAL, o decodificador de vídeo pode identificar as imagens TFD e não decodificar totalmente a imagem TFD. Se o decodificador de vídeo 30 determinar que uma imagem é uma DLP, então o decodificador de vídeo 30 pode decodificar a imagem.
[0184] O decodificador de vídeo 30 da figura 3 representa um exemplo de um codificador de vídeo que pode ser configurado para realizar qualquer uma das técnicas dessa descrição. Por exemplo, o codificador de vídeo 20 pode ser configurado para codificar uma imagem RAP e codificar uma ou mais imagens dianteiras decodificáveis DLPs para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição. As DLPs podem incluir uma ou mais imagens possuindo valores de ordem de exibição anteriores a um valor de ordem de exibição da imagem RAP e não se referem a dados de vídeo anteriores à imagem RAP na ordem de decodificação. O decodificador de vídeo 30 também pode codificar uma ou mais imagens dianteiras com relação à imagem RAP de modo que todas as imagens dianteiras para a imagem RAP precedam todas as imagens traseiras para a imagem RAP na ordem de decodificação, onde as imagens traseiras incluem imagens possuindo valores de ordem de exibição que são superiores a um valor de ordem de exibição da imagem RAP. A imagem RAP pode incluir, por exemplo, uma dentre uma imagem CRA e uma imagem BLA. Qualquer imagem que preceda uma imagem CRA ou BLA na ordem de decodificação pode preceder qualquer imagem DLP associada com a imagem CRA ou a imagem BLA na ordem de exibição. O codificador de vídeo 20 também pode codificar uma ou mais imagens dianteiras associadas com a imagem RAP, onde as imagens dianteiras precedem a imagem RAP no valor de ordem de exibição e sucedem a imagem RAP na ordem de decodificação e o decodificador de vídeo 30 pode codificar uma ou mais imagens traseiras associadas com a imagem RAP de modo que todas as imagens dianteiras precedam todas as imagens traseiras na ordem de decodificação, onde as imagens traseiras sucedem a imagem RAP tanto no valor de ordem de exibição quanto na ordem de decodificação.
[0186] O decodificador de vídeo 30 também pode codificar uma ou mais imagens que precedem a imagem RAP em uma ordem de decodificação. O decodificador de vídeo 30 pode codificar as uma ou mais DLPs pela codificação de uma ou mais DLPs associadas com ai imagem RAP de modo que todas as imagens que precedem a imagem RAP na ordem de decodificação também precedam todas as DLPs na ordem de exibição. As DLPs podem preceder a imagem RAP na ordem de exibição e suceder a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
[0187] A figura 4 é um diagrama conceitual ilustrando uma sequência de imagens de vídeo codificadas 100-132. A figura 4 ilustra as relações entre RAPs, imagens dianteiras, TFDs, e imagens traseiras. As imagens são sombreadas diferentemente para indicar as posições dentro de uma estrutura de previsão hierárquica. Por exemplo, as imagens 100, 116 e 132 são sombreadas de preto para representar que as imagens 100, 116, 132 estão no topo da estrutura de previsão hierárquica. As imagens 100, 116, 132 podem compreender, por exemplo, imagens intracodificada ou imagens intercodificadas que são previstas a partir de outras imagens em uma única direção (por exemplo, imagens P). Quando intracodificada, as imagens 100, 116, 132 são previstas apenas a partir dos dados dentro da mesma imagem. Quando intercodificadas, a imagem 116, por exemplo pode ser codificada com relação a dados da imagem 100, como indicado pela seta tracejada a partir da figura 116 para a imagem 100. As imagens 116, 132 formam imagens chave de grupos de imagens (GOPs) 134, 136, respectivamente.
[0188] AS imagens 108, 124 são sombreadas de escuro para indicar que são as próximas na hierarquia de codificação seguindo as imagens 100, 116 e 132. As imagens 108, 124 podem compreender imagens codificadas por previsão bidirecional intermodo. Por exemplo, a imagem 108 pode ser prevista a partir de dados de imagens 100 e 116, enquanto a imagem 124 pode ser prevista a partir das imagens 116 e 132. As imagens 104, 112, 120 e 128 são ligeiramente sombreadas para indicar que são as próximas na hierarquia de codificação seguindo as imagens 108 e 124. As imagens 104, 112, 120 e 128 também podem compreender imagens codificadas por previsão de intermodo bidirecional. Por exemplo, a imagem 104 pode ser prevista a partir das imagens 100 e 108, imagem 112 pode ser prevista a partir das imagens 108 e 116, a imagem 120 pode ser prevista a partir da imagem 116 e 124 e a imagem 128 pode ser prevista a partir da imagem 124 e 132. Em geral, as imagens que são inferiores na hierarquia podem ser codificadas a partir de qualquer imagem de referência que esteja acima na hierarquia, assumindo que as imagens de referência ainda sejam armazenadas em um armazenador de imagem decodificada, e assumindo que as imagens de referência sejam codificadas anteriormente à imagem sendo atualmente codificada.
[0189] Finalmente, as imagens 102, 106, 110, 114, 118, 122, 126 e 130 são sombreadas com branco para indicar que essas imagens são as últimas na hierarquia de codificação. As imagens 102, 106, 110, 114, 118, 122, 126 e 130 podem ser imagens codificadas por previsão intermodo bidirecional. A imagem 102 pode ser prevista a partir de imagens 100 e 104, a imagem 106 pode ser prevista a partir das imagens 104 e 108, a imagem 110 pode ser prevista a partir das imagens 108 e 112, a imagem 114 pode ser prevista a partir das imagens 112 e 116, a imagem 118 pode ser prevista a partir da imagem 116 e 120, a imagem 122 pode ser prevista a partir das imagens 120 e 124, a imagem 126 pode ser prevista a partir das imagens 124 e 128, e a imagem 130 pode ser prevista a partir das imagens 128 e 132. Novamente, deve-se compreender que as imagens abaixo na hierarquia de codificação podem ser codificadas a partir de outras imagens que estão acima na hierarquia de codificação. Por exemplo, toda e qualquer imagem 102, 106, 110 ou 114 pode ser prevista com relação a qualquer uma das imagens 100, 116 ou 108, adicionalmente ou alternativamente.
[0190] As imagens 100 a 132 são ilustradas na ordem de exibição. Isso é, a decodificação a seguir a imagem 100 é exibida antes da imagem 102, a imagem 102 é exibida antes da imagem 104, e assim por diante. Como discutido acima, os valores POC descrevem geralmente uma ordem de exibição para as imagens, que também é substancialmente igual à ordem na qual as imagens brutas foram capturadas ou geradas antes de serem codificadas. No entanto, devido à hierarquia de codificação, as imagens 100 a 132 podem ser decodificadas em uma ordem diferente. Ademais, enquanto são codificadas, as imagens 100 a 132 podem ser dispostas na ordem de decodificação em uma sequência de bits incluindo os dados codificados para as imagens 100 a 132. Por exemplo, a imagem 116 pode ser exibida por último entre as imagens de GOP 134. No entanto, devido à hierarquia de codificação, a imagem 116 pode ser decodificada primeiro no GOP 134. Isso é, a fim de se decodificar adequadamente a imagem 108, por exemplo, a imagem 116 pode precisar ser decodificada primeiro, a fim de agir como uma imagem de referência para a imagem 108. Da mesma forma, a imagem 108 pode agir como uma imagem de referência para as imagens 104, 106, 110 e 112, e, portanto, pode precisar ser decodificada antes das imagens 104, 106, 110 e 112.
[0191] Adicionalmente, determinadas imagens podem ser tratadas como imagens de referência de longo termo, enquanto outras imagens podem ser tratadas como imagens de referência de curto termo. Supondo-se, por exemplo, que as imagens 100 e 116 representem as imagens de referência de longo termo, enquanto as imagens 108, 104 e 112 representam imagens de referência de curto termo. Pode ser o caso, nesse exemplo, de as imagens 102 e 106 poderem ser previstas com relação a quaisquer imagens 100, 116, 108 ou 104, mas essas imagens 110 e 14 podem ser previstas com relação a qualquer uma das imagens 100, 1160, 108 ou 112. Em outras palavras, a imagem 104 pode não estar disponível para referência quando da codificação das imagens 110 e 114. Como outro exemplo, assumindo-se que a imagem 100 e a imagem 116 representem as imagens de referência de longo termo e as imagens 108, 104 e 112 representem as imagens de referência de curto termo, as imagens 108, 104 e 112 podem não estar disponíveis para referência quando da codificação de imagens 118, 122, 126 e 130. De acordo com as técnicas dessa descrição, os dados referentes às imagens de referência de longo termo podem ser sinalizadas em cabeçalhos de fatia das fatias para toda e qualquer imagem 100-132.
[0192] No exemplo da figura 4, as setas representam as relações de previsão em potencial onde a extremidade traseira de cada seta representa uma imagem que pode ser prevista, e a cabeça de cada seta representa uma imagem a partir da qual a imagem pode ser prevista (isso é, a cabeça da seta aponta para uma imagem de referência em potencial). Apesar de a imagem 116 possuir uma seta apontando para a imagem 100, para fins de exemplo, assume- se que a imagem 116 seja codificada por intraprevisão (isso é, codificada com referência a qualquer outra imagem). Ademais, assume-se que a imagem 108 seja codificada como uma imagem P com referência à imagem 116. Adicionalmente, assume-se que a imagem 116 esteja sendo utilizada como um ponto de acesso randômico, por exemplo, como uma imagem IDR, BLA ou CRA. Isso é, uma sequência de bits recuperada começando com a imagem 116 incluiria cada uma das imagens 102-132 na ordem de decodificação, mas não incluiria a imagem 100.
[0193] Nesse exemplo, sob as considerações mencionadas acima, as imagens 102, 104 e 106 representam imagens TFD, visto que as imagens 102, 104 e 106 dependem, direta ou indiretamente, da imagem 100. As imagens 108 a 114 representam exemplos de DLPs, visto que as imagens 108 a 114 não dependem diretamente ou indiretamente da imagem 100, e possuem uma ordem de exibição anterior à imagem 116, mas uma ordem de decodificação que é posterior à imagem 116. As imagens 118 a 132 representam imagens traseiras nesse exemplo, visto que a ordem de exibição e a ordem de decodificação das imagens 118 a 132 são ambas posteriores à imagem 116. De acordo com as técnicas dessa descrição, quando da codificação de uma ou mais DLPs para uma imagem RAP, as DLPs podem ser codificadas de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP em uma ordem de exibição. Por exemplo, como discutido acima com relação à figura 2, quando da codificação da imagem 108, a unidade de seleção de modo 40 pode determinar codificar a imagem 108 como uma imagem P com relação a, por exemplo, a imagem 116. Dessa forma, a imagem 108 pode ser classificada como uma DLP. De acordo, a unidade de seleção de modo 40 pode determinar codificar cada uma das imagens 110, 112, 114 como DLPs também, ao invés de como TFDs. De forma similar, o decodificador de vídeo 30 pode, depois da determinação de que a imagem 108 é uma DLP, determinar que as imagens subsequentes na ordem de saída são decodificáveis. Por outro lado, o decodificador de vídeo 30 pode simplesmente analisar, sem decodificar, os dados para quaisquer imagens que são TFD. Nesse exemplo, o decodificador de vídeo 30 pode determinar que as imagens 102, 104 e 106 são imagens TFD, e, portanto, simplesmente analisar os dados para essas imagens sem tentar decodificar as imagens. Para imagens que possuem a ordem de saída posterior à imagem 108, o decodificador de vídeo 30 pode começar a decodificação como normal, sem determinar se as imagens são TFD ou DLP, visto que, de acordo com as restrições propostas nessa descrição, todas as imagens TFD precedem todas as imagens DLP na ordem de saída.
[0194] Como discutido acima, essa descrição propõe várias restrições para suportar o acesso randômico com base nesses vários tipos de imagens. Primeiro, todas as imagens TFD para uma imagem RAP deve ter um valor de ordem de exibição que seja anterior ao valor de ordem de exibição para todas as DLPs para a RAP. Essa restrição pode aperfeiçoar uma experiência de visualização por parte do observador visto que evita o corte na taxa de quadro. Isso é, se houver uma ou mais imagens que não podem ser decodificadas corretamente (isso é, imagens TFD), se essas imagens tiverem valores de ordem de exibição entrelaçados com DLPs, a taxa de quadro parecerá entrecortada, o que reduzirá a qualidade da experiência do usuário. Essa descrição também propõe uma restrição na qual a intercalação de imagens dianteiras com "imagens traseiras" na ordem de decodificação é impedida. Isso é, de acordo com as técnicas dessa descrição, os codificadores de vídeo podem garantir que todas as imagens dianteiras (incluindo ambas as imagens TFD e DLPs) possuam valores de ordem de decodificação anteriores aos valores de ordem de decodificação das imagens que possuem valores de ordem de exibição superiores ao valor de ordem de exibição da imagem RAP correspondente. Como notado acima, "imagens traseiras" são imagens que seguem a imagem RAP em ordem de decodificação e ordem de exibição.
[0195] A figura 5 é um diagrama em bloco ilustrando um conjunto ilustrativo de dispositivos que formam parte da rede 150. Nesse exemplo, a rede 150 inclui dispositivos de direcionamento 154A, 154B (dispositivos de direccionalmente 154) e dispositivo de transcodificação 156. Os dispositivos de direcionamento 154 e o dispositivo de transcodificação 156 são destinados a representar um número pequeno de dispositivos que podem formar parte da rede 150. Outros dispositivos de rede, tal como comutadores, cubos, circuitos de acesos, firewalls, pontes e outros dispositivos similares também podem ser incluídos na rede 150. Ademais, dispositivos de rede adicionais podem ser fornecidos ao longo de um percurso de rede entre o dispositivo servidor 152 e o dispositivo de cliente 158. O dispositivo servidor 152 pode corresponder ao dispositivo fonte 12 (figura 1), enquanto o dispositivo de cliente 158 pode corresponder ao dispositivo de destino 14 (figura 1), em alguns exemplos.
[0196] Em geral, os dispositivos de direcionamento 154 implementam um ou mais protocolos de direcionamento para permutar dados de rede através da rede 150. Em geral, os dispositivos de direcionamento 154 executam protocolos de direcionamento para descobrir as rotas através da rede 150. Pela execução de tais protocolos de direcionamento, o dispositivo de direcionamento 154B pode descobrir uma rota de rede de si mesmo para o dispositivo servidor 152 através do dispositivo de direcionamento 154A.
[0197] A figura 6 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 6 serão descritas com referência a um codificador de vídeo genérico. Esse codificador de vídeo genérico pode, por exemplo, corresponder ao codificador de vídeo 20 ou ao decodificador de vídeo 30. O decodificador de vídeo codifica uma imagem RAP (161). A imagem RAP pode incluir uma dentre uma imagem de acesso randômico clara e uma imagem de acesso de conexão interrompida. O codificador de vídeo codifica uma ou mais DLPs para a imagem RAP de modo que todas as imagens que são marcadas para descarte precedam as DLPs associadas com a imagem RAP na ordem de exibição (162). As DLPs podem incluir uma ou mais imagens possuindo valores de ordem de exibição anteriores a um valor de ordem de exibição da imagem RAP e que não se referem a dados de vídeo anteriores à imagem RAP na ordem de decodificação.
[0198] A figura 7 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 7 serão descritas com referência a um codificador de vídeo genérico. Esse codificador de vídeo genérico pode, por exemplo, corresponder ao codificador de vídeo 20 ou ao decodificador de vídeo 30. O codificador de vídeo codifica uma imagem RAP (171). O codificador de vídeo codifica uma ou mais imagens TFD associadas com a imagem RAP, onde as imagens TFD precedem a imagem RAP na ordem de exibição e sucedem a imagem RAP na ordem de decodificação e se referem a dados de vídeo anteriores à imagem RAP na ordem de decodificação (172). O codificador de vídeo codifica uma ou mais DLPs associadas com a imagem RAP de modo que todas as imagens TFD precedam as DLPs na ordem de exibição, onde as DLPs precedem a imagem RAP na ordem de exibição e sucedem a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação (173).
[0199] A figura 8 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 8 serão descritas com referência a um codificador de vídeo genérico. Esse codificador de vídeo genérico, por exemplo, corresponde ao codificador de vídeo 20 ou ao decodificador de vídeo 30. O codificador de vídeo codifica uma imagem RAP (181). O codificador de vídeo codifica uma ou mais imagens dianteiras associadas com a imagem RAP onde as imagens dianteiras precedem a imagem RAP na ordem de exibição e sucedem a imagem RAP na ordem de decodificação (182). O codificador de vídeo codifica uma ou mais imagens traseiras associadas com ai imagem RAP de modo que todas as imagens dianteiras precedam todas as imagens traseiras na ordem de decodificação, onde as imagens traseiras sucedem a imagem RAP na ordem de exibição e na ordem de decodificação (183).
[0200] A figura 9 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 9 serão descritas com referência a um codificador de vídeo genérico. Esse codificador de vídeo genérico pode, por exemplo, corresponder ao codificador de vídeo 20 ou ao decodificador de vídeo 30. O codificador de vídeo codifica uma ou mais imagens que precedem uma imagem RAP na ordem de decodificação (191). O codificador de vídeo codifica a imagem RAP (192). O codificador de vídeo codifica uma ou mais DLPs associadas com a imagem RAP de modo que todas as imagens que precedem a imagem RAP na ordem de decodificação também precedam todas as DLPs na ordem de exibição onde as DLPs precedem a imagem RAP na ordem de exibição e sucedem a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação (193). a
[0201] A figura 10 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 10 podem, por exemplo, ser realizadas pela unidade de seleção de modo 40 do codificador de vídeo 20. A unidade de seleção de modo 40 pode codificar uma imagem RAP (202). Para uma próxima imagem, seguindo a imagem RAP, a unidade de seleção de modo 40 pode determinar se codifica a próxima imagem como uma TFD ou uma DLP (204). Se a unidade de seleção de modo 40 codificar a próxima imagem como uma TFD (206), então para uma imagem subsequente, a unidade de seleção de modo 40 pode mais uma vez determinar se codifica a imagem como uma TFD ou uma DLP (204). Uma vez que a unidade de seleção de modo 40 codifica uma imagem seguindo uma imagem RAP como uma DLP (208), então a unidade de seleção de modo codifica as imagens subsequentes como DLPs (210). Nesse exemplo da figura 10, "próxima imagem" geralmente se refere a uma imagem que é subsequente na ordem de saída. A ordem de decodificação entrelaçando as DLPs e TFDs ainda é permitida, enquanto que a intercalação de ordem de saída pode ser desativada.
[0202] A figura 11 é um fluxograma ilustrando uma técnica ilustrativa dessa descrição. As técnicas da figura 11 podem, por exemplo, ser realizadas pelo decodificador de vídeo 30. O decodificador de vídeo 30 pode decodificar uma imagem RAP e determinar que a imagem seja utilizada para acesso randômico para uma sequência de bits. Para a próxima imagem na sequência de bits, o decodificador de vídeo 30 pode determinar, por exemplo, com base em um tipo de unidade NAL para a imagem, se a imagem é uma imagem TFD ou uma DLP (214). Se a imagem for uma TFD, então o decodificador de vídeo 30 pode pular a decodificação da imagem TFD (216). Se a imagem for uma DLP, então o decodificador de vídeo 30 pode decodificar a DLP (218).
[0203] Apesar de as técnicas das figuras 6, 7, 8, 9, 10 e 11 terem sido apresentadas separadamente, é contemplado que os aspectos das técnicas apresentadas nas figuras 6, 7, 8, 9, 10 e 11 podem ser implementados simultaneamente. Deve-se reconhecer também que dependendo do exemplo, determinados atos ou eventos de qualquer uma das técnicas descritas aqui podem ser realizados em uma sequência diferente, podem ser adicionados, misturados ou deixados de fora totalmente (por exemplo, nem todos os atos ou eventos descritos são necessários para a prática das técnicas). Ademais, em determinados exemplos, atos ou eventos podem ser realizados simultaneamente, por exemplo, através do processamento de múltiplas sequências, processamento interrompido, ou múltiplos processadores, ao invés de sequencialmente.
[0204] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas como uma ou mais instruções ou código em um meio legível por computador e executadas por uma unidade de processamento com base em hardware. Meio legível por computador pode incluir meio de armazenamento legível por computador, que corresponde a um meio tangível tal como meio de armazenamento de dados, ou meio de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa forma, o meio legível por computador geralmente pode corresponder a (1) meio de armazenamento legível por computador tangível que não é transitório ou (2) um meio de comunicação tal como um sinal ou onda portadora. O meio de armazenamento de dados pode ser qualquer meio disponível que possa ser acessado por um ou mais computadores ou um ou mais processadores para recuperar as instruções, código e/ou estruturas de dados para implementação das técnicas descritas nessa descrição. Um produto de programa de computador pode incluir um meio legível por computador.
[0205] Por meio de exemplo, e não de limitação, tal meio de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenador de disco ótico, armazenador de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser utilizado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é adequadamente chamada de meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio da rede, servidor ou outra fonte remota utilizando um cabo coaxial, um cabo de fibra ótica, um par torcido, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra ótica, o par torcido, DSL ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas são incluídos na definição de meio. Deve-se compreender, no entanto, que o meio de armazenamento legível por computador e o meio de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outro meio transitório, mas, em vez disso, são direcionados para meio de armazenamento tangível não transitório. Disquete e disco, como utilizados aqui, incluem disco compacto (CD), disco de laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu- ray, onde disquetes normalmente reproduzem os dados magneticamente, enquanto os discos reproduzem os dados oticamente com lasers. As combinações do acima também devem ser incluídas no escopo de meio legível por computador.
[0206] As instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de finalidade geral, circuitos integrados específicos de aplicativo (ASICs), conjuntos lógicos programáveis em campo (FPGAs), ou outro conjunto de circuito lógico integrado ou discreto equivalente. De acordo, o termo "processador", como utilizado aqui, pode se referir a qualquer uma dentre a estrutura acima e qualquer outra estrutura adequada para implementação de técnicas descritas aqui. Adicionalmente, em alguns aspectos, a funcionalidade descrita aqui pode ser fornecida dentro de hardware dedicado e/ou módulos de software configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0207] As técnicas dessa descrição podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos, ou unidades são descritos nessa descrição para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas descritas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequados.
[0208] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (11)

1. Método para codificar dados de vídeo, o método caracterizado pelo fato de que compreende: codificar (161) uma imagem de ponto de acesso randômico, RAP, em que a imagem RAP compreende uma dentre uma imagem de acesso randômico limpa, CRA, e uma imagem de acesso de enlace rompido, BLA; codificar uma ou mais imagens dianteiras puladas de acesso randômico, RASL, associadas com a imagem RAP, em que a uma ou mais imagens RASL precedem a imagem RAP em um valor de ordem de saída e sucedem a imagem RAP na ordem de decodificação e se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação; e codificar (162) uma ou mais imagens dianteiras decodificáveis de acesso randômico, RADL, para a imagem RAP de acordo com uma restrição de que todas as imagens RASL precedam as RADLs associadas com a imagem RAP na ordem de saída, em que as RADLs compreendem uma ou mais imagens possuindo valores de ordem de saída que indicam uma ordem de saída anterior a um valor de ordem de saída da imagem RAP e possuindo valores de ordem de decodificação que indicam uma ordem de decodificação posterior a um valor de ordem de decodificação da imagem RAP, e em que a uma ou mais imagens não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente codificar uma ou mais imagens dianteiras com relação à imagem RAP de acordo com uma restrição de que todas as imagens dianteiras para a imagem RAP precedam todas as imagens posteriores a imagem RAP na ordem de decodificação, em que as imagens posteriores compreendem imagens possuindo valores de ordem de saída que são maiores que um valor de ordem de saída da imagem RAP.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que qualquer imagem precedendo uma imagem CRA ou BLA na ordem de decodificação precede qualquer imagem RADL associada com a imagem CRA ou a imagem BLA na ordem de saída.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: codificar uma ou mais imagens dianteiras associadas com a imagem RAP, em que as imagens dianteiras precedem a imagem RAP no valor de ordem de saída e sucedem a imagem RAP na ordem de decodificação; e codificar uma ou mais imagens posteriores associadas com a imagem RAP de acordo com uma restrição de que todas as imagens dianteiras precedam todas as imagens posteriores na ordem de decodificação, em que as imagens posteriores sucedem a imagem RAP tanto no valor de ordem de saída quanto na ordem de decodificação.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que codificar a uma ou mais imagens RADL para a imagem RAP compreende codificar a uma ou mais RADLs associadas com a imagem RAP de acordo com a restrição de que todas as imagens RASL precedem as RADLs na ordem de saída, em que as RADLs precedem a imagem RAP na ordem de saída e sucedem a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: codificar uma ou mais imagens que precedem a imagem RAP na ordem de decodificação; e em que codificar a uma ou mais RADLs compreende codificar a uma ou mais RADLs associadas com a imagem RAP de acordo com uma restrição de que todas as imagens que precedam a imagem RAP na ordem de decodificação também precedam todas as RADLs na ordem de saída, em que as RADLs precedem a imagem RAP na ordem de saída e sucedem a imagem RAP na ordem de decodificação e não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a codificação da imagem RAP é executada como parte de um processo de codificação de vídeo.
8. Método para decodificar dados de vídeo codificados de acordo com o método tal como definido em qualquer uma das reivindicações 1 a 7, o método caracterizado pelo fato de que compreende: decodificar uma imagem de ponto de acesso randômico, RAP; decodificar uma ou mais imagens dianteiras puladas de acesso randômico, RASL, associadas com a imagem RAP; e decodificar uma ou mais imagens dianteiras decodificáveis de acesso randômico, RADL, para a imagem RAP de acordo com uma restrição de que todas as imagens RASLs precedam as RADLs associadas com a imagem RAP na ordem de saída.
9. Aparelho para codificar dados de vídeo, caracterizado pelo fato de que compreende: mecanismos para codificar uma imagem de ponto de acesso randômico, RAP, em que a imagem RAP compreende uma dentre uma imagem de acesso randômico limpa, CRA, e uma imagem de acesso de enlace rompido, BLA; mecanismos para codificar uma ou mais imagens dianteiras puladas de acesso randômico, RASL, associadas com a imagem RAP, em que a uma ou mais imagens RASL precedem a imagem RAP em um valor de ordem de saída e sucedem a imagem RAP na ordem de decodificação e se referem aos dados de vídeo anteriores a imagem RAP na ordem de decodificação; e mecanismos para codificar uma ou mais imagens dianteiras decodificáveis de acesso randômico, RADL, para a imagem RAP de acordo com uma restrição de que todas as imagens RASL precedam as RADLs associadas com a imagem RAP na ordem de saída, em que as RADLs compreendem uma ou mais imagens possuindo valores de ordem de saída que indicam uma ordem de saída anterior a um valor de ordem de saída da imagem RAP e possuindo valores de ordem de decodificação que indicam uma ordem de decodificação posterior a um valor de ordem de decodificação da imagem RAP, e em que a uma ou mais imagens não se referem aos dados de vídeo anteriores à imagem RAP na ordem de decodificação.
10. Aparelho, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente mecanismos para codificar uma ou mais imagens dianteiras com relação à imagem RAP de acordo com uma restrição de que todas as imagens dianteiras à imagem RAP precedam todas as imagens posteriores à imagem RAP na ordem de decodificação, em que as imagens posteriores compreendem imagens possuindo valores de ordem de saída que são maiores que um valor de ordem de saída da imagem RAP.
11. Memória legível por computador caracterizada pelo fato de que armazena instruções que quando executadas por um ou mais processadores fazem com que o um ou mais processadores executem o método tal como definido em qualquer uma das reivindicações 1 a 8.
BR112014031749-6A 2012-06-28 2013-06-19 Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo BR112014031749B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261665862P 2012-06-28 2012-06-28
US61/665,862 2012-06-28
US201261666688P 2012-06-29 2012-06-29
US61/666,688 2012-06-29
US13/784,006 US9591303B2 (en) 2012-06-28 2013-03-04 Random access and signaling of long-term reference pictures in video coding
US13/784,006 2013-03-04
PCT/US2013/046529 WO2014004201A1 (en) 2012-06-28 2013-06-19 Random access and signaling of long-term reference pictures in video coding

Publications (2)

Publication Number Publication Date
BR112014031749A2 BR112014031749A2 (pt) 2017-06-27
BR112014031749B1 true BR112014031749B1 (pt) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
DK2868083T3 (en) RANDOM ACCESS AND SIGNALING OF LONG-TIME REFERENCE PICTURES IN VIDEO CODING
ES2744235T3 (es) Actualizaciones de conjuntos de parámetros en la codificación de vídeo
ES2748561T3 (es) Unidades de acceso IRAP y conmutación y empalme de flujos de bits
ES2701786T3 (es) Procesamiento de memoria intermedia de imágenes descodificadas para imágenes de punto de acceso aleatorio en secuencias de vídeo
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
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
BR112014033008B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112014006845B1 (pt) Método e dispositivos para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador
BR112014013365B1 (pt) Codificação de bits menos significativos dos valores de contagem de ordem de imagem identificando imagens de referência de longo prazo
BR112015006486B1 (pt) Tempos de chegada e remoção nominal de buffer de imagem codificada na codificação de vídeo
BR112015006856B1 (pt) Método e aparelho para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo e memória legível por computador
BR112014017159B1 (pt) Conjuntos de parâmetros de codificação e cabeçalhos de unidade nal para codificação de vídeo
BR112014001799B1 (pt) Codificação de vídeo de múltiplas visualizações
BR112015025639B1 (pt) Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas
BR112014001860B1 (pt) Método e aparelho para decodificar e codificar dados de vídeo, e memória legível por computador
BR112015006839B1 (pt) Sinalizando identificadores de camada para pontos de operação em codificação de vídeo
BR112015016361B1 (pt) Operações de armazenamento temporário de vídeo para acesso aleatório em codificação de vídeo
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
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
BR112015006059B1 (pt) Codificação de vídeo codm comportamentos [de imagem [de ponto [de acesso aleatório melhorados
BR112015007273B1 (pt) Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador
BR112016011311B1 (pt) Design de valor de poc para codificação de vídeo de várias camadas
BR112016011818B1 (pt) Projeto de valor de poc para codificação de vídeo de multicamada
BR112014031749B1 (pt) Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador