BR112014006842B1 - Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador - Google Patents

Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador Download PDF

Info

Publication number
BR112014006842B1
BR112014006842B1 BR112014006842-9A BR112014006842A BR112014006842B1 BR 112014006842 B1 BR112014006842 B1 BR 112014006842B1 BR 112014006842 A BR112014006842 A BR 112014006842A BR 112014006842 B1 BR112014006842 B1 BR 112014006842B1
Authority
BR
Brazil
Prior art keywords
image
images
reference image
list
reference images
Prior art date
Application number
BR112014006842-9A
Other languages
English (en)
Other versions
BR112014006842A2 (pt
Inventor
Ye-Kui Wang
Ying Chen
Original Assignee
Velos Media International Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Velos Media International Limited filed Critical Velos Media International Limited
Publication of BR112014006842A2 publication Critical patent/BR112014006842A2/pt
Publication of BR112014006842B1 publication Critical patent/BR112014006842B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

CONSTRUÇÃO DE LISTA DE IMAGEM DE REFERÊNCIA PARA CODIFICAÇÃO DE VÍDEO. São descritas técnicas para construir uma lista de imagem de referências. A lista de imagem de referências pode ser construída a partir de subconjuntos de imagem de referência de um conjunto de imagem de referência. Em alguns exemplos, os subconjuntos de imagem de referência podem ser ordenados de maneira particular para formar a lista de imagem de referências.

Description

[001] Este pedido reivindica o benefício de: Pedido de Patente Provisória Norte Americano de No. 61/538.787, depositado em 23 de setembro de 2011; Pedido de Patente Provisória Norte Americano de No. 61/539.433, depositado em 26 de setembro de 2011; e Pedido de Patente Provisória Norte Americano de No. 61/542,034, depositado em 30 de setembro de 2011, o conteúdo de cada um dos quais é incorporado integralmente por referência.
Campo da Técnica
[002] Esta revelação se refere à codificação de vídeo e, mais particularmente, a técnicas para codificar dados de vídeo.
Fundamentos
[003] Capacidades de vídeo digital podem ser incorporadas dentro de uma ampla gama de dispositivos, incluindo televisões digitais, sistemas de difusão direta digitais, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores portáteis ou de mesa, computadores tablet, leitores de livros eletrônicos, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos de vídeo, consoles de jogos de vídeo, telefones por rádio celular ou de satélite, os chamados “telefones inteligentes”, dispositivos de teleconferência com vídeo, dispositivos de transmissão contínua de vídeo, e afins. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões destes padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar, e/ou armazenar informação de vídeo digital com mais eficiência implementando estas técnicas de compressão de vídeo.
[004] As técnicas de compressão de vídeo realizam predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou remover redundância inerente em sequências de vídeo. Para codificação de vídeo baseada em blocos, uma fatia de vídeo (ou seja, uma imagem de vídeo ou um parte de uma imagem de vídeo) pode ser particionada em blocos de vídeo, que também podem ser referenciados como blocos de árvore, blocos de árvore de codificação (CTBs), unidades de árvore de codificação (CTUs), unidades de codificação (CUs) e/ou nós de codificação. Blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando predição espacial com respeito a amostras de referência em blocos vizinhos na mesma imagem. Blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem pode usar predição espacial com respeito a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com respeito a amostras de referência em outras imagens de referência. Imagens podem ser referenciados como quadros, e imagens de referência podem ser referenciadas como quadros de referência.
[005] Predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que forma o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio transformado, resultando em coeficientes de transformada residual, os quais então podem ser quantizados. Os coeficientes de transformada quantizados, dispostos inicialmente em uma matriz bidimensional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e pode ser aplicada codificação de entropia para obter ainda mais compressão.
Sumário
[006] Em geral, esta revelação descreve técnicas relacionadas a derivar um conjunto de imagens de referência para usar em codificação de vídeo. Por exemplo, o conjunto de imagens de referência pode constituir uma combinação de uma pluralidade de subconjuntos de imagens de referência. Cada um dos subconjuntos de imagens de referência pode identificar uma pluralidade de imagens de referência potenciais, mas menos do que todos as imagens de referência potenciais. Em técnicas exemplificativas descritas nesta revelação, um codificador de vídeo (codificador ou decodificador) pode construir múltiplas listas em que cada uma inclui identificadores de um subconjunto das imagens de referência potenciais. A partir destas múltiplas listas, o codificador de vídeo pode construir a pluralidade de subconjuntos de imagens de referência, o que resulta no codificador de vídeo derivar o conjunto de imagens de referência.
[007] Adicionalmente às técnicas relacionadas a derivar o conjunto de imagens de referência, esta revelação descreve técnicas de inicialização de lista de imagens de referência simplificada. Esta inicialização de lista de imagens de referência pode remover a necessidade de reordenar as imagens de referência. Por exemplo, se a modificação da lista de imagens de referência não é necessária, então as listas de imagens de referência iniciais podem formar as listas de imagens de referência finais, e podem não requerer qualquer reordenação adicional. As técnicas também podem ser dirigidas a construir a lista de imagens de referência de uma maneira onde o codificador de vídeo repetidamente adicionou imagens de referência à lista de imagens de referência até que as entradas na lista de imagens de referência sejam iguais ao número de entradas máximo permissível.
[008] Em alguns exemplos, as técnicas são dirigidas a modificação da lista de imagens de referência. Por exemplo, o codificador de vídeo pode modificar a lista de imagens de referência inicial se referenciando a um ou mais dos subconjuntos de imagens de referência, e incluir uma ou mais imagens nos subconjuntos de imagens de referência na lista de imagens de referência após a construção da lista de imagens de referência inicial.
[009] Em alguns exemplos, o codificador de vídeo pode realizar gerenciamento de memória temporária de imagem decodificada (Decoded Picture Buffer - DPB). Nestes exemplos, o codificador de vídeo pode remover imagens decodificadas da DPB se a imagem decodificada não pertencer ao conjunto de imagens de referência. Em alguns casos, o codificador de vídeo pode remover a imagem decodificada anterior à codificação da imagem atual.
[010] Em um exemplo, a revelação descreve um método para codificar dados de vídeo que inclui codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e pode potencialmente ser usada para interpredição de uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O método também inclui construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, e codificar a imagem atual baseada na pluralidade de subconjuntos de imagens de referência.
[011] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo que é configurado para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, e codificar a imagem atual baseada na pluralidade de subconjuntos de imagens de referência.
[012] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo codifique dados de vídeo para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador construa uma pluralidade de subconjuntos de imagens de referência em que cada uma identifica zero ou mais das imagens de referência do conjunto de imagens de referência, e codifique a imagem atual baseada na pluralidade de subconjuntos de imagens de referência.
[013] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, e meios para codificar a imagem atual baseados na pluralidade de subconjuntos de imagens de referência.
[014] Em um exemplo, a revelação descreve um método para codificar dados de vídeo, o método inclui codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O método também inclui construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicionar imagens de referência de um primeiro subconjunto da pluralidade de subconjuntos de imagens de referência, seguidos por imagens de referência de um segundo subconjunto da pluralidade de subconjuntos de imagens de referência, e seguidos por imagens de referência de um terceiro subconjunto da pluralidade de subconjuntos de imagens de referência dentro de uma lista de imagens de referência desde que um número de entradas na lista de imagens de referência não seja maior do que um número máximo de entradas permissíveis na lista de referência, e codificar a imagem atual baseada na lista de imagens de referência.
[015] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo configurado para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicionar imagens de referência a partir de um primeiro subconjunto da pluralidade de subconjuntos de imagens de referência, seguidos por imagens de referência a partir de um segundo subconjunto da pluralidade de subconjuntos de imagens de referência, e seguidos por imagens de referência a partir de um terceiro subconjunto da pluralidade de subconjuntos de imagens de referência dentro de uma lista de imagens de referência desde que um número de entradas na lista de imagens de referência não seja maior do que um número máximo de entradas permissíveis na lista de referência, e codificar a imagem atual baseada na lista de imagens de referência.
[016] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar dados de vídeo codifique informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador construa uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicione imagens de referência a partir de um primeiro subconjunto da pluralidade de subconjuntos de imagens de referência, seguidos por imagens de referência a partir de um segundo subconjunto da pluralidade de subconjuntos de imagens de referência, e seguidos por imagens de referência a partir de um terceiro subconjunto da pluralidade de subconjuntos de imagens de referência dentro de uma lista de imagens de referência desde que um número de entradas na lista de imagens de referência não seja maior do que um número máximo de entradas permissíveis na lista de referência, e codifique a imagem atual baseada na lista de imagens de referência.
[017] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, meios para adicionar imagens de referência a partir de um primeiro subconjunto da pluralidade de subconjuntos de imagens de referência, seguidos por imagens de referência a partir de um segundo subconjunto da pluralidade de subconjuntos de imagens de referência, e seguidos por imagens de referência a partir de um terceiro subconjunto da pluralidade de subconjuntos de imagens de referência dentro de uma lista de imagens de referência desde que um número de entradas na lista de imagens de referência não seja maior do que um número máximo de entradas permissíveis na lista de referência, e meios para codificar a imagem atual baseada na lista de imagens de referência.
[018] Em um exemplo, a revelação descreve um método para codificar dados de vídeo, o método inclui codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O método também inclui construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicionar imagens de referência a partir da pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas em uma lista de imagens de referência, determinar se um número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência, quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, readicionar repetidamente um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência, e codificar a imagem atual baseada na lista de imagens de referência.
[019] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo configurado para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicionar imagens de referência a partir da pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas em uma lista de imagens de referência, determinar se um número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência, quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, readicionar repetidamente um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência, e codificar a imagem atual baseada na lista de imagens de referência.
[020] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar dados de vídeo codifique informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador construa uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, adicione imagens de referência a partir da pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas em uma lista de imagens de referência, determine se um número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência, quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, readicione repetidamente um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência, e codifique a imagem atual baseada na lista de imagens de referência.
[021] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, meios para adicionar imagens de referência a partir da pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas em uma lista de imagens de referência, meios para determinar se um número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência, quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, meios para readicionar repetidamente um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência, e meios para codificar a imagem atual baseada na lista de imagens de referência.
[022] Em um exemplo, a revelação descreve um método para codificar dados de vídeo, o método inclui codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O método também inclui construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, construir uma lista de imagens de referência inicial baseado nos subconjuntos de imagens de referência construídos, e quando é necessária modificação na imagem de referência identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos, e adicionar a imagem de referência identificada em uma entrada corrente da imagem de referência inicial para construir uma lista modificada de imagens de referência. O método adicionalmente inclui codificar a imagem atual baseada na lista modificada de imagens de referência.
[023] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo configurado para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, construir uma lista de imagens de referência inicial baseada nos subconjuntos de imagens de referência construídos, e quando é necessária modificação na imagem de referência identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos, e adicionar a imagem de referência identificada em uma entrada corrente da imagem de referência inicial para construir uma lista modificada de imagens de referência. O codificador de vídeo também é configurado para codificar a imagem atual baseada na lista modificada de imagens de referência.
[024] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar dados de vídeo codifique informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador construa uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, construa uma lista de imagens de referência inicial baseada nos subconjuntos de imagens de referência construídos, e quando é necessária modificação na imagem de referência identifique uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos, e adicione a imagem de referência identificada em uma entrada corrente da imagem de referência inicial para construir uma lista modificada de imagens de referência. As instruções também fazem com que o processador codifique a imagem atual baseada na lista modificada de imagens de referência.
[025] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência do conjunto de imagens de referência, meios para construir uma lista de imagens de referência inicial baseada nos subconjuntos de imagens de referência construídos, e quando é necessária modificação na imagem de referência, meios para identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos, e meios para adicionar a imagem de referência identificada em uma entrada corrente da imagem de referência inicial para construir uma lista modificada de imagens de referência. O dispositivo também inclui meios para codificar a imagem atual baseada na lista modificada de imagens de referência.
[026] Em um exemplo, a revelação descreve um método para codificar dados de vídeo, o método inclui codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O método inclui derivar o conjunto de imagens de referência baseado na informação codificada, determinar se uma imagem decodificada armazenada em uma memória temporária de imagem decodificada (DPB) não é necessária para saída e não é identificada no conjunto de imagens de referência, quando a imagem decodificada não é necessária para saída e não é identificada no conjunto de imagens de referência, remover a imagem decodificada da DPB, e subsequente à remoção da imagem decodificada, codificar a imagem atual.
[027] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo configurado para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para derivar o conjunto de imagens de referência baseado na informação codificada, determinar se uma imagem decodificada armazenada em uma memória temporária de imagem decodificada (DPB) não é necessária para saída e não é identificada no conjunto de imagens de referência, quando a imagem decodificada não é necessária para saída e não é identificada no conjunto de imagens de referência, remover a imagem decodificada da DPB, e subsequente à remoção da imagem decodificada, codificar a imagem atual.
[028] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar dados de vídeo codifique informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador para derivar o conjunto de imagens de referência baseado na informação codificada, determine se uma imagem decodificada armazenada em uma memória temporária de imagem decodificada (DPB) não é necessária para saída e não é identificada no conjunto de imagens de referência, quando a imagem decodificada não é necessária para saída e não é identificada no conjunto de imagens de referência, remova a imagem decodificada da DPB, e subsequente à remoção da imagem decodificada, codifique a imagem atual.
[029] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Neste exemplo, o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para derivar o conjunto de imagens de referência baseado na informação codificada, meios para determinar se uma imagem decodificada armazenada em uma memória temporária de imagem decodificada (DPB) não é necessária para saída e não é identificada no conjunto de imagens de referência, quando a imagem decodificada não é necessária para saída e não é identificada no conjunto de imagens de referência, meios para remover a imagem decodificada da DPB, e subsequente à remoção da imagem decodificada, meios para codificar a imagem atual.
[030] Em um exemplo, a revelação descreve um método de codificação de dados de vídeo, o método inclui codificar elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo identificados em um conjunto de parâmetros. Neste exemplo, um ou mais dos candidatos a imagens de referência de longo prazo pertencem a um conjunto de imagens de referência de uma imagem atual. Também, neste exemplo, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O método também inclui codificar elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual, e construir pelo menos um de uma pluralidade de subconjuntos de imagens de referência baseado na indicação de quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual. Neste exemplo, a pluralidade de subconjuntos de imagens de referência forma o conjunto de imagens de referência.
[031] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui um codificador de vídeo configurado para codificar elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo identificadas em um conjunto de parâmetros. Neste exemplo, um ou mais dos candidatos a imagens de referência de longo prazo pertencem a um conjunto de imagens de referência de uma imagem atual. Também, neste exemplo, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O codificador de vídeo também é configurado para codificar elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual, e construir pelo menos um de uma pluralidade de subconjuntos de imagens de referência baseado na indicação de quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual. Neste exemplo, a pluralidade de subconjuntos de imagens de referência forma o conjunto de imagens de referência.
[032] Em um exemplo, a revelação descreve um meio de armazenamento legível por computador que tem armazenado no mesmo, instruções que, quando executadas, fazem com que um processador de um dispositivo para codificar dados de vídeo codifique elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo identificados em um conjunto de parâmetros. Neste exemplo, um ou mais dos candidatos a imagens de referência de longo prazo pertencem a um conjunto de imagens de referência de uma imagem atual. Também, neste exemplo, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. As instruções também fazem com que o processador codifique elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual, e construir pelo menos um de uma pluralidade de subconjuntos de imagens de referência baseado na indicação de quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual. Neste exemplo, a pluralidade de subconjuntos de imagens de referência forma o conjunto de imagens de referência.
[033] Em um exemplo, a revelação descreve um dispositivo para codificar dados de vídeo. O dispositivo inclui meios para codificar elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo identificadas em um conjunto de parâmetros. Neste exemplo, um ou mais dos candidatos a imagens de referência de longo prazo pertencem a um conjunto de imagens de referência de uma imagem atual. Também, neste exemplo, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O dispositivo também inclui meios para codificar elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual, e meios para construir pelo menos um de uma pluralidade de subconjuntos de imagens de referência baseado na indicação de quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual. Neste exemplo, a pluralidade de subconjuntos de imagens de referência forma o conjunto de imagens de referência.
[034] Os detalhes de um ou mais exemplos são enumerados nos desenhos em anexo e na descrição abaixo. Outros recursos, objetivos, e vantagens ficarão evidentes a partir da descrição e desenhos, e das reivindicações. Breve Descrição das Figuras
[035] A FIGURA 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo que pode utilizar técnicas descritas nesta revelação.
[036] A FIGURA 2 é um diagrama conceitual que ilustra uma sequência de vídeo exemplificativa que inclui uma pluralidade de imagens que é codificada e transmitida.
[037] A FIGURA 3 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implementar as técnicas descritas nesta revelação.
[038] A FIGURA 4 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo que pode implementar as técnicas descritas nesta revelação.
[039] A FIGURA 5 é um fluxograma que ilustra uma operação de derivação de um conjunto de imagens de referência exemplificativa.
[040] A FIGURA 6 é um fluxograma que ilustra uma operação de construção de uma lista de imagens de referência exemplificativa.
[041] A FIGURA 7 é um fluxograma que ilustra outra operação de construção de uma lista de imagens de referência exemplificativa.
[042] A FIGURA 8 é um fluxograma que ilustra uma operação de modificação de uma lista de imagens de referência inicial exemplificativa.
[043] A FIGURA 9 é um fluxograma que ilustra uma operação de remoção de imagem decodificada exemplificativa.
[044] A FIGURA 10 é um fluxograma que ilustra uma operação exemplificativa para determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência de uma imagem atual.
Descrição Detalhada
[045] As técnicas desta revelação são geralmente dirigidas ao gerenciamento de imagens de referência que são usados para interpredição. Por exemplo, um codificador de vídeo (por exemplo, um codificador de vídeo ou um decodificador de vídeo) inclui uma memória temporária de imagem decodificada (DPB). A DPB armazena imagens decodificadas, incluindo imagens de referência. Imagens de referência são imagens que podem potencialmente ser usadas para interpredição de uma imagem. Em outras palavras, o codificador de vídeo pode predizer uma imagem, durante a codificação (codificar ou decodificar) daquela imagem, baseado em um ou mais imagens de referência armazenadas na DPB.
[046] Para utilizar eficientemente a DPB, o processo de gerenciamento da DPB pode ser especificado, tal como o processo de armazenamento de imagens decodificadas na DPB, o processo de marcação das imagens de referência, o processo de saída e remoção das imagens decodificadas da DPB, e assim por diante. Em geral, em alguns padrões de codificação de vídeo correntes e em desenvolvimento, o gerenciamento da DPB pode incluir um ou mais dos seguintes aspectos: identificação da imagem e identificação da imagem de referência, construção da lista de imagens de referência, marcação da imagem de referência, saída da imagem da DPB, inserção da imagem na DPB, e remoção da imagem da DPB.
[047] Para auxiliar o entendimento, a seguir é fornecida uma breve descrição de como pode ocorrer a marcação da imagem de referência e construção da lista de imagens de referência de acordo com alguns padrões de codificação de vídeo. Algumas das técnicas descritas nesta revelação endereçam questões que podem estar presentes na marcação da imagem de referência, construção da lista de imagens de referência, e remoção da imagem e saída da DPB para deste modo melhorar a eficiência da utilização da DPB.
[048] Para a marcação de imagem de referência, o número máximo, referenciado como M (num_ref_frames), de imagens de referência usadas para interpredição é indicado no conjunto de parâmetros da sequência ativa. Quando uma imagem de referência é decodificada, a mesma é marcada como “usada para referência”. Se a decodificação da imagem de referência provocou mais do que M imagens marcadas como “usado para referência,” pelo menos uma imagem tem que ser marcada como “não usado para referência.” O processo de remoção da DPB então deve remover imagens marcadas como “não usado para referência” da DPB se os mesmos também não são necessários para saída.
[049] Quando uma imagem é decodificada, o mesmo pode ser ou uma imagem não de referência ou uma imagem de referência. Uma imagem de referência pode ser uma imagem de referência de longo prazo ou imagem de referência de curto prazo, e quando é marcado como “não usado para referência”, o mesmo pode se tornar não mais necessário para referência. Em alguns padrões de codificação de vídeo, pode haver operações de marcação da imagem de referência que mudam o estado das imagens de referência.
[050] Pode haver dois tipos de operações para a marcação da imagem de referência: janela deslizante e controle adaptativo de memória. O modo de operação para marcação da imagem de referência pode ser selecionado com base na imagem; enquanto, a operação de janela deslizante pode trabalhar como uma fila primeiro a entrar primeiro a sair, com um número fixo de imagens de referência de curto prazo. Em outras palavras, imagens de referência de curto prazo com hora de decodificação mais antiga podem ser os primeiros a serem removidos (marcados como imagem não usada para referência), de uma forma implícita.
[051] O controle adaptativo de memória, entretanto remove imagens de curto prazo ou de longo prazo explicitamente. O mesmo também permite comutar o estado das imagens de curto prazo e de longo prazo, etc. Por exemplo, em controle adaptativo de memória, um codificador de vídeo pode sinalizar elementos de sintaxe que especificam quais imagens devem ser marcados como usado para referência. O decodificador de vídeo pode receber os elementos de sintaxe e marcar as imagens como especificadas. Na janela deslizante, o codificador de vídeo pode não necessitar sinalizar quais imagens devem ser marcadas como usado para referência. Em vez disso, o decodificador de vídeo pode implicitamente (ou seja, sem receber elementos de sintaxe) determinar quais imagens devem ser marcadas como usado para referência baseado em quais imagens estão dentro da janela deslizante.
[052] O codificador de vídeo também pode ser incumbido de construir listas de imagens de referência que indicam quais imagens de referência podem ser usados para propósitos de interpredição. Duas destas listas de imagens de referência são referenciadas como Lista 0 e Lista 1, respectivamente. O codificador de vídeo primeiro emprega técnicas de construção padrão para construir a Lista 0 e Lista 1 (por exemplo, esquemas de construção pré- configurados para construir a Lista 0 e Lista 1). Opcionalmente, após a Lista 0 e Lista 1 iniciais serem construídas, o decodificador de vídeo pode decodificar elementos de sintaxe, quando presentes, que instruem o decodificador de vídeo para modificar a Lista 0 e Lista 1 iniciais.
[053] O codificador de vídeo pode sinalizar os elementos de sintaxe que são indicativos de identificador(es) de imagens de referência na DPB, e o codificador de vídeo também pode sinalizar os elementos de sintaxe que incluem índices, dentro da Lista 0, Lista 1, ou tanto Lista 0 como Lista 1, que indicam qual imagem ou imagens de referência usar para decodificar um bloco codificado de uma imagem atual. O decodificador de vídeo, por sua vez, usa o identificador recebido para identificar o valor ou valores do índice para uma imagem de referência ou imagens de referência listada na Lista 0, List1, ou tanto na Lista 0 como na Lista 1. A partir de o(s) valor(es) do índice bem como do(s) identificador(es) da imagem de referência ou imagens de referência, o decodificador de vídeo recupera a imagem de referência ou imagens de referência, ou parte(s) do(s) mesmo(s), a partir da DPB, e decodifica o bloco codificado da imagem atual baseado na imagem ou imagens de referência recuperado(s) e um ou mais vetores de movimento que identificam os blocos dentro da imagem ou imagens de referência que são usados para decodificar o bloco codificado.
[054] Por exemplo, uma construção da lista de imagens de referência para a primeira ou a segunda lista de imagens de referência de uma imagem bipredita inclui duas etapas: inicialização de lista de imagens de referência e modificação da lista de imagens de referência (também referenciada como reordenação de lista de imagens de referência). A inicialização da lista de imagens de referência pode ser um mecanismo implícito que põe as imagens de referência na memória de imagem de referência (também conhecida como memória temporária de imagem decodificada) dentro de uma lista baseada nos valores da ordem de POC (Contador de Ordem de imagem, alinhado com a ordem de exibição de uma imagem). O mecanismo de reordenação da lista de imagens de referência pode modificar a posição de uma imagem que foi colocada na lista durante a inicialização da lista de imagens de referência para qualquer posição nova, ou colocar qualquer imagem de referência na memória de imagem de referência em qualquer posição mesmo que a imagem não pertença à lista inicializada. Alguns imagens após a reordenação da lista de imagens de referência (modificação) podem ser colocadas em uma posição muito adicional na lista. Entretanto, se uma posição de uma imagem excede o número de imagens de referência ativos da lista, a imagem não deve ser considerada como uma entrada da lista final de imagens de referência. O número de imagens de referência ativas pode ser sinalizado no cabeçalho da fatia para cada lista.
[055] As técnicas descritas nesta revelação podem ser aplicáveis a vários padrões de codificação de vídeo. Exemplos dos padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação Escalável de Vídeo (SVC) e Codificação de Vídeo Multivista (MVC). Adicionalmente, existe um novo padrão de codificação de vídeo, a saber, Codificação de Vídeo de Alta Eficiência (HEVC), sendo desenvolvido pela Junta de Colaboração de Time em Codificação de Vídeo (JCT-VC) do ITU-T Grupo de Especialistas em Codificação de Vídeo (VCEG) e ISO/IEC Grupo de Especialistas em Imagem em Movimento (MPEG).
[056] Apenas para propósitos de ilustração, as técnicas são descritas no contexto do padrão HEVC. Um recente Esboço de Trabalho (WD) do HEVC, e referenciado como HEVC WD8 daqui em diante, está disponível, desde 20 de julho de 2012, a partir de http://phenix.int- evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
[057] Como descrito acima, as técnicas descritas nesta revelação podem endereçar questões que podem estar presentes em soluções existentes para gerenciamento de memória temporária de imagem decodificada (DPB). Como um exemplo, em algumas técnicas exemplificativas descritas nesta revelação, a marcação de imagens de referência como “não usado para referência” pode não ser necessária. Por exemplo, as técnicas descritas nesta revelação podem endereçar questões relacionadas às técnicas gerenciamento da DPB que podem não se adequar bem a escalabilidade temporal, questões relacionadas à sobrecarga de sinalização de imagens de referência de longo prazo, questões relacionadas à eficiência e complexidade com inicialização e modificação de lista de imagens de referência. As técnicas descritas nesta revelação também podem endereçar questões relacionadas à marcação de “nenhuma imagem de referência” para entradas não completadas em uma lista de imagens de referência durante a inicialização da lista de imagens de referência, questões relacionadas à saída da imagem decodificada, inserção em e remoção da DPB, bem como questões relacionadas a valores possíveis para valores de Contador de Ordem de imagem (POC).
[058] De acordo com técnicas descritas nesta revelação, as listas de imagens de referência são construídas a partir de um conjunto de imagens de referência. Um conjunto de imagens de referência é definido como um conjunto de imagens de referência associados a uma imagem, que consiste de todos as imagens de referência que são anteriores à imagem associada na ordem de decodificação, que pode ser usado para interpredição de blocos na imagem associada ou qualquer imagem que siga a imagem associada na ordem de decodificação, por exemplo, até o próximo imagem de restauração instantânea de decodificação (IDR), ou imagem de acesso de enlace interrompido (BLA). Em outras palavras, as imagens de referência no conjunto de imagens de referência podem requerer as características a seguir: (1) os mesmos são todos anteriores a imagem atual na ordem de decodificação, e (2) os mesmos podem ser usados para interpredição da imagem atual e/ou interpredição de qualquer imagem que segue a imagem atual na ordem de decodificação, e em alguns exemplos, até o próximo imagem IDR ou imagem BLA. Pode haver outras definições alternativas do conjunto de imagens de referência, as quais são fornecidas abaixo.
[059] Em as técnicas exemplificativas descritas nesta revelação, o codificador de vídeo pode derivar o conjunto de imagens de referência, e após esta derivação, o codificador de vídeo pode construir as listas de imagens de referência. Por exemplo, somente imagens de referência no conjunto de imagens de referência podem ser imagens de referência candidatos que são usados para construir as listas de imagens de referência.
[060] Para construir o conjunto de imagens de referência, o codificador de vídeo pode construir uma pluralidade de subconjuntos de imagens de referência. A combinação dos subconjuntos de imagens de referência pode conjuntamente formar o conjunto de imagens de referência. Por exemplo, um codificador de vídeo pode sinalizar explicitamente, em um fluxo de bits codificado, valores que permitem que um decodificador de vídeo determine identificadores para as imagens de referência que são incluídos no conjunto de imagens de referência. Por exemplo, os identificadores das imagens de referência podem contar a ordem de imagem. Cada imagem é associada a um contador de ordem de imagem, referenciado como PicOrderCnt. PicOrderCnt que indica a ordem de saída ou a ordem de exibição da imagem correspondente relativo ao imagem IDR anterior na ordem de decodificação, e, em algumas outras alternativas, indica a posição da imagem associado em ordem de saída relativa às posições de ordem de saída dos outros imagens na mesma sequência de vídeo codificado.
[061] O PicOrderCnt pode ser referenciado como um valor de contador de ordem de imagem (POC). Um valor de POC pode indicar a ordem de saída ou de exibição de uma imagem, e pode ser usado para identificar uma imagem. Por exemplo, dentro de uma sequência de vídeo codificado, uma imagem com um valor de POC menor é emitida ou exibida anteriormente a uma imagem com valor de POC maior.
[062] O decodificador de vídeo pode determinar os identificadores para as imagens de referência, e a partir destes identificadores construir a pluralidade de subconjuntos de imagens de referência. A partir destes subconjuntos de imagens de referência, o decodificador de vídeo pode derivar o conjunto de imagens de referência, como descrito em mais detalhe abaixo. Em alguns exemplos, cada um dos subconjuntos de imagens de referência inclui imagens de referência diferentes, pelo fato de que não existe nenhuma sobreposição de imagens de referência nos subconjuntos de imagens de referência. Desta forma, cada uma das imagens de referência pode estar somente em um dos subconjuntos de imagens de referência, e em nenhum outro subconjunto de imagens de referência. Entretanto, aspectos desta revelação não devem ser deve ser considerados tão limitados.
[063] Após determinar os identificadores (por exemplo, valores de POC) das imagens de referência no conjunto de imagens de referência ou seus subconjuntos, o decodificador de vídeo pode construir os subconjuntos de imagens de referência. Como descrito em mais detalhe abaixo, o decodificador de vídeo pode construir seis subconjuntos de imagens de referência, embora possa ser possível para o decodificador de vídeo construir mais ou menos subconjuntos de imagens de referência.
[064] Estes seis subconjuntos de imagens de referência são nomeados: RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll. O subconjunto de imagens de referência RefPicSetStCurr0 pode ser referenciado como o subconjunto de imagens de referência RefPicSetStCurrBefore, e o subconjunto de imagens de referência RefPicSetStCurr1 pode ser referenciado como o subconjunto de imagens de referência RefPicSetStCurrAfter.
[065] Os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1 podem identificar imagens de referência de curto prazo. Em alguns exemplos, estes subconjuntos de imagens de referência podem identificar imagens de referência de curto prazo baseado em se as imagens de referência de curto prazo que são mais antigos na ordem de exibição ou mais novos na ordem de exibição do que a imagem atual que está sendo codificado, bem como se as imagens de referência de curto prazo podem potencialmente ser usadas para interpredição da imagem atual e as imagens que seguem a imagem atual na ordem de decodificação, ou podem potencialmente ser usadas para interpredição somente as imagens que seguem a imagem atual na ordem de decodificação.
[066] Por exemplo, o subconjunto de imagens de referência RefPicSetStCurr0 pode incluir, e pode somente incluir, informação de identificação, tal como valores de POC, de todos as imagens de referência de curto prazo que têm uma ordem de saída ou de exibição posterior a da imagem atual, e que podem potencialmente ser usados para referência em interpredição da imagem atual, e podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O subconjunto de imagens de referência RefPicSetStCurr1 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm uma ordem de saída ou de exibição anterior às imagem atual e que podem potencialmente ser usadas para referência em interpredição da imagem atual, e podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[067] O subconjunto de imagens de referência RefPicSetStFoll0 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm uma saída ou ordem de exibição anterior a da imagem atual, que podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usados para referência em interpredição da imagem atual. O subconjunto de imagens de referência RefPicSetStFoll1 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm um saída ou ordem de exibição posterior a da imagem atual, que podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usados para referência em interpredição da imagem atual.
[068] Os subconjuntos de imagens de referência RefPicSetLtCurr e RefPicSetLtFoll podem identificar imagens de referência de longo prazo. Em alguns exemplos, estes subconjuntos de imagens de referência podem identificar imagens de referência de longo prazo baseados em se as imagens de referência de longo prazo são anteriores na ordem de exibição ou posteriores na ordem de exibição da imagem atual que está sendo codificada.
[069] Por exemplo, o subconjunto de imagens de referência RefPicSetLtCurr pode incluir, e pode somente incluir, a informação de identificação de todos as imagens de referência de longo prazo que podem potencialmente ser usadas para referência em interpredição da imagem atual, e que podem potencialmente ser usadas para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O subconjunto de imagens de referência RefPicSetLtFoll pode incluir, e pode somente incluir, a informação de identificação de todos as imagens de referência de longo prazo que podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usados para referência em interpredição da imagem atual.
[070] Após construir os subconjuntos de imagens de referência, o decodificador de vídeo pode ordenar os subconjuntos de imagens de referência em ordem diferente para derivar o conjunto de imagens de referência. Como um exemplo, a ordem do conjunto de imagens de referência pode ser RefPicSetStCurr0, RefPicSetSetCurr1, RefPicSetFoll0, RefPicSetFoll1, RefPicSetLtCurr, e RefPicSetLtFoll. Entretanto, podem ser possíveis outras ordenações dos subconjuntos para derivar o conjunto de imagens de referência. Por exemplo, como outro exemplo, a ordem do conjunto de imagens de referência pode ser o subconjunto de imagens de referência RefPicSetStCurr0, seguido pelo conjunto de imagens de referência RefPicSetStCurr1, seguido pelo subconjunto de imagens de referência RefPicSetLtCurr, seguido pelo subconjunto de imagens de referência RefPicSetStFoll0, seguido pelo subconjunto de imagens de referência RefPicSetFoll1, e seguido pelo subconjunto de imagens de referência. RefPicSetLtFoll
[071] De acordo com as técnicas descritas nesta revelação, os subconjuntos RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr incluem todos as imagens de referência que podem ser usados em interpredição de um bloco na imagem atual e que podem ser usados em interpredição de um ou mais das imagens que seguem a imagem atual na ordem de decodificação. Os subconjuntos RefPicSetStFoll0, RefPicSetStFoll1, e RefPicSetLtFoll incluem todos as imagens de referência que não são usados em interpredição do bloco na imagem atual, mas podem ser usados em interpredição de um ou mais das imagens que seguem a imagem atual na ordem de decodificação.
[072] Deve ser entendido que os seis subconjuntos de imagens de referência são descritos apenas para propósitos de ilustração, e não devem ser deve ser considerados limitantes. Em exemplos alternativos, pode haver mais ou menos subconjuntos de imagens de referência. Estes subconjuntos de imagens de referência, nestes exemplos alternativos, são descritos em mais detalhe abaixo.
[073] Em algumas técnicas descritas nestas revelações, o decodificador de vídeo pode não necessitar marcar imagens decodificadas que são “usadas para referência”, “não usadas para referência”, “usadas para referência de curto prazo”, ou “usadas para referência de longo prazo”, Em vez disso, se uma imagem decodificada armazenada na DPB é necessária para interpredição é indicado por se o mesmo está incluído no conjunto de imagens de referência da imagem atual. Em exemplos alternativos, pode ser possível que o decodificador de vídeo marque imagens decodificadas como “usada para referência”, “não usada para referência”, “usada para referência de curto prazo”, ou “usada para referência de longo prazo”. Nestes exemplos, após o decodificador de vídeo decodificar uma imagem, o mesmo é uma imagem de referência e marcado como “usado para referência”. Então, após a invocação do processo para derivação de conjunto de imagens de referência, todas as imagens de referência armazenadas na DPB, mas não incluídos no conjunto de imagens de referência da imagem atual são marcados como “não usado para referência,” antes da possível remoção de imagens decodificadas da DPB. Portanto, se uma imagem decodificada armazenada na DPB é necessário para interpredição pode ser indicado por se o mesmo está marcado como “usada para referência”.
[074] Uma vez que o decodificador de vídeo deriva o conjunto de imagens de referência a partir da pluralidade de subconjuntos de imagens de referência, o decodificador de vídeo pode construir as listas de imagens de referência (por exemplo, Lista 0 e Lista 1) a partir do conjunto de imagens de referência. Por exemplo, a construção das listas de imagens de referência pode incluir uma etapa de inicialização e possivelmente uma etapa de modificação. Derivando o conjunto de imagens de referência da maneira descrita acima, o decodificador de vídeo pode ser capaz de melhorar a eficiência e reduzir a complexidade para inicialização de lista de imagens de referência e modificação da lista de imagens de referência.
[075] Pode haver várias formas pelas quais o decodificador de vídeo pode construir as listas de imagens de referência. As técnicas descritas nesta revelação fornecem um mecanismo pelo qual o decodificador de vídeo pode construir listas de imagens de referência sem precisar reordenar as imagens de referência a serem incluídos na (inicial) lista de imagens de referência. Por exemplo, o decodificador de vídeo pode ser configurado para implementar uma técnica padrão de construção de lista de referência na qual o decodificador de vídeo utiliza os subconjuntos de imagens de referência para construir listas de imagens de referência iniciais. Então, se não é necessária modificação da lista de imagens de referência, as listas de imagens de referência finais podem ser as mesmas que as listas de imagens de referência iniciais, sem necessitar qualquer reordenação adicional das listas de imagens de referência.
[076] Em alguns exemplos, as técnicas descritas nesta revelação podem ser relacionadas a construir as listas de imagens de referência de uma maneira em que não existem entradas não completadas. Por exemplo, as técnicas podem adicionar imagens de referência repetidamente a uma lista de imagens de referência a partir de um ou mais dos subconjuntos de imagens de referência. Por exemplo, após o decodificador de vídeo adicionar imagens de referência a partir de um ou mais dos subconjuntos de imagens de referência para construir uma lista de imagens de referência inicial, o decodificador de vídeo pode determinar se o número de entradas na lista de imagens de referência é menor do que o número de entradas máximo permissível. Se o número de entradas na lista de imagens de referência é menor do que o número máximo de número permissível de entradas, o decodificador de vídeo pode readicionar pelo menos um das imagens de referência a partir de um dos subconjuntos de imagens de referência usados para construir a lista de imagens de referência, na lista de imagens de referência. Esta readição (também referenciada como relistagem) da imagem de referência pode ocorrer em uma localização diferente dentro de listas de imagens de referência, quando comparada à localização onde a imagem de referência foi primeiro adicionado pelo decodificador de vídeo.
[077] Como usada nesta revelação, a relistagem ou readição se refere a adicionar novamente (por exemplo, identificar novamente) uma imagem de referência que foi adicionado previamente (por exemplo, identificado) na lista de imagens de referência inicial. Entretanto, ao readicionar uma imagem de referência, a imagem de referência pode ficar localizado em duas entradas diferentes na lista de imagens de referência inicial. Em outras palavras, ao readicionar uma imagem de referência, pode haver dois valores de índice dentro da lista de imagens de referência inicial que identificam a mesma imagem de referência.
[078] Em alguns exemplos, as técnicas descritas nesta revelação podem ser relacionadas a modificar uma lista de imagens de referência inicial. Por exemplo, o decodificador de vídeo pode construir uma lista de imagens de referência inicial. O decodificador de vídeo pode determinar que é necessária modificação da lista de imagens de referência baseado em elementos de sintaxe sinalizados pelo codificador de vídeo no fluxo de bits codificado. Quando é necessária modificação da lista de imagens de referência, o decodificador de vídeo pode identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos. O decodificador de vídeo pode listar (por exemplo, adicionar) a imagem de referência identificada em uma entrada corrente da lista de imagens de referência inicial para construir uma lista modificada de imagens de referência. O decodificador de vídeo então pode decodificar a imagem atual baseada na lista modificada de imagens de referência.
[079] Em alguns exemplos, as técnicas descritas nesta revelação podem ser relacionadas à saída e remoção de imagens decodificadas de uma memória temporária de imagem decodificada (DPB). As técnicas exemplificativas podem remover uma imagem decodificada da DPB antes de codificar uma imagem atual. Por exemplo, as técnicas exemplificativas podem remover a imagem decodificada se aquele imagem decodificada não estiver identificada no conjunto de imagens de referência da imagem atual e se aquele imagem decodificada não for necessária para saída (ou seja, o mesmo ou não foi destinado à saída ou o mesmo foi destinado à saída mas já saiu).
[080] A FIGURA 1 é um diagrama de blocos que ilustra um sistema de codificação e decodificação de vídeo exemplificativo 10 que pode utilizar técnicas descritas nesta revelação. Em geral, um conjunto de imagens de referência é definido como um conjunto de imagens de referência associado a uma imagem, que consiste de todos as imagens de referência que são anteriores às imagem associado na ordem de decodificação, que podem ser usados para interpredição da imagem associada ou qualquer imagem que segue a imagem associada na ordem de decodificação. Em alguns exemplos, as imagens de referência que são anteriores à imagem associada podem ser imagens de referência até a próxima imagem de restauração instantânea de decodificação (IDR), ou imagem de acesso de enlace interrompido (BLA). Em outras palavras, as imagens de referência no conjunto de imagens de referência podem ser todas anteriores à imagem atual na ordem de decodificação. Também, as imagens de referência no conjunto de imagens de referência podem ser usados para interpredição da imagem atual e/ou interpredição de qualquer imagem que segue a imagem atual na ordem de decodificação até a próxima imagem IDR ou imagem BLA.
[081] Pode haver outras definições alternativas de conjunto de imagens de referência. Por exemplo, o conjunto de imagens de referência pode ser um conjunto de imagens de referência associado a uma imagem, que consiste de todas as imagens de referência, excluindo a própria imagem associada, que podem ser usados para interpredição da imagem associada ou de qualquer imagem que segue a imagem associada na ordem de decodificação, e que têm temporal_id menor ou igual àquele da imagem associada. O temporal_id pode ser um valor de identificação temporal. O valor de identificação temporal pode ser valor hierárquico que indica quais imagens podem ser usados para codificar a imagem atual. Em geral, uma imagem com um valor de temporal_id particular possivelmente pode ser uma imagem de referência para imagens com valores iguais ou maiores de temporal_id, mas não vice-versa. Por exemplo, uma imagem com um valor de temporal_id de 1 possivelmente pode ser uma imagem de referência para imagens com valores de temporal_id de 1, 2, 3,..., mas não para uma imagem com um valor de temporal_id de 0.
[082] O menor valor de temporal_id também pode indicar a taxa de exibição mais baixa. Por exemplo, se um decodificador de vídeo somente decodificou imagens com valores de temporal_id de 0, a taxa de exibição pode ser de 7,5 imagens por segundo. Se um decodificador de vídeo somente decodificou imagens com valores de temporal_id de 0 e 1, a taxa de exibição pode ser de 15 imagens por segundo, e assim por diante.
[083] Como outro exemplo, o conjunto de imagens de referência pode ser um conjunto de imagens de referência associado a uma imagem, que consiste de todas as imagens de referência, excluindo a própria imagem associada, que podem ser usadas para interpredição da imagem associada ou qualquer imagem que segue a imagem associada na ordem de decodificação. Como ainda outro exemplo, o conjunto de imagens de referência pode ser definido como um conjunto de imagens de referência associado a uma imagem, que consiste de todos as imagens de referência, possivelmente incluindo a própria imagem associada, que podem ser usadas para interpredição da imagem associada ou de qualquer imagem que segue a imagem associada na ordem de decodificação. Como outro exemplo, o conjunto de imagens de referência pode ser definido como um conjunto de imagens de referência associado a uma imagem, que consiste de todos as imagens de referência, possivelmente incluindo a própria imagem associada, que podem ser usados para interpredição da imagem associada ou de qualquer imagem que segue a imagem associada na ordem de decodificação, e que têm temporal_id menor ou igual àquele da imagem associada.
[084] Como ainda outro exemplo, nas definições acima de um conjunto de imagens de referência, a expressão “pode ser usado para interpredição” é substituída por “são usados para interpredição.” Embora possam haver definições alternativas do conjunto de imagens de referência, nesta revelação, os exemplos são descritos com a definição do conjunto de imagens de referência sendo um conjunto de imagens de referência associado a uma imagem, que consiste de todos as imagens de referência que são anteriores à imagem associada na ordem de decodificação, que podem ser usados para interpredição da imagem associada ou qualquer imagem que segue a imagem associada na ordem de decodificação.
[085] Por exemplo, alguns das imagens de referência no conjunto de imagens de referência são imagens de referência que podem potencialmente ser usadas para interpredição de um bloco da imagem atual, e não de imagens que seguem a imagem atual na ordem de decodificação. Alguns das imagens de referência no conjunto de imagens de referência são imagens de referência que podem potencialmente ser usadas para interpredição de um bloco da imagem atual, e blocos em um ou mais imagens que seguem a imagem atual na ordem de decodificação. Alguns das imagens de referência no conjunto de imagens de referência são imagens de referência que podem potencialmente ser usadas para interpredição de blocos em um ou mais imagens que seguem a imagem atual na ordem de decodificação, e não podem ser usados para interpredição de um bloco na imagem atual.
[086] Como usadas nesta revelação, imagens de referência que podem potencialmente ser usadas para interpredição se referem a imagens de referência que podem ser usados para interpredição, mas não têm necessariamente que ser usados para interpredição. Por exemplo, o conjunto de imagens de referência pode identificar imagens de referência que podem potencialmente ser usadas para interpredição. Entretanto, isto não significa que todas as imagens de referência identificadas têm que ser usadas para interpredição. Em vez disso, uma ou mais destas imagens de referência identificadas podem ser usadas para interpredição, mas todas não têm necessariamente que ser usadas para interpredição.
[087] Como mostrado na FIGURA 1, o sistema 10 inclui um dispositivo fonte 12 que gera vídeo codificado para decodificar pelo dispositivo de destinação 14. O dispositivo fonte 12 e o dispositivo de destinação 14 podem cada um ser um exemplo de um dispositivo de codificação de vídeo. O dispositivo fonte 12 pode transmitir o vídeo codificado para o dispositivo de destinação 14 através do canal de comunicação 16 ou pode armazenar o vídeo codificado em um meio de armazenamento 17 ou um servidor de arquivos 19, de modo que o vídeo codificado possa ser acessado pelo dispositivo de destinação 14 quando desejado.
[088] O dispositivo fonte 12 e o dispositivo de destinação 14 podem compreender qualquer de uma ampla gama de dispositivos, incluindo um aparelho telefônico sem fio tal como os chamados telefones “inteligentes”, os chamados painéis “inteligentes”, ou outros destes dispositivos sem fio equipados para comunicação sem fio. Exemplos adicionais de dispositivo fonte 12 e de dispositivo de destinação 14 incluem, mas não são limitados a, uma televisão digital, um dispositivo em sistema de difusão digital direta, um dispositivo em sistema de difusão sem fio, um auxiliar pessoal digital (PDA), um computador de colo de mesa, um computador, um computador tablet, um leitor de livros digitais, uma câmera digital, um dispositivo de gravação digital, um reprodutor de mídia digital, um dispositivo de jogos de vídeo, uma console de jogos de vídeo, um telefone de rádio celular, um telefone de rádio por satélite, um dispositivo de teleconferência com vídeo, e um dispositivo de difusão contínua de vídeo, um dispositivo de comunicação sem fio, ou afins.
[089] Como indicado acima, em muitos casos, o dispositivo fonte 12 e/ou o dispositivo de destinação 14 podem ser equipados para comunicação sem fio. Consequentemente, o canal de comunicação 16 pode compreender um canal sem fio, um canal por fio, ou uma combinação de canais sem fio e por fio capazes de transmissão de dados de vídeo codificado. De maneira similar, o servidor de arquivos 19 pode ser acessado pelo dispositivo de destinação 14 através de qualquer padrão de conexão de dados, incluindo uma conexão de Internet. Este pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão por fio (por exemplo, DSL, modem por cabo, etc.), ou uma combinação de ambos que seja capaz de acessar dados de vídeo codificado armazenados em um servidor de arquivos.
[090] As técnicas desta revelação, entretanto, podem ser aplicadas a codificação de vídeo em suporte a qualquer de uma variedade de aplicações multimídia, tais como difusões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de difusão contínua de vídeo, por exemplo, através da Internet, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outros pedidos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma via ou duas vias para suportar aplicações tais como difusão contínua de vídeo, reprodução de vídeo, difusão de vídeo, e/ou telefonia com vídeo.
[091] Em o exemplo da FIGURA 1, o dispositivo fonte 12 inclui uma fonte de vídeo 18, codificador de vídeo 20, um modulador/demodulador (MODEM) 22 e uma interface de saída 24. no dispositivo fonte 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo contendo um vídeo capturado previamente, uma interface de alimentação de vídeo para receber vídeo a partir de um vídeo fornecedor de conteúdo, e/ou um sistema gráfico de computador para gerar dados de gráficos de computador como a fonte vídeo, ou uma combinação desta fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destinação 14 podem formar os chamados câmera-fones ou vídeo-fones. Entretanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou por fio.
[092] O vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelo codificador de vídeo 20. A informação de vídeo codificado pode ser modulada pelo modem 22 de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de destinação 14 através da interface de saída 24. O modem 22 pode incluir vários misturadores, filtros, amplificadores ou outros componentes projetados para modulação de sinal. A interface de saída 24 pode incluir circuitos projetados para transmissão de dados, incluindo amplificadores, filtros, e uma ou mais antenas.
[093] O vídeo capturado, pré-capturado, ou gerado por computador que é codificado pelo codificador de vídeo 20 também pode ser armazenado em um meio de armazenamento 17 ou um servidor de arquivos 19 para consumo posterior. O meio de armazenamento 17 pode incluir discos Blu-ray, DVDs, CD- ROMs, memória flash, ou qualquer outra mídia de armazenamento digital adequada para armazenar vídeo codificado. O vídeo codificado armazenado no meio de armazenamento 17 então pode ser acessado pelo dispositivo de destinação 14 para decodificação e reprodução.
[094] O servidor de arquivos 19 pode ser qualquer tipo de servidor capaz de armazenar vídeo codificado e transmitir aquele vídeo codificado para o dispositivo de destinação 14. Servidores de arquivo exemplificativos incluem um servidor de web (por exemplo, para um sítio de web), um servidor FTP, dispositivos de armazenamento conectados em rede (NAS), um controlador de disco local, ou qualquer outro tipo de dispositivo capaz de armazenar dados de vídeo codificados e transmitir os mesmos para um o dispositivo de destinação. A transmissão de dados de vídeo codificados a partir do servidor de arquivos 19 pode ser uma transmissão contínua, uma transmissão de descarga, ou uma combinação de ambas. O servidor de arquivos 19 pode ser acessado pelo dispositivo de destinação 14 através de qualquer padrão de conexão de dados, incluindo uma conexão de Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão por fio (por exemplo, DSL, modem por cabo, Ethernet, USB, etc.), ou uma combinação de ambas que seja capaz de acessar dados de vídeo codificados armazenados em um servidor de arquivos.
[095] O dispositivo de destinação 14, no exemplo da FIGURA 1, inclui uma interface de entrada 26, um modem 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. A interface de entrada 26 do dispositivo de destinação 14 recebe informação sobre o canal 16, como um exemplo, ou a partir do meio de armazenamento 17 ou do servidor de arquivos 17, como exemplos alternativos, e o modem 28 demodula a informação para produzir um fluxo de bits demodulado para o decodificador de vídeo 30. O fluxo de bits demodulado pode incluir uma variedade de informação de sintaxe gerada pelo codificador de vídeo 20 para usar pelo decodificador de vídeo 30 na decodificação de dados de vídeo. Esta sintaxe também pode ser incluída com os dados de vídeo codificados armazenados em um meio de armazenamento 17 ou em um servidor de arquivos 19. Como um exemplo, a sintaxe pode ser embutida nos dados de vídeo codificados, embora aspectos desta revelação não devam ser deve ser considerados limitados a esta exigência. A informação de sintaxe definida pelo codificador de vídeo 20, a qual também é usada pelo decodificador de vídeo 30, pode incluir elementos de sintaxe que descrevem características e/ou processamento de blocos de vídeo, tais como unidades de árvore de codificação (CTUs), blocos de árvore de codificação (CTBs), unidades de predição (PUs), unidades de codificação (CUs) ou outras unidades de vídeo codificado, por exemplo, fatias de vídeo, imagens de vídeo, e sequências de vídeo ou grupos de imagens (GOPs). Cada um de codificador de vídeo 20 e decodificador de vídeo 30 pode fazer parte de um respectivo codificador-decodificador (CODEC) que seja capaz de codificar ou decodificar dados de vídeo.
[096] O dispositivo de exibição 32 pode ser integrado com, ou externo a, o dispositivo de destinação 14. Em alguns exemplos, o dispositivo de destinação 14 pode incluir um dispositivo de exibição integrado e também ser configurado para interfacear com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destinação 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário, e pode compreender qualquer de uma variedade de dispositivos de exibição tais como uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz orgânico (OLED), ou outro tipo de dispositivo de exibição.
[097] Em o exemplo da FIGURA 1, o canal de comunicação 16 pode compreender qualquer meio de comunicação sem fio ou por fio, tal como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão físicas, ou qualquer combinação de mídia sem fio e por fio. O canal de comunicação 16 pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área ampla, ou uma rede global tal como a Internet. O canal de comunicação 16 geralmente representa qualquer meio de comunicação adequado, ou conjunto de mídias de comunicação diferentes, para transmissão de dados de vídeo do dispositivo fonte 12 para o dispositivo de destinação 14, incluindo qualquer combinação de mídia por fio ou sem fio adequada. O canal de comunicação 16 pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo fonte 12 para o dispositivo de destinação 14.
[098] O codificador de vídeo 20 e decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, tal como ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo suas extensões de Codificação de Vídeo Escalável (SVC) e Codificação de Vídeo Multivisão (MVC). Adicionalmente, existe um novo padrão de codificação de vídeo, a saber, padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento pela Junta de Colaboração de Time em Codificação de vídeo (JCT-VC) do ITU-T Grupo de Especialistas em Codificação de vídeo (VCEG) e ISO/IEC Grupo de Especialistas em Imagem em Movimento (MPEG). Um recente Esboço de Trabalho (WD) do HEVC, e referenciado daqui em diante como HEVC WD8, está disponível, a partir de 20 de julho de 2012, a partir de http://phenix.int- evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.
[099] As técnicas desta revelação, entretanto, não são limitadas a qualquer padrão de codificação particular. Apenas para propósitos de ilustração, as técnicas são descritas de acordo com o padrão HEVC.
[0100] Embora não mostrado na FIGURA 1, em alguns aspectos, o codificador de vídeo 20 e decodificador de vídeo 30 podem cada um ser integrado a um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para manipular codificação tanto de áudio como de vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0101] O codificador de vídeo 20 e decodificador de vídeo 30 podem cada um ser implementado como qualquer de uma variedade de circuitos de codificador adequados, tais como um ou mais processadores incluindo microprocessadores, processadores de sinal digital (DSPs), circuito integrados de aplicação específica (ASICs), conjunto de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar as instruções para o software em um meio adequado, não transitório legível por computador e executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação.
[0102] Cada um de codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo. Em alguns casos, o codificador de vídeo 20 e decodificador de vídeo 30 podem ser referenciados em comum como um codificador de vídeo que codifica informação (por exemplo, imagens e elementos de sintaxe). A codificação de informação pode se referir à codificação quando o codificador de vídeo corresponde a codificador de vídeo 20. A codificação de informação pode se referir à decodificação quando o codificador de vídeo corresponde a decodificador de vídeo 30.
[0103] Além disso, as técnicas descritas nesta revelação podem se referir à informação de sinalização de codificador de vídeo 20. Quando o codificador de vídeo 20 sinaliza informação, as técnicas desta revelação geralmente se referem a qualquer forma pela qual o codificador de vídeo 20 fornece a informação. Por exemplo, quando o codificador de vídeo 20 sinaliza elementos de sintaxe para o decodificador de vídeo 30, isto pode significar que o codificador de vídeo 20 transmitiu os elementos de sintaxe para o decodificador de vídeo 30 através da interface de saída 24 e do canal de comunicação 16, ou que o codificador de vídeo 20 armazenou os elementos de sintaxe através de interface de saída 24 no meio de armazenamento 17 e/ou no servidor de arquivos 19 para eventual recepção pelo decodificador de vídeo 30. Desta forma, a sinalização do codificador de vídeo 20 para o decodificador de vídeo 30 não deve ser interpretada como requerendo transmissão do codificador de vídeo 20 que é imediatamente recebida pelo decodificador de vídeo 30, embora isto seja possível. Em vez disso, a sinalização do codificador de vídeo 20 para o decodificador de vídeo 30 deve ser interpretada como qualquer técnica com a qual o codificador de vídeo 20 fornece informação para eventual recepção pelo decodificador de vídeo 30, ou diretamente ou através de um armazenamento intermediário (por exemplo, em meio de armazenamento 17 e/ou no servidor de arquivos 19).
[0104] O codificador de vídeo 20 e decodificador de vídeo 30 podem ser configurados para implementar as técnicas exemplificativas descritas nesta revelação para derivar um conjunto de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode invocar o processo para derivar o conjunto de imagens de referência uma vez por imagem. O decodificador de vídeo 30 pode invocar o processo para derivar o conjunto de imagens de referência após decodificar um cabeçalho de fatia, mas antes da decodificação de qualquer unidade de codificação antes anterior do processo de decodificação para a construção da lista de imagens de referência da fatia.
[0105] Como descrito acima, o conjunto de imagens de referência é uma descrição absoluta das imagens de referência usados no processo de decodificação da imagem atual e imagens codificadas futuras na ordem de decodificação até a próxima imagem de restauração instantânea de decodificação (IDR), ou imagem de acesso de enlace interrompido (BLA). Em exemplos descritos nesta revelação, o codificador de vídeo 20 pode sinalizar explicitamente valores a partir dos quais o decodificador de vídeo 30 pode determinar identificadores para as imagens de referência que pertencem ao conjunto de imagens de referência. A sinalização do conjunto de imagens de referência é explicita no sentido de que todos as imagens de referência incluídos no conjunto de imagens de referência são listada explicitamente, exceto por certas imagens, por exemplo, imagens IDR, nenhum elementos de sintaxe de conjunto de imagens de referência é incluído no cabeçalho da fatia e o conjunto de imagens de referência é derivado para ficar vazio.
[0106] Pode haver várias formas pelas quais o codificador de vídeo 20 pode sinalizar elementos de sintaxe em um fluxo de bits codificado que o decodificador de vídeo 30 pode utilizar para derivar o conjunto de imagens de referência. Por exemplo, o codificador de vídeo 20 pode sinalizar os elementos de sintaxe no conjunto de parâmetros de imagem (PPS), conjunto de parâmetros de sequência (SPS), o cabeçalho de imagem (se houver algum), o cabeçalho da fatia, ou qualquer combinação dos mesmos. Apenas para propósitos de ilustração, o codificador de vídeo 20 pode sinalizar os elementos de sintaxe usando o SPS, o PPS, e o cabeçalho da fatia, como descrito em mais detalhe.
[0107] Para derivar o conjunto de imagens de referência, o decodificador de vídeo 30 pode implementar um processo de decodificação para determinar os identificadores para imagens que pertencem ao conjunto de imagens de referência. O decodificador de vídeo 30 então pode construir uma pluralidade de subconjuntos de imagens de referência, onde cada um dos subconjuntos identifica zero ou mais das imagens de referência que pertencem ao conjunto de imagens de referência. O decodificador de vídeo 30 pode derivar o conjunto de imagens de referência a partir dos subconjuntos de imagens de referência construídos. Por exemplo, o decodificador de vídeo 30 pode listar a pluralidade de subconjuntos de imagens de referência em uma ordenação particular para derivar o conjunto de imagens de referência.
[0108] Pode haver várias formas pelas quais o decodificador de vídeo 30 pode determinar os identificadores para as imagens que pertencem ao conjunto de imagens de referência. Em geral, o codificador de vídeo 20 pode sinalizar valores a partir dos quais o decodificador de vídeo 30 pode determinar os identificadores para as imagens, incluindo as imagens que pertencem ao conjunto de imagens de referência. Os identificadores das imagens podem ser o PicOrderCnt (ou seja, valores do Contador de Ordem de imagem (POC)). Como descrito acima, o valor de POC pode indicar a ordem de exibição ou de saída de uma imagem, onde imagens com menores valores de POC são exibidas anteriormente a imagens com maiores valores de POC. O valor de POC de uma dada imagem pode ser relativo à imagem de restauração instantânea de decodificação (IDR) prévio. Por exemplo, o PicOrderCnt (ou seja, valor de POC) para uma imagem IDR pode ser 0, o valor de POC para a imagem após a imagem IDR em ordem de exibição ou de saída pode ser 1, o valor de POC para a imagem após a imagem com valor de POC 1 em ordem de exibição ou de saída pode ser 2, e assim por diante.
[0109] De acordo com as técnicas descritas nesta revelação, quando a imagem atual não é uma imagem IDR, o conteúdo a seguir pode se aplicar para derivar o valor de POC da imagem atual. O conteúdo a seguir pretende auxiliar o entendimento, e não deve ser deve ser considerado como limitante.
[0110] Por exemplo, deve ser considerado que a variável de lista listD que inclui como elementos os valores de PicOrderCnt (valores de POC) associados com a lista de imagens incluindo todos os que seguem: (1) a primeira imagem na lista é a imagem IDR anterior na ordem de decodificação, e (2) todas as outras imagens seguem na ordem de decodificação após a primeira imagem na lista e ou precedem a imagem atual na ordem de decodificação ou são a imagem atual. Neste exemplo, a imagem atual é incluído na listD antes de invocar o processo de derivação para o conjunto de imagens de referência. Também, deve ser considerado a variável de lista listO a qual inclui os elementos de listD classificados em ordem ascendente de valores de POC. Neste exemplo, a listO não pode conter um valor de POC que tenha um valor igual ao valor de POC de outra imagem.
[0111] Em alguns exemplos, os valores de POC podem ser restritos ao intervalo de -2pocLen-1 a 2pocLen-1 — 1, inclusive. Neste exemplo, pocLen pode ser igual a long_term_ref_pic_id_len_delta + long_term_ref_pic_id_delta_len_minus4 + 4. O long_term_ref_pic_id_len_delta, e o long_term_ref_pic_id_delta_len_minus4 podem ser elementos de sintaxe que o decodificador de vídeo 30 recebe no fluxo de bits codificado como parte da sintaxe do conjunto de parâmetros de imagem, como descrito em mais detalhe abaixo. Como outro exemplo, os valores de POC podem ser restritos ao intervalo de -231 a 231 - 1, inclusive.
[0112] Como um exemplo, o decodificador de vídeo 30 pode receber no fluxo de bits codificado (ou seja, o fluxo de bits sinalizado pelo codificador de vídeo 20), o elemento de sintaxe pic_order_cnt_lsb. O elemento de sintaxe pic_order_cnt_lsb pode especificar o módulo Contador de Ordem de imagem MaxPicOrderCntLsb para a imagem codificada. O comprimento do elemento de sintaxe pic_order_cnt_lsb pode ser log2_max_pic_order_cnt_lsb_minus4 + 4 bits. O valor do pic_order_cnt_lsb pode ficar no intervalo de 0 a MaxPicOrderCntLsb - 1, inclusive. O decodificador de vídeo 30 pode receber o elemento de sintaxe pic_order_cnt_lsb na sintaxe do cabeçalho da fatia para a imagem atual a ser decodificado.
[0113] O decodificador de vídeo 30 também pode receber o elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4 no fluxo de bits codificado sinalizado pelo codificador de vídeo 20. O decodificador de vídeo 30 pode receber o elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4 no conjunto de parâmetros de sequência. O valor de log2_max_pic_order_cnt_lsb_minu4 pode ficar no intervalo de 0 a 12, inclusive. O elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4 pode especificar o valor da variável MaxPicOrderCntLsb que o decodificador de vídeo 30 usa no processo de decodificação para determinar os valores de POC. Por exemplo: MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4 + 4).
[0114] A partir destes elementos de sintaxe recebidos, o decodificador de vídeo 30 pode determinar o valor de POC da imagem atual como segue. Por exemplo, decodificador de vídeo 30 pode determinar o PicOrderCntMsb para a imagem atual. O valor de POC para a imagem atual pode ser o PicOrderCntMsb determinado para a imagem atual mais o pic_order_cnt_lsb recebido para a imagem atual.
[0115] A seguir, a função PicOrderCnt(picX) é igual ao valor de POC para a imagem X. A função DiffPicOrderCnt(picA, picB) é igual a PicOrderCnt(picA) menos PicOrderCnt(picB). Em alguns exemplos, o fluxo de bits codificado pode não incluir dados que resultam nos valores de DiffPicOrderCnt(picA, picB) usados no processo de decodificação que excedem o intervalo de -215 a 215 - 1, inclusive. Além disso, deixa X ser a imagem atual e Y e Z serem os dois outros imagens na mesma sequência, onde Y e Z são considerados como estando na mesma direção da ordem de saída de X quando tanto DiffPicOrderCnt(X, Y) como DiffPicOrderCnt(X, Z) são positivos ou ambos são negativos. Também, em alguns exemplos, o codificador de vídeo 20 pode designar PicOrderCnt proporcional ao tempo de amostragem da imagem correspondente relativo ao tempo de amostragem da imagem IDR anterior.
[0116] Como parte do processo de determinar o valor de POC para a imagem atual, o decodificador de vídeo 30 pode determinar as variáveis prevPicOrderCntMsb e prevPicOrderCntLsb. Por exemplo, se a imagem atual é uma imagem IDR, o decodificador de vídeo 30 pode determinar prevPicOrderCntMsb igual a 0, e determinar prevPicOrderCntLsb igual a 0. Caso contrário (ou seja, onde a imagem atual não é uma imagem IDR), o decodificador de vídeo 30 pode determinar prevPicOrderCntMsb igual a PicOrderCntMsb da imagem de referência anterior na ordem de decodificação com temporal_id menor ou igual do que a imagem atual, e determinar prevPicOrderCntLsb igual ao valor de pic_order_cnt_lsb da imagem de referência anterior na ordem de decodificação com temporal_id menor ou igual do que a imagem atual.
[0117] Com estes valores de variável e os valores dos elementos de sintaxe (por exemplo, os valores de prevPicOrderCntMsb, prevPicOrderCntLsb, pic_order_cnt_lsb, e MaxPicOrderCntLsb), o decodificador de vídeo 30 pode determinar o valor de PicOrderCntMsb baseado nas etapas enumeradas no pseudocódigo a seguir. Deve ser entendido que o decodificador de vídeo 30 pode implementar as etapas enumeradas no pseudocódigo a seguir para determinar o PicOrderCntMsb para cada imagem atual, o qual é usado para derivar o valor de POC da imagem atual. Se(( pic_order_cnt_lsb < prevPicOrderCntLsb ) && (( prevPicOrderCntLsb - pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb/2 ))) PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb Senão se(( pic_order_cnt_lsb > prevPicOrderCntLsb ) && (( pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb/2 ))) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb Senão PicOrderCntMsb = prevPicOrderCntMsb
[0118] Após determinar o PicOrderCntMsb para a imagem atual, o decodificador de vídeo 30 pode determinar o valor de POC para a imagem atual baseado no PicOrderCntMsb para a imagem atual e o pic_order_cnt_lsb para a imagem atual. O decodificador de vídeo 30 pode determinar o valor de POC para a imagem atual como segue: PicOrderCnt = PicOrderCntMsb + pic_order_cnt_lsb.
[0119] Após a decodificação de uma imagem, o decodificador de vídeo 30 pode armazenar o valor de PicOrderCntMsb, o valor de pic_order_cnt_lsb, e o valor de POC para aquela imagem, incluindo cada um das imagens de referência que pertencem ao conjunto de imagens de referência, em uma memória temporária de imagem decodificada (DPB) do decodificador de vídeo 30. Desta forma, cada imagem na DPB é associada com um valor de POC, um valor de PicOrderCntMsb, e um valor de pic_order_cnt_lsb.
[0120] Os métodos para determinar os valores de POC das imagens de referência incluídos no conjunto de imagens de referência de uma imagem atual são descritos em mais detalhe abaixo. A partir dos valores determinados de POC, o decodificador de vídeo 30 pode implementar o processo de derivação para o conjunto de imagens de referência. Entretanto, anterior a descrever a forma pelas qual o decodificador de vídeo 30 implementa o processo de derivação para o conjunto de imagens de referência, a seguir são fornecidas tabelas de elementos de sintaxe que o decodificador de vídeo 30 pode receber no fluxo de bits codificado sinalizado pelo codificador de vídeo 20. Por exemplo, o codificador de vídeo 20 pode sinalizar os elementos de sintaxe nas tabelas a seguir no fluxo de bits codificado que o decodificador de vídeo 30 recebe. Alguns destes elementos de sintaxe foram descritos acima. A partir dos elementos de sintaxe, o decodificador de vídeo 30 pode determinar os valores de POC das imagens de referência incluídos no conjunto de imagens de referência e derivar adicionalmente o conjunto de imagens de referência.
[0121] Por exemplo, nas técnicas descritas nesta revelação, as estruturas de sintaxe que seguem são modificadas relativas aos padrões de codificação de vídeo prévios: sintaxe da carga útil de sequência de bytes bruta (RBSP) do conjunto de parâmetros de sequência (SPS), seq_paramater_set_rbsq(), sintaxe RBSP do conjunto de parâmetros de imagem (PPS), pic_parameter_set_rbsp(), sintaxe de cabeçalho de fatia, slice_header(), e sintaxe de modificação da lista de imagens de referência, ref_pic_list_change(). A modificação da lista de imagens de referência é descrita em mais detalhe em seguida à descrição de derivação do conjunto de imagens de referência, e inicialização de uma ou mais listas de imagens de referência.
[0122] Também, de acordo com as técnicas descritas nesta revelação, as estruturas de sintaxe a seguir são adicionadas ao fluxo de bits codificado: sintaxe do conjunto de imagens de referência de curto prazo, short_term_ref_pic_set(), e sintaxe do conjunto de imagens de referência de longo prazo, long_term_ref_pic_set(). O decodificador de vídeo 30 pode utilizar a sintaxe do conjunto de imagens de referência de curto prazo e a sintaxe do conjunto de imagens de referência de longo prazo para propósitos de construir subconjuntos de imagens de referência, a partir dos quais o decodificador de vídeo 30 deriva o conjunto de imagens de referência.
[0123] Por exemplo, para o decodificador de vídeo 30 determinar os valores de POC para as imagens de referência que pertencem ao conjunto de imagens de referência, o codificador de vídeo 20 pode sinalizar a informação de identificação da imagem de referência, que o decodificador de vídeo 30 usa para determinar os valores de POC, no conjunto de parâmetros de imagem e no índice para a lista pode ser referenciado no cabeçalho da fatia. Entretanto, este é uma forma exemplificativa pela qual o codificador de vídeo 20 pode sinalizar esta informação de identificação da imagem de referência.
[0124] Em um exemplo alternativo, o codificador de vídeo 20 pode sinalizar informação da imagem de referência no conjunto de parâmetros de sequência e o índice para a lista pode ser referenciado no cabeçalho da fatia, o que pode reduzir a sobrecarga de sinalização. Em outro exemplo alternativo, o codificador de vídeo pode sinalizar a informação da imagem de referência em um novo tipo de conjunto de parâmetros (por exemplo, conjunto de parâmetros do conjunto de imagens de referência (RPSPS)), e o id de RPSPS também como o índice para a lista de identificação da informação da imagem de referência podem ser ambos referenciados no cabeçalho da fatia. Isto pode reduzir a sobrecarga de sinalização também uma vez que não aumenta a necessidade do número de conjunto de parâmetros de imagens ou conjunto de parâmetros de sequências. Em outros exemplos, o codificador de vídeo 20 pode utilizar qualquer combinação destas técnicas exemplificativas para sinalizar a identificação da informação da imagem de referência. Tabela 1. Sintaxe do conjunto de parâmetros de sequência RBSP
Figure img0001
Figure img0002
[0125] pic_width_in_luma_samples pode especificar a largura de cada imagem decodificada em amostras de luma. O valor de pic_width_in_luma_samples pode ficar no intervalo de 0 a 216-1, inclusive.
[0126] pic_height_in_luma_samples pode especificar a altura de cada imagem decodificada em amostras de luma. O valor de pic_height_in_luma_samples pode ficar no intervalo de 0 a 216-1, inclusive.
[0127] Como indicado na tabela 1, o decodificador de vídeo 30 pode receber no conjunto de parâmetros de sequência (SPS), o elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4. Como descrito acima, o valor de log2_max_pic_order_cnt_lsb_minu4 pode especificar o valor da variável MaxPicOrderCntLsb que o decodificador de vídeo 30 usa no processo de decodificação para determinar os valores de POC, onde MaxPicOrderCntLsb = 2(log2_max_pic_order_cnt_lsb_minus4 + 4). Tabela 2. Sintaxe do conjunto de parâmetros de imagem RBSP
Figure img0003
Figure img0004
[0128] num_short_term_ref_pic_sets_pps especifica o número de estruturas de sintaxe short_term_ref_pic_set() incluídas no conjunto de parâmetros de imagem. O valor de num_short_term_ref_pic_sets_pps deve estar no intervalo de 0 a 32, inclusive.
[0129] long_term_ref_pics_present_flag igual a 0 especifica que nenhuma imagem de referência de longo prazo é usado para interpredição de qualquer imagem codificada que se refere ao conjunto de parâmetros de imagem e os elementos de sintaxe long_term_ref_pic_id_delta_len_minus4, long_term_ref_pic_id_len_delta e num_long_term_ref_pics_pps não estão presentes. long_term_ref_pics_present_flag igual a 1 especifica que as imagens de referência de longo prazo podem ser usadas para interpredição de um ou mais imagem codificada que se refere ao conjunto de parâmetros de imagem e os elementos de sintaxe long_term_ref_pic_id_delta_len_minus4, long_term_ref_pic_id_len_delta e num_long_term_ref_pics_pps estão presentes.
[0130] long_term_ref_pic_id_delta_len_minus4 mais 4 especifica o comprimento em bits dos elementos de sintaxe long_term_ref_pic_id_delta_add_foll[i]. O valor de long_term_ref_pic_id_delta_len_minus4 deve ficar no intervalo de 0 a 12, inclusive.
[0131] long_term_ref_pic_id_len_delta mais long_term_ref_pic_id_delta_len_minus4 mais 4 especifica o comprimento em bits do elemento de sintaxe long_term_ref_pic_id_pps[i]. O valor de long_term_ref_pic_id_len_delta pode ficar no intervalo de 0 a 28 - long_term_ref_pic_id_delta_len_minus4, inclusive. O valor de long_term_ref_pic_id_len_delta + long_term_ref_pic_id_delta_len_minus4 + 4 em todos os conjuntos de parâmetros de imagens que se referem a um conjunto de parâmetros de sequência particular pode ser idêntico.
[0132] num_long_term_ref_pics_pps especifica o número de identificações de imagens de referência de longo prazo incluídas no conjunto de parâmetros de imagem. O valor de num_long_term_ref_pics_pps pode ficar no intervalo de 0 a 32, inclusive.
[0133] long_term_ref_pic_id_pps[i] especifica i-ésima informação de identificação da imagem de referência de longo prazo incluída no conjunto de parâmetros de imagem. O número de bits usados para representar long_term_ref_pic_id_pps[i] pode ser igual à long_term_ref_pic_id_len_delta + long_term_pic_id_len_minus4 + 4. Tabela 3. Sintaxe de conjunto de imagens de referência de curto prazo
Figure img0005
Figure img0006
[0134] A sintaxe do conjunto de imagens de referência de curto prazo pode ser para imagens de curto prazo. uma imagem de curto prazo pode ser definido como uma imagem de referência para o qual a informação de identificação é incluída na estrutura de sintaxe short_term_ref_pic_set() para uma imagem codificada, ou incluído no cabeçalho da(s) fatia(s) ou incluído no conjunto de parâmetros de imagem referenciado e referência pelo elemento de sintaxe short_term_ref_pic_set_idx em o(s) cabeçalho(s) de fatia. Os elementos de sintaxe do cabeçalho de fatia são fornecidos na tabela 4 abaixo.
[0135] num_short_term_curr0 especifica o número de imagens de referência de curto prazo em RefPicSetStCurr0 quando a estrutura de sintaxe short_term_ref_pic_set() é usada para derivação do conjunto de imagens de referência de uma imagem codificada, como descrita abaixo. O valor de num_short_term_curr0 pode ficar no intervalo de 0 a max_num_ref_frames, inclusive.
[0136] num_short_term_curr1 especifica o número de imagens de referência de curto prazo em RefPicSetStCurr1 quando a estrutura de sintaxe short_term_ref_pic_set()é usada para derivação do conjunto de imagens de referência de uma imagem codificada, como descrita abaixo. O valor de num_short_term_curr1 pode ficar no intervalo de 0 a max_num_ref_frames - num_short_term_curr0, inclusive.
[0137] num_short_term_foll0 especifica o número de imagens de referência de curto prazo em RefPicSetStFoll0 quando a estrutura de sintaxe short_term_ref_pic_set() é usada para derivação do conjunto de imagens de referência de uma imagem codificada, como descrita abaixo. O valor de num_short_term_foll0 pode ficar no intervalo de 0 a max_num_ref_frames - num_short_term_curr0 - num_short_term_curr1, inclusive.
[0138] num_short_term_foll1 especifica o número de imagens de referência de curto prazo em RefPicSetStFoll1 quando a estrutura de sintaxe short_term_ref_pic_set() é usada para derivação do conjunto de imagens de referência de uma imagem codificada, como descrita abaixo. O valor de num_short_term_foll1 deve ficar no intervalo de 0 a max_num_ref_frames - num_short_term_curr0 - num_short_term_curr1 - num_short_term_foll0, inclusive.
[0139] short_term_ref_pic_id_delta_minus1[i] especifica a informação de identificação do i-ésima imagem de referência de curto prazo incluído na estrutura de sintaxe short_term_ref_pic_set( ). Tabela 4. Sintaxe de cabeçalho de fatia
Figure img0007
Figure img0008
Figure img0009
[0140] no_output_of_prior_pics_flag especifica como as imagens decodificadas previamente na memória temporária de imagem decodificada são tratadas após a decodificação de uma imagem IDR. Quando a imagem IDR é a primeira imagem IDR no fluxo de bits, o valor de no_output_of_prior_pics_flag pode não ter nenhum efeito no processo de decodificação. Quando a imagem IDR não é a primeira imagem IDR no fluxo de bits e o valor de pic_width_in_luma_samples ou pic_height_in_luma_samples ou max_dec_frame_buffering derivado do conjunto de parâmetros da sequência ativa pode ser diferente do valor de pic_width_in_luma_samples ou pic_height_in_luma_samples ou max_dec_frame_buffering derivado do conjunto de parâmetros de sequência ativo para a imagem precedente, no_output_of_prior_pics_flag igual a 1 pode, mas não necessariamente, é inferido pelo decodificador, independentemente do valor real de no_output_of_prior_pics_flag.
[0141] short_term_ref_pic_set_pps_flag igual a 1 especifica que a informação de identificação do conjunto de imagens de referência de curto prazo incluídos no conjunto de imagens de referência para a imagem atual está presente no conjunto de parâmetros de imagem referenciado. short_term_ref_pic_set_pps_flag igual a 0 especifica que a informação de identificação do conjunto de imagens de referência de curto prazo incluídos no conjunto de imagens de referência para a imagem atual não está presente no conjunto de parâmetros de imagem referenciado.
[0142] short_term_ref_pic_set_idx especifica o índice da estrutura de sintaxe short_term_ref_pic_set(), incluído no conjunto de parâmetros de imagem referenciado, que inclui a informação de identificação do conjunto de imagens de referência de curto prazo no conjunto de imagens de referência para a imagem atual.
[0143] A variável NumShortTermCurr0 e NumShortTermCurr1 são especificadas como: NumShortTermCurr0 = num_short_term_curr0 NumShortTermCurr1 = num_short_term_curr1
[0144] Onde num_short_term_curr0 e num_short_term_curr0 são os elementos de sintaxe dos mesmos nomes, respectivamente, na estrutura de sintaxe short_term_ref_pic_set(), ou presente no conjunto de parâmetros de imagem referenciado e referenciado por short_term_ref_pic_set_idx, ou diretamente presente no cabeçalho da fatia.
[0145] num_ref_idx_l0_active_minus1 especifica o índice de referência máximo para a lista de imagens de referência 0 que deve ser usada para decodificar a fatia.
[0146] Quando a fatia corrente é uma fatia P ou B e num_ref_idx_l0_active_minus1 não está presente, num_ref_idx_l0_active_minus1 pode ser inferido para ser igual a num_ref_idx_l0_padrão_active_minus1.
[0147] O valor de num_ref_idx_l0_active_minus1 pode ficar no intervalo de 0 a 15, inclusive.
[0148] num_ref_idx_l1_active_minus1 especifica o índice de referência máximo para a lista de imagens de referência 1 que deve ser usada para decodificar a fatia.
[0149] Quando a fatia corrente é uma fatia P ou B e num_ref_idx_l1_active_minus1 não está presente, num_ref_idx_l1_active_minus1 pode ser inferido para ser igual a num_ref_idx_l1_padrão_active_minus1.
[0150] O valor de num_ref_idx_l1_active_minus1 pode ficar no intervalo de 0 a 15, inclusive. Tabela 5. Sintaxe do conjunto de imagens de referência de longo prazo
Figure img0010
[0151] A sintaxe do conjunto de imagens de referência de longo prazo pode ser para imagens de longo prazo. uma imagem de longo prazo pode ser definida como uma imagem de referência para o qual a informação de identificação é incluída na estrutura de sintaxe long_term_ref_pic_set()para uma imagem codificada.
[0152] num_long_term_pps_curr especifica o número de todos as imagens de referência de longo prazo em que a informação de identificação é incluída no conjunto de parâmetros de imagem referenciado e que podem ser usados para interpredição da imagem atual. Se num_long_term_pps_curr não está presente, o valor pode ser derivado como igual a 0. O valor de num_long_term_pps_curr pode ficar no intervalo de 0 a max_num_ref_frames, inclusive.
[0153] num_long_term_add_curr especifica o número de todos as imagens de referência de longo prazo em que a informação de identificação não é incluída no conjunto de parâmetros de imagem referenciado e que podem ser usados para interpredição da imagem atual. Se num_long_term_add_curr não está presente, o valor pode ser derivado como igual a 0. O valor de num_long_term_add_curr pode ficar no intervalo de 0 a max_num_ref_frames - num_long_term_pps_curr, inclusive.
[0154] A variável NumLongTermCurr é especificada como: NumLongTermCurr = num_long_term_pps_curr + num_long_term_add_curr
[0155] num_long_term_pps_foll especifica o número de todos as imagens de referência de longo prazo em que a informação de identificação é incluída no conjunto de parâmetros de imagem referenciado, que não são usados para interpredição da imagem atual, e que podem ser usados para interpredição de qualquer das imagens seguintes à imagem atual na ordem de decodificação. Se num_long_term_pps_foll não está presente, o valor pode ser derivado como igual a 0. O valor de num_long_term_pps_foll pode ficar no intervalo de 0 a max_num_ref_frames, inclusive.
[0156] num_long_term_add_foll especifica o número de todos as imagens de referência de longo prazo em que a informação de identificação não é incluída no conjunto de parâmetros de imagem referenciado, que não são usados para interpredição da imagem atual, e que podem ser usados para interpredição de qualquer das imagens seguintes na ordem de decodificação. Se num_long_term_add_foll não está presente, o valor pode ser derivado como igual a 0. O valor de num_long_term_add_foll pode ficar no intervalo de 0 a max_num_ref_frames - num_long_term_pps_foll, inclusive.
[0157] long_term_ref_pic_set_idx_pps[i] especifica o índice, para a lista de informação de identificação da imagem de referência de longo prazo incluído no conjunto de parâmetros da imagem referenciado, de p i-ésima imagem de referência de longo prazo herdado do conjunto de parâmetros da imagem referenciado para o conjunto de imagens de referência da imagem atual. O valor de long_term_ref_pic_set_idx_pps[i] pode ficar no intervalo de 0 a 31, inclusive.
[0158] long_term_ref_pic_id_delta_add[i] especifica a informação de identificação da imagem de referência de longo prazo do i-ésima imagem de referência de longo prazo que não é herdado do conjunto de parâmetros de imagem referenciado mas incluído no conjunto de imagens de referência da imagem atual. O número de bits usados para representar long_term_ref_pic_id_add_curr[i] pode ser igual a long_term_pic_id_len_minus4 + 4.
[0159] Com os valores sinalizados acima ou derivados (ou seja, os valores nas tabelas 1 a 5), o decodificador de vídeo 30 pode derivar o conjunto de imagens de referência. Como descrito acima, o conjunto de imagens de referência derivado pode identificar imagens de referência que podem potencialmente ser usados para codificar/predizer a imagem atual (ou seja, a imagem que está sendo decodificada correntemente), e as imagens que seguem a imagem atual na ordem de decodificação. De acordo com as técnicas descritas nesta revelação, a ordem de decodificação de todos as imagens de referência no conjunto de imagens de referência derivado é anterior à ordem de decodificação da imagem atual.
[0160] O processo de derivação pode incluir construir o conjunto de imagens de referência a partir de uma pluralidade de subconjuntos de imagens de referência. Este processo pode ser invocado uma vez por imagem, após a decodificação de um cabeçalho de fatia mas anterior à decodificação de qualquer unidade de codificação e anterior ao processo de decodificação para construção da lista de imagens de referência da fatia. Por exemplo, a partir dos valores derivados e dos elementos de sintaxe sinalizados, o decodificador de vídeo 30 pode determinar os valores de POC para as imagens de referência que pertencem ao conjunto de imagens de referência. A partir dos valores de POC determinados, o decodificador de vídeo 30 pode construir subconjuntos de imagens de referência que juntos formam o conjunto de imagens de referência. Desta forma, construindo os subconjuntos de imagens de referência, o decodificador de vídeo 30 pode construir o conjunto de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode ordenar os subconjuntos de imagens de referência em uma forma particular para derivar o conjunto de imagens de referência. As ordenações podem se referir à forma pela qual o decodificador de vídeo 30 lista os subconjuntos de imagens de referência para derivar o conjunto de imagens de referência.
[0161] Como descrito acima, para derivar o conjunto de imagens de referência, o decodificador de vídeo 30 pode construir uma pluralidade de subconjuntos de imagens de referência. Em alguns exemplos, o decodificador de vídeo 30 pode construir seis subconjuntos de imagens de referência. Os seis subconjuntos de imagens de referência podem ser nomeados: RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll. O RefPicSetStCurr0 pode ser referenciado como RefPicSetStCurrBefore, e RefPicSetStCurr1 pode ser referenciado como RefPicSetStCurrAfter.
[0162] Deve ser entendido que os seis subconjuntos de imagens de referência são descritos para propósitos de ilustração, e não devem ser considerados limitantes. Como um exemplo, o decodificador de vídeo 30 pode construir menos subconjuntos de imagens de referência do que seis subconjuntos de imagens de referência, por exemplo, combinando alguns dos subconjuntos. Alguns destes exemplos onde o decodificador de vídeo 30 constrói menos do que seis subconjuntos de imagens de referência são descritos abaixo. Entretanto, para propósitos de ilustração, as técnicas são descritas com exemplos onde o decodificador de vídeo 30 constrói seis subconjuntos de imagens de referência.
[0163] Os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1 podem identificar imagens de referência de curto prazo. Em alguns exemplos, estes subconjuntos de imagens de referência podem identificar imagens de referência de curto prazo baseado em se as imagens de referência de curto prazo são anteriores na ordem de exibição ou posteriores na ordem de exibição à imagem atual sendo codificada, bem como se as imagens de referência de curto prazo podem potencialmente ser usadas para interpredição da imagem atual e imagens que seguem a imagem atual na ordem de decodificação, ou podem potencialmente ser usadas para interpredição somente as imagens que seguem a imagem atual na ordem de decodificação.
[0164] Por exemplo, o subconjunto de imagens de referência RefPicSetStCurr0 pode incluir, e pode somente incluir, informação de identificação, tal como valores de POC, de todos as imagens de referência de curto prazo que têm uma saída ou a ordem de exibição anterior a da imagem atual, e que podem potencialmente ser usados para referência em interpredição da imagem atual, e podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O subconjunto de imagens de referência RefPicSetStCurr1 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm uma saída ou a ordem de exibição posterior à imagem atual e que podem potencialmente ser usadas para referência em interpredição da imagem atual, e podem potencialmente ser usadas para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0165] O subconjunto de imagens de referência RefPicSetStFoll0 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm uma saída ou a ordem de exibição anterior à imagem atual, que podem potencialmente ser usadas para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usadas para referência em interpredição da imagem atual. O subconjunto de imagens de referência RefPicSetStFoll1 pode incluir, e pode somente incluir, informação de identificação de todos as imagens de referência de curto prazo que têm uma saída ou a ordem de exibição posterior à imagem atual, que podem potencialmente ser usadas para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usadas para referência em interpredição da imagem atual.
[0166] Os subconjuntos de imagens de referência RefPicSetLtCurr e RefPicSetLtFoll podem identificar imagens de referência de longo prazo. Em alguns exemplos, estes subconjuntos de imagens de referência podem identificar imagens de referência de longo prazo baseados em se as imagens de referência de longo prazo são anteriores na ordem de exibição ou posteriores na ordem de exibição à imagem atual sendo codificada.
[0167] Por exemplo, o subconjunto de imagens de referência RefPicSetLtCurr pode incluir, e pode somente incluir, a informação de identificação de todos as imagens de referência de longo prazo que podem potencialmente ser usados para referência em interpredição da imagem atual, e que podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O subconjunto de imagens de referência RefPicSetLtFoll pode incluir, e pode somente incluir, a informação de identificação de todos as imagens de referência de longo prazo que podem potencialmente ser usados para referência em interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação, e que não podem ser usados para referência em interpredição da imagem atual.
[0168] Se a imagem atual a ser decodificado é uma imagem IDR, o decodificador de vídeo 30 determina os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll para vazio. Isto pode ser devido ao imagem IDR não poder ser predito inter e que nenhuma imagem após a imagem IDR na ordem de decodificação pode usar qualquer imagem anterior à imagem IDR em decodificação para referência. Caso contrário (por exemplo, quando a imagem atual não é imagem IDR), o decodificador de vídeo 30 pode construir os subconjuntos de imagens de referência de curto prazo e os subconjuntos de imagens de referência de longo prazo implementando o pseudocódigo a seguir.
[0169] Por exemplo, quando o decodificador de vídeo 30 decodifica uma instância da estrutura de sintaxe short_term_ref_pic_set(), ou no cabeçalho da fatia ou por referência ao conjunto de parâmetros de imagem referenciado, o decodificador de vídeo 30 pode implementar o pseudocódigo a seguir para construir os RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1 subconjuntos de imagens de referência. cIdx = 0 for( i = 0, pocPred = PicOrderCnt( CurrPic ); i < num_short_term_curr0; pocPred = RefPicSetStCurr0[ i ], i++, cIdx++ ) RefPicSetStCurr0[ i ] = pocPred - short_term_ref_pic_id_delta_minus1 [ cldx ] - 1 for( i = 0, pocPred = PicOrderCnt( CurrPic ); i < num_short_term_curr1; pocPred = RefPicSetStCurr1[ i ], i++, cIdx++ ) RefPicSetStCurr1[ i ] = short_term_ref_pic_id_delta_minus1[ cIdx ] + 1 - pocPred for( i = 0, pocPred = PicOrderCnt( CurrPic ); i < num_short_term_foll0; pocPred = RefPicSetStFoll[ i ], i++, cIdx++ ) RefPicSetStFoll0[ i ] = pocPred - short_term_ref_pic_id_delta_minus1[ cIdx ] - 1 for( i = 0, pocPred = PicOrderCnt( CurrPic ); i < num_short_term_foll1; pocPred = RefPicSetStFoll[ i ], i++, cIdx++ ) RefPicSetStFoll1[ i ] = short_term_ref_pic_id_delta_minus1[ cIdx ] + 1 - pocPred
[0170] Se o decodificador de vídeo 30 determinar que a long_term_ref_pics_present_flag é igual a 0, o decodificador de vídeo 30 pode determinar o RefPicSetLtCurr e o RefPicSetLtFoll para vazio porque, para este caso, não existe nenhuma imagem de referência de longo prazo. Caso contrário, se o decodificador de vídeo 30 decodifica uma instância da estrutura de sintaxe long_term_ref_pic_set() no cabeçalho da fatia, o decodificador de vídeo 30 pode implementar o pseudocódigo a seguir para construir os subconjuntos de imagens de referência RefPicSetLtCurr e RefPicSetLtFoll. cIdx = 0 for( i = 0; i < num_long_term_pps_curr; i++, cIdx++ ) { pIdx = long_term_ref_pic_idx_pps[ i ] RefPicSetLtCurr[ cIdx ] = long_term_ref_pic_id_ pps[ pIdx ] } for( i = 0; i < num_long_term_add_curr; i++, cIdx++ ) { picIdDelta = long_term_ref_pic_id_delta_add[ i ] RefPicSetLtCurr[ cIdx ] = PicOrderCnt( CurrPic ) - picIdDelta } cIdx = 0 for( i = 0; i < num_long_term_pps_foll; i++, cIdx++ ) { pIdx = long_term_ref_pic_idx_pps[ i + num_long_term_pps_curr ] RefPicSetLtFoll[ cIdx ] = long_term_ref_pic_id_ pps[ pIdx ] } for( i = 0;i < num_long_term_add_foll; i++, cIdx++ ) { picIdDelta = long_term_ref_pic_id_delta_add[ i + num_long_term_add_curr] RefPicSetLtFoll[ cIdx] = PicOrderCnt( CurrPic ) - picIdDelta }
[0171] De acordo com as técnicas descritas nesta revelação, uma imagem de referência com um valor de PicOrderCnt particular (valor de POC) pode ser referenciado como incluído no conjunto de imagens de referência de uma imagem codificada se a imagem de referência for incluída em qualquer um dos seis subconjuntos do conjunto de imagens de referência daquela imagem codificada. Uma imagem de referência com um valor particular de PicOrderCnt é referenciado como incluído em um subconjunto do conjunto de imagens de referência particular se o valor particular de PicOrderCnt (valor de POC) for igual a um dos valores de PicOrderCnt incluídos naquele subconjunto.
[0172] Após construir os subconjuntos de imagens de referência, o decodificador de vídeo 30 pode derivar o conjunto de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode ordenar os subconjuntos de imagens de referência para derivar o conjunto de imagens de referência. Como um exemplo, o decodificador de vídeo 30 pode listar o subconjunto de imagens de referência RefPicSetStCurr0, seguido pelo subconjunto de imagens de referência RefPicSetStCurr1, seguido pelo subconjunto de imagens de referência RefPicSetStFoll0, seguido pelo subconjunto de imagens de referência RefPicSetStFoll1, seguido pelo subconjunto de imagens de referência RefPicSetLtCurr, e então o subconjunto de imagens de referência RefPicSetLtFoll. Como outro exemplo, o decodificador de vídeo 30 pode listar o subconjunto de imagens de referência RefPicSetStCurr0, seguido pelo subconjunto de imagens de referência RefPicSetStCurr1, seguido pelo subconjunto de imagens de referência RefPicSetLtCurr, seguido pelo subconjunto de imagens de referência RefPicSetStFoll0, seguido pelo subconjunto de imagens de referência RefPicSetStFoll1, e então o subconjunto de imagens de referência RefPicSetLtFoll.
[0173] São possíveis outras permutações da forma pela qual o decodificador de vídeo 30 ordena os subconjuntos de imagens de referência para derivar o conjunto de imagens de referência. Em alguns exemplos, a construção dos subconjuntos de imagens de referência e a derivação do conjunto de imagens de referência podem ser combinadas. Por exemplo, a construção dos subconjuntos de imagens de referência pode resultar no decodificador de vídeo 30 derivar automaticamente o conjunto de imagens de referência. Em outras palavras, o decodificador de vídeo 30 pode não precisar realizar etapas diferentes para construir os subconjuntos de imagens de referência e derivar o conjunto de imagens de referência, embora seja possível para o decodificador de vídeo 30 primeiro construir os subconjuntos de imagens de referência e então derivar o conjunto de imagens de referência.
[0174] Também, de acordo com as técnicas descritas nesta revelação, construir o conjunto de imagens de referência da maneira descrita acima pode resultar no decodificador de vídeo 30 satisfazer as restrições a seguir. Por exemplo, uma imagem de referência particular com um valor de PicOrderCnt particular pode não ser incluído em mais do que um dos subconjuntos de imagens de referência do conjunto de imagens de referência da imagem atual. Em outras palavras, uma imagem de referência identificado em um dos subconjuntos de imagens de referência não pode ser identificado em qualquer dos outros subconjuntos de imagens de referência. Como outro exemplo, no conjunto de imagens de referência derivado, pode não haver nenhuma imagem de referência com temporal_id maior do que a imagem atual que é incluída em qualquer dos subconjuntos de imagens de referência que formam o conjunto de imagens de referência.
[0175] Como descrito acima, o valor de identificação temporal (temporal_id) pode ser um valor hierárquico que indica quais imagens podem ser usadas para codificar/predizer a imagem atual. Em geral, uma imagem com um valor de temporal_id particular pode possivelmente ser uma imagem de referência para imagens com valores de temporal_id iguais ou maiores, mas não vice-versa. Por exemplo, uma imagem com um valor de temporal_id de 1 pode possivelmente ser uma imagem de referência para imagens com valores de temporal_id de 1, 2, 3,..., mas não para uma imagem com um valor de temporal_ID de 0.
[0176] O valor mis baixo de temporal_id também pode indicar a taxa de exibição mais baixa. Por exemplo, se o decodificador de vídeo 30 somente decodificou imagens com valores de temporal_id de 0, a taxa de exibição pode ser de 7,5 imagens por segundo. Se o decodificador de vídeo 30 decodificou imagens com valores de temporal_id de 0 e 1, a taxa de exibição pode ser de 15 imagens por segundo, e assim por diante.
[0177] Em alguns exemplos, somente imagens com valores de temporal_id menores ou iguais ao temporal_id da imagem atual podem ser incluídos no conjunto de imagens de referência da imagem atual. Como descrito acima, somente imagens com valores de temporal_id menores ou iguais ao temporal_id da imagem atual podem ser usadas como imagens de referência. Portanto, todos as imagens de referência com valores de temporal_id menores ou iguais podem ser usados pela imagem atual para interpredição e podem ser incluídos no conjunto de imagens de referência. Também, alguns imagens de referência que têm valores de temporal_id maiores do que a imagem atual e que são para ser usados por imagens que seguem a imagem atual na ordem de decodificação e que tem valores de temporal_id maiores do que a imagem atual são excluídos do conjunto de imagens de referência.
[0178] Com estas técnicas, não é necessária a sinalização de temporal_id adicionalmente à identificação da imagem para derivação do conjunto de imagens de referência; consequentemente, a sinalização do conjunto de imagens de referência se tornar mais eficiente. Por exemplo, o codificador de vídeo 20 pode não sinalizar valores de temporal_id das imagens de referência que pertencem ao conjunto de imagens de referência, e o decodificador de vídeo 30 pode não precisar receber valores de temporal_id das imagens de referência que pertencem ao conjunto de imagens de referência para propósitos de derivar o conjunto de imagens de referência.
[0179] Além disso, desta forma, os subconjuntos de imagens de referência construídos podem não identificar imagens de referência com valores de temporal_id maiores do que aquele da imagem atual. Por exemplo, o decodificador de vídeo 30 pode ser capaz de construir os subconjuntos de imagens de referência, e garantir que nenhuma imagem de referência identificado em qualquer dos subconjuntos de imagens de referência tenha um valor de temporal_id maior do que aquele da imagem atual porque com que a conformidade do fluxo de bits pode requerer que os valores de temporal_id não sejam incluídos no fluxo de bits sinalizado pelo codificador de vídeo 20 e recebido pelo decodificador de vídeo 30. Desta forma, o decodificador de vídeo 30 pode derivar o conjunto de imagens de referência sem receber os valores de identificação temporal para as imagens de referência que pertencem ao conjunto de imagens de referência.
[0180] Em os exemplos acima, o decodificador de vídeo 30 pode construir seis subconjuntos de imagens de referência, quatro para imagens de referência de curto prazo (ou seja, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1), e dois para imagens de referência de longo prazo (ou seja, RefPicSetLtCurr e RefPicSetLtFoll). Entretanto, aspectos desta revelação não são tão limitados. Em outros exemplos, dois ou mais destes subconjuntos de imagens de referência podem ser combinados dentro de um subconjunto de imagens de referência, resultando em menos subconjuntos de imagens de referência que o decodificador de vídeo 30 constrói. O conteúdo a seguir descreve alguns exemplos não limitantes pelos quais decodificador de vídeo 30 pode construir menos subconjuntos de imagens de referência. Pode haver outras formas pelas quais o decodificador de vídeo 30 pode construir menos subconjuntos de imagens de referência.
[0181] Por exemplo, em alguns exemplos, pode não haver nenhuma separação do subconjunto para a imagem atual e o subconjunto para as imagens seguintes na ordem de decodificação. Portanto, pode haver dois subconjuntos para imagens de referência de curto prazo, referenciados como RefPicSetSt0 e RefPicSetSt1, e pode haver somente um subconjunto para imagens de referência de longo prazo, referenciado como RefPicSetLt. Neste exemplo, o subconjunto de imagens de referência RefPicSetSt0 pode ser a concatenação de RefPicSetStCurr0 e RefPicSetStFoll0, com RefPicSetStCurr0 no começo da concatenação resultante. Neste exemplo, o subconjunto de imagens de referência RefPicSetSt1 pode ser a concatenação de RefPicSetStCurr1 e RefPicSetStFoll1, com RefPicSetStCurr1 no começo da concatenação resultante. O RefPicSetLt subconjunto de imagens de referência pode ser a concatenação de RefPicSetLtCurr e RefPicSetLtFoll, com RefPicSetLtCurr no começo da concatenação resultante.
[0182] Como outro exemplo, pode não haver nenhuma separação do subconjunto com ordens de saída anteriores ou posteriores à imagem atual. Isto pode se aplicar somente para imagens de referência de curto prazo. Portanto, pode haver dois subconjuntos para imagens de referência de curto prazo, referenciados como RefPicSetStCurr e RefPicSetStFoll. O subconjunto de imagens de referência RefPicSetStCurr pode ser a concatenação de RefPicSetStCurr0 e RefPicSetStCurr1, com RefPicSetStCurr0 no começo da concatenação resultante. O subconjunto de imagens de referência RefPicSetStFoll pode ser a concatenação de RefPicSetStFoll0 e RefPicSetStFoll1, com RefPicSetStFoll0 no começo da concatenação resultante.
[0183] Como outro exemplo, ambos os tipos de separação mencionados acima podem não ser aplicados. Portanto, pode haver somente um subconjunto para imagens de referência de curto prazo, referenciado como RefPicSetSt, e somente um subconjunto para imagens de referência de longo prazo, referenciado como RefPicSetLt. O subconjunto de imagens de referência RefPicSetSt pode ser uma concatenação de RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1, na ordem listada (ou qualquer outra ordem), e RefPicSetLt pode ser o mesmo que acima.
[0184] As técnicas acima descrevem uma forma exemplificativa pela qual o decodificador de vídeo 30 pode derivar o conjunto de imagens de referência. Durante o processo de codificação, o codificador de vídeo 20 também pode precisar decodificar imagens codificadas para propósitos de codificar imagens subsequentes, no que é referenciado como o processo de reconstrução. Consequentemente, em alguns exemplos, o codificador de vídeo 20 também pode ser configurado para derivar o conjunto de imagens de referência. Em alguns exemplos, o codificador de vídeo 20 pode implementar as mesmas técnicas que o decodificador de vídeo 30 implementado para derivar o conjunto de imagens de referência. Entretanto, a derivação do conjunto de imagens de referência pelo codificador de vídeo 20 pode não ser requerida em todos os exemplos, e o decodificador de vídeo 30 pode ser o único codificador que deriva o conjunto de imagens de referência.
[0185] Consequentemente, em alguns exemplos, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode codificar (por exemplo, codificar ou decodificar, respectivamente) informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Por exemplo, o codificador de vídeo 20 pode sinalizar um fluxo de bits codificado que inclui valores para determinar quais imagens de referência pertencem ao conjunto de imagens de referência. De maneira similar, o decodificador de vídeo 30 pode decodificar o fluxo de bits para determinar quais imagens de referência pertencem ao conjunto de imagens de referência.
[0186] O codificador de vídeo pode construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência. Por exemplo, o codificador de vídeo pode construir seis subconjuntos de imagens de referência (ou seja, os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll), onde cada um dos subconjuntos identifica zero ou mais imagens de referência. Em alguns exemplos, o codificador de vídeo pode codificar a imagem atual baseado na pluralidade de subconjuntos de imagens de referência.
[0187] Por exemplo, o codificador de vídeo pode derivar o conjunto de imagens de referência a partir da pluralidade de subconjuntos de imagens de referência construídos. Por exemplo, o codificador de vídeo pode ordenar os subconjuntos de imagens de referência em qualquer ordem para derivar o conjunto de imagens de referência, ou pode derivar o conjunto de imagens de referência como parte da construção dos subconjuntos de imagens de referência. Em alguns exemplos, a partir do conjunto de imagens de referência derivado, o codificador de vídeo pode codificar a imagem atual. Devido ao conjunto de imagens de referência ser derivado a partir da pluralidade de subconjuntos de imagens de referência, o codificador de vídeo pode ser considerado como codificando a imagem atual baseado na pluralidade de subconjuntos de imagens de referência.
[0188] Em alguns exemplos, para ordenar os subconjuntos de imagens de referência, o codificador de vídeo pode construir os subconjuntos de imagens de referência na ordem pelas qual os subconjuntos de imagens de referência devem ser listados no conjunto de imagens de referência. Por exemplo, o codificador de vídeo pode primeiro construir o subconjunto de imagens de referência RefPicSetLtCurr, então construir o subconjunto de imagens de referência RefPicSetLtFoll, então construir o subconjunto de imagens de referência RefPicSetStCurr0, então construir o subconjunto de imagens de referência RefPicSetStCurr1, então construir o subconjunto de imagens de referência RefPicSetStFoll0, e então construir o subconjunto de imagens de referência RefPicSetStFoll1. Neste exemplo ilustrativo, a ordem dos subconjuntos de imagens de referência no conjunto de imagens de referência pode ser RefPicSetLtCurr, RefPicSetLtFoll, RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, e RefPicSetStFoll1, nesta ordem, embora sejam possíveis outras ordens.
[0189] De acordo com as técnicas exemplificativas descritas nesta revelação, após derivar o conjunto de imagens de referência, o decodificador de vídeo 30 pode decodificar de fatias dentro da imagem atual. Parte do processo de decodificação envolve construção de uma ou duas listas de imagens de referência. Uma lista de imagens de referência é uma lista de imagens de referência que é usada para predição de uma fatia P ou B. Para o processo de decodificação de uma fatia P, existe uma lista de imagens de referência (Lista 0). Para o processo de decodificação de uma fatia B, existem duas listas de imagens de referência (Lista 0 e Lista 1). A Lista 0, algumas vezes referenciada como lista de imagens de referência 0 ou RefPicLista0, é uma lista de imagens de referência usada para interpredição de uma fatia P ou B. Toda interpredição usada para fatias P usa Lista 0. A lista de imagens de referência 0 é uma das duas listas de imagens de referência usada para bi-predição para uma fatia B, com a outra sendo a lista de imagens de referência 1. A Lista 1, algumas vezes referenciada como lista de imagens de referência 1 ou RefPicLista1, é uma lista de imagens de referência usada para predição de uma fatia B. A lista de imagens de referência 1 é uma de duas listas de imagens de referência usada para predição para uma fatia B, com a outro sendo a lista de imagens de referência 0. Alguns blocos em uma fatia B podem ser bi-preditos, usando tanto a Lista 0 como a Lista1, e alguns blocos em uma fatia B podem ser uni-predidos, usando ou a Lista 0 ou a Lista 1.
[0190] Para construir as listas de imagens de referência, o decodificador de vídeo 30 pode implementar uma técnica de construção padrão para construir Lista 0 inicial e, para as fatias B, Lista 1 inicial. A construção da Lista 0 inicial e Lista 1 inicial podem ser referenciadas como o processo de inicialização. Em alguns exemplos, o fluxo de bits codificado pode indicar que o decodificador de vídeo 30 deve modificar a Lista inicial 0 e/ou a Lista 1 inicial para gerar a Lista 0 final e a Lista 1 final. A modificação da Lista 0 inicial e/ou Lista 1 inicial pode ser referenciada como o processo de modificação. O processo de modificação pode não ser requerido em todos os exemplos, e a forma pela qual o decodificador de vídeo 30 pode implementar o processo de modificação é descrita em mais detalhe abaixo. De acordo com as técnicas descritas nesta revelação, quando a modificação da Lista 0 inicial ou da Lista 1 inicial não é necessária, a Lista 0 final ou a Lista 1 final (ou seja, a lista de imagens de referência 0 ou 1 que é usada para decodificar a fatia da imagem atual) pode ser igual à Lista 0 inicial ou a Lista 1 inicial. Desta forma, a reordenação da lista de imagens de referência pode não ser necessária.
[0191] Em as técnicas descritas nesta revelação, o decodificador de vídeo 30 pode construir a Lista inicial 0 ou a Lista 1 inicial nesta forma que o decodificador de vídeo 30 pode não precisar realizar reordenação das imagens de referência a serem incluídos na Lista 0 inicial ou na Lista 1 inicial, independentemente de se o processo de modificação é necessário, devido às imagens de referência em cada um dos subconjuntos de imagens de referência já estarem em uma ordem apropriada. Por exemplo, em algumas outras técnicas, independentemente de se o processo de modificação é necessário, é necessária a reordenação das imagens de referência a serem incluídos na Lista 0 inicial ou a Lista 1 inicial de acordo com seus valores de POC quando adicionando ou listando as imagens de referência dentro da Lista 0 inicial ou da Lista 1 inicial.
[0192] Em o processo de inicialização, o decodificador de vídeo 30 pode implementar uma técnica de construção padrão para construir a Lista 0 inicial e a Lista 1 inicial. A técnica de construção padrão pode significar que o decodificador de vídeo 30 constrói as listas de imagens de referência iniciais sem receber elementos de sintaxe do codificador de vídeo 20 com respeito à forma pela qual o decodificador de vídeo 30 deve construir as listas de imagens de referência iniciais, ou quais imagens de referência devem ser identificados nas listas de imagens de referência iniciais.
[0193] O decodificador de vídeo 30 pode invocar o processo de construção da lista de imagens de referência quando decodificando um cabeçalho de fatia P ou B., por exemplo, quando decodificando uma fatia P, o decodificador de vídeo 30 pode invocar o processo para construir a Lista 0 inicial, mas pode não invocar o processo para construir a Lista 1 inicial devido a um bloco em uma fatia P ser somente uni-predito com respeito a uma imagem de referência identificado na Lista 0. Quando decodificando uma fatia B, o decodificador de vídeo 30 pode invocar o processo para construir a Lista 0 inicial e construir a Lista 1 inicial devido a um bloco em uma fatia B poder ser bi predito com respeito das imagens de referência identificadas em cada uma de Lista 0 e Lista 1.
[0194] De acordo com as técnicas exemplificativas descritas nesta revelação, o decodificador de vídeo 30 pode utilizar subconjuntos de imagens de referência para construir a Lista 0 inicial e a Lista 1 inicial. Por exemplo, a Lista 0 inicial e a Lista 1 inicial podem listar zero ou mais imagens de referência identificados em RefPicSetStCurr0, RefPicSetStCurr1, ou RefPicSetLtCurr. Neste exemplo, quando o processo de construção da lista de imagens de referência é invocado, pode haver pelo menos uma imagem de referência em RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Embora a Lista 0 inicial e a Lista 1 inicial possam identificar um ou mais imagens de referência dos mesmos subconjuntos de imagens de referência, a ordem pela qual o decodificador de vídeo 30 adiciona as imagens de referência na Lista 0 inicial pode ser diferente da ordem pela qual o decodificador de vídeo 30 adiciona as imagens de referência na Lista 1 inicial.
[0195] Nesta revelação, quando o decodificador de vídeo 30 adiciona (por exemplo, lista) imagens de referência de um ou mais dos subconjuntos de imagens de referência na Lista 0 inicial ou Lista 1 inicial, esta revelação se refere ao decodificador de vídeo 30 identificar as imagens de referência na Lista 0 inicial ou a Lista 1 inicial. Por exemplo, a pluralidade de subconjuntos de imagens de referência pode cada um identificar zero ou mais imagens de referência. Para construir a Lista 0 inicial e Lista 1 inicial, o decodificador de vídeo 30 pode identificar um ou mais das imagens de referência que são identificados nos subconjuntos de imagens de referência dentro da Lista 0 inicial ou a Lista 1 inicial.
[0196] Para evitar confusão e para auxiliar com clareza, esta revelação pode se referir ao decodificador de vídeo 30 listar ou adicionar zero ou mais das imagens de referência que são identificados nos subconjuntos de imagens de referência dentro da Lista 0 inicial e da Lista 1 inicial para construir a Lista 0 inicial e a Lista 1 inicial. Desta forma, o decodificador de vídeo 30 adicionar ou listar imagens de referência significa que o decodificador de vídeo 30 adiciona ou lista um identificador da imagem de referência identificado no subconjunto de imagens de referência. Consequentemente, a Lista 0 inicial e a Lista 1 inicial resultantes incluem uma pluralidade de identificadores para as imagens de referência que podem potencialmente ser usados para codificar um bloco ou fatia de uma imagem atual. Estas imagens de referência são armazenadas nas respectivas memórias temporárias de imagem decodificada do decodificador de vídeo 30 e do codificador de vídeo 20.
[0197] Por exemplo, para construir a Lista 0 inicial, o decodificador de vídeo 30 pode primeiro listar (por exemplo, adicionar) as imagens de referência identificados em RefPicSetStCurr0 na Lista 0 inicial, seguidos pelas imagens de referência identificados em RefPicSetStCurr1 na Lista 0 inicial, e então as imagens de referência identificados em RefPicSetLtCurr na Lista 0 inicial. Para construir a Lista 1 inicial, o decodificador de vídeo 30 pode primeiro listar (por exemplo, adicionar) as imagens de referência identificados em RefPicSetStCurr1 na Lista 1 inicial, seguidos pelas imagens de referência identificados em RefPicSetStCurr0 na Lista 1 inicial, e então as imagens de referência identificados em RefPicSetLtCurr na Lista 1 inicial.
[0198] Além disso, adicionalmente a adicionar as imagens de referência nos subconjuntos de imagens de referência em ordem diferente, o decodificador de vídeo 30 pode utilizar um número diferente de imagens de referência de cada um dos subconjuntos de imagens de referência quando construindo a Lista 0 e a Lista 1. Por exemplo, a Lista 0 e a Lista 1 não precisam incluir todos as imagens de referência de RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Em vez disso, o número de imagens de referência que são listados a partir destes subconjuntos de imagens de referência exemplificativos para construir a Lista 0 inicial e a Lista 1 inicial pode ser baseado nos elementos de sintaxe que indicam o número máximo de imagens de referência dentro de cada uma da Lista 0 inicial e Lista 1 inicial.
[0199] Por exemplo, para a Lista 0 inicial, o codificador de vídeo 20 pode sinalizar o elemento de sintaxe num_ref_idx_l0_active_minus1 para fatias P e B no cabeçalho da fatia, e o elemento de sintaxe num_ref_idx_l1_active_minus1 para fatias B que são bi preditas. Como descrito acima, o num_ref_idx_l0_active_minus1 pode definir o número máximo de imagens de referência que podem ficar na Lista 0 inicial, e num_ref_idx_l1_active_minus1 pode definir o número máximo de imagens de referência que podem ficar na Lista 1 inicial. Em alguns exemplos, pode ser possível que o valor de num_ref_idx_l0_active_minus1 seja diferente do valor de num_ref_idx_l1_active_minus1, embora isto possa não ser necessário em todos os exemplos. Em alguns exemplos, o valor de num_ref_idx_l0_active_minus1 pode ser o mesmo valor de num_ref_idx_l1_active_minus1.
[0200] Como descrito acima, o decodificador de vídeo 30 pode receber no fluxo de bits codificado os valores para num_short_term_curr0 e num_short_term_curr1. O decodificador de vídeo 30 pode definir a variável NumShortTermCurr0 igual a num_short_term_curr0 e definir a variável NumShortTermCurr1 igual a num_short_term_curr1. NumShortTermCurr0 pode indicar o número de imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0, e NumShortTermCurr1 pode indicar o número de imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1.
[0201] O decodificador de vídeo 30 também pode receber no fluxo de bits codificado os valores para num_long_term_pps_curr e num_long_term_add_curr. O decodificador de vídeo 30 pode definir a variável NumLongTermCurr como igual à num_long_term_pps_curr mais num_long_term_add_curr. NumLongTermCurr pode indicar o número de imagens de referência em RefPicSetLtCurr.
[0202] Para construir a Lista 0 inicial, o decodificador de vídeo 30 pode primeiro adicionar imagens de referência em RefPicSetStCurr0 dentro da Lista 0 inicial até o decodificador de vídeo 30 adicionar todos as imagens de referência em RefPicSetStCurr0 dentro da Lista 0 inicial, e desde que o número de entradas na Lista 0 inicial (por exemplo, o número de imagens de referência identificados na Lista 0) seja menor ou igual a num_ref_idx_l0_active_minus1. Por exemplo, NumShortTermCurr0 pode indicar o número de imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0. Neste exemplo, o decodificador de vídeo 30 pode listar (por exemplo, adicionar) imagens de referência do subconjunto de imagens de referência RefPicSetStCurr0 até o número de imagens de referência listados a partir de RefPicSetStCurr0 ser igual a NumShortTermCurr0. Entretanto, enquanto listando as imagens de referência de RefPicSetStCurr0 dentro da Lista 0 inicial, se o número total de entradas na Lista 0 inicial for igual a num_ref_idx_l0_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0 mesmo se existirem imagens adicionais em RefPicSetStCurr0 que não tiverem sido listados na Lista 0 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 0 inicial.
[0203] Após o decodificador de vídeo 30 listar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0 e o número total de entradas na Lista 0 inicial ser menor do que num_ref_idx_l0_active_minus1, o decodificador de vídeo 30 pode então adicionar imagens de referência em RefPicSetStCurr1 até o decodificador de vídeo 30 identificar todos as imagens de referência em RefPicSetStCurr1, e desde que o número de entradas na Lista 0 inicial (por exemplo, o número de imagens de referência identificados na Lista 0) seja menor ou igual a num_ref_idx_l0_active_minus1. Por exemplo, similar a acima, NumShortTermCurr1 pode indicar o número de imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1. Neste exemplo, o decodificador de vídeo 30 pode listar imagens de referência do subconjunto de imagens de referência RefPicSetStCurr1 até o número de imagens de referência listados a partir do RefPicSetStCurr1 ser igual a NumShortTermCurr1. Entretanto, enquanto lista imagens de referência de RefPicSetStCurr1, se o número total de entradas na Lista 0 inicial for igual a num_ref_idx_l0_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência do subconjunto de imagens de referência RefPicSetStCurr1 mesmo se existirem imagens adicionais em RefPicSetStCurr1 que não tiverem sido listados na Lista 0 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 0 inicial.
[0204] Após o decodificador de vídeo 30 listar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1 e o número total de entradas na Lista 0 inicial ser menor do que num_ref_idx_l0_active_minus1, o decodificador de vídeo 30 pode então listar imagens de referência em RefPicSetLtCurr até o decodificador de vídeo 30 listar todos as imagens de referência em RefPicSetLtCurr, e desde que o número de entradas na Lista 0 inicial (por exemplo, o número de imagens de referência identificados na Lista 0) seja menor ou igual a num_ref_idx_l0_active_minus1. Por exemplo, similar a acima, NumLongTermCurr pode indicar o número de imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr. Neste exemplo, o decodificador de vídeo 30 pode listar imagens de referência do subconjunto de imagens de referência RefPicSetLtCurr até o número de imagens de referência listados a partir do RefPicSetLtCurr ser igual à NumLongTermCurr. Entretanto, enquanto lista imagens de referência de RefPicSetLtCurr dentro da Lista 0 inicial, se o número total de entradas na Lista 0 inicial for igual a num_ref_idx_l0_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr mesmo se existirem imagens adicionais em RefPicSetLtCurr que não tiverem sido listados na Lista 0 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 0 inicial.
[0205] O pseudocódigo a seguir ilustra a forma pela qual o decodificador de vídeo 30 pode construir a Lista 0 inicial. cIdx = 0 while( cIdx <= num_ref_idx_l0_active_minus1 ) { for( i=0; i < NumShortTermCurr0 && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ ) RefPicList0[ cIdx ] = RefPicSetStCurr0[ i ] for( i=0; i < NumShortTermCurr1 && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ ) RefPicList0[ cIdx ] = RefPicSetStCurr1[ i ] for( i=0; i < NumLongTermCurr && cIdx <= num_ref_idx_l0_active_minus1; cIdx++, i++ ) RefPicList0[ cIdx ] = RefPicSetLtCurr[ i ] }
[0206] Em o pseudocódigo acima, RefPicLista0 pode ser a Lista 0 inicial. Em exemplos onde não é necessária a modificação da lista 0, a Lista 0 final pode ser igual à Lista 0 inicial. Portanto, em exemplos onde não é necessária a modificação da lista 0, RefPicLista0, no pseudocódigo acima, pode ser a Lista 0 final.
[0207] O decodificador de vídeo 30 pode construir a Lista 1 inicial de maneira similar. Entretanto, para construir a Lista 1 inicial, o decodificador de vídeo 30 pode primeiro adicionar as imagens de referência do subconjunto de imagens de referência RefPicSetStCurr1 dentro da Lista 1 inicial, seguido pelo subconjunto de imagens de referência RefPicSetStCurr0 dentro da Lista 1 inicial, e seguido pelo subconjunto de imagens de referência RefPicSetLtCurr dentro da Lista 1 inicial. Também, similar a acima, se, enquanto listando imagens de referência a partir de qualquer um dos subconjuntos de imagens de referência RefPicSetStCurr1, RefPicSetStCurr0, e RefPicSetLtCurr, o número total de entradas na Lista 1 inicial for igual a num_ref_idx_l1_active_minus1, o decodificador de vídeo 30 pode parar de adicionar imagens de referência, mesmo se existirem imagens de referência adicionais nestes subconjuntos de imagens de referência.
[0208] Por exemplo, para construir a Lista 1 inicial, o decodificador de vídeo 30 pode primeiro listar imagens de referência a partir de RefPicSetStCurr1 até o decodificador de vídeo 30 identificar todos as imagens de referência em RefPicSetStCurr1, e desde que o número de entradas na Lista 1 inicial (por exemplo, o número de imagens de referência identificados na Lista 1) seja menor ou igual a num_ref_idx_l1_active_minus1. Por exemplo, o valor de NumShortTermCurr1 pode indicar quando o decodificador de vídeo 30 completou a listagem de todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1. Entretanto, enquanto listando imagens de referência a partir de RefPicSetStCurr1, se o total número de entradas na Lista 1 inicial for igual a num_ref_idx_l1_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1 mesmo se existirem imagens adicionais em RefPicSetStCurr1 que não tiverem sido listados na Lista 1 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 1 inicial.
[0209] Após o decodificador de vídeo 30 listar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1 e o número total de entradas na Lista 1 inicial ser menor do que num_ref_idx_l1_active_minus1, o decodificador de vídeo 30 pode então listar imagens de referência a partir de RefPicSetStCurr0 até o decodificador de vídeo 30 listar todos as imagens de referência em RefPicSetStCurr0, e desde que o número de entradas na Lista 1 inicial (por exemplo, o número de imagens de referência identificados na Lista 1) seja menor ou igual a num_ref_idx_l1_active_minus1. Por exemplo, similar a acima, o valor de NumShortTermCurr0 pode indicar quando o decodificador de vídeo 30 completa a listagem de todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0. Entretanto, enquanto listando as imagens de referência a partir de RefPicSetStCurr0 dentro da Lista 1 inicial, se o número total de entradas na Lista 1 inicial for igual a num_ref_idx_l1_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0 mesmo se existirem imagens adicionais em RefPicSetStCurr0 que não tiverem sido listados na Lista 1 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 1 inicial.
[0210] Após o decodificador de vídeo 30 listar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0 e o número total de entradas na Lista 1 inicial ser menor do que num_ref_idx_l1_active_minus1, o decodificador de vídeo 30 pode então listar imagens de referência em RefPicSetLtCurr até o decodificador de vídeo 30 listar todos as imagens de referência em RefPicSetLtCurr, e desde que o número de entradas na Lista 1 inicial (por exemplo, o número de imagens de referência identificados na Lista 1) seja menor ou igual a num_ref_idx_l1_active_minus1. Por exemplo, similar a acima, o valor de NumLongTermCurr pode indicar quando o decodificador de vídeo 30 completar a listagem todos as imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr. Entretanto, enquanto listando imagens de referência a partir de RefPicSetLtCurr, se o número total de entradas na Lista 1 inicial for igual a num_ref_idx_l1_active_minus1, então o decodificador de vídeo 30 pode parar de adicionar imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr mesmo se existirem imagens adicionais em RefPicSetLtCurr que não tiverem sido listados na Lista 1 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 1 inicial.
[0211] O pseudocódigo a seguir ilustra a forma pela qual o decodificador de vídeo 30 pode construir a Lista 1 inicial. cIdx = 0 while( cIdx <= num_ref_idx_l1_active_minus1 ) { for( i=0; i < NumShortTermCurr1 && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ ) RefPicList1[ cIdx ] = RefPicSetStCurr1[ i ] for( i=0; i < NumShortTermCurr0 && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ ) RefPicList1[ cIdx ] = RefPicSetStCurr0[ i ] for( i=0; i < NumLongTermCurr && cIdx <= num_ref_idx_l1_active_minus1; cIdx++, i++ ) RefPicList1[ cIdx ] = RefPicSetLtCurr[ i ] }
[0212] No pseudocódigo acima, RefPicLista1 pode ser a Lista 1 inicial. Em exemplos onde não é necessária a modificação de Lista 1, a Lista 1 final pode ser igual à Lista 1 inicial. Portanto, em exemplos onde não é necessária a modificação da Lista 1, RefPicLista1, no pseudocódigo acima, pode ser a Lista 1 final.
[0213] O precedente é uma forma exemplificativa pela qual o decodificador de vídeo 30 pode construir a Lista 0 final e Lista 1 final, quando não é necessária a modificação da lista de imagens de referência. Em outros exemplos, o decodificador de vídeo 30 pode adicionar os subconjuntos de imagens de referência em uma ordem diferente daquelas descritas acima. Em ainda alguns outros exemplos, o decodificador de vídeo 30 pode adicionar subconjuntos de imagens de referência diferentes daqueles descritos acima.
[0214] Embora os exemplos precedentes tenham descrito as técnicas para construção da lista de imagens de referência sendo realizada pelo decodificador de vídeo 30, aspectos desta revelação não são tão limitados, e codificador de vídeo 20 pode implementar técnicas similares para construir as listas de imagens de referência. Entretanto, pode não ser necessário para o codificador de vídeo 20 construir as listas de imagens de referência da mesma forma pela qual o decodificador de vídeo 30 constrói as listas de imagens de referência.
[0215] Consequentemente, um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou o decodificador de vídeo 30) pode ser configurado para codificar (por exemplo, codificar ou decodificar) informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Como descrito acima, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e que podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0216] O codificador de vídeo também pode ser configurado para construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais imagens de referência. Por exemplo, o codificador de vídeo pode construir pelo menos os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. O codificador de vídeo pode construir subconjuntos de imagens de referência adicionais, tais como os descritos acima.
[0217] O codificador de vídeo pode então adicionar imagens de referência a partir de um primeiro subconjunto de imagens de referência, seguidos por imagens de referência a partir de um segundo subconjunto de imagens de referência, e seguidos por imagens de referência a partir de um terceiro subconjunto de imagens de referência dentro de uma lista de imagens de referência inicial desde que um número de entradas na lista de imagens de referência inicial não seja maior do que um número máximo permissível de entradas na lista de imagens de referência. Por exemplo, o codificador de vídeo pode listar imagens de referência a partir do subconjunto de imagens de referência RefPicSetStCurr0, seguido pelo subconjunto de imagens de referência RefPicSetStCurr1, e seguido pelo subconjunto RefPicSetLtCurr dentro da Lista 0 inicial desde que o número de entradas na Lista 0 inicial não seja maior do que num_ref_idx_l0_active_minus1. Novamente, o valor de num_ref_idx_l0_active_minus1 pode indicar o número máximo permissível de entradas na lista de imagens de referência para a Lista 0.
[0218] Em alguns exemplos, o codificador de vídeo pode adicionar as imagens de referência a partir do primeiro subconjunto de imagens de referência na lista de imagens de referência inicial até que todos as imagens de referência no primeiro subconjunto de imagens de referência sejam listados na lista de imagens de referência inicial ou o número de lista de imagens de referência inicial entradas seja igual ao número máximo permissível de entradas na lista de imagens de referência. Quando o número de lista de imagens de referência inicial entradas é menor do que o número máximo permissível de entradas na lista de imagens de referência, e após adicionar as imagens de referência do primeiro subconjunto de imagens de referência, o codificador de vídeo pode adicionar as imagens de referência a partir do segundo subconjunto de imagens de referência na lista de imagens de referência inicial até que todos as imagens de referência no segundo subconjunto de imagens de referência sejam listados na lista de imagens de referência inicial ou o número de entradas na lista de imagens de referência inicial seja igual ao número máximo permissível de entradas na lista de imagens de referência. Quando o número de lista de imagens de referência inicial entradas é menor do que o número máximo permissível de entradas na lista de imagens de referência, e após adicionar as imagens de referência a partir do segundo subconjunto de imagens de referência, o codificador de vídeo pode adicionar as imagens de referência a partir do terceiro subconjunto de imagens de referência na lista de imagens de referência inicial até que todos as imagens de referência no terceiro subconjunto de imagens de referência sejam listados na lista de imagens de referência inicial ou o número de entradas na lista de imagens de referência inicial seja igual ao número máximo permissível de entradas na lista de imagens de referência.
[0219] O codificador de vídeo pode, de maneira similar, construir a Lista 1 inicial. Por exemplo, o codificador de vídeo pode adicionar imagens de referência a partir do segundo subconjunto de imagens de referência, seguido por imagens de referência a partir do primeiro subconjunto de imagens de referência, e seguido por imagens de referência a partir do terceiro subconjunto de imagens de referência dentro da Lista 1 inicial desde que o número de entradas na lista de imagens de referência inicial na Lista 1 inicial não seja maior do que num_ref_idx_l1_active_minus1. O elemento de sintaxe num_ref_idx_l1_active_minus1 pode definir o número máximo de entradas admissíveis na Lista 1.
[0220] Em alguns exemplos, tal como quando não é necessária a modificação, a Lista 0 inicial e a Lista 1 inicial podem ser iguais a Lista 0 final e Lista 1 final. Em outras palavras, o codificador de vídeo pode construir a Lista 0 final e Lista 1 final sem modificação da Lista 0 inicial e da Lista 1 inicial quando não é necessária modificação. Nestes casos, após construir a Lista 0 inicial e a Lista 1 inicial, o codificador de vídeo pode não precisar realizar etapas adicionais para construir a Lista 0 final e a Lista 1 final (ou seja, as listas de imagens de referência que o codificador de vídeo usa para codificar um bloco da imagem atual).
[0221] Como indicado no pseudocódigo acima, o decodificador de vídeo 30 pode construir a Lista 0 inicial, enquanto cIdx é menor ou igual a num_ref_idx_l0_active_minus1, e pode construir a Lista 1 inicial, enquanto cIdx é menor ou igual a num_ref_idx_l1_active_minus1. Isto pode resultar no decodificador de vídeo 30 construir a Lista 0 inicial e a Lista 1 inicial sem qualquer entrada não completada nas listas de imagens de referência. Por exemplo, em algumas outras técnicas de codificação de vídeo, um decodificador de vídeo para estas outras técnicas de vídeo deve construir a Lista 0 e Lista 1 iniciais, utilizando técnicas diferentes daquelas descritas nesta revelação. Para estas outras técnicas de codificação de vídeo, se o número de entradas na Lista 0 inicial e na Lista 1 inicial forem menores do que o número de entradas máximo permissível, o decodificador de vídeo para estas outras técnicas de codificação de vídeo, deve preencher as entradas remanescentes na Lista 0 e Lista 1 com “nenhuma imagem de referência” para as entradas não completadas. As entradas não completadas se referem a entradas na Lista 0 e Lista 1 após a última entrada que identifica uma imagem de referência e até a última entrada possível.
[0222] Como um exemplo ilustrativo para auxiliar o entendimento, um decodificador de vídeo para estas outras técnicas de codificação de vídeo podem construir uma Lista 0 com cinco entradas, onde o número máximo de entradas admissíveis é dez entradas. Neste exemplo, o decodificador de vídeo para estas outras técnicas de codificação de vídeo devem preencher a sexta até a décima entradas como “nenhuma imagem de referência.” Neste exemplo, as entradas não completadas devem ser a sexta entrada (por exemplo, a entrada após a última entrada que identifica uma imagem de referência) até a décima entrada (por exemplo, a última entrada possível como definido pelo número máximo de entradas admissíveis).
[0223] De acordo com as técnicas desta revelação, o decodificador de vídeo 30 pode construir a Lista 0 inicial e a Lista 1 inicial de modo que não exista nenhuma entrada não completada. Também, em exemplos onde nenhuma modificação da lista de imagens de referência é requerida, a Lista 0 final e a Lista 1 final podem ser iguais a Lista 0 inicial e a Lista 1 inicial. Portanto, em exemplos onde não é requerida nenhuma modificação da lista de imagens de referência, o decodificador de vídeo 30 pode construir a Lista 0 final e a Lista 1 final de modo que não exista nenhuma entrada não completada. Ainda onde é requerida a modificação da lista de imagens de referência, a modificação não pode resultar em quaisquer entradas não completadas. Portanto, ainda em exemplos onde é requerida a modificação da lista de imagens de referência, o decodificador de vídeo 30 pode construir a Lista 0 final e a Lista 1 final de modo que não exista nenhuma entrada não completada.
[0224] Por exemplo, a Lista 0 e a Lista 1 podem ser consideradas como listas com entradas, e cada entrada pode identificar uma imagem de referência (por exemplo, por seu valor de POC). Em outras palavras, o decodificador de vídeo 30 pode identificar uma imagem de referência por seu valor de POC em cada entrada da Lista 0 e da Lista 1. O número de entradas na Lista 0 e na Lista 1 pode ser definido pelos elementos de sintaxe num_ref_idx_l0_active_minus1 e num_ref_idx_l1_active_minus1, respectivamente.
[0225] Para assegurar que não exista nenhuma entrada não completada, o decodificador de vídeo 30 pode listar repetidamente (por exemplo, adicionar ou identificar) imagens de referência a partir dos subconjuntos de imagens de referência na Lista 0 inicial e na Lista 1 inicial até que o decodificador de vídeo 30 determine qual imagem de referência deve ser identificado em cada possível entrada da Lista 0 inicial e da Lista 1 inicial. Por exemplo, como descrito acima, para construir a Lista 0 inicial, após adicionar as imagens de referência dos subconjuntos de imagens de referência RefPicSetStCurr0 e RefPicSetStCurr1 na Lista 0 inicial, o decodificador de vídeo 30 pode adicionar imagens de referência do subconjunto de imagens de referência RefPicSetLtCurr na Lista 0 inicial.
[0226] Em alguns exemplos, é possível que o número total de entradas na Lista 0 inicial seja menor do que o número máximo de entradas admissíveis na Lista 0 após o decodificador de vídeo 30 adicionar as imagens de referência do subconjunto de imagens de referência RefPicSetLtCurr na Lista 0 inicial. Por exemplo, no pseudocódigo para construir a Lista 0 inicial, cIdx pode indicar o número de entradas na Lista 0. Em alguns exemplos, após o decodificador de vídeo 30 identificar as imagens de referência em RefPicSetLtCurr na Lista 0 inicial, o valor de cIdx pode ser menor do que num_ref_idx_l0_active_minus1, onde num_ref_idx_l0_active_minus1 especifica o número máximo de entradas admissíveis na Lista 0.
[0227] De acordo com as técnicas descritas nesta revelação, após listar as imagens de referência da partir de três da pluralidade de subconjuntos de imagens de referência, se o número de entradas na Lista 0 inicial for menor do que o número máximo de entradas admissíveis, o decodificador de vídeo 30 pode adicionar repetidamente imagens de referência a partir dos três subconjuntos de imagens de referência até que todas as entradas na Lista 0 estejam cheias. Por exemplo, após o decodificador de vídeo 30 adicionar as imagens de referência a partir do conjunto de imagens de referência RefPicSetLtCurr e o número de entradas na Lista 0 inicial ser menor do que o número máximo de entradas admissíveis, o decodificador de vídeo 30 pode então relistar (por exemplo, readicionar ou reidentificar) imagens de referência a partir do subconjunto de imagens de referência RefPicSetStCurr0.
[0228] Em aspectos descritos nesta revelação, quando o decodificador de vídeo 30 lista as imagens de referência a partir dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr, o decodificador de vídeo 30 pode ser considerado como adicionanda imagens de referência a partir desta pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas na lista de imagens de referência (por exemplo, Lista 0). Por exemplo, o primeiro conjunto de entradas podem ser as entradas na lista de imagens de referência pelas quais o decodificador de vídeo 30 identifica as imagens de referência dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Então, se o número de entradas na lista de imagens de referência for menor do que o número de entradas máximo permissível, o decodificador de vídeo 30 pode relistar (por exemplo, readicionar ou reidentificar) um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas. As entradas subsequentes ao primeiro conjunto de entradas podem ser as entradas que seguem o primeiro conjunto de entradas, pelo que o decodificador de vídeo 30 adiciona imagens de referência já listados a partir de um ou mais dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr, como descrito abaixo.
[0229] Se, enquanto readiciona imagens de referência do subconjunto de imagens de referência RefPicSetStCurr0, o número total de entradas na Lista 0 inicial for igual a num_ref_idx_l0_active_minus1, o decodificador de vídeo 30 pode parar de readicionar imagens de referência na Lista 0 inicial. Neste caso, o decodificador de vídeo 30 pode ter completado a construção da Lista 0 inicial, e não pode haver nenhuma entrada não completada. Caso contrário, o decodificador de vídeo 30 pode readicionar imagens de referência do subconjunto de imagens de referência RefPicSetStCurr0 até que todos as imagens de referência do subconjunto de imagens de referência RefPicSetStCurr0 sejam relistados.
[0230] Se após readicionar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr0, o número de entradas na Lista 0 inicial for menor do que num_ref_idx_l0_active_minus1, o decodificador de vídeo 30 pode então readicionar imagens de referência a partir do subconjunto de imagens de referência RefPicSetStCurr1, de uma maneira similar à forma pela qual o decodificador de vídeo 30 relistou as imagens de referência do subconjunto de imagens de referência RefPicSetStCurr0. Se após readicionar todos as imagens de referência no subconjunto de imagens de referência RefPicSetStCurr1, o número de entradas na Lista 0 inicial for menor do que num_ref_idx_l0_active_minus1, o decodificador de vídeo 30 pode então readicionar imagens de referência a partir do subconjunto de imagens de referência RefPicSetLtCurr, de uma maneira similar à forma pela qual o decodificador de vídeo 30 relistou as imagens de referência a partir dos subconjuntos de imagens de referência RefPicSetStCurr0 e RefPicSetStCurr1. O codificador de vídeo 30 adiciona repetidamente imagens de referência dos subconjuntos de imagens de referência até o número de entradas na Lista 0 inicial ser igual ao número máximo de entradas admissíveis para a Lista 0 (ou seja, igual a num_ref_idx_l0_active_minus1).
[0231] Por exemplo, assumindo que existe uma imagem de referência em RefPicSetStCurr0, uma imagem de referência em RefPicSetCurr1, e uma imagem de referência em RefPicSetLtCurr. Também, assumindo que num_ref_idx_l0_active_minus1 seja igual a cinco. Neste exemplo, o decodificador de vídeo 30 pode identificar a imagem de referência em RefPicSetStCurr0 em duas entradas na Lista 0 inicial. Por exemplo, o decodificador de vídeo 30 pode identificar a imagem de referência em RefPicSetStCurr0 na primeira entrada da Lista 0 inicial, e reidentificar a imagem de referência em RefPicSetStCurr0 na quarta entrada da Lista 0 inicial. Neste exemplo, o valor do índice para a imagem de referência em RefPicSetStCurr0 pode ser índice [0] para a primeira entrada na Lista 0 inicial, e índice[3] para a quarta entrada na Lista 0 inicial. Consequentemente, em alguns exemplos, uma imagem de referência de um dos subconjuntos de imagens de referência pode ser listada (por exemplo, identificada) mais do que uma vez nas listas de imagens de referência iniciais.
[0232] O decodificador de vídeo 30 pode de maneira similar construir a Lista 1 inicial de modo que não exista nenhuma entrada não completada na Lista 1 inicial. Por exemplo, o decodificador de vídeo 30 pode adicionar repetidamente imagens de referência a partir dos subconjuntos de imagens de referência RefPicSetStCurr1, RefPicSetStCurr0, e RefPicSetLtCurr, nesta ordem, até o número de entradas na Lista 1 inicial ser igual ao número máximo de entradas admissíveis na Lista 1 (ou seja, ser igual a num_ref_idx_l1_active_minus1).
[0233] Desta forma, devido aos ciclos “for” serem aninhados dentro do ciclo “while”, no pseudocódigo acima para construir a Lista 0 inicial e a Lista 1 inicial, o decodificador de vídeo 30 pode construir a Lista 0 inicial e a Lista 1 inicial de modo que não exista nenhuma entrada não completada na Lista 0 inicial e na Lista 1 inicial (ou seja, nenhuma entrada não completada após o processo de inicialização). Em alguns exemplos, cada uma das entradas na Lista 0 inicial e na Lista 1 inicial pode identificar uma imagem de referência de um dos subconjuntos de imagens de referência. Em alguns exemplos, pode ser possível que um ou mais imagens de referência de um dos subconjuntos de imagens de referência seja identificado mais do que uma vez nas listas de imagens de referência finais, mas em entradas diferentes com valores de índice diferentes.
[0234] Embora os exemplos precedentes descrevam as técnicas para construção da lista de imagens de referência sem nenhuma entrada não completada como sendo realizada pelo decodificador de vídeo 30, aspectos desta revelação não são tão limitados, e o codificador de vídeo 20 pode implementar técnicas similares para construir as listas de imagens de referência sem nenhuma entrada não completada. Entretanto, pode não ser necessário que o codificador de vídeo 20 construa as listas de imagens de referência da mesma forma pela qual o decodificador de vídeo 30 constrói as listas de imagens de referência.
[0235] Consequentemente, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode ser configurado para codificar (por exemplo, codificar ou decodificar) informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Como descrito acima, o conjunto de imagens de referência identifica imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0236] O codificador de vídeo pode construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência (por exemplo, os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr). O codificador de vídeo pode listar (por exemplo, identificar ou adicionar) imagens de referência a partir da pluralidade de subconjuntos de imagens de referência dentro de um primeiro conjunto de entradas em uma lista de imagens de referência. O codificador de vídeo pode determinar se um número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência.
[0237] Quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, o codificador de vídeo pode readicionar repetidamente (por exemplo, reidentificar) um ou mais imagens de referência de pelo menos um das imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência. O codificador de vídeo pode então codificar a imagem atual baseado na lista de imagens de referência construída.
[0238] Como descrito acima, em alguns exemplos, o codificador de vídeo 20 pode sinalizar elementos de sintaxe que instruem o decodificador de vídeo 30 para modificar uma lista ou listas de imagens de referência inicial. Por exemplo, o decodificador de vídeo 30 pode construir a lista de imagens de referência inicial ou listas da maneira descrita acima. Então, em alguns casos, o decodificador de vídeo 30 pode decodificar elementos de sintaxe a partir do fluxo de bits codificado que instrui o decodificador de vídeo 30 para modificar a lista ou listas de imagens de referência inicial para construir a lista ou listas de imagens de referência final. Em geral, na modificação, o decodificador de vídeo 30 pode mapear um ou mais das imagens identificadas em um ou mais da pluralidade de subconjuntos de imagens de referência em uma entrada de uma das listas de imagens de referência após a inicialização da lista de imagens de referência.
[0239] Por exemplo, após o decodificador de vídeo 30 construir a lista ou listas de imagens de referência inicial da maneira descrita acima, o decodificador de vídeo 30 pode modificar pelo menos uma das entradas em uma das listas de imagens de referência iniciais da maneira instruída pelo fluxo de bits codificado. Por exemplo, o codificador de vídeo 20 pode indicar como parte dos elementos de sintaxe de modificação qual imagem dentre uma da pluralidade de subconjuntos de imagens de referência deve ser identificada em uma entrada da lista de imagens de referência, embora aquela entrada da lista de imagens de referência possa já identificar uma imagem de referência como parte do processo de inicialização. Em alguns exemplos, as técnicas de modificação da lista de imagens de referência descritas nesta revelação podem permitir modificação de uma forma flexível. Por exemplo, pode ser possível que o decodificador de vídeo 30 identifique em uma ou ambas as listas de imagens de referência uma imagem de referência que não está nas listas de imagens de referência iniciais.
[0240] Como usada nesta revelação, a expressão “lista de imagens de referência modificada” se refere à lista de imagens de referência após a modificação da lista de imagens de referência inicial. A lista de imagens de referência modificada pode ser a lista de imagens de referência final. O número de entradas na lista de imagens de referência modificada é num_ref_idx_l0_active_minus1 + 1 para a Lista 0, e num_ref_idx_l1_active_minus1 + 1 para a Lista 1. Uma imagem de referência pode aparecer em mais do que um índice (por exemplo, entrada) nas listas de referência modificadas para a Lista 0 e Lista 1.
[0241] Para modificação da lista de imagens de referência, o codificador de vídeo 20 pode sinalizar os elementos de sintaxe da tabela 6. Tabela 6. Sintaxe de Modificação da Lista de Imagens de referência
Figure img0011
[0242] Os elementos de sintaxe modification_of_ref_pic_idc, short_term_ref_pic_set_idx e long_term_ref_pic_set_idx podem especificar a mudança das listas de imagens de referência iniciais para as listas de imagens de referência a serem usadas para decodificar a fatia.
[0243] ref_pic_lista_modification_flag_l0 igual a 1 pode especificar que o elemento de sintaxe modification_of_ref_pic_idc está presente para especificar a lista de imagens de referência 0. ref_pic_lista_modification_flag_l0 igual a 0 especifica que este elemento de sintaxe não está presente.
[0244] Quando a ref_pic_lista_modification_flag_l0 é igual a 1, o número de vezes que modification_of_ref_pic_idc não é igual a 3 seguindo ref_pic_lista_modification_flag_l0 não pode exceder num_ref_idx_l0_active_minus1 + 1.
[0245] ref_pic_lista_modification_flag_l1 igual a 1 pode especificar que a sintaxe modification_of_ref_pic_idc está presente para especificar lista de imagens de referência 1. ref_pic_lista_modification_flag_l1 igual a 0 pode especificar que este elemento de sintaxe não está presente.
[0246] Quando ref_pic_lista_modification_flag_l1 é igual a 1, o número de vezes que modification_of_ref_pic_idc não é igual a 3 seguindo ref_pic_lista_modification_flag_l1 não pode exceder num_ref_idx_l1_active_minus1 + 1.
[0247] modification_of_ref_pic_idc juntamente com short_term_ref_pic_set_idx ou long_term_ref_pic_set_idx pode especificar quais das imagens de referência são remapeados. Os valores de modification_of_ref_pic_idc são especificados na tabela 7. O valor dos primeiro modification_of_ref_pic_idc que segue imediatamente após ref_pic_lista_modification_flag_l0 ou ref_pic_lista_modification_flag_l1 pode não ser igual a 3.
[0248] ref_pic_set_idx especifica o índice, para RefPicSetStCurr0, RefPicSetStCurr1 ou RefPicSetLtCurr, da imagem de referência sendo movido para o índice corrente na lista de imagens de referência. O valor de ref_pic_set_idx pode ficar no intervalo de 0 a max_num_ref_frames, inclusive. Tabela 7. Operações modification_of_ref_pic_idc para modificação de istas de imagens de referência
Figure img0012
[0249] Para modificação da lista de imagens de referência, quando ref_pic_lista_modification_flag_l0 é igual a 1, o decodificador de vídeo 30 pode modificar a lista de imagens de referência inicial 0 (ou seja, a Lista 0 inicial), e quando ref_pic_lista_modification_flag_l1 é igual a 1, o decodificador de vídeo 30 pode modificar a lista de imagens de referência inicial 1 (ou seja, a Lista 1 inicial). Para auxiliar o entendimento a modificação da lista de imagens de referência, assume que a variável refIdxL0 é um índice dentro da Lista 0 inicial, e que a variável refIdxL1 é um índice dentro da Lista 1 inicial. Em outras palavras, refIdxL0 pode identificar a entrada da Lista 0 inicial (ou seja, um índice para a Lista 0 inicial identifica uma entrada da Lista 0 inicial), e refIdxL1 pode identificar a entrada da Lista 1 inicial. As variáveis refIdxL0 e refIdxL1 podem ser determinadas iguais a 0 inicialmente.
[0250] O decodificador de vídeo 30 pode processar os elementos de sintaxe para a modification_of_ref_pic_idc no processo os elementos de sintaxe ocorrer no fluxo de bits. Por exemplo, se o codificador de vídeo 20 sinalizar que é necessária a modificação da lista de imagens de referência para a Lista 0 inicial, então o decodificador de vídeo 30 pode processar a ordem pela qual o codificador de vídeo 20 sinaliza o elemento de sintaxe modification_of_ref_pic_idc para modificar a Lista 0 inicial. De maneira similar, se o codificador de vídeo 20 sinalizar que é necessária a modificação da lista de imagens de referência para a Lista 1 inicial, então o decodificador de vídeo 30 pode processar a ordem pela qual o codificador de vídeo 20 sinaliza o elemento de sintaxe modification_of_ref_pic_idc para modificar a Lista 1 inicial.
[0251] O valor do elemento de sintaxe modification_of_ref_pic_idc pode ser 0, 1, 2, ou 3, como indicado na tabela 7. Se o valor do elemento de sintaxe modification_of_ref_pic_idc é 3, então o decodificador de vídeo 30 pode parar a modificação da lista de imagens de referência inicial. Caso contrário, o decodificador de vídeo 30 pode manter a modificação da lista de imagens de referência inicial até que o valor do elemento de sintaxe modification_of_ref_pic_idc seja 3. Por exemplo, o codificador de vídeo 20 pode sinalizar uma pluralidade de valores para o elemento de sintaxe modification_of_ref_pic_idc, e decodificador de vídeo 30 pode processar cada um dos valores na ordem pela qual os valores são apresentados no fluxo de bits codificado. Quando o decodificador de vídeo 30 processa o valor do elemento de sintaxe modification_of_ref_pic_idc para ser 3, o decodificador de vídeo 30 pode determinar que não é necessária nenhuma modificação adicional.
[0252] O valor do elemento de sintaxe modification_of_ref_pic_idc sendo algum diferente de 3 (ou seja, 0, 1, ou 2) pode indicar a partir de quais subconjuntos de imagens de referência o decodificador de vídeo 30 deve identificar uma imagem de referência que é para ser listada (por exemplo, adicionada) em uma entrada corrente da lista de imagens de referência. Como descrito acima, a entrada corrente da lista de imagens de referência pode ser identificada pelo valor de refIdxLX, onde LX é ou a Lista 0 ou a Lista 1. Por exemplo, se o decodificador de vídeo 30 está modificando a Lista 0 inicial, e o modification_of_ref_pic_idc é 0, então de acordo com a tabela 7, o decodificador de vídeo 30 pode determinar qual imagem de referência de RefPicSetStCurr0 é para ser identificado em uma entrada corrente da lista de imagens de referência baseado no valor do ref_pic_set_idx. Se o decodificador de vídeo 30 estiver modificando a Lista 1 inicial, e o modification_of_ref_pic_idc for 0, então de acordo com tabela 7, o decodificador de vídeo 30 pode determinar qual imagem de referência de RefPicSetStCurr1 é para ser identificado em uma entrada corrente da lista de imagens de referência baseado no valor do ref_pic_set_idx. Por exemplo, a variável curRefPicSet pode definir qual subconjunto de imagens de referência o decodificador de vídeo 30 deve usar para modificar a Lista 0 inicial ou a Lista 1 inicial.
[0253] Por exemplo, se modification_of_ref_pic_idc for igual a 0, e o decodificador de vídeo 30 estiver modificando a Lista 0 inicial, então curRefPicSet é igual ao subconjunto de imagens de referência RefPicSetStCurr0. Se modification_of_ref_pic_idx for igual a 0, e o decodificador de vídeo 30 estiver modificando a Lista 1 inicial, então curRefPicSet é igual ao subconjunto de imagens de referência RefPicSetStCurr1.
[0254] Se o decodificador de vídeo 30 estiver modificando a Lista 0 inicial, e o modification_of_ref_pic_idc for 1, então de acordo com a tabela 7, o decodificador de vídeo 30 pode determinar qual imagem de referência de RefPicSetStCurr1 é para ser identificado em uma entrada corrente da lista de imagens de referência baseado no valor do ref_pic_set_idx. Se o decodificador de vídeo 30 estiver modificando a Lista 1 inicial, e o modification_of_ref_pic_idc for 1, então de acordo com a tabela 7, o decodificador de vídeo 30 pode determinar qual imagem de referência de RefPicSetStCurr0 é para ser identificado em uma entrada corrente da lista de imagens de referência baseado no valor do ref_pic_set_idx.
[0255] Neste caso, se modification_of_ref_pic_idc for igual a 1, e o decodificador de vídeo 30 estiver modificando a Lista 0 inicial, então curRefPicSet é igual ao subconjunto de imagens de referência RefPicSetStCurr1. Se modification_of_ref_pic_idx for igual a 1, e o decodificador de vídeo 30 estiver modificando a Lista 1 inicial, então curRefPicSet é igual ao subconjunto de imagens de referência RefPicSetStCurr0.
[0256] Se o decodificador de vídeo 30 estiver modificando a Lista 0 inicial ou a Lista 1 inicial, e o modification_of_ref_pic_idc rf 2, então de acordo com a tabela 7, o decodificador de vídeo 30 pode determinar qual imagem de referência de RefPicSetLtCurr é para ser identificado em uma entrada corrente da lista de imagens de referência baseado no valor do ref_pic_set_idx. Neste exemplo, se modification_of_ref_pic_idc for igual a 2, e o decodificador de vídeo 30 estiver modificando a Lista 0 inicial ou a Lista 1 inicial, então curRefPicSet é igual ao subconjunto de imagens de referência RefPicSetLtCurr.
[0257] Como descrito acima, o elemento de sintaxe ref_pic_set_idx pode indicar o índice dentro de um da pluralidade de subconjuntos de imagens de referência. Em outras palavras, o elemento de sintaxe ref_pic_set_idx pode indicar para o decodificador de vídeo 30 a entrada de um a pluralidade de subconjuntos de imagens de referência. O decodificador de vídeo 30 pode determinar a imagem de referência identificado na entrada de um da pluralidade de subconjuntos de imagens de referência como a imagem de referência que é para ser identificado em um índice corrente da Lista 0 inicial ou da Lista 1 inicial.
[0258] A variável curRefPicPoc pode ser igual a PicOrderCnt(curRefPicSet[ref_pic_set_idx]). Desta forma, o valor de curRefPicPoc pode ser o valor de POC da imagem de referência identificado na entrada ref_pic_set_idx de curRefPicSet. Como descrito acima, curRefPicSet pode ser igual a RefPicSetStCurr0, RefPicSetStCurr1, ou RefPicSetLtCurr baseado no valor do elemento de sintaxe modification_of_ref_pic_idc e baseado em se o decodificador de vídeo 30 está modificando a Lista 0 inicial ou a Lista 1 inicial.
[0259] O decodificador de vídeo 30 pode implementar o pseudocódigo a seguir para modificação da lista de imagens de referência. Por exemplo, no pseudocódigo a seguir, o decodificador de vídeo 30 pode identificar a imagem com o valor de POC igual a curRefPicPoc em uma entrada da lista de imagens de referência inicial. A variável refIdxLX indica a posição do índice para a entrada na lista de imagens de referência inicial. Por exemplo, quando o decodificador de vídeo 30 estiver modificando a Lista 0 inicial, refIdxLX pode ser refIdxL0, e quando o decodificador de vídeo 30 estiver modificando a Lista 1 inicial, refIdxLX pode ser refIdxL1.
[0260] Após o decodificador de vídeo 30 identificar a imagem de referência com o valor de POC igual a curRefPicPOC na lista de imagens de referência inicial (ou seja, a Lista 0 inicial ou a Lista 1 inicial), o decodificador de vídeo 30 pode deslocar a posição dos outros imagens remanescentes para posições posteriores na lista. Por exemplo, o decodificador de vídeo 30 pode mover imagens de referência identificados na lista de imagens de referência inicial em entradas que seguem a entrada corrente para uma próxima entrada para construir a lista modificada de imagens de referência. Como um exemplo ilustrativo, assumindo que a entrada corrente na lista de imagens de referência inicial é a terceira entrada com índice [2]. O decodificador de vídeo 30 pode mover a imagem de referência correntemente identificado na terceira entrada com índice [2] para dentro de uma próxima entrada (por exemplo, a quarta entrada com índice [3]). O decodificador de vídeo 30 pode mover a imagem de referência correntemente identificada na quarta entrada com índice [3] para a quinta entrada com índice [4]. Em alguns exemplos, o decodificador de vídeo 30 pode iniciar a partir da última entrada na lista de imagens de referência inicial, e mover a imagem de referência identificada naquela entrada para uma nova entrada temporária. Então mover a imagem de referência identificada na penúltima entrada para a última entrada, e assim por diante, até que o decodificador de vídeo 30 alcance a entrada corrente.
[0261] O decodificador de vídeo 30 pode então incrementar o valor da variável refIdxLX. Neste pseudocódigo, o comprimento do RefPicListX (ou seja, RefPicLista0 ou RefPicLista1) é tornado temporariamente um elemento mis longo do que o comprimento necessário para a lista final de imagens de referência. Por exemplo, como descrito acima, o decodificador de vídeo 30 pode iniciar a partir da última entrada na lista de imagens de referência inicial, mover aquela última entrada para a entrada temporária, mover a penúltima entrada para a última entrada, e assim por diante para modificar a lista de imagens de referência inicial. Após a execução do pseudocódigo, o decodificador de vídeo 30 pode reter somente as entradas no índice 0 através de num_ref_idx_lX_active_minus1, onde num_ref_idx_lX_active_minus1 é num_ref_idx_l0_active_minus1 para a Lista 0, e num_ref_idx_l1_active_minus1 para a Lista 1. for( cIdx = num_ref_idx_lX_active_minus1 + 1; cIdx > refIdxLX; cIdx- - ) RefPicListX[ cIdx ] = RefPicListX[ cIdx - 1] RefPicListX[ refIdxLX++ ] = reference picture with PicOrderCnt equal to currRefPicPoc nIdx = refIdxLX for( cIdx = refIdxLX; cIdx <= num_ref_idx_lX_active_minus1 + 1; cIdx++ ) if( PicOrderCnt( RefPicListX[ cIdx ] ) != currRefPicPoc) RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]
[0262] Em o pseudocódigo acima, RefPicListX se refere ou a RefPicList0 (ou seja, a Lista 0 final) ou a RefPicList1 (ou seja, a lista final 1) baseado em se o decodificador de vídeo 30 estiver modificando a Lista 0 inicial ou a Lista 1 inicial. num_ref_idx_lX_active_minus1 se refere ou a num_ref_idx_l0_active_minus1 ou a ref_idx_l1_active_minus1 baseado em se decodificador de vídeo 30 estiver modificando a Lista 0 inicial ou a Lista 1 inicial.
[0263] As técnicas acima descrevem uma forma exemplificativa pela qual o decodificador de vídeo 30 pode modificar uma lista de imagens de referência inicial. Durante o processo de codificação, o codificador de vídeo 20 também pode precisar decodificar imagem codificada para propósitos de codificar imagens subsequentes. Consequentemente, em alguns exemplos, o codificador de vídeo 20 também pode ser configurado para construir as listas de imagens de referência iniciais, e modificar as listas de imagens de referência iniciais da maneira descrita acima. Entretanto, o codificador de vídeo 20 pode não precisar modificar a lista ou listas de imagens de referência inicial em todos os exemplos. Em alguns exemplos, o decodificador de vídeo 30 pode ser o único codificador que modifica a imagem de referência inicial utilizando as técnicas descritas acima.
[0264] Consequentemente, em alguns exemplos, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode construir uma lista de imagens de referência inicial (por exemplo, a Lista 0 inicial ou a Lista 1 inicial) utilizando as técnicas descritas acima. O codificador de vídeo pode determinar se a modificação da lista de imagens de referência é necessária com base nos elementos de sintaxe codificados no fluxo de bits codificado. Quando a modificação da lista de imagens de referência é necessária, o codificador de vídeo pode modificar a lista de imagens de referência inicial.
[0265] Por exemplo, quando é necessária a modificação da lista de imagens de referência, o codificador de vídeo pode identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos. O codificador de vídeo pode listar (por exemplo, adicionar) o subconjunto de imagens de referência identificado em uma entrada corrente da lista de imagens de referência inicial para construir uma lista modificada de imagens de referência. O codificador de vídeo pode então codificar (por exemplo, codificar ou decodificar) a imagem atual baseada na lista modificada de imagens de referência.
[0266] Como um exemplo, o codificador de vídeo pode construir os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Para identificar uma imagem de referência em pelo menos um destes subconjuntos de imagens de referência, o codificador de vídeo pode determinar um índice dentro de pelo menos um destes subconjuntos de imagens de referência. O codificador de vídeo pode então determinar a imagem de referência identificada em uma entrada a partir de pelo menos um destes subconjuntos de imagens de referência baseado no índice determinado.
[0267] Por exemplo, o codificador de vídeo pode codificar (por exemplo, codificar ou decodificar) um primeiro elemento de sintaxe, tal como o elemento de sintaxe modification_of_ref_pic_idc, com o qual o codificador de vídeo identifica um dos subconjuntos de imagens de referência (por exemplo, um dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr). O codificador de vídeo pode codificar um segundo elemento de sintaxe, tal como o elemento de sintaxe ref_pic_set_idx, que indica o índice dentro do subconjunto de imagens de referência identificado (por exemplo, um dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr).
[0268] Em alguns exemplos, o codificador de vídeo pode ser configurado adicionalmente para mover as imagens de referência na lista de imagens de referência inicial. Por exemplo, o codificador de vídeo pode mover as imagens de referência identificados na lista de imagens de referência inicial em entradas que seguem a entrada corrente para uma próxima entrada na lista modificada de imagens de referência.
[0269] Os exemplos prévios descreveram a forma pela qual o codificador de vídeo 20 e o decodificador de vídeo 30 podem derivar um conjunto de imagens de referência, também como técnicas exemplificativas para construir listas de imagens de referência quando não é necessária nenhuma modificação e quando é necessária modificação. Entretanto, as técnicas descritas nesta revelação não são tão limitadas. Em alguns exemplos, as técnicas descritas nesta revelação podem ser dirigidas ao gerenciamento de memória temporária de imagem decodificada (DPB). A DPB pode ser uma memória temporária que armazena imagens decodificadas.
[0270] Cada um de codificador de vídeo 20 e decodificador de vídeo 30 pode incluir respectivas DPBs. Por exemplo, como parte do processo de codificação, o codificador de vídeo 20 pode decodificar uma imagem atual, armazenar a imagem decodificada na DPB do codificador de vídeo 20, e utilizar a imagem decodificada armazenada na DPB para interpredição de uma imagem subsequente. De maneira similar, como parte do processo de decodificação, o decodificador de vídeo 30 pode decodificar uma imagem atual e armazenar a imagem decodificada na DPB do decodificador de vídeo 30. O decodificador de vídeo 30 pode então utilizar a imagem decodificada para interpredição de uma imagem subsequente.
[0271] Em alguns exemplos, a DPB para ou o codificador de vídeo 20 ou o decodificador de vídeo 30 pode armazenar imagens decodificadas para reordenação da saída ou atraso da saída. Por exemplo, o decodificador de vídeo 30 pode determinar que as imagens decodificadas devem ser reordenadas para sair ou que a saída de uma imagem decodificada deve ser atrasada. Nestes exemplos, a DPB do decodificador de vídeo 30 pode armazenar as imagens decodificadas para reordenação da saída ou atraso da saída.
[0272] As técnicas de gerenciamento da DPB descritas nesta revelação podem ser dirigidas à forma pela qual a DPB fornece e remove imagens decodificadas. O elemento de sintaxe output_flag pode afetar os processos de saída e remoção da imagem decodificada, e pode ser definido como parte da semântica da unidade de camada de abstração de rede (NAL). Uma unidade NAL pode ser definida como uma estrutura de sintaxe que inclui uma indicação do tipo de dados a seguir e bytes que incluem aqueles dados na formar de uma carga útil de sequência de bytes bruta (RBSP) intercalados como necessário com bytes de prevenção de emulação. A RBSP pode ser uma estrutura de sintaxe que inclui um número inteiro de bytes que são encapsulados em uma unidade NAL. Uma RBSP pode estar ou vazia ou ter a forma de uma sequência de bits de dados que inclui elementos de sintaxe seguidos por um bit de parada de RBSP e seguido por zero ou mais bits subsequentes iguais a 0. A tabela 8 define a sintaxe da unidade NAL. Tabela 8. Sintaxe da unidade NAL
Figure img0013
Figure img0014
[0273] Em a tabela 8, o output_flag pode afetar o processo de saída e remoção da imagem decodificada como descrito em mais detalhe abaixo. Para qualquer imagem, se output_flag é igual a 1, a imagem é destinada à saída. Caso contrário, a imagem nunca é emitida. Nas técnicas descritas nesta revelação, a variável OutputFlag é igual ao elemento de sintaxe output_flag.
[0274] Em alguns exemplos, qualquer unidade NAL da fatia codificada da imagem codificada da unidade de acesso corrente pode ser diferente de qualquer unidade NAL da fatia codificada da imagem codificada da unidade de acesso prévia em uma ou mais das formas a seguir. Por exemplo, os valores de pic_parameter_set_id podem ser diferentes, os valores de nal_ref_idc podem ser diferentes, com um dos valores de nal_ref_idc sendo igual a 0. Os valores de pic_order_cnt_lsb podem ser diferentes. Os valores de IdrPicFlag podem ser diferentes. O IdrPicFlag pode ser igual a 1 para ambos, e os valores de idr_pic_id podem ser diferentes.
[0275] Em as técnicas descritas nesta revelação, a unidade de acesso pode ser definida como um conjunto de unidades NAL que são consecutivas na ordem de decodificação e contêm uma imagem codificada. Adicionalmente à imagem codificada, uma imagem codificada auxiliar, ou outras unidades NAL podem não conter fatias de uma imagem codificada. Em alguns exemplos, a decodificação de uma unidade de acesso pode resultar em uma imagem decodificada. A imagem codificada pode ser a representação codificada de uma imagem para ser usada pelo processo de decodificação.
[0276] Como indicado na tabela 4, a sintaxe do cabeçalho da fatia pode incluir o elemento de sintaxe pic_parameter_set_id, o elemento de sintaxe pic_order_cnt_lsb, o elemento de sintaxe IdrPicFlag, e o elemento de sintaxe idr_pic_id. Como indicado na tabela 8, a sintaxe da unidade NAL pode incluir o elemento de sintaxe nal_ref_idc.
[0277] Para propósitos de ilustração, as técnicas de gerenciamento da DPB são descritas da perspectiva de um decodificador de referência hipotético (HRD). O HRD pode ser definido como um modelo de decodificador hipotético que especifica restrições na variabilidade de conformação de fluxos da unidade NAL ou conformação de fluxos de byte que um processo de codificação pode produzir. Entretanto, de acordo com as técnicas descritas nesta revelação, o decodificador de vídeo 30 pode implementar as técnicas de gerenciamento da DPB, e em alguns exemplos, pode ser possível para o codificador de vídeo 20 também implementar as técnicas de gerenciamento da DPB.
[0278] O modelo HDR pode definir uma memória temporária de imagem codificada (CPB), um processo de decodificação instantâneo, e uma memória temporária de imagem decodificada (DPB). A CPB pode ser similar a CPB de modelos HDR definidos em outros padrões prévios (ou seja, o CPB pode armazenar imagens codificadas). As técnicas descritas nesta revelação são dirigidas às operações de DPB que são diferentes daquelas operações em outros padrões. Novamente, deve ser entendido que o decodificador de vídeo 30 e possivelmente o codificador de vídeo 20 podem implementar as operações de DPB como descrito abaixo.
[0279] Em geral, as técnicas descritas nesta revelação são relacionadas à saída e remoção de imagens decodificadas na DPB. A saída de uma imagem decodificada, neste contexto, significa emitir a imagem de decodificação para exibição, armazenamento ou outros propósitos. Entretanto, uma imagem decodificada que é emitida não precisa necessariamente ser removida da DPB. Por exemplo, o decodificador de vídeo 30 pode não remover uma imagem decodificada que é emitida da DPB devido ao decodificador de vídeo 30 poder precisar utilizar aquela imagem decodificada como uma imagem de referência para interpredição de uma imagem subsequente. A remoção de uma imagem decodificada, neste contexto, significa a remoção da imagem decodificada da DPB.
[0280] Por exemplo, o decodificador de vídeo 30 pode armazenar imagens decodificadas na DPB de decodificador de vídeo 30 na ordem pela qual as imagens são decodificadas. Entretanto, a ordem de decodificação das imagens pode não ser a mesma que a ordem de saída das imagens. Por exemplo, pode haver imagens subsequente a uma imagem atual na ordem de decodificação que devem ser emitidas anteriormente à imagem atual. Consequentemente, em alguns exemplos, o decodificador de vídeo 30 pode realizar reordenação pela qual o decodificador de vídeo 30 reordena as imagens na DPB que são ordenadas na ordem de decodificação na ordem de saída. O decodificador de vídeo 30 pode então emitir as imagens decodificadas em sua ordem de saída. O decodificador de vídeo 30 também pode remover imagens da imagem decodificada se a imagem não for necessária para saída (ou seja, a mesmo foi emitida ou não é destinada a saída) e não for necessária para a interpredição (ou seja, não necessária para ser usada como uma imagem de referência para interpredição).
[0281] Em as técnicas descritas nesta revelação, o decodificador de vídeo 30 pode remover uma imagem decodificada da DPB se a imagem decodificada tiver sido emitida ou não for destinada à saída, e se a imagem decodificada não for identificada no conjunto de imagens de referência derivado, o que é equivalente a não ser mais necessária para referência de interpredição (ou seja, não mais necessária para ser usada como uma imagem de referência para interpredição). Novamente, como descrito acima, o conjunto de imagens de referência pode identificar imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual, e que podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. De acordo com as técnicas descritas nesta revelação, se uma imagem decodificada não é identificada no conjunto de imagens de referência derivado, então aquela imagem decodificada pode não ser necessária como uma imagem de referência para interpredição (por exemplo, decodificação) da imagem atual e de um ou mais imagens que seguem a imagem atual na ordem de decodificação. Portanto, esta imagem decodificada pode ser removida da DPB se a imagem decodificada não for necessária para saída devido a poder não haver nenhuma necessidade para manter esta imagem decodificada na DPB dado que a imagem decodificada não será usada para interpredição.
[0282] Além disso, nas técnicas descritas nesta revelação, o decodificador de vídeo 30 pode remover uma imagem decodificada anterior à decodificação de uma imagem atual. Por exemplo, como descrito acima, o decodificador de vídeo 30 pode derivar um conjunto de imagens de referência, e construir lista(s) de imagens de referência anterior(es) à decodificação da imagem atual. Devido ao decodificador de vídeo 30 poder derivar o conjunto de imagens de referência anteriormente a decodificar a imagem atual, o decodificador de vídeo 30 pode ser configurado para determinar se uma imagem decodificada que não é necessária para saída deve ser removida antes de decodificar a imagem atual. Por exemplo, após derivar o conjunto de imagens de referência e antes de decodificar a imagem atual, o decodificador de vídeo 30 pode determinar se uma imagem decodificada emitida ou uma imagem decodificada não destinada à saída não está identificada no conjunto de imagens de referência. Então, antes de decodificar a imagem atual, o decodificador de vídeo 30 pode remover a imagem decodificada não necessáriao para saída (ou seja, já emitida ou não destinada à saída) se a imagem decodificada não for identificada no conjunto de imagens de referência.
[0283] Em alguns exemplos, o decodificador de vídeo 30 pode remover uma imagem decodificada antes de decodificar a imagem atual. Entretanto, o decodificador de vídeo 30 pode remover a imagem decodificada após construir a(s) lista(s) de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode derivar o conjunto de imagens de referência, e pode construir as listas de imagens de referência baseado no conjunto de imagens de referência. Então, antes de decodificar a imagem atual, o decodificador de vídeo 30 pode remover a imagem decodificada. Em alguns exemplos, o decodificador de vídeo 30 também pode emitir a imagem decodificada após construir a(s) lista(s) de imagens de referência.
[0284] Esta revelação descreve as técnicas de remoção de imagens decodificadas na DPB a partir de pelo menos duas perspectivas. Na primeira perspectiva, o decodificador de vídeo 30 pode remover imagens decodificadas baseado em uma hora de saída se as imagens são destinadas à saída. na segunda perspectiva, o decodificador de vídeo 30 pode remover imagens decodificadas baseado nos valores de POC se as imagens são destinadas à saída. Em quaisquer perspectives, o decodificador de vídeo 30 pode remover imagens decodificadas que não são necessárias para saída (ou seja, já emitidas ou não destinadas à saída) quando a imagem decodificada não estiver no conjunto de imagens de referência, e antes de decodificar a imagem atual.
[0285] A DPB pode incluir uma pluralidade de memórias temporárias, e cada memória temporária pode armazenar uma imagem decodificada que é para ser usada como uma imagem de referência ou é mantida para saída futura. Inicialmente, a DPB fica vazia (ou seja, a totalidade da DPB é determinada para zero). Nas técnicas exemplificativas descritas, a remoção das imagens decodificadas da DPB pode ocorrer antes da decodificação da imagem atual, mas após o decodificador de vídeo 30 analisar o cabeçalho da fatia da primeira fatia da imagem atual.
[0286] Em a primeira perspectiva, as técnicas a seguir podem ocorrer instantaneamente no tempo tr(n) na sequência a seguir. Neste exemplo, tr(n) é a hora de remoção da CPB (ou seja, hora de decodificação) da unidade de acesso n que contém a imagem atual. Como descrito nesta revelação, as técnicas que ocorrem instantaneamente podem significar que o modelo no HDR, é assumido que a decodificação de uma imagem é instantânea (ou seja, ilimitadamente rápida) com um período de tempo para decodificar uma imagem igual a zero.
[0287] Se a imagem atual é uma imagem IDR, e quando a imagem IDR não é a primeira imagem IDR e o valor de valor de pic_width_in_luma_samples ou pic_height_in_luma_samples ou max_dec_frame_buffering derivado do conjunto de parâmetros da sequência ativa é diferente do valor de pic_width_in_luma_samples ou pic_height_in_luma_samples ou max_dec_frame_buffering derivado do conjunto de parâmetros de sequência que estava ativo para a imagem precedente, respectivamente, o decodificador de vídeo 30 pode inferir que o elemento de sintaxe no_output_of_prior_pics_flag é igual a 1, independentemente do valor real de no_output_of_prior_pics_flag. Se a imagem atual é uma imagem IDR, e quando no_output_of_prior_pics_flag é igual a 1 ou é como sendo igual a 1, o decodificador de vídeo 30 pode esvaziar todas as memórias temporárias da DPB sem emitir as imagens na DPB, e pode determinar a totalidade da DPB para 0.
[0288] Como indicado acima na tabela 1, o conjunto de parâmetros de sequência pode incluir os elementos de sintaxe pic_width_in_luma_samples, e pic_height_in_luma_samples. O conjunto de parâmetros de sequência também pode incluir o elemento de sintaxe max_dec_frame_buffering. Como indicado acima na tabela 4, a sintaxe do cabeçalho da fatia pode incluir o elemento de sintaxe no_output_of_prior_pics_flag.
[0289] Quando a imagem atual não é uma imagem IDR, o decodificador de vídeo 30 pode remover todos as imagens (m) na DPB para os quais as condições a seguir são verdadeiras. A primeira condição pode ser que a imagem não esteja incluída no conjunto de imagens de referência da imagem atual. A segunda condição pode ser que a imagem tenha um OutputFlag igual a 0 ou sua hora de saída da DPB é menor ou igual à hora de remoção da CPB da imagem atual. Neste exemplo, a hora de remoção da CPB é tr(n), que é a instância pela qual o processo de remoção ocorre (por exemplo, uma hora anterior à decodificação da imagem atual). A hora de saída da DPB de uma imagem decodificada pode ser definida pela variável to,dpb(m). Portanto, a hora de saída da DPB sendo menor ou igual à hora de remoção da CPB pode ser representada como to,dpb(m) < tr(n). A derivação da hora de saída da DPB (to,dpb) é definida em mais detalhe abaixo.
[0290] Nesta forma, o decodificador de vídeo 30 pode remover imagens decodificadas da DPB, antes de decodificar uma imagem, baseado na hora de saída da imagem decodificada e quando a imagem decodificada não é identificada no conjunto de imagens de referência. Quando o decodificador de vídeo 30 remove uma imagem decodificada da DPB, o decodificador de vídeo 30 pode decrementar a totalidade da DPB por um.
[0291] O conteúdo a seguir descreve a forma pela qual o decodificador de vídeo 30 pode determinar uma hora para a saída da imagem decodificada (por exemplo, a hora de saída da DPB de uma imagem decodificada), e também descreve quando o decodificador de vídeo 30 pode armazenar a imagem decodificada na DPB. Como descrito acima, a hora de saída da DPB da imagem pode ser fator na determinação de se aquele imagem é removida da DPB ou não.
[0292] Quando o decodificador de vídeo 30 decodifica uma imagem, o decodificador de vídeo 30 armazena a imagem na DPB, e incrementa a totalidade da DPB por um. Quando a imagem tem um OutputFlag igual a 1, o decodificador de vídeo 30 pode derivar a hora de saída da DPB para a imagem baseada na equação a seguir. to,dpb(n) = tr(n) + tc*dpb_output_delay(n)
[0293] Em a equação, dpb_output_delay(n) pode ser especificado na mensagem SEI de sincronismo de imagem associada com a unidade de acesso que inclui a imagem. A mensagem SEI pode ser definida em alguns padrões tais como o padrão H.264/AVC.
[0294] O valor de to,dpb(n) pode definir quando uma imagem deve ser emitida. Por exemplo, se OutputFlag é igual a 1 e to,dpb(n) é igual a tr(n), o decodificador de vídeo 30 pode emitir a imagem. Caso contrário, se OutputFlag é igual a 0, o decodificador de vídeo 30 não pode emitir a imagem. Em casos onde OutputFlag é igual a 1 e to,dpb(n) é maior do que tr(n), decodificador de vídeo 30 pode emitir a imagem em uma hora posterior (por exemplo, na hora to,dpb(n)).
[0295] Em alguns exemplos, quando o decodificador de vídeo 30 sai uma imagem, o decodificador de vídeo 30 pode cortar a imagem. Por exemplo, o decodificador de vídeo 30 pode utilizar o retângulo de corte especificado no conjunto de parâmetros da sequência ativa para a imagem. As técnicas para cortar a imagem são geralmente bem estabelecidas e descritas nos padrões tais como o padrão H.264/AVC.
[0296] Em alguns exemplos, o decodificador de vídeo 30 pode determinar uma diferença entre a hora de saída da DPB para uma imagem e a hora de saída da DPB para uma imagem que segue a imagem na ordem de saída. Por exemplo, quando a imagem (n) é uma imagem que o decodificador de vídeo 30 sai, e não é a última imagem do fluxo de bits que é emitida, o decodificador de vídeo 30 pode determinar que o valor de Δto,dpb(n) é definido como: Δto,dpb(n) = to,dpb(nn) - to,dpb(n)
[0297] Em a equação acima, nn indica a imagem seguinte após a imagem (n) na ordem de saída e tem OutputFlag igual a 1. Também, na equação acima, Δto,dpb(n) representa a diferença nas horas de saída da DPB entre uma imagem e a imagem seguinte em ordem de saída.
[0298] Em a segunda perspective para remover imagens decodificadas, o HDR pode implementar as técnicas instantaneamente quando uma unidade de acesso é removida da CPB. Novamente, o decodificador de vídeo 30 pode implementar a remoção de imagens decodificadas da DPB, e o decodificador de vídeo 30 pode não necessariamente incluir a CPB. Em geral, nesta revelação, a remoção de imagens decodificadas é realizada pelo decodificador de vídeo 30, e também pode ser realizada pelo codificador de vídeo 20. Nestes exemplos, o decodificador de vídeo 30 e o codificador de vídeo 20 podem não requerer a CPB. Em vez disso, a CPB é descrita como parte do modelo HDR apenas para propósitos de ilustração.
[0299] Como acima, na segunda perspective para remover imagens decodificadas, o decodificador de vídeo 30 pode remover as imagens da DPB antes da decodificação da imagem atual, mas após analisar o cabeçalho da fatia da primeira fatia da imagem atual. Também, similar à primeira perspectiva para remover imagens decodificadas, na segunda perspectiva, o decodificador de vídeo 30 pode realizar funções similares àquelas descrita acima com respeito à primeira perspective quando a imagem atual é uma imagem IDR.
[0300] Caso contrário, se a imagem atual não é uma imagem IDR, o decodificador de vídeo 30 pode esvaziar, sem saída, a memórias da DPB que armazenar uma imagem que está marcada como “não necessária para saída” e que armazenar imagens não incluídos no conjunto de imagens de referência da imagem atual. O decodificador de vídeo 30 também pode decrementar a totalidade da DPB pelo número de memórias temporárias que o decodificador de vídeo 30 esvaziou. Quando não existe memória temporária vazia (ou seja, a totalidade da DPB é igual ao tamanho da DPB), o decodificador de vídeo 30 pode implementar um processo de “colisão” descrito abaixo. Em alguns exemplos, quando não existe nenhuma memória temporária vazia, o decodificador de vídeo 30 pode implementar o processo de colisão repetidamente até que exista uma memória temporária vazia na qual o decodificador de vídeo 30 possa armazenar a imagem decodificada corrente.
[0301] Quando a imagem atual é uma imagem IDR para a qual o no_output_of_prior_pics_flag não é igual a 1, e não é inferido para ser igual a 1, o decodificador de vídeo 30 pode realizar o seguinte. O decodificador de vídeo 30 pode esvaziar, sem saída, as memórias temporárias da DPB que armazenam uma imagem que está marcada como “não necessária para saída” e que não está incluída no conjunto de imagens de referência da imagem atual. O decodificador de vídeo 30 pode esvaziar todas as memórias temporárias não vazias na DPB invocando repetidamente o processo de “colisão”, e pode determinar a totalidade da DPB para 0.
[0302] Em outras palavras, quando a imagem atual é uma imagem IDR, o decodificador de vídeo 30 pode implementar técnicas para esvaziar todas as memórias temporárias na DPB. Quando a imagem atual não é uma imagem IDR, o decodificador de vídeo 30 pode implementar técnicas para remover imagens decodificadas para liberar memórias temporárias para armazenar a imagem decodificada corrente.
[0303] Por exemplo, após o decodificador de vídeo 30 decodificar a imagem atual, o decodificador de vídeo 30 pode armazenar a imagem atual na DPB, e incrementar a totalidade da DPB por um. Em alguns exemplos, se o OutputFlag da imagem atual é igual a 1, o decodificador de vídeo 30 pode marcar a imagem atual como “necessário para saída.” Caso contrário, se o OutputFlag da imagem atual é igual a 0, o decodificador de vídeo 30 pode marcar a imagem atual como “não necessária para saída.”
[0304] Como descrito acima, em alguns exemplos, o decodificador de vídeo 30 pode implementar um processo de colisão. Em geral, o processo de colisão envolve emitir imagens decodificadas. Por exemplo, o decodificador de vídeo 30 pode implementar o processo de colisão para quando a imagem atual é uma imagem IDR e o no_output_of_prior_pics_flag não é igual a 1, e não é inferido para ser igual a 1. O decodificador de vídeo 30 também pode implementar o processo de colisão se não existir nenhuma memória temporária vazia na DPB (ou seja, a totalidade da DPB é igual ao tamanho da DPB), e uma memória temporária vazia for necessária para armazenamento de uma imagem decodificada (não IDR).
[0305] Em geral, o decodificador de vídeo 30 pode implementar as etapas a seguir para implementar o processo de colisão. O decodificador de vídeo 30 pode primeiro determinar a imagem a ser emitida. Por exemplo, o decodificador de vídeo 30 pode selecionar a imagem que tem o menor valor de PicOrderCnt (POC) de todos as imagens na DPB que estão marcadas como “necessária para saída”. O decodificador de vídeo 30 pode cortar a imagem selecionada usando o retângulo de corte especificado no conjunto de parâmetros da sequência ativa para a imagem. O decodificador de vídeo 30 pode emitir a imagem cortada, e pode marcar a imagem como “não necessário para saída”. O decodificador de vídeo 30 pode verificar a memória temporária da DPB que armazena a imagem cortada e emitida. Se a imagem não estiver incluído no conjunto de imagens de referência, o decodificador de vídeo 30 pode esvaziar aquela memória temporária e pode decrementar a totalidade da DPB por um.
[0306] Embora as técnicas para o gerenciamento da DPB acima sejam descritas do contexto do decodificador de vídeo 30, em alguns exemplos, o codificador de vídeo 20 pode implementar técnicas similares. Entretanto, não é requerida que o codificador de vídeo 20 implemente técnicas similares em todos os exemplos. Em alguns exemplos, o decodificador de vídeo 30 pode implementar estas técnicas, e o codificador de vídeo 20 pode não implementar estas técnicas.
[0307] Desta forma, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode codificar a informação indicativa de imagens de referência que pertencem a um conjunto de imagens de referência. Novamente, o conjunto de imagens de referência pode identificar as imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0308] O codificador de vídeo pode derivar o conjunto de imagens de referência de qualquer forma, incluindo as técnicas exemplificativas descritas acima. O codificador de vídeo pode determinar se uma imagem decodificada armazenada na memória temporária de imagem decodificada não é necessária para saída e não é identificada no conjunto de imagens de referência. Quando a imagem decodificada tiver sido emitida e não estiver identificada no conjunto de imagens de referência, o codificador de vídeo pode remover a imagem decodificada da memória temporária de imagem decodificada. Subsequente a remover a imagem decodificada, o codificador de vídeo pode codificar a imagem atual. Por exemplo, o codificador de vídeo pode construir a(s) lista(s) de imagens de referência como descrito acima, e codificar a imagem atual baseado em a(s) lista(s) de imagens de referência.
[0309] As técnicas descritas em exemplos prévios que o codificador de vídeo 20 e o decodificador de vídeo 30 podem empregar para derivar o conjunto de imagens de referência, construir listas de imagens de referência a partir das listas de imagens de referência quando não é necessária modificação e quando é necessária modificação, bem como técnicas para gerenciamento de memória temporária de imagem decodificada (DPB). Entretanto, os aspectos desta revelação não são tão limitados. Em alguns exemplos, as técnicas descritas nesta revelação podem ser relacionadas à forma pela qual o codificador de vídeo 20 sinaliza quais imagens pertencem ao conjunto de imagens de referência e que são imagens de referência de longo prazo (ou em outras palavras, qual imagem pertence ao conjunto de imagens de referência de longo prazo), e a forma pela qual o decodificador de vídeo 30 determina qual imagem pertence ao conjunto de imagens de referência de longo prazo.
[0310] Por exemplo, a tabela 2 inclui os elementos de sintaxe num_long_term_ref_pics_pps, e long_term_ref_pic_id_pps[i] como sendo parte do conjunto de parâmetros de imagem. Entretanto, os aspectos desta revelação não são tão limitados. Em alguns outros exemplos, o conjunto de parâmetros de sequência (por exemplo, tabela 1) pode incluir os elementos de sintaxe num_long_term_ref_pics_pps e long_term_ref_pic_id_pps[i]. Em exemplos onde o conjunto de parâmetros de sequência inclui estes elementos de sintaxe, esta revelação pode se referir aos elementos de sintaxe como num_long_term_ref_pics_sps e long_term_ref_pic_id_sps[i] para evitar confusão. Para propósitos de ilustração, as técnicas são descritas com exemplos onde o conjunto de parâmetros de sequência inclui estes elementos de sintaxe.
[0311] Similar à definição do num_long_term_ref_pics_pps, o elemento de sintaxe num_long_term_ref_pics_sps pode especificar o número de candidatos a imagens de referência de longo prazo que são incluídos no conjunto de parâmetros de sequência. O valor de num_long_term_ref_pics_sps pode ficar no intervalo de 0 a 32, inclusive. Similar à definição do elemento de sintaxe long_term_ref_pic_id_pps[i], o elemento de sintaxe long_term_ref_pic_id_sps[i] pode especificar a i-ésima informação de identificação de imagem de referência de longo termo incluída no conjunto de parâmetros de sequência.
[0312] Em alguns exemplos, o elemento de sintaxe long_term_ref_pic_id_sps[i] pode indicar candidatos a imagens de referência de longo prazo que pertencem a um conjunto de imagens de referência de uma imagem atual. Os candidatos a imagens de referência de longo prazo são um ou mais dos candidatos a imagens de referência de longo prazo que podem ser imagens de referência de longo prazo que o decodificador de vídeo 30 pode utilizar para interpredição da imagem atual ou de um ou mais imagens que seguem a imagem atual na ordem de decodificação. Em outras palavras, os candidatos a imagens de referência de longo prazo podem indicar as imagens que são imagens de referência de longo prazo e que podem ser usados para interpredição da imagem atual e usados para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação. Em alguns exemplos, o elemento de sintaxe long_term_ref_pic_id_sps[i] pode incluir os valores de POC para os candidatos a imagens de referência de longo prazo.
[0313] Entretanto, nem todos os candidatos a imagens de referência de longo prazo são necessariamente usados para interpredição. Por exemplo, nem todos os candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência de uma imagem atual. Em vez disso, zero ou mais dos candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência.
[0314] Em as técnicas descritas nesta revelação, o codificador de vídeo 20 pode sinalizar o elemento de sintaxe long_term_ref_pic_id em um conjunto de parâmetros (por exemplo, o elemento de sintaxe long_term_ref_pic_id_sps no conjunto de parâmetros de sequência, ou o elemento de sintaxe long_term_ref_pic_id_pps no conjunto de parâmetros de imagem). O decodificador de vídeo 30 pode receber o elemento de sintaxe long_term_ref_pic_id e identificar os candidatos a imagens de referência de longo prazo. De acordo com as técnicas descritas nesta revelação, o decodificador de vídeo 30 pode determinar adicionalmente quais dos candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode ser configurado para realizar esta determinação baseado em elementos de sintaxe adicionais sinalizados pelo codificador de vídeo 20 no fluxo de bits codificado.
[0315] Como indicado na tabela 4, o codificador de vídeo 20 pode sinalizar a estrutura de sintaxe long_term_ref_pic_set() no cabeçalho da fatia da imagem atual. A tabela 5 descreve a estrutura de sintaxe long_term_ref_pic_set(). Por exemplo, a estrutura de sintaxe long_term_ref_pic_set() pode incluir os elementos de sintaxe num_long_term_pps_curr e num_long_term_pps_foll. Novamente, deve ser observado que embora os elementos de sintaxe num_long_term_pps_curr e num_long_term_pps_foll sejam definidos como o número de imagens de referência de longo prazo incluídos no conjunto de parâmetros de imagem, em exemplos onde os candidatos a imagens de referência de longo prazo são incluídos no conjunto de parâmetros de sequência, estes elementos de sintaxe podem definir o número de candidatos a imagens de referência de longo prazo incluídos no conjunto de parâmetros de sequência. Por exemplo, para evitar confusão, o elemento de sintaxe num_long_term_pps_curr pode ser referenciado como o elemento de sintaxe num_long_term_sps_curr, e o elemento de sintaxe num_long_term_pps_foll pode ser referenciado como o elemento de sintaxe num_long_term_sps_curr.
[0316] Similar ao elemento de sintaxe num_long_term_pps_curr, o elemento de sintaxe num_long_term_sps_curr pode definir o número de todos as imagens de referência de longo prazo cuja informação de identificação esteja incluída no conjunto de parâmetros de sequência referenciado, como os candidatos a imagens de referência de longo prazo, e que podem ser usados para interpredição da imagem atual e de um ou mais imagens que seguem a imagem atual na ordem de decodificação. Similar para o elemento de sintaxe num_long_term_pps_foll, o elemento de sintaxe num_long_term_sps_foll pode definir o número de todos as imagens de referência de longo prazo cuja informação de identificação esteja incluída no conjunto de parâmetros de sequência, como os candidatos a imagens de referência de longo prazo, que não são usados para interpredição da imagem atual, e que podem ser usados para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0317] Também, a estrutura de sintaxe long_term_ref_pic_set() sinalizada no cabeçalho da fatia pode incluir o elemento de sintaxe long_term_ref_pic_set_idx_pps[i]. Novamente, em exemplos onde os candidatos a imagens de referência de longo prazo são sinalizados no conjunto de parâmetros de sequência, o elemento de sintaxe long_term_ref_pic_set_idx_pps[i] pode ser considerado como o elemento de sintaxe long_term_ref_pic_set_idx_sps[i]. Similar ao elemento de sintaxe long_term_ref_pic_set_idx_pps[i], o elemento de sintaxe long_term_ref_pic_set_idx_sps[i] pode definir o índice, dentro da lista da informação de identificação de candidato a imagem de referência de longo prazo incluída no conjunto de parâmetros de sequência referenciado, do i-ésima imagem de referência de longo prazo herdado que forma o conjunto de parâmetros de imagem de referência para o conjunto de imagens de referência da imagem atual. Em outras palavras, o elemento de sintaxe long_term_ref_pic_set_idx_sps[i]pode identificar um índice dentro da lista dos candidatos a imagens de referência de longo prazo no conjunto de parâmetros de sequência. A partir do índice, o decodificador de vídeo 30 pode identificar uma imagem de referência de longo prazo nos candidatos a imagens de referência de longo prazo, e pode determinar que a imagem de referência de longo prazo identificado pertence ao conjunto de imagens de referência da imagem atual.
[0318] Por exemplo, o decodificador de vídeo 30 pode implementar o pseudocódigo a seguir, similar àquele na tabela 5, para determinar quais dos candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual. for (i = 0; i < num_long_term_sps_curr + num_long_term_sps_foll; i++) long_term_ref_pic_set_idx_sps[i]
[0319] Desta forma, o decodificador de vídeo 30 pode decodificar elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo que são identificados em um conjunto de parâmetros. Por exemplo, se o conjunto de parâmetros é o conjunto de parâmetros de sequência, o decodificador de vídeo 30 pode decodificar os elementos de sintaxe long_term_ref_pic_id_sps[i] que indicam candidatos a imagens de referência de longo prazo que são identificados no conjunto de parâmetros de sequência. Se o conjunto de parâmetros é o conjunto de parâmetros de imagem, o decodificador de vídeo 30 pode decodificar os elementos de sintaxe long_term_ref_pic_id_pps[i] que indicam candidatos a imagens de referência de longo prazo que são identificados no conjunto de parâmetros de imagem.
[0320] O decodificador de vídeo 30 também pode decodificar os elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual. Por exemplo, se o conjunto de parâmetros é o conjunto de parâmetros de sequência, o decodificador de vídeo 30 pode decodificar os elementos de sintaxe num_long_term_sps_curr, num_long_term_sps_foll, e long_term_ref_pic_set_idx_sps[i], e se o conjunto de parâmetros é o conjunto de parâmetros de imagem, o decodificador de vídeo 30 pode decodificar os elementos de sintaxe num_long_term_pps_curr, num_long_term_pps_foll, e long_term_ref_pic_set_idx_pps[i]. Em qualquer exemplo, o decodificador de vídeo 30 pode decodificar estes elementos de sintaxe a partir do cabeçalho da fatia da imagem atual.
[0321] De acordo com as técnicas descritas nesta revelação, os elementos de sintaxe long_term_ref_pic_id_sps[i] e long_term_ref_pic_id_pps[i] podem ser considerados como uma lista de valores de Contador de Ordem de imagem (POC) para os candidatos a imagens de referência de longo prazo que pertencem ao conjunto de imagens de referência, e podem ser codificados (ou seja, codificado ou decodificado) como parte de um conjunto de parâmetros (por exemplo, o conjunto de parâmetros de imagem e o conjunto de parâmetros de sequência). O elemento de sintaxe long_term_ref_pic_set_idx_sps[i] ou o long_term_ref_pic_set_idx_pps[i] podem ser considerados como fornecendo um valor de índice dentro da lista dos valores de POC para os candidatos a imagens de referência de longo prazo (por exemplo, um índice dentro de long_term_ref_pic_id_sps[i] ou long_term_ref_pic_id_pps[i]). Em alguns exemplos, o elemento de sintaxe long_term_ref_pic_set_idx_sps[i] ou o long_term_ref_pic_set_idx_pps[i] podem ser codificados como parte do cabeçalho da fatia da imagem atual.
[0322] O conteúdo acima descreve uma forma pela qual o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar ou decodificar, respectivamente, elementos de sintaxe para indicar quais imagens pertencem ao conjunto de imagens de referência de longo prazo da imagem atual. A partir dos elementos de sintaxe, o decodificador de vídeo 30 e o codificador de vídeo 20 podem determinar quais imagens pertencem ao conjunto de imagens de referência de longo prazo da imagem atual. Após o decodificador de vídeo 30 e o codificador de vídeo 20 determinarem quais imagens pertencem ao conjunto de imagens de referência de longo prazo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem construir pelo menos um subconjunto de imagens de referência da pluralidade de subconjuntos de imagens de referência, e derivar o conjunto de imagens de referência da maneira descrita acima. Por exemplo, baseado na determinação de à quais imagens pertence ao conjunto de imagens de referência de longo prazo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem construir o subconjunto de imagens de referência RefPicSetLtCurr que o codificador de vídeo 20 e o decodificador de vídeo 30 utilizam para derivar o conjunto de imagens de referência.
[0323] Em alguns exemplos, pode haver imagens que pertence ao conjunto de imagens de referência de longo prazo que não são incluídos nos candidatos a imagens de referência de longo prazo. Consequentemente, pode haver formas adicionais pelas quais o codificador de vídeo 20 e o decodificador de vídeo 30 podem determinar quais imagens pertencem ao conjunto de imagens de referência de longo prazo da imagem atual.
[0324] Por exemplo, como indicado na tabela 5, a estrutura de sintaxe long_term_ref_pic_set() do cabeçalho da fatia inclui o elemento de sintaxe long_term_ref_pic_id_delta_add[i]. Este elemento de sintaxe pode especificar identificação da imagem de referência de longo prazo, tal como valores de POC, do i-ésima imagem de referência de longo prazo que não é herdado do conjunto de parâmetros da imagem de referência, mas é incluído no conjunto de imagens de referência da imagem atual. Novamente, em exemplos onde candidatos a imagens de referência de longo prazo são identificados no conjunto de parâmetros de sequência, o elemento de sintaxe long_term_ref_pic_id_delta_add[i] pode especificar a identificação da imagem de referência de longo prazo do i-ésima imagem de referência de longo prazo que não é herdado do conjunto de parâmetros de sequência, mas é incluído no conjunto de imagens de referência da imagem atual.
[0325] Em outras palavras, o elemento de sintaxe long_term_ref_pic_id_pps[i] ou o long_term_ref_pic_id_sps[i] podem identificar candidatos a imagens de referência de longo prazo, mas podem não necessariamente identificar todos as imagens de referência de longo prazo no conjunto de imagens de referência da imagem atual. Por exemplo, pode haver imagens de referência de longo prazo que são para ser usados para interpredição da imagem atual e de um ou mais imagens que seguem a imagem atual na ordem de decodificação que não são incluídos na listagem dos candidatos a imagens de referência de longo prazo. Para estes imagens de referência de longo prazo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar ou decodificar, respectivamente, a informação de identificação que identifica imagens de referência de longo prazo que pertencem ao conjunto de imagens de referência da imagem atual.
[0326] Por exemplo, como indicado na tabela 5, o codificador de vídeo 20 e o decodificador de vídeo 30 podem codificar ou decodificar, respectivamente, os elementos de sintaxe num_long_term_add_curr e num_long_term_add_foll. O elemento de sintaxe num_long_term_add_curr pode definir o número de todos as imagens de referência de longo prazo cuja informação de identificação não é incluída no conjunto de parâmetros de imagem referenciado ou conjunto de parâmetros de sequência (quando aplicável) e que podem ser usados para interpredição da imagem atual e de um ou mais imagens que seguem a imagem atual na ordem de decodificação. O elemento de sintaxe num_long_term_add_foll pode definir o número de todas as imagens de referência de longo prazo cuja informação de identificação não é incluída no conjunto de parâmetros de imagem referenciado ou conjunto de parâmetros de sequência (quando aplicável), que podem não ser usados para interpredição da imagem atual, e que podem ser usados para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0327] O decodificador de vídeo 30 pode implementar o pseudocódigo a seguir para determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência. Neste exemplo, as imagens de referência de longo prazo podem não ser incluídos nos candidatos a imagens de referência de longo prazo. for (i = 0; i < num_long_term_add_curr + num_long_term_add_foll; i++) long_term_ref_pic_id_delta_add[i]
[0328] Como descrito acima, as técnicas descritas nesta revelação podem ser realizadas de acordo com o padrão HEVC. O conteúdo a seguir é uma breve descrição do padrão HEVC para auxiliar o entendimento. Além disso, embora as técnicas sejam descritas no contexto do padrão HEVC, as técnicas podem ser estendidas para outros padrões, incluindo padrões proprietários.
[0329] O JCT-VC está trabalhando no desenvolvimento do padrão HEVC. Os esforços de padronização do HEVC são baseados em um modelo em evolução de um dispositivo de codificação de vídeo referenciado como o Modelo de Teste (HM) do HEVC. O HM presume diversas capacidades adicionais de dispositivos de codificação de vídeo relativos a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto o H.264 fornece nove modos de codificação de intrapredição, o HM pode fornecer até trinta e três modos de codificação de intrapredição.
[0330] Em geral, o modelo de trabalho do HM descreve que um quadro ou imagem de vídeo pode ser dividido em uma sequência de blocos de árvore ou unidades de codificação (LCU) maiores que incluem tanto amostras de luma quanto de chroma. Um bloco de árvore tem um propósito similar a um macrobloco do padrão H.264. Uma fatia inclui um número de blocos de árvore consecutivos na ordem de decodificação. Um quadro ou imagem de vídeo pode ser particionado em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidades de codificação (CUs) de acordo com uma árvore quadrática. Por exemplo, um bloco de árvore, como um nó raiz da árvore quadrática, pode ser dividido em quatro nós filhos, e cada nó filho pode por sua vez ser um nó pai e ser dividido em outros quatro nós filhos. Um nó filho final, não dividido, como um nó folha da árvore quadrática, compreende um nó de codificação, ou seja, um bloco codificado de vídeo. Os dados de sintaxe associados com um fluxo de bits codificado podem definir um número máximo de vezes que um bloco de árvore pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação. Os blocos de árvore podem ser referenciados como LCUs em alguns exemplos.
[0331] Um CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformação (TUs) associadas com o nó de codificação. Um tamanho do CU corresponde a um tamanho do nó de codificação e tem que ser quadrado em forma. O tamanho do CU pode variar de 8x8 pixels até o tamanho do bloco de árvore com um máximo de 64x64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Dados de sintaxe associados com um CU podem descrever, por exemplo, particionamento do CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se o CU é codificado em modo de salto ou direto, codificado em modo de intrapredição, ou codificado em modo de interpredição. As PUs podem ser particionadas para não serem quadradas em sua forma. Os dados de sintaxe associados com uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma árvore quadrática. Uma TU pode ser quadrada ou não quadrada em forma.
[0332] O padrão HEVC permite transformações de acordo com as TUs, que podem ser diferentes para CUs diferentes. As TUs são tipicamente dimensionadas baseadas no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada, embora este possa não ser sempre o caso. As TUs são tipicamente do mesmo tamanho ou menores do que as PUs. Em alguns exemplos, amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores usando uma estrutura de árvore quadrática conhecida como "árvore quadrática residual" (RQT). Os nós de folha da RQT podem ser referenciados como unidades de transformação (TUs). A diferença de valores d pixel associados com as TUs pode ser transformada para produzir coeficientes de transformada, que podem ser quantizados.
[0333] Em geral, uma PU inclui dados relacionadas ao processo de predição. Por exemplo, quando a PU é codificada no intramodo, a PU pode incluir dados que descrevem um modo de intrapredição para a PU. Como outro exemplo, quando a PU é codificado no modo inter, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma imagem de referência para o qual o vetor de movimento aponta, e/ou uma lista de imagens de referência (por exemplo, Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0334] Em geral, uma TU é usada para os processos de transformação e quantização. Uma dada CU que tem uma ou mais PUs também pode incluir uma ou mais unidades de transformação (TUs). Seguindo a predição, o codificador de vídeo 20 pode calcular valores residuais que correspondem à PU. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantizados, e varridos usando as TUs para produzir coeficientes de transformada serializados para codificação de entropia. Esta revelação tipicamente usa o termo “bloco de vídeo” para se referir a um nó de codificação de uma CU. Em alguns casos específicos, esta revelação também pode usar o termo “bloco de vídeo” para se referir a um bloco de árvore, ou seja, LCU, ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0335] Uma sequência de vídeo tipicamente inclui uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) geralmente compreende uma série de um ou mais dos imagem de vídeos. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, em um cabeçalho de um ou mais das imagens, ou em qualquer lugar, que descreva um número de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir a fatia dados de sintaxe que descreve um modo de codificação para a respectiva fatia. O codificador de vídeo 20 tipicamente opera em blocos de vídeo dentro das 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 em tamanho de acordo com um padrão de codificação especificado.
[0336] Como um exemplo, o HM suporta predição em vários tamanhos de PU. Assumindo que o tamanho de uma CU particular é 2Nx2N, o HM suporta intrapredição em tamanhos de PU de 2Nx2N ou NxN, e a interpredição em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta particionamento assimétrico para interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N, e nRx2N. Em particionamento assimétrico, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A parte da CU que corresponde à partição de 25% é indicada por um “n” seguida por uma indicação de “Superior”, “Inferior”, “Esquerda”, ou “Direita”. Portanto, por exemplo, “2NxnU” se refere a uma CU de 2Nx2N que é particionada horizontalmente com uma PU de 2Nx0,5N no topo e uma PU de 2Nx1,5N no fundo.
[0337] Nesta revelação, “NxN” e “N por N” podem ser usados intercaladamente para se referir às dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco 16x16 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 NxN geralmente tem 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 linhas e colunas. Além disso, os blocos não precisam necessariamente ter o mesmo número de pixels na direção horizontal que na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, onde M não é necessariamente igual a N.
[0338] Seguindo codificação preditiva intra ou preditiva inter usando s PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs podem compreender dados de pixel no domínio espacial (também referenciado como o domínio de pixel) e as TUs podem compreender coeficientes no domínio transformado que seguem o pedido de uma transformada, por exemplo, uma transformada de cosseno discreta (DCT), uma transformada de inteiro, uma transformada de wavelet, ou um transformada conceitualmente similar para dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição que correspondem as PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU, e então transformar as TUs para produzir coeficientes de transformada para a CU.
[0339] Seguindo qualquer transformada para produzir coeficientes de transformada, o codificador de vídeo 20 pode realizar quantização dos coeficientes de transformada. A quantização geralmente se refere a um processo pelo qual os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usados para representar os coeficientes, fornecendo compressão adicional. O processo de quantização pode reduzir a profundidade de bit associado 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 do que m.
[0340] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para varrer os coeficientes de transformada quantizados para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma varredura adaptativa. Após varrer os coeficientes de transformada quantizados para formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com codificação do comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseada em sintaxe (SBAC), codificação de Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de 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 dos dados de vídeo.
[0341] Para realizar CABAC, o codificador de vídeo 20 pode designar um contexto dentro de um modelo de contexto para um símbolo para ser transmitido. O contexto pode se referir a, por exemplo, se valores vizinhos do símbolo são não zero ou não. Para realizar CAVLC, o codificador de vídeo 20 pode selecionar uma codificação de comprimento variável para um símbolo para ser transmitido. Palavras de código podem ser construídas em VLC de modo que códigos relativamente menores correspondem a símbolos mais prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Desta forma, o uso de VLC pode obter uma economia de bits sobre, por exemplo, usar palavras de código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto designado para o símbolo.
[0342] A FIGURA 2 é um diagrama conceitual que ilustra uma sequência de vídeo exemplificativa 33 que inclui uma pluralidade de imagens que é codificada e transmitida. Em alguns casos, a sequência de vídeo 33 pode ser referenciada como um grupo de imagens (GOP). A sequência de vídeo 33, como ilustrada, inclui as imagens 35A, 36A, 38A, 35B, 36B, 38B, e 35C, e a imagem final 39 na ordem de exibição. A imagem 34 é uma imagem final na ordem de exibição para uma sequência que ocorre antes da sequência 33. A FIGURA 2 representa geralmente uma estrutura de predição exemplificativa para uma sequência de vídeo e é destinada somente a ilustrar as referências de imagem usadas para predizer blocos de vídeo de fatias ou tipos de imagem diferentes (por exemplo, imagem ou fatia P, ou imagem ou fatia B). Uma sequência real de vídeo pode conter mais ou menos imagens de vídeo de diferentes tipos de imagem e em uma ordem de exibição diferente. A sequência de vídeo 33 pode incluir mais ou menos imagens do que aquelas ilustradas na FIGURA 2, e as imagens ilustradas na sequência de vídeo 33 são ilustrados para propósitos de entendimento e como exemplos.
[0343] Para codificação de vídeo baseada em blocos, cada uma das imagens de vídeo incluídos na sequência 33 pode ser particionada em blocos de vídeo, tal como unidades de codificação (CUs) ou unidades de predição (PUs). Por exemplo, cada CU de uma imagem de vídeo pode incluir uma ou mais PUs. Os blocos de vídeo em uma imagem intracodificado (I) são preditos usando predição espacial com respeito aos blocos vizinhos na mesma imagem. Blocos de vídeo em uma imagem intercodificado (P ou B) pode usar predição espacial com respeito aos blocos vizinhos na mesma imagem ou predição temporal com respeito a outras imagens de referência.
[0344] Os blocos de vídeo em uma imagem B podem ser preditos usando predição bidirecional para calcular dois vetores de movimento a partir de duas listas de imagens de referência diferentes (por exemplo, listas de imagens de referência 0 e 1, referenciadas como Lista 0 e Lista 1). Em alguns casos, os blocos de vídeo em uma imagem B podem ser preditos usando predição unidirecional a partir de uma das duas listas de imagens de referência diferentes (por exemplo, codificado B unidirecional). Os blocos de vídeo em uma imagem P podem ser preditos usando predição unidirecional para calcular um único vetor de movimento a partir de uma única lista de imagens de referência. De acordo com o padrão emergente HEVC, os blocos de vídeo podem ser codificados usando ou predição unidirecional para calcular um único vetor de movimento a partir de uma de duas listas de imagens de referência ou predição bidirecional para calcular dois vetores de movimentos a partir das duas listas de imagens de referência. As duas listas de imagens de referência podem conter imagens de referência passadas ou imagens de referência futuras ou tanto imagens de referência passadas como futuras em ordem de exibição ou saída, e sempre imagens de referência passadas na ordem de decodificação, por exemplo.
[0345] Em o exemplo da FIGURA 2, a imagem final 39 é designada para o modo de intracodificação como uma imagem I. Em outros exemplos, a imagem final 39 pode ser codificada com modo de intercodificação (por exemplo, como uma imagem P) com referência à imagem final 34 da sequência precedente, a qual pode ser uma imagem I. Os imagem de vídeos 35a a 35C (coletivamente “imagens de vídeo 35”) são designadas para codificar como imagens B usando predição bidirecional com referência a uma imagem passada e uma imagem futura. No exemplo ilustrado, a imagem 35A é codificada como uma imagem B com referência ao imagem final 34 e imagem 36A, como indicado pelas setas das imagens 34 e 36A para a imagem de vídeo 35A. As imagens 35B e 35C são codificados de maneira similar.
[0346] As imagens de vídeos 36A e 36B (coletivamente “imagens de vídeo 36”) podem ser designada para codificar como imagens usando predição unidirecional com referência a uma imagem passada. No exemplo ilustrado, a imagem 36A é codificada como uma imagem P com referência à imagem final 34, como indicado pela seta da imagem 34 para a imagem de vídeo 36A. A imagem 36B é codificado de maneira similar.
[0347] Os imagens de vídeo 38a e 38B (coletivamente “imagens de vídeo 38”) podem ser designados para codificar usando predição bidirecional com referência ao mesmo imagem passada. Em outros exemplos, as imagens de vídeo 38 podem ser codificados usando predição bidirecional com referência a imagens passadas substancialmente similares incluídos nas listas de imagens de referência. No exemplo ilustrado, a imagem 38A é codificada com duas referências para a imagem 36A, como indicado pelas duas setas da imagem 36A para a imagem de vídeo 38A. A imagem 38B é codificada de maneira similar.
[0348] De acordo com as técnicas descritas nesta revelação, o codificador de vídeo 20 pode sinalizar um conjunto de imagens de referência para cada um das imagens na sequência 33. Por exemplo, para a imagem 35A, este conjunto de imagens de referência pode identificar todas as imagens de referência que podem ser usados para interpredição da imagem 35A, também como todos as imagens de referência que podem potencialmente ser usadas para interpredição de imagens que seguem a imagem 35A na ordem de decodificação. Por exemplo, o conjunto de imagens de referência para a imagem 35A pode incluir o valor de POC para a imagem 34 e a imagem 36A, também como valores de POC para imagens de referência adicionais tais como aqueles que podem potencialmente ser usadas para interpredição de imagens que seguem a imagem 35A na ordem de decodificação. As imagens que seguem a imagem 35A podem ser aquelas imagens que seguem a imagem 35A na ordem de decodificação, e que estão dentro da sequência de vídeo 33, neste exemplo.
[0349] O decodificador de vídeo 30 então pode derivar o conjunto de imagens de referência para a imagem 35A da maneira descrita acima. Por exemplo, o decodificador de vídeo 30 pode determinar os valores de POC para as imagens de referência que pertencem ao conjunto de imagens de referência, como descrito acima. O decodificador de vídeo 30 pode construir adicionalmente pelo menos quatro ou pelo menos cinco subconjuntos de imagens de referência, e em alguns exemplos, até os seis subconjuntos de imagens de referência descritos acima. O decodificador de vídeo 30 pode dispor os seis conjuntos de imagens de referências em uma ordenação particular para derivar o conjunto de imagens de referência para a imagem 35A.
[0350] O decodificador de vídeo 30 pode adicionalmente construir listas de imagens de referência iniciais da maneira descrita acima, em que não é necessária nenhuma reordenação de imagens a serem incluídas nas listas de imagens de referência iniciais. Quando a modificação da lista de imagens de referência é desabilitada, o decodificador de vídeo 30 pode determinar as listas de imagens de referência finais iguais às listas de imagens de referência iniciais. Também, o decodificador de vídeo 30 pode construir as listas de imagens de referência desta forma em que não existe nenhuma entrada não completada nas listas de imagens de referência. Por exemplo, o decodificador de vídeo 30 pode repetidamente listar imagens de referência a partir dos subconjuntos de imagens de referência até o número de entradas nas listas de imagens de referência ser igual ao número máximo de entradas admissíveis das listas de imagens de referência. Em alguns exemplos, o decodificador de vídeo 30 pode modificar as listas de imagens de referência iniciais da maneira descrita acima (por exemplo, baseado em imagens de referência em pelo menos um dos subconjuntos de imagens de referência construídos). Além disso, em alguns exemplos, o decodificador de vídeo 30 pode remover imagens decodificadas da DPB do decodificador de vídeo 30 utilizando as técnicas exemplificativas descritas nesta revelação, tal como remover imagens decodificadas que não são identificadas no conjunto de imagens de referência da imagem atual para serem decodificadas e que não são necessárias para saída. Também, em alguns exemplos, o decodificador de vídeo 30 pode determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da maneira descrita acima, em que a informação de identificação de uma lista de candidatos a imagens de referência de longo prazo pode ser incluída em um conjunto de parâmetros.
[0351] A FIGURA 3 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo 20 que pode implementar as técnicas descritas nesta revelação. O codificador de vídeo 20 pode realizar inter e intracodificação de blocos de vídeo dentro das fatias de vídeo. A intracodificação se baseia em predição espacial para reduzir ou remover redundância espacial em vídeo dentro de uma dada imagem ou quadro de vídeo. A intercodificação se baseia em predição temporal para reduzir ou remover redundância temporal em vídeo dentro de imagens ou quadros adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referenciar a qualquer de diversos modos baseados em compressão espacial. Os intermodos, tais como predição unidirecional (modo P) ou bi predição (modo B), podem se referenciar a qualquer de diversos modos baseados em compressão temporal.
[0352] Em o exemplo da FIGURA 3, o codificador de vídeo 20 inclui uma unidade de particionamento 35, o módulo de predição 41, memória temporária de imagem decodificada (DPB) 64, somador 50, módulo de transformada 52, unidade de quantização 54, e unidade de codificação de entropia 56. O módulo de predição 41 inclui unidade de estimativa de movimento 42, unidade de compensação de movimento 44, e módulo de intrapredição 46. Para a reconstrução do bloco de vídeo, o codificador de vídeo 20 também inclui unidade de quantização inversa 58, módulo de transformada inversa 60, e somador 62. Um filtro de desblocamento (deblocking filter) (não mostrado na FIGURA 3) também pode ser incluído para filtrar fronteiras de bloco para remover artefatos de blocagem de vídeo reconstruído. Se desejado, o filtro de desblocamento deve tipicamente filtrar a saída do somador 62. Também podem ser usados filtros de malha adicionais (dentro do ciclo ou pós ciclo) adicionalmente ao filtro de desblocamento.
[0353] Como mostrado na FIGURA 3, o codificador de vídeo 20 recebe dados de vídeo, e a unidade de particionamento 35 particiona os dados em blocos de vídeo. Este particionamento também pode incluir particionamento em fatias, azulejos, ou outras unidades maiores, também como particionamento de bloco de vídeo, por exemplo, de acordo com uma estrutura de árvore quadrática de LCUs e CUs. O codificador de vídeo 20 geralmente ilustra os componentes que codificam blocos de vídeo em uma fatia de vídeo para ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referenciados como azulejos). O módulo de predição 41 pode selecionar um de uma pluralidade de possíveis modos de codificação, tal como um de uma pluralidade de modos de intracodificação ou um de uma pluralidade de modos de intercodificação, para o bloco de vídeo corrente baseado em resultado de erro (por exemplo, taxa de codificação e nível de distorção). O módulo de predição 41 pode fornecer o bloco de intra ou intercodificado resultante para o somador 50 gerar dados residuais de bloco e para o somador 62 reconstruir o bloco codificado para usar como uma imagem de referência.
[0354] O módulo de intrapredição 46 dentro do módulo de predição 41 pode realizar codificação preditiva intra do bloco de vídeo corrente relativo a um ou mais blocos vizinhos na mesma imagem ou fatia que o bloco corrente para ser codificada para fornecer compressão espacial. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 dentro do módulo de predição 41 realizam intercodificação preditiva do bloco de vídeo corrente relativo a um ou mais blocos preditivos em um ou mais imagens de referência para fornecer compressão temporal.
[0355] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de interpredição para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P ou fatias B. 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 por propósitos conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de gerar os vetores de movimento, que estimam 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 uma imagem de vídeo corrente relativo a um bloco preditivo dentro de uma imagem de referência.
[0356] Um bloco preditivo é um bloco que é encontrado para corresponder proximamente à PU do bloco de vídeo para ser codificado em termos de diferença de pixel, a qual pode ser determinada pela soma da diferença absoluta (SAD), soma de diferença de quadrado (SSD), ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular os valores para posições subinteiras de pixel de imagens de referência armazenados na memória temporária de imagem decodificada 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições fracionárias de pixel da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma pesquisa de movimento relativo às posições de pixel inteiro e posições fracionárias de pixel e emitir um vetor de movimento com precisão fracionária de pixel.
[0357] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando a posição da PU à posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou de uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica um ou mais imagens de referência armazenados em memória temporária de imagem decodificada 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e para a unidade de compensação de movimento 44.
[0358] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo baseado no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações para precisão subpixel. Em consequência de receber o vetor de movimento para a PU do bloco de vídeo corrente, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagens de referência. O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo corrente sendo codificado, que forma a diferença de valores de pixel. A diferença de valores de pixel forma dados residuais para o bloco, e pode incluir tanto componentes de diferença luma como chroma. O somador 50 representa o componente ou componentes que realizam esta operação de subtração. A unidade de compensação de movimento 44 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 dos blocos de vídeo da fatia de vídeo.
[0359] O módulo de intrapredição 46 pode realizar intrapredição de um bloco corrente, como uma alternativa à interpredição realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, como descrito acima. Em particular, o módulo de intrapredição 46 pode determinar um modo de intrapredição para usar para codificar um corrente bloco. Em alguns exemplos, o módulo de intrapredição 46 pode codificar um bloco corrente usando vários modos de intrapredição, por exemplo, durante passagens de codificação separadas, e o módulo de intrapredição 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição apropriado para usar a partir dos modos testados. Por exemplo, o módulo de intrapredição 46 pode calcular valores de taxa de distorção usando uma análise de taxa de distorção para os vários modos de intrapredição testados, e selecionar o modo de intrapredição que tem as melhores características de taxa de distorção dentre os modos testados. A análise de taxa de distorção geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (ou seja, um número de bits) usados para produzir o bloco codificado. O módulo de intrapredição 46 pode calcular razões das distorções e taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de taxa de distorção para o bloco.
[0360] Após selecionar um modo de intrapredição para um bloco, o módulo de intrapredição 46 pode fornecer informação indicativa do modo de intrapredição selecionado para o bloco para unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar a informação que indica o modo de intrapredição selecionado de acordo com as técnicas desta revelação. O codificador de vídeo 20 pode incluir no fluxo de bits de dados de configuração transmitido, que pode incluir uma pluralidade de tabelas de índices de modo de intrapredição e uma pluralidade de tabelas de índices de modo de intrapredição modificadas (também referenciadas como tabelas de mapeamento de palavra de código), definições de contextos de codificação para vários blocos, e indicações de um modo mais provável de intrapredição, uma tabela de índices de modo de intrapredição, e uma tabela de índices modo de intrapredição modificada para usar cada um dos contextos.
[0361] Após o módulo de predição 41 gerar o bloco preditivo para o bloco de vídeo corrente através de ou interpredição ou intrapredição, o codificador de vídeo 20 forma um bloco de vídeo residual subtraindo o bloco preditivo do bloco de vídeo corrente. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados ao módulo de transformada 52. O módulo de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residual usando uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada conceitualmente similar. O módulo de transformada 52 pode converter os dados de vídeo residuais de um domínio de pixel para um domínio transformado, tal como um domínio de frequência.
[0362] O módulo de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associados com alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0363] Seguindo a quantização, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar a codificação do comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseada em sintaxe (SBAC), Entropia de codificação de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia. Seguindo a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 56 também pode codificar por entropia o vetor de movimentos e os outros elementos de sintaxe para a fatia de vídeo corrente sendo codificada.
[0364] A unidade de quantização inversa 58 e módulo de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para posterior uso como um bloco de referência de uma imagem de referência. unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de uma das imagens de referência dentro de uma das listas de imagens de referência. 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 valores de pixel subinteiros para usar na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de referência para armazenamento em memória temporária de imagem decodificada 64. O bloco de referência pode ser usado pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 como um bloco de referência para interpredição de um bloco em uma imagem ou quadro de vídeo subsequente.
[0365] De acordo com esta revelação, o módulo de predição 41 representa uma unidade exemplificativa para realizar as funções exemplificativas descritas acima. Por exemplo, o módulo de predição 41 pode determinar quais imagens de referência pertencem a um conjunto de imagens de referência, e fazer com que o codificador de vídeo 20 codifique informação indicativa das imagens de referência que pertencem ao conjunto de imagens de referência. Também, durante o processo de reconstrução (por exemplo, o processo usado para reconstruir uma imagem para usar como uma imagem de referência e armazenamento em memória temporária da imagem decodificada 64), o módulo de predição 41 pode construir a pluralidade de subconjuntos de imagens de referência em que cada um identifica um ou mais das imagens de referência. O módulo de predição 41 também pode derivar o conjunto de imagens de referência a partir da pluralidade de subconjuntos de imagens de referência construídos. Também, o módulo de predição 41 pode implementar qualquer um ou mais dos conjuntos de exemplos de pseudocódigos descritos acima para implementar uma ou mais técnicas exemplificativas descritas nesta revelação.
[0366] Em alguns exemplos, o módulo de predição 41 pode construir as listas de imagens de referência iniciais da maneira descrita acima. Em alguns exemplos, não é necessária nenhuma reordenação das imagens a serem incluídas nas listas de imagens de referência iniciais. Também, o módulo de predição 41 pode construir as listas de imagens de referência desta forma em que não existe nenhuma entrada não completada nas listas de imagens de referência. Em alguns exemplos, o módulo de predição 41 também pode modificar as listas de imagens de referência iniciais da maneira descrita acima para construir a lista modificada de imagens de referência. Além disso, em alguns exemplos, o módulo de predição 41 pode implementar a remoção de imagens decodificadas da DPB 64 da maneira descrita acima. Além disso, em alguns exemplos, o módulo de predição 41 pode ser configurado para determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência para a imagem atual da maneira descrita acima.
[0367] Em outros exemplos, uma unidade diferente do módulo de predição 41 pode implementar os exemplos descritos acima. Em alguns outros exemplos, o módulo de predição 41 em conjunto com uma ou mais outras unidades de codificador de vídeo 20 podem implementar os exemplos descritos acima. Em ainda alguns outros exemplos, um processador ou unidade de codificador de vídeo 20 (não mostrados na FIGURA 3) pode, sozinho ou em conjunto com outras unidades de codificador de vídeo 20, implementar os exemplos descrito acima.
[0368] A FIGURA 4 é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo 30 que pode implementar as técnicas descritas nesta revelação. no exemplo da FIGURA 4, o decodificador de vídeo 30 inclui uma unidade de codificação de entropia 80, o módulo de predição 81, unidade de quantização inversa 86, unidade de transformação inversa 88, somador 90, e memória temporária de imagem decodificada (DPB) 92. O módulo de predição 81 inclui a unidade de compensação de movimento 82 e o módulo de intrapredição 84. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita com respeito ao codificador de vídeo 20 da FIGURA 3.
[0369] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados de codificador de vídeo 20. A unidade de codificação de entropia 80 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento, e outros elementos de sintaxe. A unidade de codificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para o módulo de predição 81. O codificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0370] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), o módulo de intrapredição 84 do módulo de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo corrente baseado em um modo de intrapredição sinalizado e dados de blocos codificados previamente da imagem atual. Quando a imagem de vídeo é codificado como uma fatia intercodificada (ou seja, B ou P), a unidade de compensação de movimento 82 do módulo de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo corrente baseado nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de codificação por entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando as técnicas de construção padrão baseado em imagens de referência armazenados na memória temporária de imagem decodificada 92. Em alguns exemplos, o decodificador de vídeo 30 pode construir Lista 0 e Lista 1 a partir das imagens de referência identificados no conjunto derivado de imagens de referência.
[0371] A unidade de compensação de movimento 82 determina a informação de predição para um bloco de vídeo da fatia de vídeo corrente analisando os vetores de movimento e outros elementos de sintaxe, e usa a informação de predição para produzir os blocos preditivos para o bloco de vídeo corrente sendo decodificado. Por exemplo, a unidade de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, inter ou intrapredição) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de interpredição (por exemplo, fatia B ou fatia P), informação de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, estado de interpredição para cada bloco de vídeo da fatia intercodificado, e outra informação para decodificar os blocos de vídeo na fatia de vídeo corrente.
[0372] A unidade de compensação de movimento 82 também pode realizar interpolação baseado em filtros de interpolação. A unidade de compensação de movimento 82 pode usar filtros de interpolação como usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels subinteiros de blocos de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0373] A unidade de quantização inversa 86 quantiza inversa, ou seja, de- quantiza, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de codificação por entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, igualmente, um grau de quantização inversa que devem ser aplicados. O módulo de transformada inversa 88 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de inteiro inversa, ou um processo de transformada inverso conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0374] Após o módulo de predição 81 gerar o bloco preditivo para o bloco de vídeo corrente baseado em inter ou intrapredição, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando os blocos residuais de módulo de transformada inversa 88 com os blocos preditivos correspondentes gerados pelo módulo de predição 81. O somador 90 representa o componente ou componentes que realizam esta operação de soma. Se desejado, um filtro de desblocamento também pode ser aplicado para filtrar os blocos decodificados a fim de remover artefatos de blocagem. Outros filtros de malha (ou na malha de codificação ou após à malha de codificação) também podem ser usados para suavizar transições de pixel, ou caso contrário melhorar a qualidade do vídeo. Os blocos de vídeo decodificados em uma determinada imagem então são armazenadas em memória temporária de imagem decodificada 92, que armazena imagens de referência usados para subsequente compensação de movimento. A memória temporária de imagem decodificada 92 também armazena vídeo decodificado para posterior apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 da FIGURA 1.
[0375] De acordo com esta revelação, o módulo de predição 81 representa uma unidade exemplificativa para realizar as funções exemplificativas descritas acima. Por exemplo, o módulo de predição 81 pode determinar quais imagens de referência pertencem a um conjunto de imagens de referência. Também, o módulo de predição 81 pode construir a pluralidade de subconjuntos de imagens de referência em que cada um identifica um ou mais das imagens de referência. O módulo de predição 81 também pode derivar o conjunto de imagens de referência a partir da pluralidade de subconjuntos de imagens de referência construídos. Também, o módulo de predição 81 pode implementar qualquer um ou mais dos conjuntos de pseudocódigo exemplificativos descritos acima para implementar uma ou mais técnicas exemplificativas descritas nesta revelação.
[0376] Em alguns exemplos, o módulo de predição 81 pode construir as listas de imagens de referência iniciais da maneira descrita acima. Em alguns exemplos, não é necessária nenhuma reordenação das imagens a serem incluídos nas listas de imagens de referência iniciais. Também, o módulo de predição 81 pode construir as listas de imagens de referência nesta forma em que não existe nenhuma entrada não completada nas listas de imagens de referência. Em alguns exemplos, o módulo de predição 81 também pode modificar as listas de imagens de referência iniciais da maneira descrita acima para construir a lista modificada de imagens de referência. Além disso, em alguns exemplos, o módulo de predição 81 pode implementar a remoção de imagens decodificadas de DPB 94 da maneira descrita acima. Além disso, em alguns exemplos, o módulo de predição 81 pode ser configurado para determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência para a imagem atual da maneira descrita acima.
[0377] Em outros exemplos, uma unidade diferente do módulo de predição 81 pode implementar os exemplos descritos acima. Em alguns outros exemplos, os módulos de predição 81 em conjunto com uma ou mais outras unidades do decodificador de vídeo 30 podem implementar os exemplos descritos acima. Em ainda alguns outros exemplos, um processador ou unidade de decodificador de vídeo 30 (não mostrado na FIGURA 4) pode, sozinho ou em conjunto com outras unidades de decodificador de vídeo 30, implementar os exemplos descritos acima.
[0378] A FIGURA 5 é um fluxograma que ilustra uma operação de derivação de um conjunto de imagens de referência exemplificativo. Apenas para propósitos de ilustração, o método da FIGURA 5 pode ser realizado por um codificador de vídeo que corresponde a ou o codificador de vídeo 20 ou o decodificador de vídeo 30. Por exemplo, um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou o decodificador de vídeo 30) pode codificar (por exemplo, codificar ou decodificar) a informação indicativa de imagens de referência que pertence a um conjunto de imagens de referência (94). O conjunto de imagens de referência pode identificar as imagens de referência que podem potencialmente ser usadas para interpredição de uma imagem atual e para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0379] Por exemplo, quando o codificador de vídeo 20 realiza a etapa 94, o codificador de vídeo 20 pode codificar valores que indicam identificadores para as imagens de referência que pertencem ao conjunto de imagens de referência. Por exemplo, o codificador de vídeo 20 pode sinalizar no fluxo de bits o elemento de sintaxe pic_order_cnt_lsb, e o elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4. Quando o decodificador de vídeo 30 realiza a etapa 94, do elemento de sintaxe log2_max_pic_order_cnt_lsb_minus4, o decodificador de vídeo 30 pode determinar o valor de MaxPicOrderCntLsb. O decodificador de vídeo 30 então pode determinar os identificadores (por exemplo, os valores de POC) para as imagens de referência que pertencem ao conjunto de imagens de referência.
[0380] O codificador de vídeo pode construir uma pluralidade de subconjuntos de imagens de referência em que cada um identifica zero ou mais das imagens de referência (96). Por exemplo, o codificador de vídeo pode construir os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll. Entretanto, os aspectos desta revelação não são tão limitados. Em alguns exemplos, o codificador de vídeo pode construir cinco subconjuntos de imagens de referência, quatro dos quais podem ser quatro dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll, e o quinto pode ser uma combinação de dois dos seis subconjuntos de imagens de referência remanescentes (por exemplo, uma combinação dos subconjuntos de imagens de referência RefPicSetFoll0 e RefPicSetFoll1).
[0381] Em alguns exemplos, o codificador de vídeo pode construir pelo menos dois dos quatro subconjuntos de imagens de referência seguintes. Em outros exemplos, o codificador de vídeo pode construir pelo menos quatro subconjuntos de imagens de referência seguintes. O primeiro subconjunto de imagens de referência pode identificar imagens de referência de curto prazo que são anteriores à imagem atual na ordem de decodificação e anteriores à imagem atual na ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e de uma ou mais das uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O segundo subconjunto de imagens de referência pode identificar imagens de referência de curto prazo que são anteriores à imagem atual na ordem de decodificação e subsequentes à imagem atual em ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e de uma ou mais das uma ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0382] O terceiro subconjunto de imagens de referência pode identificar imagens de referência de longo prazo que são anteriores à imagem atual na ordem de decodificação e que podem potencialmente ser usadas para interpredição da imagem atual e de uma ou mais das uma ou mais imagens que seguem a imagem atual na ordem de decodificação. O quarto subconjunto de imagens de referência pode identificar imagens de referência de longo prazo que são anteriores à imagem atual na ordem de decodificação e que não podem ser usadas para interpredição da imagem atual, e podem potencialmente ser usadas para interpredição de um ou mais dos um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0383] O codificador de vídeo pode derivar o conjunto de imagens de referência a partir da pluralidade de subconjuntos de imagens de referência (98). Por exemplo, o codificador de vídeo pode ordenar pelo menos dois dos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr, e RefPicSetLtFoll em uma ordem particular para derivar o conjunto de imagens de referência.
[0384] Em alguns exemplos, a ordenação realizada pela codificação de vídeo pode significar que as imagens em cada um dos subconjuntos de imagens de referência podem ser identificadas sequencialmente dentro do conjunto de imagens de referência. Nestes exemplos, o codificador de vídeo pode referenciar as imagens de referência no conjunto de imagens de referência por um valor de índice no conjunto de imagens de referência.
[0385] O codificador de vídeo pode codificar a imagem atual baseado no conjunto de imagens de referência derivado (100). Deve ser entendido que devido ao codificador de vídeo derivar o conjunto de imagens de referência a partir dos subconjuntos de imagens de referência, o codificador de vídeo pode ser considerado como codificando a imagem atual baseado na pluralidade de subconjuntos de imagens de referência. Por exemplo, o codificador de vídeo pode construir pelo menos uma de uma primeira lista de imagens de referência e uma segunda lista de imagens de referência baseado na pluralidade de subconjuntos de imagens de referência (por exemplo, a partir do conjunto de imagens de referência derivados que é derivado a partir da pluralidade de subconjuntos de imagens de referência). O codificador de vídeo então pode codificar a imagem atual baseado em pelo menos uma da primeira lista de imagens de referência e segunda lista de imagens de referência.
[0386] A FIGURA 6 é um fluxograma que ilustra uma operação de construção de uma lista de imagens de referência exemplificativa. Apenas para propósitos de ilustração, o método da FIGURA 6 pode ser realizado por um codificador de vídeo que corresponde a ou o codificador de vídeo 20 ou o decodificador de vídeo 30. Similar à FIGURA 5, o codificador de vídeo pode codificar a informação indicativa de imagens de referência (102), e construir a pluralidade de subconjuntos de imagens de referência (104).
[0387] O codificador de vídeo então pode adicionar imagens de referência de subconjuntos de imagens de referência, em uma lista de imagens de referência inicial, para construir a lista de imagens de referência inicial (106). Em alguns exemplos, tanto o codificador de vídeo 20 como o decodificador de vídeo 30 podem construir a lista de imagens de referência inicial. Por exemplo, o codificador de vídeo 20 pode construir a lista de imagens de referência inicial para criar os blocos de vídeo reconstruídos para armazenar na DPB 64. O decodificador de vídeo 30 pode construir a lista de imagens de referência inicial como parte de seu processo de decodificação, e pode implementar uma técnica de construção padrão pela qual o decodificador de vídeo 30 não precisa receber informação do codificador de vídeo 20 com respeito à forma pela qual construir a lista de imagens de referência inicial.
[0388] Em alguns exemplos, para construir a lista de imagens de referência inicial, o codificador de vídeo pode adicionar imagens de referência a partir de um primeiro subconjunto da pluralidade de subconjuntos de imagens de referência dentro da lista de imagens de referência inicial, seguidos por imagens de referência de um segundo subconjunto dentro da lista de imagens de referência inicial, e então seguidos por imagens de referência de um terceiro subconjunto dentro da lista de imagens de referência inicial. O codificador de vídeo pode adicionar imagens de referência destes subconjuntos de imagens de referência desde que o número total de imagens de referência listados na lista de imagens de referência inicial não seja maior do que o número máximo de entradas admissíveis na lista de imagens de referência inicial. Por exemplo, se em qualquer tempo durante a adição das imagens de referência na lista de imagens de referência, o número de entradas na lista de imagens de referência inicial se tornar igual ao número máximo permissível de entradas na lista de referência inicial, o codificador de vídeo pode parar de adicionar quaisquer imagens adicionais na lista de imagens de referência inicial.
[0389] O codificador de vídeo pode construir de maneira similar outra lista de imagens de referência inicial, tal como nos exemplos onde o bloco de vídeo da imagem atual é bi predito. Neste exemplo, para construir esta outra lista de imagens de referência inicial, o codificador de vídeo pode adicionar imagens de referência a partir do segundo subconjunto dentro da outra lista de imagens de referência inicial, seguidos por imagens de referência do primeiro subconjunto dentro da outra lista de imagens de referência inicial, e então seguidos por imagens de referência do terceiro subconjunto dentro da outra lista de imagens de referência inicial desde que o número total de entradas nesta outra lista de imagens de referência inicial não seja maior do que o número permissível de entradas. Nestes exemplos, o primeiro subconjunto pode ser o subconjunto de imagens de referência RefPicSetStCurr0, o segundo subconjunto pode ser o subconjunto de imagens de referência RefPicSetStCurr1, e o terceiro subconjunto pode ser o subconjunto de imagens de referência RefPicSetLtCurr.
[0390] Em alguns exemplo, para adicionar imagens de referência identificados nos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr, o codificador de vídeo pode codificar (por exemplo, codificar ou decodificar) elementos de sintaxe a partir dos quais o codificador de vídeo pode determinar o número de imagens de referência em cada um destes subconjuntos de imagens de referência. Por exemplo, o codificador de vídeo pode codificar um elemento de sintaxe num_short_term_curr0 e um elemento de sintaxe num_short_term_curr1. O elemento de sintaxe num_short_term_curr0 e o elemento de sintaxe num_short_term_curr1 podem indicar o número de imagens de referência identificados no subconjunto de imagens de referência RefPicSetStCurr0 e no subconjunto de imagens de referência RefPicSetStCurr1, respectivamente.
[0391] O codificador de vídeo também pode codificar um elemento de sintaxe num_long_term_pps_curr, e um elemento de sintaxe num_long_term_add_curr. O elemento de sintaxe num_long_term_pps_curr pode indicar um número de imagens de referência de longo prazo cuja identificação é incluída em um conjunto de parâmetros de imagem (PPS), e o elemento de sintaxe num_long_term_add_curr pode indicar um número de imagens de referência de longo prazo cuja informação de identificação não está incluída no PPS. Neste exemplo, estes imagens de referência de longo prazo podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de um ou mais imagens que seguem a imagem atual na ordem de decodificação.
[0392] O codificador de vídeo pode determinar o número de imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr baseado no elemento de sintaxe num_long_term_pps_curr e no elemento de sintaxe num_long_term_add_curr. Por exemplo, o codificador de vídeo pode somar os valores do elemento de sintaxe num_long_term_pps_curr e do elemento de sintaxe num_long_term_add_curr para determinar o número de imagens de referência no subconjunto de imagens de referência RefPicSetLtCurr.
[0393] O codificador de vídeo pode codificar a imagem atual baseada na lista ou listas de imagens de referência (108). Por exemplo, o codificador de vídeo pode construir pelo menos uma de uma primeira lista de imagens de referência e uma segunda lista de imagens de referência baseado no conjunto de imagens de referência derivado. O codificador de vídeo pode então codificar a imagem atual baseado em pelo menos uma da primeira lista de imagens de referência e a segunda lista de imagens de referência.
[0394] A FIGURA 7 é um fluxograma que ilustra outra operação de construção de uma lista de imagens de referência exemplificativa. Apenas para propósitos de ilustração, o método da FIGURA 7 pode ser realizado por um codificador de vídeo que corresponde a ou o codificador de vídeo 20 ou o decodificador de vídeo 30. Similar à FIGURA 5, o codificador de vídeo pode codificar informação indicativa de imagens de referência (110), e construir a pluralidade de subconjuntos de imagens de referência (112). O codificador de vídeo pode adicionar as imagens de referência dentro de um primeiro conjunto de entradas de uma lista de imagens de referência (114). Por exemplo, o número de entradas na lista de imagens de referência pode ser igual ao número máximo de entradas admissíveis como definido pelos elementos de sintaxe num_ref_idx_l0_active_minus1 ou num_ref_idx_l1_active_minus1.
[0395] Neste exemplo, o codificador de vídeo pode listar (por exemplo, adicionar) dentro do primeiro conjunto de entradas as imagens de referência identificados nos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Por exemplo, para a Lista 0, o codificador de vídeo pode adicionar dentro do primeiro conjunto de entradas de Lista 0, em ordem, as imagens de referência identificados nos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. Para a Lista 1, o codificador de vídeo pode adicionar dentro do primeiro conjunto de entradas da Lista 1, em ordem, as imagens de referência identificados nos RefPicSetStCurr1, subconjuntos de imagens de referência RefPicSetStCurr0, e RefPicSetLtCurr.
[0396] O codificador de vídeo então pode determinar se o número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência (116). Se o número de entradas na lista de imagens de referência não for menor do que o número máximo de entradas admissíveis (“NÃO” em 116), o codificador de vídeo pode codificar a imagem atual baseada na lista de imagens de referência (118).
[0397] Caso contrário, se o número de entradas na lista de imagens de referência for menor do que o número máximo de entradas admissíveis (“SIM” em 116), o codificador de vídeo pode relistar (por exemplo, reidentificar ou readicionar) um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas nas listas de imagens de referência que são subsequentes ao primeiro conjunto de entradas (120). Por exemplo, o codificador de vídeo pode adicionar um ou mais imagens de referência identificados no subconjunto de imagens de referência RefPicSetStCurr0 dentro da Lista 0 em entradas subsequentes ao primeiro conjunto de entradas na Lista 0, ou um ou mais imagens de referência identificados no subconjunto de imagens de referência RefPicSetStCurr1 dentro da Lista 1 em entradas subsequente ao primeiro conjunto de entradas na Lista 1. Desta forma, o codificador de vídeo pode identificar pelo menos uma imagem de referência a partir do primeiro subconjunto de imagens de referência em mais do que uma entrada na lista de imagens de referência.
[0398] O codificador de vídeo então pode determinar se o número de entradas na lista de imagens de referência é igual a um número máximo de entradas admissíveis na lista de imagens de referência (122). Se o número de entradas na lista de imagens de referência não for menor do que o número máximo de entradas admissíveis (“NÃO” em 122), o codificador de vídeo pode codificar a imagem atual baseada na lista de imagens de referência (124).
[0399] Caso contrário, se o número de entradas na lista de imagens de referência for menor do que o número máximo de entradas admissíveis (“SIM” em 122), o codificador de vídeo pode relistar (por exemplo, reidentificar ou readicionar) um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas (120). Por exemplo, nesta situação, o codificador de vídeo pode readicionar imagens de referência adicionais identificados no primeiro subconjunto de imagens de referência. Se, o codificador de vídeo já tiver readicionado todos as imagens de referência no primeiro subconjunto de imagens de referência, o codificador de vídeo pode readicionar um ou mais imagens de referência a partir do segundo subconjunto de imagens de referência (por exemplo, o subconjunto de imagens de referência RefPicSetStCurr0 para a Lista 0, ou o subconjunto de imagens de referência RefPicSetStCurr1 para a Lista 1). Este processo pode se repetir até o número de entradas na lista de imagens de referência não ser menor do que o número máximo de entradas admissíveis (“NÃO” em 122).
[0400] Desta forma, quando o número de entradas na lista de imagens de referência não é igual ao número máximo de entradas admissíveis na lista de imagens de referência, o codificador de vídeo pode repetidamente relistar (por exemplo, reidentificar ou readicionar) um ou mais imagens de referência a partir de pelo menos um dos subconjuntos de imagens de referência dentro de entradas na lista de imagens de referência que são subsequentes ao primeiro conjunto de entradas até o número de entradas na lista de imagens de referência ser igual ao número máximo de entradas admissíveis na lista de imagens de referência. Isto pode resultar no codificador de vídeo listar imagens de referência nas entradas da lista de imagens de referência de modo que cada entrada da lista de imagens de referência identifique uma das imagens de referência, e de modo que pelo menos duas entradas da lista de imagens de referência identifiquem uma mesma imagem de referência das imagens de referência.
[0401] A FIGURA 8 é um fluxograma que ilustra uma operação de modificação de uma lista de imagens de referência inicial exemplificativa. Apenas para propósitos de ilustração, o método da FIGURA 8 pode ser realizado por um codificador de vídeo que corresponde a ou o codificador de vídeo 20 ou o decodificador de vídeo 30. Similar à FIGURA 6, o codificador de vídeo pode codificar a informação indicativa de imagens de referência (126), e construir a pluralidade de subconjuntos de imagens de referência (128). A pluralidade de subconjuntos de imagens de referência pode incluir os subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr. O codificador de vídeo pode construir uma lista de imagens de referência inicial da maneira descrita acima baseado nos subconjuntos de imagens de referência RefPicSetStCurr0, RefPicSetStCurr1, e RefPicSetLtCurr (130).
[0402] O codificador de vídeo pode determinar se é necessária modificação da lista de imagens de referência (132). Por exemplo, o codificador de vídeo pode codificar elementos de sintaxe tais como o ref_pic_lista_modification_flag_l0 e o ref_pic_lista_modification_flag_l1 que indicam se a Lista 0 inicial ou a Lista 1 inicial precisam ser modificadas. Se não for necessária modificação da lista de imagens de referência inicial (“NÃO” em 132), o codificador de vídeo pode codificar a imagem atual baseada na lista de imagens de referência inicial (134).
[0403] Se for necessária modificação (“SIM” em 132), o codificador de vídeo pode identificar uma imagem de referência em pelo menos um dos subconjuntos de imagens de referência construídos (136). Por exemplo, o codificador de vídeo pode codificar o elemento de sintaxe modification_of_ref_pic_idc. O valor do elemento de sintaxe modification_of_ref_pic_idc pode indicar qual subconjunto de imagens de referência o codificador de vídeo deve utilizar para identificar a imagem de referência. O codificador de vídeo também pode codificar o elemento de sintaxe ref_pic_set_idx que indica o índice dentro do subconjunto de imagens de referência que o codificador de vídeo deve utilizar para identificar a imagem de referência.
[0404] O codificador de vídeo pode listar (por exemplo, adicionar ou identificar) a imagem de referência identificada na lista de imagens de referência inicial em uma entrada corrente para construir a lista modificada de imagens de referência (138). A entrada corrente pode inicialmente ser a entrada na lista de imagens de referência inicial definida pelo índice 0. Para cada instância do elemento de sintaxe modification_of_ref_pic_idc no fluxo de bits codificado onde o valor do elemento de sintaxe modification_of_ref_pic_idc não é 3, o codificador de vídeo pode incrementar o valor da entrada inicial por um (por exemplo, o próximo valor da entrada será definido pelo índice 1). O codificador de vídeo pode codificar a imagem atual baseada na lista modificada de imagens de referência (140).
[0405] A FIGURA 9 é um fluxograma que ilustra uma operação de remoção de imagem decodificada exemplificativa. Apenas para propósitos de ilustração, o método da FIGURA 8 pode ser realizado por um codificador de vídeo que corresponde a ou codificador de vídeo 20 ou o decodificador de vídeo 30. Similar à FIGURA 5, um codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode codificar (por exemplo, codificar ou decodificar) a informação indicativa de imagens de referência a partir de um conjunto de imagens de referência (142), e pode derivar o conjunto de imagens de referência a partir da informação codificada (por exemplo, codificada ou decodificada) (144).
[0406] O codificador de vídeo pode determinar se uma imagem decodificada armazenada em uma memória temporária de imagem decodificada (DPB) não é necessária para saída (ou seja, já emitida ou não destinada a ser emitida) e não está identificada no conjunto de imagens de referência (146). Se a imagem decodificada é necessária para saída ou está identificada no conjunto de imagens de referência (“NÃO” em 146), o codificador de vídeo pode não remover a imagem decodificada da DPB, e pode manter a imagem decodificada armazenada na DPB (148).
[0407] Quando a imagem decodificada tiver sido emitida e não estiver identificada no conjunto de imagens de referência (“SIM” em 146), o codificador de vídeo pode remover a imagem decodificada da DPB (150). O codificador de vídeo pode então codificar a imagem atual após remover a imagem decodificada (152).
[0408] Como descrito acima, o codificador de vídeo pode construir uma lista de imagens de referência baseado no conjunto de imagens de referência para codificar a imagem atual. Em alguns exemplos, o codificador de vídeo pode remover a imagem decodificada da DPB após construir a lista de imagens de referência. Além disso, para a imagem decodificada emitida, o codificador de vídeo pode determinar uma hora para emitir a imagem decodificada, e pode emitir a imagem decodificada baseada na hora determinada e anterior a codificar a imagem atual.
[0409] Em alguns exemplos, o codificador de vídeo pode armazenar a imagem codificada (por exemplo, decodificada) na DPB. Em alguns exemplos, o codificador de vídeo pode determinar que a DPB está cheia antes do armazenamento. Nestes exemplos, o codificador de vídeo pode selecionar uma imagem decodificada correntemente armazenada na DPB que está marcada como “necessária para saída” e que tem um valor Contador de Ordem de imagem (POC) menor de todas as imagens decodificadas armazenadas na DPB. O codificador de vídeo pode então emitir a imagem selecionada. Além disso, o codificador de vídeo pode determinar que a imagem emitida não está incluída no conjunto de imagens de referência da imagem atual. Neste caso, o codificador de vídeo pode esvaziar uma memória temporária dentro da DPB que armazenava a imagem emitida, e pode armazenar a imagem codificada naquela memória temporária dentro da DPB.
[0410] A FIGURA 10 é um fluxograma que ilustra uma operação exemplificativa para determinar quais imagens de referência de longo prazo pertencem ao conjunto de imagens de referência de uma imagem atual. Apenas para propósitos de ilustração, o método da FIGURA 10 pode ser realizado por um codificador de vídeo que corresponde a ou o codificador de vídeo 20 ou o decodificador de vídeo 30.
[0411] O codificador de vídeo (por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30) pode codificar elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo identificados em um conjunto de parâmetros (154). Em alguns exemplos, um ou mais dos candidatos a imagens de referência de longo prazo pertencem a um conjunto de imagens de referência da imagem atual. De acordo com as técnicas descritas nesta revelação, o conjunto de parâmetros pode ser o conjunto de parâmetros de sequência ou o conjunto de parâmetros de imagem. Em alguns exemplos, para codificar os elementos de sintaxe que indicam candidatos a imagens de referência de longo prazo, o codificador de vídeo pode codificar uma lista de valores de POC para os candidatos a imagens de referência de longo prazo no conjunto de parâmetros, e codificar um valor de índice para a lista no cabeçalho da fatia da imagem atual.
[0412] O codificador de vídeo pode codificar elementos de sintaxe que indicam quais candidatos as imagens de referência de longo prazo, identificados no conjunto de parâmetros, pertencem ao conjunto de imagens de referência da imagem atual (156). Por exemplo, o codificador de vídeo pode codificar no cabeçalho da fatia da imagem atual os elementos de sintaxe que indicam quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência.
[0413] Em alguns exemplos, nem todas as imagens de referência de longo prazo que pertencem ao conjunto de imagens de referência são incluídas nos candidatos a imagens de referência de longo prazo. Nestes exemplos, o codificador de vídeo pode adicionalmente codificar elementos de sintaxe que indicam imagens de referência de longo prazo que pertencem ao conjunto de imagens de referência (158). O codificador de vídeo então pode construir pelo menos um da pluralidade de subconjuntos de imagens de referência baseado na indicação de quais candidatos a imagens de referência de longo prazo pertencem ao conjunto de imagens de referência da imagem atual (160).
[0414] Em os exemplos acima, vários exemplos são descritos, juntamente com possíveis alternativas para os exemplos. O conteúdo a seguir descreve algumas alternativas adicionais para os exemplos, as quais podem ser consideradas como exemplos alternativos para uma ou mais dos exemplos descritos acima. Além disso, estes exemplos alternativos podem ser usados em conjunto com os exemplos descrito acima, ou separados dos exemplos descritos acima.
[0415] Por exemplo, já são descritos acima exemplos alternativos para o conceito de conjunto de imagens de referência, exemplos alternativos para a sinalização de conjunto de imagens de referência nos conjuntos de parâmetros, exemplos alternativos de subconjuntos do conjunto de imagens de referência, e exemplos alternativos para marcação da imagem de referência. A seguir são fornecidos exemplos alternativos adicionais.
[0416] Por exemplo, para a unidade de cabeçalho de NAL, nos exemplos acima, a unidade de sintaxe de cabeçalho de NAL pode incluir os elementos de sintaxe nal_ref_idc, temporal_id, e output_flag. Em um exemplo alternativo, nal_ref_idc (2 bits) é substituído por nal_ref_flag (1 bit). Neste exemplo, nal_ref_flag igual a 1 tem a semântica que nal_ref_idc maior do que 0, e nal_ref_flag igual a 0 tem a mesma semântica que nal_ref_idc igual a 0. Em um exemplo alternativo, nal_ref_idc (2 bits) é removido. A definição de imagem de referência pode ser mudada para: uma imagem que contém amostras que podem ser usadas para interpredição no processo de decodificação de imagens subsequentes na ordem de decodificação. Em um exemplo alternativo, temporal_id não está presente na sintaxe de cabeçalho da unidade de NAL, e o valor é derivado para ser o mesmo para todos as imagens. Em um exemplo alternativo, output_flag não está presente na sintaxe de cabeçalho da unidade de NAL, e o valor é derivado para ser igual a 1 para todos as imagens.
[0417] Para a sinalização e cálculo do Contador de Ordem de Imagem, as técnicas acima podem empregar uma forma de sinalização e cálculo de Contador de Ordem de Imagem que pode ser similar ao Contador de Ordem de imagem tipo 0 em AVC. Podem ser aplicadas duas formas alternativas para a sinalização e cálculo do Contador de Ordem de Imagem, iguais ao Contador de Ordem de Imagem tipos 1 e 2 em AVC, respectivamente. Qualquer combinação de duas das três formas, ou a combinação de todas as três formas também podem ser aplicadas.
[0418] Para identificação da imagem, as técnicas acima podem utilizar o valor do Contador de Ordem de Imagem (POC) para identificação da imagem. Em um exemplo alternativo, é usada referência temporal (TR) como identificação da imagem. Uma forma de definir a TR é que esta é a mesma que o POC quando o POC é restrito de modo que a diferença de POC entre quaisquer duas imagens é proporcional à hora de apresentação ou diferença de hora de amostragem. Em um exemplo alternativo, image_num que indica a ordem de decodificação (enquanto que POC indica a ordem de saída ou de exibição), ou uma variável (por exemplo, nomeada UnWrappedImageNum) que pode ser qualquer valor de um dos valores inteiros sem sinal de 32-bits, derivados de image_num pode ser usado como identificação da imagem. Basicamente, UnWrappedImageNum pode ser a versão não cíclica de image_num. Por exemplo, se image_num é representado por 8 bits, o valor máximo de image_num é 255. O próximo valor após 255 para image_num é 0. O valor de UnWrappedImageNum continua a aumentar em posições em que image_num volta para 0.
[0419] Para a sinalização de imagens de referência de longo prazo em conjuntos de parâmetros, nos exemplos acima, o codificador de vídeo 20 pode sinalizar uma lista de informação absoluta de identificação da imagem de referência de longo prazo do conjunto de parâmetros de imagem, pode sinalizar informação do comprimento, em bits, da informação absoluta de identificação da imagem de referência de longo prazo, e o índice para a lista pode ser referenciado no cabeçalho da fatia, para deste modo reduzir a sobrecarga de sinalização. Em um exemplo alternativo, uma lista de informação de identificação da imagem de referência de longo prazo diferencial pode ser sinalizada no conjunto de parâmetros de sequência e o índice para a lista pode ser referenciado no cabeçalho da fatia, para deste modo reduzir a sobrecarga de sinalização. Em um exemplo alternativo, a informação do comprimento, em bits, a informação absoluta de identificação da imagem de referência de longo prazo pode ser sinalizada, mas o comprimento pode ser considerado como uma constante, por exemplo, 32. Em vários exemplos, é aplicada uma combinação de qualquer dos exemplos acima.
[0420] Para a sinalização de imagens de referência de curto prazo, nos exemplos acima, para imagens de referência de curto prazo no conjunto de imagens de referência de uma imagem codificada, ou todas são sinalizadas no conjunto de parâmetros de imagem referenciado, ou todas são sinalizadas no cabeçalho da fatia. Em um exemplo alternativo, para as imagens de referência de curto prazo no conjunto de imagens de referência de uma imagem codificada, algumas são sinalizadas no conjunto de parâmetros da imagem referenciado, e outras são sinalizadas no cabeçalho da fatia.
[0421] Para a inicialização da lista de imagens de referência, em um exemplo alternativo, no processo inicialização de lista de imagens de referência, primeiro podem ser adicionadas as imagens de referência de curto prazo dentro de uma lista, e em segundo, opcionalmente, podem ser adicionadas as imagens de referência de longo prazo dentro da lista. Após isto, se o número de entradas na lista de imagens de referência (ou RefPicLista0 ou RefPicLista1) ainda for menor do que o valor de num_ref_idx_lx_active_minus1+1 (lx sendo l0 ou l1), as entradas remanescentes podem ser marcadas como “nenhuma imagem de referência”. Em um exemplo alternativo, também pode ser possível se a lista de imagens de referência ainda não estiver completa após adicionar as entradas em RefPicSetStCurr0 e RefPicSetStCurr1 e possivelmente as imagens de referência de longo prazo, as imagens no RefPicSetStFoll0 e/ou no RefPicSetStFoll1 podem ser adicionadas. Em um exemplo alternativo, o processo de inicialização da lista de imagens de referência somente pode adicionar imagens de referência de curto prazo em uma lista de imagens de referência. Neste caso, uma imagem de referência de longo prazo somente pode ser adicionada a uma lista de imagens de referência usando comandos de modificação da lista de imagens de referência como sinalizado na tabela de sintaxe de Modificação da Lista de Imagens de referência (RPLM).
[0422] Para modificação da lista de imagens de referência, em um exemplo alternativo, a modificação da lista de imagens de referência também pode sinalizar o ref_pic_set_idx de uma forma diferencial, em que o índice prévio é usado como um preditor do índice corrente. Neste exemplo, valores diferentes de modification_of_ref_pic_idc podem corresponder a categorias de indexação diferentes (RefPicSetStCurrx para RefPicListax, RefPicSetStCurrx para RefPicList(1-x), ou RefPicSetLtCurr), cada uma das quais mantém um preditor diferente. Um preditor pode ser atualizado uma vez que um elemento de sintaxe que pertence à mesma categoria acabou de ser analisado. Em um exemplo alternativo, a modificação das listas de imagens de referência pode ser baseada na diferença de imagem número. Em um exemplo alternativo, a modificação das listas de imagens de referência pode ser baseada nos valores de diferença de POC.
[0423] Para operações de memória temporária de imagem decodificada (DPB), no exemplo acima, após a decodificação da imagem atual e antes da análise de um cabeçalho de fatia da próxima imagem codificada na ordem de decodificação, a imagem decodificada corrente é armazenada na DPB. Em um exemplo alternativo, após a decodificação da imagem atual e antes da análise de um cabeçalho de fatia da próxima imagem codificada na ordem de decodificação, a imagem decodificada corrente é armazenada em uma memória temporária (não na DPB). A mesma é armazenada dentro da DPB após a análise de um cabeçalho de fatia da próxima imagem codificada na ordem de decodificação e da construção do conjunto de imagens de referência daquele quadro, se o mesmo ainda for necessário para referência ou para saída. Neste momento, se o mesmo não for necessário nem para referência nem para saída, a imagem decodificada pode ser simplesmente descartada (da memória temporária).
[0424] Também, nos exemplos acima, a remoção de uma imagem decodificada da DPB ocorre imediatamente após a análise de um cabeçalho de fatia da imagem atual e antes de decodificar qualquer fatia da imagem atual. Em um exemplo alternativo, a marcação, se presente, e remoção de uma imagem decodificada da DPB ocorre após a imagem atual ser inteiramente decodificada.
[0425] Em os exemplos acima, os subconjuntos RefPicSetStCurr0 e RefPicSetStCurr1 do conjunto de imagens de referência para a imagem atual são derivados para todas as imagens decodificadas. Entretanto, isto pode não ser necessário para imagem intra. Para imagem intra a derivação do conjunto de imagens de referência, em um exemplo alternativo, para uma imagem não IDR que é intracodificado (ou seja, todas as fatias da imagem codificada são fatias I), RefPicSetStCurr0 e RefPicSetStCurr1 não são derivados, como os mesmos ainda não estão vazios após serem derivados, os mesmos não são necessários para a decodificação da imagem codificada. Permitir RefPicSetStCurr0 ou RefPicSetStCurr1 não vazios para uma imagem não IDR intra pode permitir o compartilhamento de uma instância da estrutura de sintaxe short_term_ref_pic_set() de um ou mais imagens intercodificadas, para os quais RefPicSetStCurr0 e RefPicSetStCurr1 podem não estar ambos vazios.
[0426] Para detecção de perda, os métodos diferentes a seguir para a detecção da perda de uma imagem de referência ou detecção precoce de se a imagem atual pode ser decodificada corretamente podem ser possíveis. Em vários exemplos, após a derivação do conjunto de imagens de referência, o decodificador de vídeo 30 (por exemplo, o lado decodificador) pode verificar a presença de imagens de referência incluídos em RefPicSetStCurr0, RefPicSetStCurr1 e RefPicSetLtCurr. Se qualquer das imagens de referência incluídos em RefPicSetStCurr0, RefPicSetStCurr1 e RefPicSetLtCurr não estiver presente na DPB, o lado decodificador pode inferir que aquele imagem de referência foi perdido, e que a imagem atual provavelmente não será decodificada corretamente, e pode tomar algumas ações para melhorar a situação, por exemplo, notificando o lado codificador (por exemplo, o codificador de vídeo 20) de a(s) perda(s) de imagem, e o codificador pode retransmitir o(s) imagem(ns) de referência perdida(s) ou codificar a(s) próxima(s) imagem(ns) usando somente aquelas imagens de referência que é sabido que estão corretas no lado decodificador para referência de interpredição.
[0427] Em vários exemplos, após a derivação do conjunto de imagens de referência, o lado decodificador pode verificar a presença de imagens de referência incluídos em RefPicSetStFoll0, RefPicSetStFoll1 e RefPicSetLtFoll. Se qualquer das imagens de referência incluídos em RefPicSetStFoll0, RefPicSetStFoll1 e RefPicSetLtFoll não estiver presente na DPB, o lado decodificador pode inferir que aquele imagem de referência foi perdido, e que alguns das imagens que seguem na ordem de decodificação provavelmente não serão decodificadas corretamente a menos que algumas ações sejam tomadas, e pode tomar algumas ações para remediar a situação, por exemplo, notificando o lado codificador de a(s) perda(s) de imagem(ns), e o codificador pode retransmitir a(s) imagem(ns) de referência perdida(s) ou codificar a(s) próxima(s) imagem(ns) usando somente aquelas imagens de referência que é sabido que estão corretas no lado decodificador para interpredição referência.
[0428] Para o lado codificador (por exemplo, o codificador de vídeo 20) a composição do conjunto de imagens de referência, com os exemplos acima, podem ser possíveis os diferentes métodos a seguir para composição do conjunto de imagens de referência no lado codificador. Por exemplo, em vários exemplos, o codificador compõe as estruturas de sintaxe relacionadas ao conjunto de imagens de referência de modo que após a derivação do conjunto de imagens de referência no lado decodificador para a imagem atual: (1) RefPicSetStCurr0 inclui e somente inclui a informação de identificação de todos as imagens de referência de curto prazo que têm ordem de saída anterior àquela da imagem atual e que são usados para referência em interpredição da imagem atual, (2) RefPicSetStCurr1 inclui e somente inclui a informação de identificação de todos as imagens de referência de curto prazo que têm ordem de saída posterior àquela da imagem atual e que são usados para referência em interpredição da imagem atual, e (3) RefPicSetLtCurr inclui e somente inclui a informação de identificação de todos as imagens de referência de longo prazo que são usados para referência em interpredição da imagem atual.
[0429] Em vários exemplos, o codificador (por exemplo, codificador de vídeo 20) pode compor as estruturas de sintaxe relacionadas ao conjunto de imagens de referência de modo que após a derivação do conjunto de imagens de referência no lado decodificador para a imagem atual: (1) RefPicSetStCurr0 inclui e somente inclui a informação de identificação de 1) todos as imagens de referência de curto prazo que têm ordem de saída anterior àquela da imagem atual e que são usados para referência em interpredição da imagem atual, bem como 2) um ou mais imagem de referência de curto prazo que têm ordem de saída anterior àquela da imagem atual e que não são usados para referência em interpredição da imagem atual, (2) RefPicSetStCurr1 inclui e somente inclui a informação de identificação de 1) todos as imagens de referência de curto prazo que têm ordem de saída posterior àquela da imagem atual e que são usados para referência em interpredição da imagem atual, bem como 2) um ou mais imagens de referência de curto prazo que têm ordem de saída posterior àquela da imagem atual e que não são usados para referência em interpredição da imagem atual, e RefPicSetLtCurr inclui e somente inclui a informação de identificação de 1) todos as imagens de referência de longo prazo que são usados para referência em interpredição da imagem atual, bem como 2) um ou mais imagens de referência de longo prazo que não são usados para referência em interpredição da imagem atual.
[0430] Desta forma, as técnicas individuais acima ou qualquer combinação das mesmas, incluindo qualquer combinação dos exemplos alternativos, podem fornecer técnicas relacionadas ao que segue. Entretanto, a lista abaixo é fornecida para facilidade de entendimento e não deve ser considerada limitante. Uma ou mais das técnicas acima podem ser implementadas junta ou separadamente. Além disso, as técnicas acima são exemplos, e não devem ser consideradas como limitantes àquelas técnicas exemplificativas específicas.
[0431] Restrições em temporal_id ao conjunto de imagens de referência, de modo que os métodos de gerenciamento da DPB se adequem bem à escalabilidade temporal, a sobrecarga de sinalização pode ser reduzida, e pode ser habilitado um processo simples de extração de fluxo de bits para subconjuntos de fluxo de bits extraídos limpamente.
[0432] Subconjuntos de imagens de referência de longo prazo sinalizados no conjunto de parâmetros de imagem e o índice podem ser incluídos no cabeçalho da fatia. Isto pode fornecer sinalização eficiente de imagens de longo prazo.
[0433] A separação de conjunto de imagens de referência para vários subconjuntos, inclui a separação para a imagem atual ou para as imagens que seguem na ordem de decodificação, a separação para aqueles que têm ordens de saída anteriores ou posteriores à imagem atual. Isto pode fornecer eficiência melhorada e complexidade reduzida para a inicialização da lista de referência e modificação da lista de imagens de referência.
[0434] A codificação diferencial dupla em sinalização de identificação de imagem de curto prazo pode fornecer eficiência melhorada. Identificação da imagem de longo prazo estendida e restrita pode fornecer eficiência e flexibilidade melhoradas. A inicialização da lista de imagens de referência simplificada pode remover a necessidade da marcação de “nenhuma imagem de referência” para entradas não completadas em uma lista de imagens de referência; entretanto, isto pode não ser requerido em todos os exemplos.
[0435] Processos simplificados para saída de imagem decodificada, inserção e remoção da DPB. O contador de Ordem de Imagem (POC) pode ser negativo. Isto pode permitir alguns casos de uso importantes que podem não ter sido permitidos se o POC não puder ser negativo. A sinalização de se uma imagem é imagem de referência não é necessário no processo de decodificação pode não ser necessária, embora o mesmo ainda possa ser sinalizado. As marcações de imagens de referência como “não usado para referência” pode não ser mais necessária.
[0436] 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 transmitido sobre, como uma ou mais instruções ou código, um meio legível por computador e executadas por uma unidade de processamento baseada em hardware. Mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a um meio tangível tal como mídia de armazenamento de dados, ou mídia de comunicação incluindo qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, mídia legível por computador pode corresponder geralmente a (1) mídia de armazenamento legível por computador tangível que não é transitória ou (2) um meio de comunicação tal como uma onda de sinalização ou portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que possa ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, estruturas de codificação e/ou de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0437] A título de exemplo, e não de limitação, esta mídia de armazenamento legível por computador pode compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco ótico, armazenamento de disco magnético, ou outro dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Também, qualquer conexão é chamada adequadamente como um meio legível por computador. Por exemplo, se as instruções são transmitidas a partir de um sítio de web, servidor, ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio, e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL, ou tecnologias sem fio tais como infravermelho, rádio, e micro-ondas, são incluídos na definição de meio. Deve ser entendido, entretanto, que mídia de armazenamento legível por computador e mídia de armazenamento de dados não inclui conexões, ondas portadoras, sinais, ou outra mídia transiente, mas são em vez disso dirigidas a mídia de armazenamento tangível não transiente. Disco, como usado neste documento, inclui disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disco flexível e disco Blu-ray, onde os discos reproduzem dados magnética ou oticamente. Combinações do exposto acima também devem ser incluídas dentro do escopo de mídia legível por computador.
[0438] Instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), conjuntos de portas lógicas programáveis em campo (FPGAs), ou outros circuitos integrados ou lógica discreta equivalentes. Consequentemente, o termo “processador”, como usado neste documento pode se referir a qualquer das estruturas acima ou qualquer outra estrutura capaz de implementação das técnicas descritas neste documento. Adicionalmente, em alguns aspectos, a funcionalidade descrita neste documento pode ser fornecida em módulos dedicados de hardware e/ou software configurados para codificar e decodificar, ou incorporados em um codec combinado. Também, as técnicas podem ser integralmente implementadas em um ou mais circuitos ou elementos lógicos.
[0439] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um telefone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de pastilhas de microcircuitos). Vários componentes, módulos, ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não requererem 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 codec de hardware ou fornecidas por um conjunto de unidades de hardware interoperativas, incluindo um ou mais processadores como descrito acima, em conjunto com software e/ou firmware adequado.
[0440] Vários exemplos foram descritos. Estes e outros exemplos estão dentro do escopo das reivindicações a seguir.

Claims (22)

1. Método para codificar dados de vídeo, o método CARACTERIZADO pelo fato de que compreende: codificar informações indicativas de imagens de referência que pertencem a um conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para a interpredição de uma imagem atual e podem potencialmente ser usadas para a interpredição de uma ou mais imagens que seguem a imagem atual em uma ordem de decodificação; construir uma pluralidade de subconjuntos de imagens de referência que, cada, identifica zero ou mais das imagens de referência do conjunto de imagens de referência, em que construir a pluralidade de subconjuntos de imagens de referência compreende: construir um primeiro subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e antes da imagem atual em uma ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de curto prazo que estão antes da imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; construir um segundo subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e após a imagem atual na ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação, e exclui imagens de referência de curto prazo que estão após a imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; e construir um terceiro subconjunto de imagens de referência que identifica imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e não podem ser usadas para interpredição da imagem atual; após a construção dos primeiro, segundo e terceiro subconjuntos de imagens de referência, determinar quais imagens de referência podem ser usadas para interpredição da imagem atual com base em quais imagens são identificadas nos primeiro, segundo e terceiro subconjuntos de imagens de referência; subsequentemente a determinação de quais imagens de referências podem ser usadas para interpredição da imagem atual, construir uma lista de imagens de referência inicial e uma segunda lista de imagens de referência com base nas imagens de referência nos primeiro, segundo e terceiro subconjuntos de imagens de referência que são determinados para poderem ser usados para interpredição da imagem atual; e com base em uma modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: identificar uma imagem de referência, em que a imagem de referência está em pelo menos um dentre os primeiro, segundo ou terceiro subconjuntos de imagens de referência; adicionar a imagem de referência identificada em uma entrada atual da lista de imagens de referência inicial ou em uma entrada atual da segunda lista de imagens de referência para construir uma lista de imagens de referência modificada ou uma segunda lista de imagens de referência modificada, respectivamente; e codificar a imagem atual com base na lista de imagens de referência modificada ou na segunda lista de imagens de referência modificada.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que identificar a imagem de referência compreende: determinar um índice em pelo menos um dos subconjuntos de imagens de referência construídos; e determinar a imagem de referência identificada em uma entrada de pelo menos um dos subconjuntos de imagens de referência construídos com base no índice determinado.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que determinar o índice compreende: codificar um primeiro elemento de sintaxe para identificar o pelo menos um dentre os subconjuntos de imagens de referência construídos do qual a imagem de referência é identificada; e codificar um segundo elemento de sintaxe que indica o índice no pelo menos um dentre os subconjuntos de imagens de referência construídos.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende ainda: com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: mover imagens de referência identificadas na lista de imagens de referência inicial ou na segunda lista de imagens de referência em entradas que segue a entrada atual a uma próxima entrada para construir a lista de imagens de referência modificada ou a segunda lista de imagens de referência modificada.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende ainda: codificar um elemento de sintaxe que indica que a modificação de lista de imagens de referência é necessária.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que: codificar compreende decodificar informações indicativas de imagens de referência que pertencem ao conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que segue a imagem atual na ordem de decodificação; e em que codificar compreende decodificar a imagem atual com base na lista de imagens de referência modificada.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que: codificar compreende codificar (encoding) informações indicativas de imagens de referência que pertencem ao conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para interpredição da imagem atual e podem potencialmente ser usadas para interpredição de uma ou mais imagens que segue a imagem atual na ordem de decodificação; e em que codificar compreende codificar (encoding) a imagem atual com base na lista de imagens de referência modificada.
8. Dispositivo para codificar dados de vídeo, o dispositivo CARACTERIZADO pelo fato de que compreende: uma memória configurada para armazenar imagens de referência; e um codificador de vídeo configurado para: codificar informações indicativas de imagens de referência armazenadas na memória que pertencem a um conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para a interpredição de uma imagem atual e podem potencialmente ser usadas para a interpredição de uma ou mais imagens que seguem a imagem atual em uma ordem de decodificação; construir uma pluralidade de subconjuntos de imagens de referência que, cada, identifica zero ou mais das imagens de referência do conjunto de imagens de referência, em que para construir a pluralidade de subconjuntos de imagens de referência, o codificador de vídeo é configurado para: construir um primeiro subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e antes da imagem atual em uma ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de curto prazo que estão antes da imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; construir um segundo subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e após a imagem atual em uma ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de curto prazo que estão após a imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; e construir um terceiro subconjunto de imagens de referência que identifica imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e não podem ser usadas para interpredição da imagem atual; após a construção dos primeiro, segundo e terceiro subconjuntos de imagens de referência, determinar quais imagens de referência podem ser usadas para interpredição da imagem atual com base em quais imagens são identificadas nos primeiro, segundo e terceiro subconjuntos de imagens de referência; subsequentemente a determinação de quais imagens de referências podem ser usadas para interpredição da imagem atual, construir uma lista de imagens de referência inicial e uma segunda lista de imagens de referência com base nas imagens de referência nos primeiro, segundo e terceiro subconjuntos de imagens de referência que são determinados para poderem ser usados para interpredição da imagem atual; e com base em uma modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: identificar uma imagem de referência, em que a imagem de referência está em pelo menos um dentre os primeiro, segundo ou terceiro subconjuntos de imagens de referência; adicionar a imagem de referência identificada em uma entrada atual da lista de imagens de referência inicial ou em uma entrada atual da segunda lista de imagens de referência para construir uma lista de imagens de referência modificada ou uma segunda lista de imagens de referência modificada, respectivamente; e codificar a imagem atual com base na lista de imagens de referência modificada ou na segunda lista de imagens de referência modificada.
9. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que para identificar a imagem de referência, o codificador de vídeo é configurado para: determinar um índice em pelo menos um dos subconjuntos de imagens de referência construídos; e determinar a imagem de referência identificada em uma entrada de pelo menos um dos subconjuntos de imagens de referência construídos com base no índice determinado.
10. Dispositivo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que para determinar o índice, o codificador de vídeo é configurado para: codificar um primeiro elemento de sintaxe para identificar o pelo menos um dentre os subconjuntos de imagens de referência construídos do qual a imagem de referência é identificada; e codificar um segundo elemento de sintaxe que indica o índice no pelo menos um dentre os subconjuntos de imagens de referência construídos.
11. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o codificador de vídeo é configurado para: com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: mover imagens de referência identificadas na lista de imagens de referência inicial ou na segunda lista de imagens de referência em entradas que segue a entrada atual a uma próxima entrada para construir a lista de imagens de referência modificada ou a segunda lista de imagens de referência modificada.
12. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o codificador de vídeo é configurado para: codificar um elemento de sintaxe que indica que a modificação de lista de imagens de referência é necessária.
13. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o codificador de vídeo compreende um decodificador de vídeo, e em que o decodificador de vídeo é configurado para: decodificar informações indicativas de imagens de referência que pertencem a um conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para a interpredição de uma imagem atual e podem potencialmente ser usadas para a interpredição de uma ou mais imagens que seguem a imagem atual em uma ordem de decodificação; construir os primeiro, segundo e terceiro subconjuntos de imagens de referência; após a construção dos primeiro, segundo e terceiro subconjuntos de imagens de referência, determinar quais imagens de referência podem ser usadas para interpredição da imagem atual com base em quais imagens são identificadas nos primeiro, segundo e terceiro subconjuntos de imagens de referência; subsequentemente a determinação de quais imagens de referências podem ser usadas para interpredição da imagem atual, construir a lista de imagens de referência inicial e a segunda lista de imagens de referência com base nas imagens de referência nos primeiro, segundo e terceiro subconjuntos de imagens de referência que são determinados para poderem ser usados para interpredição da imagem atual; e com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: identificar a imagem de referência; adicionar a imagem de referência identificada na entrada atual da lista de imagens de referência inicial ou na entrada atual da segunda lista de imagens de referência para construir a lista de imagens de referência modificada ou a segunda lista de imagens de referência modificada, respectivamente; e decodificar a imagem atual com base na lista de imagens de referência modificada ou na segunda lista de imagens de referência modificada.
14. Dispositivo, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que compreende ainda uma tela configurada para exibir a imagem atual decodificada e uma ou mais dentre as imagens de referência.
15. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o codificador de vídeo compreende um codificador (encoder) de vídeo, e em que o codificador (encoder) de vídeo é configurado para: codificar informações indicativas de imagens de referência que pertencem a um conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para a interpredição de uma imagem atual e podem potencialmente ser usadas para a interpredição de uma ou mais imagens que seguem a imagem atual em uma ordem de decodificação; construir os primeiro, segundo e terceiro subconjuntos de imagens de referência; após a construção dos primeiro, segundo e terceiro subconjuntos de imagens de referência, determinar quais imagens de referência podem ser usadas para interpredição da imagem atual com base em quais imagens são identificadas nos primeiro, segundo e terceiro subconjuntos de imagens de referência; subsequentemente a determinação de quais imagens de referências podem ser usadas para interpredição da imagem atual, construir a lista de imagens de referência inicial e a segunda lista de imagens de referência com base nas imagens de referência nos primeiro, segundo e terceiro subconjuntos de imagens de referência que são determinados para poderem ser usados para interpredição da imagem atual; e com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: identificar a imagem de referência; adicionar a imagem de referência identificada na entrada atual da lista de imagens de referência inicial ou na entrada atual da segunda lista de imagens de referência para construir a lista de imagens de referência modificada ou a segunda lista de imagens de referência modificada, respectivamente; e codificar a imagem atual com base na lista de imagens de referência modificada ou na segunda lista de imagens de referência modificada.
16. Dispositivo, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que compreende ainda uma câmera configurada para capturar a imagem atual que é codificada e as imagens de referência.
17. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o dispositivo compreende um ou mais dentre: um dispositivo de comunicação sem fio compreendendo pelo menos um dentre uma tela configurada para exibir a imagem atual ou uma câmera configurada para capturar a imagem atual; um microprocessador; ou um circuito integrado.
18. Mídia de armazenamento não transitório legível por computador, CARACTERIZADA pelo fato de que possui armazenadas na mesma instruções que, quando executadas, fazem um processador de um dispositivo codificar dados de vídeo para: codificar informações indicativas de imagens de referência que pertencem a um conjunto de imagens de referência, em que o conjunto de imagens de referência identifica as imagens de referência que podem potencialmente ser usadas para a interpredição de uma imagem atual e podem potencialmente ser usadas para a interpredição de uma ou mais imagens que seguem a imagem atual em uma ordem de decodificação; construir uma pluralidade de subconjuntos de imagens de referência que, cada, identifica zero ou mais das imagens de referência do conjunto de imagens de referência, em que as instruções que fazem o processador construir a pluralidade de subconjuntos de imagens de referência compreende instruções que fazem o processador: construir um primeiro subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e antes da imagem atual em uma ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de curto prazo que estão antes da imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; construir um segundo subconjunto de imagens de referência que identifica imagens de referência de curto prazo que estão antes da imagem atual na ordem de decodificação e após a imagem atual em uma ordem de saída e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de curto prazo que estão após a imagem atual na ordem de saída e não podem ser usadas para interpredição da imagem atual; e construir um terceiro subconjunto de imagens de referência que identifica imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e que podem potencialmente ser usadas para interpredição da imagem atual e uma ou mais dentre as uma ou mais imagens que seguem a imagem atual na ordem de decodificação e exclui imagens de referência de longo prazo que estão antes da imagem atual na ordem de decodificação e não podem ser usadas para interpredição da imagem atual; após a construção dos primeiro, segundo e terceiro subconjuntos de imagens de referência, determinar quais imagens de referência podem ser usadas para interpredição da imagem atual com base em quais imagens são identificadas nos primeiro, segundo e terceiro subconjuntos de imagens de referência; subsequentemente a determinação de quais imagens de referências podem ser usadas para interpredição da imagem atual, construir uma lista de imagens de referência inicial e uma segunda lista de imagens de referência com base nas imagens de referência nos primeiro, segundo e terceiro subconjuntos de imagens de referência que são determinados para poderem ser usados para interpredição da imagem atual; e com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: identificar uma imagem de referência, em que a imagem de referência está em pelo menos um dentre os primeiro, segundo ou terceiro subconjuntos de imagens de referência; adicionar a imagem de referência identificada em uma entrada atual da lista de imagens de referência inicial ou em uma entrada atual da segunda lista de imagens de referência para construir uma lista de imagens de referência modificada ou uma segunda lista de imagens de referência modificada, respectivamente; e codificar a imagem atual com base na lista de imagens de referência modificada ou na segunda lista de imagens de referência modificada.
19. Mídia de armazenamento não transitório legível por computador, de acordo com a reivindicação 18, CARACTERIZADA pelo fato de que as instruções que fazem o processador identificar a imagem de referência compreendem instruções que fazem o processador: determinar um índice em pelo menos um dos subconjuntos de imagens de referência construídos; e determinar a imagem de referência identificada em uma entrada de pelo menos um dos subconjuntos de imagens de referência construídos com base no índice determinado.
20. Mídia de armazenamento não transitório legível por computador, de acordo com a reivindicação 19, CARACTERIZADA pelo fato de que as instruções que fazem o processador determinar o índice compreendem instruções que fazem o processador: codificar um primeiro elemento de sintaxe para identificar o pelo menos um dentre os subconjuntos de imagens de referência construídos do qual a imagem de referência é identificada; e codificar um segundo elemento de sintaxe que indica o índice no pelo menos um dentre os subconjuntos de imagens de referência construídos.
21. Mídia de armazenamento não transitório legível por computador, de acordo com a reivindicação 18, CARACTERIZADA pelo fato de que compreende ainda instruções que fazem o processador: com base na modificação de lista de imagens de referência da lista de imagens de referência inicial ou da segunda lista de imagens de referência sendo necessária após a construção da lista de imagens de referência inicial e da segunda lista de imagens de referência: mover imagens de referência identificadas na lista de imagens de referência inicial ou na segunda lista de imagens de referência em entradas que segue a entrada atual a uma próxima entrada para construir a lista de imagens de referência modificada ou a segunda lista de imagens de referência modificada.
22. Mídia de armazenamento não transitório legível por computador, de acordo com a reivindicação 18, CARACTERIZADA pelo fato de que compreende ainda instruções que fazem o processador: codificar um elemento de sintaxe que indica que a modificação de lista de imagens de referência é necessária.
BR112014006842-9A 2011-09-23 2012-09-20 Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador BR112014006842B1 (pt)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201161538787P 2011-09-23 2011-09-23
US61/538,787 2011-09-23
US201161539433P 2011-09-26 2011-09-26
US61/539,433 2011-09-26
US201161542034P 2011-09-30 2011-09-30
US61/542,034 2011-09-30
US13/622,929 US9237356B2 (en) 2011-09-23 2012-09-19 Reference picture list construction for video coding
US13/622,929 2012-09-19
PCT/US2012/056361 WO2013043886A2 (en) 2011-09-23 2012-09-20 Reference picture list construction for video coding

Publications (2)

Publication Number Publication Date
BR112014006842A2 BR112014006842A2 (pt) 2017-04-04
BR112014006842B1 true BR112014006842B1 (pt) 2022-03-03

Family

ID=47911283

Family Applications (6)

Application Number Title Priority Date Filing Date
BR112014006845-3A BR112014006845B1 (pt) 2011-09-23 2012-09-20 Método e dispositivos para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador
BR112014006842-9A BR112014006842B1 (pt) 2011-09-23 2012-09-20 Método e dispositivo para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador
BR112014006839A BR112014006839A2 (pt) 2011-09-23 2012-09-20 codificação de vídeo com subconjuntos de um conjunto de imagens de referência
BR112014006843A BR112014006843A2 (pt) 2011-09-23 2012-09-20 codificação de imagens de referência codificação para um conjunto de imagens de referência
BR112014006854A BR112014006854A2 (pt) 2011-09-23 2012-09-20 gerenciamento de buffer de imagem decodificada
BR112014006867A BR112014006867A2 (pt) 2011-09-23 2012-09-20 construção de lista de imagens de referência para codificação de vídeo

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112014006845-3A BR112014006845B1 (pt) 2011-09-23 2012-09-20 Método e dispositivos para codificar dados de vídeo e mídia de armazenamento não transitório legível por computador

Family Applications After (4)

Application Number Title Priority Date Filing Date
BR112014006839A BR112014006839A2 (pt) 2011-09-23 2012-09-20 codificação de vídeo com subconjuntos de um conjunto de imagens de referência
BR112014006843A BR112014006843A2 (pt) 2011-09-23 2012-09-20 codificação de imagens de referência codificação para um conjunto de imagens de referência
BR112014006854A BR112014006854A2 (pt) 2011-09-23 2012-09-20 gerenciamento de buffer de imagem decodificada
BR112014006867A BR112014006867A2 (pt) 2011-09-23 2012-09-20 construção de lista de imagens de referência para codificação de vídeo

Country Status (19)

Country Link
US (10) US9131245B2 (pt)
EP (7) EP2759130B1 (pt)
JP (10) JP5976816B2 (pt)
KR (7) KR101614633B1 (pt)
CN (15) CN107580229B (pt)
AR (6) AR089562A1 (pt)
AU (6) AU2012312344B2 (pt)
BR (6) BR112014006845B1 (pt)
CA (7) CA3062214A1 (pt)
ES (1) ES2776147T3 (pt)
HK (5) HK1247013A1 (pt)
IL (8) IL231210B (pt)
IN (4) IN2014CN01825A (pt)
MY (6) MY166681A (pt)
RU (6) RU2571410C2 (pt)
SG (6) SG11201400220VA (pt)
TW (6) TWI521952B (pt)
WO (7) WO2013043886A2 (pt)
ZA (6) ZA201402901B (pt)

Families Citing this family (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL2749027T3 (pl) 2011-08-25 2020-10-19 Sun Patent Trust Sposoby i urządzenia do kodowania i dekodowania wideo z użyciem zaktualizowanego opisu bufora
US8804816B2 (en) * 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
BR112013020486B1 (pt) 2011-09-07 2022-07-19 Sun Patent Trust Método de codificação de imagem, método de decodificação de imagem, aparelho de codificação de imagem, aparelho de decodificação de imagem e aparelho de codificação e de decodificação de imagem
WO2013042329A1 (ja) 2011-09-19 2013-03-28 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
US9131245B2 (en) 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding
US10674171B2 (en) * 2011-09-27 2020-06-02 Telefonaktiebolaget Lm Ericsson (Publ) Decoders and methods thereof for managing pictures in video decoding process
WO2013048316A1 (en) * 2011-09-30 2013-04-04 Telefonaktiebolaget L M Ericsson (Publ) Decoder and encoder for picture outputting and methods thereof
US8855433B2 (en) * 2011-10-13 2014-10-07 Sharp Kabushiki Kaisha Tracking a reference picture based on a designated picture on an electronic device
US20130094774A1 (en) * 2011-10-13 2013-04-18 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
US8768079B2 (en) 2011-10-13 2014-07-01 Sharp Laboratories Of America, Inc. Tracking a reference picture on an electronic device
US8787688B2 (en) * 2011-10-13 2014-07-22 Sharp Laboratories Of America, Inc. Tracking a reference picture based on a designated picture on an electronic device
WO2013057884A1 (ja) 2011-10-19 2013-04-25 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置及び画像符号化復号装置
WO2013062470A1 (en) 2011-10-24 2013-05-02 Telefonaktiebolaget L M Ericsson (Publ) Reference picture marking
WO2013061551A1 (ja) 2011-10-27 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
SG11201401880VA (en) * 2011-10-28 2014-07-30 Samsung Electronics Co Ltd Method for inter prediction and device therefor, and method for motion compensation and device therefor
WO2013061549A1 (ja) 2011-10-28 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
CN103688545B (zh) 2011-10-28 2017-05-10 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置及图像解码装置
CN103096049A (zh) * 2011-11-02 2013-05-08 华为技术有限公司 一种视频处理方法及系统、相关设备
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
PT3576412T (pt) 2011-11-08 2021-11-26 Nokia Technologies Oy Tratamento de gravuras de referência
WO2013070028A1 (ko) * 2011-11-11 2013-05-16 엘지전자 주식회사 영상 정보 전송 방법 및 장치와 이를 이용한 복호화 방법 및 장치
WO2013105207A1 (en) * 2012-01-10 2013-07-18 Panasonic Corporation Video encoding method, video encoding apparatus, video decoding method and video decoding apparatus
US8693793B2 (en) * 2012-01-19 2014-04-08 Sharp Laboratories Of America, Inc. Reducing reference picture set signal overhead on an electronic device
US8867852B2 (en) 2012-01-19 2014-10-21 Sharp Kabushiki Kaisha Decoding a picture based on a reference picture set on an electronic device
US9654772B2 (en) * 2012-01-19 2017-05-16 Qualcomm Incorporated Context adaptive entropy coding with a reduced initialization value set
US9973749B2 (en) * 2012-01-20 2018-05-15 Nokia Technologies Oy Method for video coding and an apparatus, a computer-program product, a system, and a module for the same
US20130188709A1 (en) 2012-01-25 2013-07-25 Sachin G. Deshpande Video decoder for tiles with absolute signaling
CN107835428B (zh) * 2012-03-02 2021-09-24 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
KR102094503B1 (ko) * 2012-04-15 2020-03-30 삼성전자주식회사 다계층 비디오 부호화 방법 및 장치, 다계층 비디오 복호화 방법 및 장치
US9532055B2 (en) * 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
KR20130116782A (ko) 2012-04-16 2013-10-24 한국전자통신연구원 계층적 비디오 부호화에서의 계층정보 표현방식
US9420286B2 (en) 2012-06-15 2016-08-16 Qualcomm Incorporated Temporal motion vector prediction in HEVC and its extensions
FI3471419T3 (fi) 2012-06-25 2023-05-29 Huawei Tech Co Ltd Gtla (gradual temporal layer access) -kuvat videopakkauksessa
US9225978B2 (en) * 2012-06-28 2015-12-29 Qualcomm Incorporated Streaming adaption based on clean random access (CRA) pictures
JP5891975B2 (ja) * 2012-07-02 2016-03-23 富士通株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法および動画像復号方法
RU2647674C1 (ru) * 2012-07-02 2018-03-16 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования видео и способ и устройство для декодирования видео, определяющие список опорных изображений внешнего прогнозирования в зависимости от размера блока
US9648322B2 (en) 2012-07-10 2017-05-09 Qualcomm Incorporated Coding random access pictures for video coding
US9167248B2 (en) 2012-07-13 2015-10-20 Qualcomm Incorporated Reference picture list modification for video coding
US9357195B2 (en) 2012-08-16 2016-05-31 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
KR102215438B1 (ko) * 2012-09-13 2021-02-15 엘지전자 주식회사 영상 부호화/복호화 방법 및 장치
US9392268B2 (en) 2012-09-28 2016-07-12 Qualcomm Incorporated Using base layer motion information
US20140092988A1 (en) * 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Systems and methods for reference picture set extension
US9313500B2 (en) 2012-09-30 2016-04-12 Microsoft Technology Licensing, Llc Conditional signalling of reference picture list modification information
WO2014056435A1 (en) * 2012-10-10 2014-04-17 Zte Corporation Method and apparatus for encapsulation of random access information for media transport and storage
US20140140406A1 (en) * 2012-11-16 2014-05-22 General Instrument Corporation Devices and methods for processing of non-idr related syntax for high efficiency video coding (hevc)
CN104919803B (zh) * 2013-01-15 2017-09-12 华为技术有限公司 一种用于解码视频比特流的方法
IN2015DN04041A (pt) * 2013-01-16 2015-10-02 Ericsson Telefon Ab L M
US20160065983A1 (en) * 2013-04-05 2016-03-03 Samsung Electronics Co., Ltd. Method and apparatus for encoding multi layer video and method and apparatus for decoding multilayer video
US10349074B2 (en) 2013-04-05 2019-07-09 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multi-layer video using decoded picture buffers which operate identically
SG10201913551WA (en) * 2013-04-07 2020-03-30 Dolby Int Ab Signaling change in output layer sets
US9591321B2 (en) 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
CN103268553A (zh) * 2013-04-11 2013-08-28 蒋月琴 利用点编码的图书交易、租赁电子商务系统
PL2984841T3 (pl) * 2013-04-12 2016-12-30 Tworzenie list międzywarstwowych obrazów referencyjnych
US9800893B2 (en) 2013-04-17 2017-10-24 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
JP6361866B2 (ja) * 2013-05-09 2018-07-25 サン パテント トラスト 画像処理方法および画像処理装置
US10003815B2 (en) * 2013-06-03 2018-06-19 Qualcomm Incorporated Hypothetical reference decoder model and conformance for cross-layer random access skipped pictures
US9565454B2 (en) * 2013-06-24 2017-02-07 Microsoft Technology Licensing, Llc Picture referencing control for video decoding using a graphics processor
CN105379277B (zh) 2013-07-15 2019-12-17 株式会社Kt 用于编码/解码可伸缩视频信号的方法和装置
KR20150009465A (ko) 2013-07-15 2015-01-26 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
US9894357B2 (en) 2013-07-30 2018-02-13 Kt Corporation Image encoding and decoding method supporting plurality of layers and apparatus using same
WO2015016534A1 (ko) * 2013-07-30 2015-02-05 주식회사 케이티 복수의 레이어를 지원하는 영상의 부호화 및 복호화 방법 및 이를 이용하는 장치
CN105453562B (zh) 2013-07-30 2018-12-25 株式会社Kt 支持多个层的图像编码和解码方法以及使用该方法的装置
US9344218B1 (en) * 2013-08-19 2016-05-17 Zoom Video Communications, Inc. Error resilience for interactive real-time multimedia applications
JPWO2015034061A1 (ja) * 2013-09-06 2017-03-02 三菱電機株式会社 動画像符号化装置、動画像トランスコード装置、動画像符号化方法、動画像トランスコード方法及び動画像ストリーム伝送システム
WO2015053525A1 (ko) * 2013-10-11 2015-04-16 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US10142638B2 (en) 2013-10-11 2018-11-27 Electronics And Telecommunications Research Institute Method for encoding/decoding image and device using same
WO2015056735A1 (ja) * 2013-10-16 2015-04-23 シャープ株式会社 画像復号装置
US9628820B2 (en) * 2013-11-19 2017-04-18 Qualcomm Incorporated POC value design for multi-layer video coding
US9807407B2 (en) * 2013-12-02 2017-10-31 Qualcomm Incorporated Reference picture selection
US10187641B2 (en) * 2013-12-24 2019-01-22 Kt Corporation Method and apparatus for encoding/decoding multilayer video signal
CN104754347B (zh) * 2013-12-26 2019-05-17 中兴通讯股份有限公司 视频图像序号的编码、解码方法及装置、电子设备
CN105075251B (zh) * 2014-01-02 2016-11-23 维迪奥股份有限公司 利用辅助图片的覆盖的视频解码方法、装置和系统
US10432928B2 (en) 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
WO2015147427A1 (ko) 2014-03-24 2015-10-01 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
JP6345805B2 (ja) * 2014-05-06 2018-06-20 寰發股▲ふん▼有限公司HFI Innovation Inc. Intraブロックコピーモード符号化のブロックベクトル予測の方法
WO2015192991A1 (en) 2014-06-18 2015-12-23 Telefonaktiebolaget L M Ericsson (Publ) Random access in a video bitstream
EP3962089A1 (en) * 2014-06-18 2022-03-02 Telefonaktiebolaget LM Ericsson (publ) Dependent random access point pictures
US9866851B2 (en) * 2014-06-20 2018-01-09 Qualcomm Incorporated Full picture order count reset for multi-layer codecs
EP2958328A1 (en) * 2014-06-20 2015-12-23 Thomson Licensing Method and device for signaling in a bitstream a picture/video format of an LDR picture and a picture/video format of a decoded HDR picture obtained from said LDR picture and an illumination picture
US9807419B2 (en) * 2014-06-25 2017-10-31 Qualcomm Incorporated Recovery point SEI message in multi-layer video codecs
KR101610725B1 (ko) * 2014-09-23 2016-04-08 삼성전자주식회사 참조 빈도에 따라 참조 영상 데이터를 제어하는 비디오 부복호화 방법 및 장치
US9848198B2 (en) * 2014-10-06 2017-12-19 Qualcomm Incorporated Diagonal copy for palette mode coding
GB2531271A (en) * 2014-10-14 2016-04-20 Nokia Technologies Oy An apparatus, a method and a computer program for image sequence coding and decoding
US20160127728A1 (en) * 2014-10-30 2016-05-05 Kabushiki Kaisha Toshiba Video compression apparatus, video playback apparatus and video delivery system
KR20160071569A (ko) 2014-12-11 2016-06-22 삼성전자주식회사 비디오 장치에서의 영상 처리 방법 및 그에 따른 비디오 장치
US10511834B2 (en) * 2015-04-29 2019-12-17 Hfi Innovation Inc. Method and apparatus for Intra Block Copy reference list construction
RU2684193C1 (ru) * 2015-05-21 2019-04-04 Хуавэй Текнолоджиз Ко., Лтд. Устройство и способ для компенсации движения в видеоизображении
CN115134611A (zh) 2015-06-11 2022-09-30 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
CN106528552B (zh) * 2015-09-09 2019-10-22 杭州海康威视数字技术股份有限公司 图像搜索方法及系统
EP3145143B1 (en) * 2015-09-15 2019-03-20 Nxp B.V. Differential detector
US20170085871A1 (en) * 2015-09-22 2017-03-23 Ati Technologies Ulc Real time video coding system with error recovery using earlier reference picture
KR102477964B1 (ko) * 2015-10-12 2022-12-16 삼성전자주식회사 미디어 전송 시스템에서 비디오 비트스트림의 임의 접근 및 재생을 가능하게 하는 기법
US10531111B2 (en) 2015-11-06 2020-01-07 Microsoft Technology Licensing, Llc Flexible reference picture management for video encoding and decoding
CN106817585B (zh) * 2015-12-02 2020-05-01 掌赢信息科技(上海)有限公司 一种利用长期参考帧的视频编码方法、电子设备和系统
US11595652B2 (en) 2019-01-28 2023-02-28 Op Solutions, Llc Explicit signaling of extended long term reference picture retention
JP6119891B2 (ja) * 2016-02-25 2017-04-26 富士通株式会社 動画像符号化方法
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures
JP6237829B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像符号化用コンピュータプログラム
JP6237830B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像復号方法
JP6237831B2 (ja) * 2016-06-23 2017-11-29 富士通株式会社 動画像復号用コンピュータプログラム
EP3477950B1 (en) * 2016-06-24 2021-08-04 KT Corporation Intra prediction using reference pixels from additional lines
KR102513507B1 (ko) * 2016-07-01 2023-03-22 고쿠리츠다이가쿠호진 도호쿠다이가쿠 장기 섬유증의 예방 또는 치료제
CN107592543B (zh) * 2016-07-06 2019-12-24 北京大学 视频解码处理方法及装置
WO2018124957A1 (en) * 2016-12-30 2018-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Decoded picture buffer management for handling cross-picture data prediction
CN107426567B (zh) * 2017-05-19 2019-11-15 西安电子科技大学 基于编码顺序已知图像集的多参考图像确定方法
EP3721625A1 (en) * 2017-12-06 2020-10-14 V-Nova International Limited Methods and apparatuses for hierarchically encoding and decoding a bytestream
CN108650554A (zh) * 2018-04-26 2018-10-12 维沃移动通信有限公司 一种多媒体文件播放控制方法及移动终端
PL3831064T3 (pl) 2018-08-17 2024-06-03 Huawei Technologies Co., Ltd. Zarządzanie obrazami odniesienia w kodowaniu wideo
JP2021535671A (ja) * 2018-08-31 2021-12-16 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co., Ltd 符号化方法、復号方法、符号化機器、復号機器、およびコンピュータプログラム
JP7242839B2 (ja) * 2018-09-12 2023-03-20 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオエンコーダ、ビデオデコーダ、および対応物
CN116055732A (zh) 2018-09-14 2023-05-02 华为技术有限公司 视频译码方法,设备以及非瞬时性计算机可读介质
EP3854099A4 (en) * 2018-09-21 2022-06-29 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
US11394989B2 (en) * 2018-12-10 2022-07-19 Tencent America LLC Method and apparatus for video coding
US11375184B2 (en) * 2018-12-10 2022-06-28 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
US11196988B2 (en) * 2018-12-17 2021-12-07 Apple Inc. Reference picture management and list construction
US11095900B2 (en) 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
CN116456082A (zh) 2018-12-25 2023-07-18 Oppo广东移动通信有限公司 编码预测方法、装置及计算机存储介质
US10904545B2 (en) 2018-12-26 2021-01-26 Tencent America LLC Method for syntax controlled decoded picture buffer management
AU2020205179B2 (en) * 2019-01-02 2022-07-14 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and device for processing video signal by using inter prediction
CN111416981B (zh) * 2019-01-07 2023-06-02 浙江大学 视频图像解码、编码方法及装置
EP3918801A4 (en) * 2019-01-28 2022-06-15 OP Solutions, LLC ONLINE AND OFFLINE CHOICE OF EXTENDED LONG-TERM REFERENCE IMAGE STORAGE
JP7498502B2 (ja) * 2019-01-28 2024-06-12 オーピー ソリューションズ, エルエルシー 延長された長期参照ピクチャ保持の明示的信号伝達
WO2020156545A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
CN113439441A (zh) 2019-02-15 2021-09-24 北京字节跳动网络技术有限公司 基于块分割的变换参数推导
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. IMPLEMENTATION OF ASPECTS IN AN INTRA BLOCK COPY IN VIDEO ENCODING
JP7399977B2 (ja) * 2019-03-11 2023-12-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド エンコーダ、デコーダ、および対応する方法
KR20200110213A (ko) * 2019-03-12 2020-09-23 현대자동차주식회사 영상 부호화 및 복호화 방법 및 장치
CN113676732B (zh) 2019-03-18 2023-06-20 Oppo广东移动通信有限公司 图像分量预测方法、编码器、解码器以及存储介质
CN111726632B (zh) * 2019-03-18 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113796085A (zh) 2019-05-06 2021-12-14 华为技术有限公司 用于逐步解码刷新的假想参考解码器
US11303913B2 (en) * 2019-06-19 2022-04-12 Qualcomm Incorporated Decoded picture buffer indexing
BR112021026826A2 (pt) * 2019-07-03 2022-02-22 Huawei Tech Co Ltd Tipos de imagens de referência em listas de imagens de referência
CA3146230A1 (en) * 2019-07-08 2020-10-22 Huawei Technologies Co., Ltd. Handling of multiple picture size and conformance windows for reference picture resampling in video coding
WO2021027774A1 (en) 2019-08-10 2021-02-18 Beijing Bytedance Network Technology Co., Ltd. Subpicture dependent signaling in video bitstreams
CN117528094A (zh) * 2019-09-24 2024-02-06 华为技术有限公司 图像级非图像级语法元素的指示
AU2020354883A1 (en) * 2019-09-24 2022-04-21 Huawei Technologies Co., Ltd. Signaling of picture header in video coding
WO2021061493A1 (en) 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Temporal identifier constraints for sei messages
CN114514751B (zh) * 2019-10-07 2024-03-15 华为技术有限公司 避免多层视频码流中的冗余指示
US20230051024A1 (en) * 2019-12-12 2023-02-16 Lg Electronics Inc. Methods and device for signaling image information
CN118317112A (zh) * 2019-12-12 2024-07-09 Lg电子株式会社 图像编码方法、图像解码方法及数据的发送方法
EP4075805A4 (en) * 2019-12-12 2023-08-23 LG Electronics Inc. METHOD AND DEVICE FOR SIGNALING VIDEO INFORMATION APPLICABLE AT THE FRAME OR DISC LEVEL
EP4080885A4 (en) 2019-12-20 2023-07-05 Wilus Institute of Standards and Technology Inc. VIDEO SIGNAL PROCESSING METHOD AND RELATED DEVICE
WO2021133721A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Techniques for implementing a decoding order within a coded picture
US11758171B2 (en) 2019-12-27 2023-09-12 Alibaba Group Holding Limited Methods and systems for performing gradual decoding refresh processing on pictures
WO2021137597A1 (ko) * 2019-12-30 2021-07-08 엘지전자 주식회사 Ols에 대한 dpb 파라미터를 사용하는 영상 디코딩 방법 및 그 장치
CN114946181A (zh) * 2020-01-23 2022-08-26 华为技术有限公司 用于视频译码的参考图像管理方法
EP4088462A4 (en) 2020-02-14 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. SUBPICTURE INFORMATION SIGNALING IN VIDEO BITSTREAM
AR121127A1 (es) * 2020-02-29 2022-04-20 Beijing Bytedance Network Tech Co Ltd Señalización de información de imagen de referencia en un flujo de bits de video
KR20220155277A (ko) * 2020-03-16 2022-11-22 바이트댄스 아이엔씨 스케일러블 비디오 코딩의 랜덤 액세스 포인트 액세스 유닛
MX2022011208A (es) 2020-03-17 2022-09-19 Bytedance Inc Uso de conjunto de parametros de video en codificacion de video.
MX2022012154A (es) 2020-03-31 2022-10-28 Ericsson Telefon Ab L M Procesamiento de video usando elementos de sintaxis.
CN115699733A (zh) 2020-05-21 2023-02-03 字节跳动有限公司 在视频编解码中信令通知层间参考图片
CN111770332B (zh) * 2020-06-04 2022-08-09 Oppo广东移动通信有限公司 插帧处理方法、插帧处理装置、存储介质与电子设备
CN115804086A (zh) 2020-06-08 2023-03-14 字节跳动有限公司 补充增强消息中的子图片级信息信令
WO2021252525A1 (en) * 2020-06-08 2021-12-16 Bytedance Inc. Constraints of slice count in a coded video picture
US11330021B1 (en) * 2020-12-31 2022-05-10 Benjamin Slotznick System and method of mirroring a display of multiple video feeds in videoconferencing systems
US11621979B1 (en) 2020-12-31 2023-04-04 Benjamin Slotznick Method and apparatus for repositioning meeting participants within a virtual space view in an online meeting user interface based on gestures made by the meeting participants
US11546385B1 (en) 2020-12-31 2023-01-03 Benjamin Slotznick Method and apparatus for self-selection by participant to display a mirrored or unmirrored video feed of the participant in a videoconferencing platform
KR102264460B1 (ko) * 2020-12-31 2021-06-11 한전케이피에스 주식회사 공기압축기 전동기 정비 장치
CN114466227B (zh) * 2021-12-22 2023-08-04 天翼云科技有限公司 一种视频分析方法、装置、电子设备及存储介质
US20240179304A1 (en) * 2022-11-29 2024-05-30 Tencent America LLC Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode

Family Cites Families (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5777900A (en) * 1994-03-10 1998-07-07 Matsushita Electric Industrial Co., Ltd. Filtering processor and filter method
EP2369847B1 (en) 1997-02-13 2016-04-20 Mitsubishi Denki Kabushiki Kaisha Moving picture decoding method
EP1835745A3 (en) 1997-03-17 2010-09-29 Panasonic Corporation Receiving terminal and method to receive a sub-program relating to a program
GB2381403B (en) 2000-05-10 2004-12-01 Picturetel Corp Video coding using multiple buffers
WO2003026315A1 (en) 2001-09-14 2003-03-27 Ntt Docomo, Inc. Coding method, decoding method, coding apparatus, decoding apparatus, image processing system, coding program, and decoding program
US7149247B2 (en) 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
DE60311231T2 (de) 2002-01-22 2007-11-15 Microsoft Corp., Redmond Verfahren zum ermöglichen von direktzugriff und spleissen in einem verschlüsselten videostrom
EP1670259A3 (en) 2002-01-23 2010-03-03 Nokia Corporation Grouping of image frames in video coding
US20040146109A1 (en) * 2002-04-19 2004-07-29 Satoshi Kondo Method for calculation motion vector
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
DE60310842T2 (de) 2002-07-11 2007-10-11 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren zur Codierung und Decodierung von H.264 Bildern mittels eines virtuellen Anzeigepuffers.
AU2003281133A1 (en) 2002-07-15 2004-02-02 Hitachi, Ltd. Moving picture encoding method and decoding method
US7492387B2 (en) 2002-08-05 2009-02-17 Chih-Lung Yang Implementation of MPCP MCU technology for the H.264 video standard
JP3513148B1 (ja) 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
FR2849332A1 (fr) 2002-12-20 2004-06-25 St Microelectronics Sa Procede et dispositif et decodage et d'affichage en marche arriere d'images mpeg, circuit pilote video et boitier decodeur incorporant un tel dispositif
WO2004064398A1 (en) 2003-01-10 2004-07-29 Thomson Licensing S.A. Fast mode decision making for interframe encoding
JP4405272B2 (ja) 2003-02-19 2010-01-27 パナソニック株式会社 動画像復号化方法、動画像復号化装置及びプログラム
US8194751B2 (en) 2003-02-19 2012-06-05 Panasonic Corporation Moving picture coding method and moving picture decoding method
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US7724818B2 (en) 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
KR100510138B1 (ko) 2003-05-01 2005-08-26 삼성전자주식회사 참조 픽처 결정 방법, 그 움직임 보상 방법 및 그 장치
US7489342B2 (en) * 2004-12-17 2009-02-10 Mitsubishi Electric Research Laboratories, Inc. Method and system for managing reference pictures in multiview videos
US8175154B2 (en) 2003-06-03 2012-05-08 General Instrument Corporation Method for restructuring a group of pictures to provide for random access into the group of pictures
WO2005011283A1 (en) * 2003-07-09 2005-02-03 Thomson Licensing S.A. Video encoder with low complexity noise reduction
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
FI115589B (fi) 2003-10-14 2005-05-31 Nokia Corp Redundanttien kuvien koodaaminen ja dekoodaaminen
CN100530407C (zh) 2004-01-06 2009-08-19 日本先锋公司 信息记录装置和方法
US20050201471A1 (en) 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US8036271B2 (en) * 2004-02-24 2011-10-11 Lsi Corporation Method and apparatus for determining a second picture for temporal direct-mode block prediction
US20060013318A1 (en) * 2004-06-22 2006-01-19 Jennifer Webb Video error detection, recovery, and concealment
TWI268715B (en) 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
KR101277355B1 (ko) 2004-10-13 2013-06-20 톰슨 라이센싱 복잡도 스케일러블 비디오 인코딩 및 디코딩을 위한 방법및 장치
US20060083298A1 (en) 2004-10-14 2006-04-20 Nokia Corporation Reference picture management in video coding
CN101065780A (zh) * 2004-10-14 2007-10-31 诺基亚公司 视频编码中的参考图像管理
WO2006049412A1 (en) 2004-11-01 2006-05-11 Electronics And Telecommunications Research Institute Method for encoding/decoding a video sequence based on hierarchical b-picture using adaptively-adjusted gop structure
US7166860B2 (en) 2004-12-30 2007-01-23 E. I. Du Pont De Nemours And Company Electronic device and process for forming same
KR100775143B1 (ko) 2005-01-11 2007-11-12 엘지전자 주식회사 영상정보 디코딩 방법
JP4769717B2 (ja) 2005-01-17 2011-09-07 パナソニック株式会社 画像復号化方法
US8208564B2 (en) 2005-06-24 2012-06-26 Ntt Docomo, Inc. Method and apparatus for video encoding and decoding using adaptive interpolation
JP4311570B2 (ja) 2005-07-01 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 再生装置、ビデオ復号装置および同期再生方法
ZA200800248B (en) 2005-07-21 2009-08-26 Thomson Licensing Method and apparatus for weighted prediction for scalable video coding
US8028154B2 (en) 2005-07-29 2011-09-27 Broadcom Corporation Method and system for reducing instruction storage space for a processor integrated in a network adapter chip
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
JP2007067842A (ja) 2005-08-31 2007-03-15 Victor Co Of Japan Ltd 動画像符号化データ編集装置および動画像符号化データ編集方法
US8879856B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Content driven transcoder that orchestrates multimedia transcoding using content information
KR20070038396A (ko) 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
WO2007042914A1 (en) 2005-10-11 2007-04-19 Nokia Corporation Efficient decoded picture buffer management for scalable video coding
CN102036070A (zh) 2005-12-08 2011-04-27 维德约股份有限公司 用于视频通信系统中的差错弹性和随机接入的系统和方法
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
JP2007184791A (ja) 2006-01-06 2007-07-19 Victor Co Of Japan Ltd 動画像符号化データ再生装置
EP1806930A1 (en) 2006-01-10 2007-07-11 Thomson Licensing Method and apparatus for constructing reference picture lists for scalable video
WO2007080223A1 (en) 2006-01-10 2007-07-19 Nokia Corporation Buffering of decoded reference pictures
EP1982518A4 (en) 2006-01-12 2010-06-16 Lg Electronics Inc PROCESSING MORE VIEW VIDEO
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
KR101035754B1 (ko) 2006-02-13 2011-05-20 가부시끼가이샤 도시바 동화상 부호화/복호화 방법 및 장치
EP1827009A1 (en) 2006-02-28 2007-08-29 Matsushita Electric Industrial Co., Ltd. Video encoder and decoder for an improved zapping service for mobile video reception
US8170116B2 (en) 2006-03-27 2012-05-01 Nokia Corporation Reference picture marking in scalable video encoding and decoding
CN101455084A (zh) 2006-03-30 2009-06-10 Lg电子株式会社 用于解码/编码视频信号的方法和装置
AU2007232607B2 (en) 2006-03-30 2010-09-16 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US20100091845A1 (en) 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
KR100877680B1 (ko) 2006-04-04 2009-01-09 삼성전자주식회사 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
WO2007132647A1 (ja) 2006-05-12 2007-11-22 Panasonic Corporation 動画像復号化装置
KR20070111969A (ko) 2006-05-19 2007-11-22 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
US20080002770A1 (en) 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
AU2007269575B2 (en) 2006-07-06 2012-08-16 Interdigital Vc Holdings, Inc. Method and apparatus for decoupling frame number and/or picture order count (POC) for multi-view video encoding and decoding
US8048072B2 (en) 2006-07-12 2011-11-01 Les Hospitaux Universitaires de Geneva Medical device for tissue ablation
TWI344792B (en) 2006-07-12 2011-07-01 Lg Electronics Inc A method and apparatus for processing a signal
US7801223B2 (en) 2006-07-27 2010-09-21 Lsi Corporation Method for video decoder memory reduction
JP4787100B2 (ja) 2006-07-27 2011-10-05 パナソニック株式会社 画像符号化装置
US8532178B2 (en) 2006-08-25 2013-09-10 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal with inter-view reference picture list construction
US20080165860A1 (en) 2006-08-31 2008-07-10 Zohair Sahraoui H.264 Data processing
TWI376958B (en) 2006-09-07 2012-11-11 Lg Electronics Inc Method and apparatus for decoding a scalable video coded bitstream
CN107295350A (zh) * 2006-10-13 2017-10-24 汤姆逊许可公司 用于多视点视频编码的参考图像列表管理语法
WO2008048499A2 (en) 2006-10-13 2008-04-24 Thomson Licensing Reference picture list management syntax for multiple view video coding
MX337935B (es) 2006-10-16 2016-03-29 Nokia Technologies Oy Sistema y metodo para implementar una administracion eficiente de memoria intermedia decodificada en codificacion de video de vistas multiples.
US7991236B2 (en) 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
EP2080378B1 (en) 2006-10-20 2012-08-15 Nokia Corporation Virtual decoded reference picture marking and reference picture list
JP2010507975A (ja) 2006-10-24 2010-03-11 トムソン ライセンシング 多視点映像符号化のための画像の管理
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
KR100856392B1 (ko) 2006-11-08 2008-09-04 한국전자통신연구원 현재 영상의 복원영역을 참조하는 동영상 부호화/복호화장치 및 그 방법
US8416859B2 (en) 2006-11-13 2013-04-09 Cisco Technology, Inc. Signalling and extraction in compressed video of pictures belonging to interdependency tiers
EP2129129B1 (en) 2006-11-14 2013-09-18 Qualcomm Incorporated Systems and methods for channel switching
JP5157140B2 (ja) 2006-11-29 2013-03-06 ソニー株式会社 記録装置、記録方法、情報処理装置、情報処理方法、撮像装置およびビデオシステム
CN102984544A (zh) 2007-01-08 2013-03-20 汤姆森特许公司 用于视频流拼接的方法及装置
CN101222638B (zh) * 2007-01-08 2011-12-07 华为技术有限公司 多视视频编解码方法及装置
KR100846802B1 (ko) 2007-02-14 2008-07-16 삼성전자주식회사 동영상 프레임의 디코딩 방법 및 인코딩 방법
JP5023739B2 (ja) * 2007-02-28 2012-09-12 ソニー株式会社 画像情報符号化装置及び符号化方法
CN101669367A (zh) 2007-03-02 2010-03-10 Lg电子株式会社 用于解码/编码视频信号的方法及设备
US8194151B2 (en) 2007-03-28 2012-06-05 Hitachi Kokusai Electric Inc. Image pickup apparatus
KR101418627B1 (ko) 2007-04-04 2014-07-15 톰슨 라이센싱 참조 화상 리스트 관리
US8116537B2 (en) 2007-04-04 2012-02-14 Sony Corporation Image recording device, player device, imaging device, player system, method of recording image, and computer program
US8494049B2 (en) 2007-04-09 2013-07-23 Cisco Technology, Inc. Long term reference frame management with error video feedback for compressed video communication
US20080268877A1 (en) 2007-04-24 2008-10-30 Motorola, Inc. Method and apparatus for exchanging signaling a wireless communication system
US20080301742A1 (en) 2007-06-04 2008-12-04 Nokia Corporation Time-interleaved simulcast for tune-in reduction
US8477852B2 (en) 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
CN100531400C (zh) 2007-07-26 2009-08-19 上海交通大学 基于宏块级和像素级运动估计的视频差错掩盖方法
TWI338869B (en) * 2007-08-03 2011-03-11 Via Tech Inc Method and apparatus for block-based digital encoded picture
CN101816180B (zh) * 2007-08-06 2013-01-16 汤姆森特许公司 利用多个视图间参考画面的运动跳跃模式的方法和装置
JP5125329B2 (ja) 2007-08-31 2013-01-23 富士通セミコンダクター株式会社 符号化装置と符号化方法、および復号化装置と復号化方法
US8121189B2 (en) 2007-09-20 2012-02-21 Microsoft Corporation Video decoding using created reference pictures
US8194741B2 (en) 2007-10-12 2012-06-05 Broadcom Corporation Method and system for processing B pictures with missing or invalid forward reference pictures
WO2009061363A2 (en) 2007-11-05 2009-05-14 Thomson Licensing A scalable video coding method for fast channel change and increased error resilience
US8425545B2 (en) 2007-12-03 2013-04-23 Covidien Ag Cordless hand-held ultrasonic cautery cutting device and method
TWI459215B (zh) 2007-12-05 2014-11-01 Ol2 Inc 用於將程式碼及資料儲存於應用程式主機代管中心內之系統及方法
US7865675B2 (en) 2007-12-06 2011-01-04 Arm Limited Controlling cleaning of data values within a hardware accelerator
US8718388B2 (en) 2007-12-11 2014-05-06 Cisco Technology, Inc. Video processing with tiered interdependencies of pictures
US8280375B2 (en) 2008-01-25 2012-10-02 Texas Instruments Incorporated System and method for managing radio link failures
JP2009260736A (ja) 2008-03-24 2009-11-05 Fujitsu Ltd エンコーディング装置、デコーディング装置、動画像処理方法、動画像処理システム、エンコーディングプログラムおよびデコーディングプログラム
JP2009260421A (ja) 2008-04-11 2009-11-05 Fujitsu Ltd 動画像処理システム、符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
US20090262703A1 (en) 2008-04-18 2009-10-22 Amit Khetawat Method and Apparatus for Encapsulation of RANAP Messages in a Home Node B System
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
US7782903B2 (en) 2008-05-14 2010-08-24 Newport Media, Inc. Hardware accelerated protocol stack
JP2009290389A (ja) 2008-05-28 2009-12-10 Hitachi Ltd 画像処理装置
JP2009296078A (ja) 2008-06-03 2009-12-17 Victor Co Of Japan Ltd 符号化データ再生装置、符号化データ再生方法、および符号化データ再生プログラム
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
BRPI0915795A2 (pt) 2008-07-16 2015-11-10 Thomson Licensing método de codificação de vídeo escalonável para mudança rápida de canal para aumentar eficácia de codificação
US8781003B2 (en) 2008-07-17 2014-07-15 Cisco Technology, Inc. Splicing of encrypted video/audio content
US8582644B2 (en) 2008-07-26 2013-11-12 Thomson Licensing Real-time transport protocol (RTP) packetization method for fast channel change applications using scalable video coding (SVC)
CA2734613C (en) 2008-08-19 2020-06-09 Digimarc Corporation Methods and systems for content processing
US8081018B2 (en) 2008-08-21 2011-12-20 Qualcomm Incorporated Low power radio frequency divider
KR101377527B1 (ko) 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
US8462849B2 (en) 2008-12-23 2013-06-11 General Instrument Corporation Reference picture selection for sub-pixel motion estimation
EP2392138A4 (en) 2009-01-28 2012-08-29 Nokia Corp METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
KR101622950B1 (ko) 2009-01-28 2016-05-23 삼성전자주식회사 오디오 신호의 부호화 및 복호화 방법 및 그 장치
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US20110026593A1 (en) * 2009-02-10 2011-02-03 New Wei Lee Image processing apparatus, image processing method, program and integrated circuit
WO2010096767A1 (en) 2009-02-20 2010-08-26 Cisco Technology, Inc. Signalling of decodable sub-sequences
JP5332773B2 (ja) 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
JP5072893B2 (ja) 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
US8693539B2 (en) 2009-03-26 2014-04-08 Panasonic Corporation Coding method, error detecting method, decoding method, coding apparatus, error detecting apparatus, and decoding apparatus
CN102449975A (zh) 2009-04-09 2012-05-09 诺基亚公司 用于媒体文件流式传输的系统、方法和装置
US8933989B2 (en) 2009-04-22 2015-01-13 Lg Electronics Inc. Reference picture list changing method of multi-view video
CN101547368B (zh) * 2009-04-24 2011-03-09 炬力集成电路设计有限公司 一种图像中参考帧的处理装置、方法以及解码器
CN101572817B (zh) 2009-05-26 2011-01-05 北京邮电大学 一种用于空间可分级视频编码的编码模式选择方法
TWI384887B (zh) 2009-06-11 2013-02-01 Univ Nat Central 多視點影像編解碼方法
JP4733785B2 (ja) 2009-06-17 2011-07-27 パナソニック株式会社 3d映像を再生するための情報記録媒体、記録媒体の記録方法、再生装置、及び記録媒体再生システム
US8340510B2 (en) 2009-07-17 2012-12-25 Microsoft Corporation Implementing channel start and file seek for decoder
US8948241B2 (en) 2009-08-07 2015-02-03 Qualcomm Incorporated Signaling characteristics of an MVC operation point
KR101678968B1 (ko) 2009-08-21 2016-11-25 에스케이텔레콤 주식회사 참조 픽처 보간 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US8457155B2 (en) * 2009-09-11 2013-06-04 Nokia Corporation Encoding and decoding a multi-view video signal
KR20120080214A (ko) 2009-09-29 2012-07-16 노키아 코포레이션 다이내믹 미디어 파일 스트리밍을 위한 시스템, 방법 및 장치
US8990821B2 (en) 2009-09-29 2015-03-24 International Business Machines Corporation Task dispatching based on composite queue size and upper and lower compare values
JP2011082683A (ja) 2009-10-05 2011-04-21 Sony Corp 画像処理装置、画像処理方法、及び、プログラム
CN102045557B (zh) 2009-10-20 2012-09-19 鸿富锦精密工业(深圳)有限公司 视频编解码方法及使用其的视频编码、解码装置
JP5684823B2 (ja) 2009-11-06 2015-03-18 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ ハイブリッド映像符号化
TW201121331A (en) 2009-12-10 2011-06-16 Novatek Microelectronics Corp Picture decoder
CN102104781B (zh) 2009-12-18 2013-03-20 联咏科技股份有限公司 图像解码器
US9992456B2 (en) 2010-02-24 2018-06-05 Thomson Licensing Dtv Method and apparatus for hypothetical reference decoder conformance error detection
EP2367394B1 (en) 2010-03-12 2015-11-25 BlackBerry Limited Base station and method for receiving transmissions on an enhanced random access channel
EP2367392B1 (en) 2010-03-12 2015-11-11 BlackBerry Limited Method and device for registration and data transmission using fast / zero contention resolution
JP2011199396A (ja) 2010-03-17 2011-10-06 Ntt Docomo Inc 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法、及び動画像予測復号プログラム
CN101917615A (zh) * 2010-06-03 2010-12-15 北京邮电大学 一种混合视频编码框架中的增强型双向运动矢量预测方法
CN101888553B (zh) 2010-06-30 2012-01-11 香港应用科技研究院有限公司 用于可伸缩视频编码的方法和装置
TW201210325A (en) 2010-07-21 2012-03-01 Nokia Corp Method and apparatus for indicating switching points in a streaming session
CN102598686B (zh) 2010-08-06 2016-08-17 松下知识产权经营株式会社 再现装置、集成电路、再现方法
US20120230409A1 (en) 2011-03-07 2012-09-13 Qualcomm Incorporated Decoded picture buffer management
US9516379B2 (en) 2011-03-08 2016-12-06 Qualcomm Incorporated Buffer management in video codecs
US9706227B2 (en) 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
US9866859B2 (en) * 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
MY166340A (en) * 2011-06-30 2018-06-25 Ericsson Telefon Ab L M Reference picture signaling
JP5624693B2 (ja) * 2011-06-30 2014-11-12 テレフオンアクチーボラゲット エル エムエリクソン(パブル) 絶対的又は明示的な参照ピクチャ信号伝送
EP2728861B1 (en) 2011-07-02 2017-10-04 Samsung Electronics Co., Ltd. Method and apparatus for multiplexing and demultiplexing video data to identify reproducing state of video data.
WO2013012372A1 (en) * 2011-07-15 2013-01-24 Telefonaktiebolaget L M Ericsson (Publ) An encoder and method thereof for assigning a lowest layer identity to clean random access pictures
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
JP6272759B2 (ja) * 2011-09-22 2018-01-31 エルジー エレクトロニクス インコーポレイティド 映像情報通知方法及び装置、並びにこれを利用した復号方法及び装置
US9131245B2 (en) 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding
KR20130045785A (ko) 2011-10-26 2013-05-06 경희대학교 산학협력단 메모리 관리 방법 및 그를 이용한 복호화 장치
US9264717B2 (en) 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9467695B2 (en) * 2012-01-19 2016-10-11 Vid Scale, Inc. Method and apparatus for signaling and construction of video coding reference picture lists
US9369710B2 (en) * 2012-02-06 2016-06-14 Qualcomm Incorporated Reference picture list modification for video coding
US9602817B2 (en) 2012-07-12 2017-03-21 Cisco Technology, Inc. Management of decoded picture buffer at picture format transitions
KR102474988B1 (ko) * 2012-11-21 2022-12-06 엘지전자 주식회사 영상 디코딩 방법 및 이를 이용하는 장치
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures

Also Published As

Publication number Publication date
US9131245B2 (en) 2015-09-08
IL231210A0 (en) 2014-04-30
JP2014530569A (ja) 2014-11-17
IL231316A0 (en) 2014-04-30
IL231320A0 (en) 2014-04-30
CN108337517B (zh) 2022-03-29
CA2848406C (en) 2017-05-16
AR089562A1 (es) 2014-09-03
CN108184123A (zh) 2018-06-19
IN2014CN01821A (pt) 2015-05-29
CA2849281C (en) 2017-02-28
KR20140065002A (ko) 2014-05-28
SG11201400449UA (en) 2014-05-29
CA2849284C (en) 2017-01-31
JP5976816B2 (ja) 2016-08-24
CN103814574B (zh) 2018-01-26
ZA201402899B (en) 2017-06-28
AU2012312323A1 (en) 2014-04-03
KR101614635B1 (ko) 2016-04-21
HK1253675A1 (zh) 2019-06-28
IN2014CN01827A (pt) 2015-05-29
JP2014530568A (ja) 2014-11-17
JP2014530567A (ja) 2014-11-17
JP2016213865A (ja) 2016-12-15
EP2759131A1 (en) 2014-07-30
JP6498794B2 (ja) 2019-04-10
CN107517381B (zh) 2020-03-24
US10856007B2 (en) 2020-12-01
BR112014006842A2 (pt) 2017-04-04
US20200107045A1 (en) 2020-04-02
US9338474B2 (en) 2016-05-10
AR089557A1 (es) 2014-09-03
EP2759130A1 (en) 2014-07-30
AU2012312323B2 (en) 2015-05-07
EP2759133B1 (en) 2020-08-12
TW201338557A (zh) 2013-09-16
US20130077685A1 (en) 2013-03-28
CN107770523A (zh) 2018-03-06
WO2013044075A3 (en) 2013-10-03
AU2012312317B2 (en) 2015-05-07
SG11201400387PA (en) 2014-05-29
MY171154A (en) 2019-09-27
US20180324458A1 (en) 2018-11-08
MY166681A (en) 2018-07-18
US11490119B2 (en) 2022-11-01
IL231211A0 (en) 2014-04-30
CA2849499C (en) 2018-03-06
EP2759132B1 (en) 2019-12-18
CN108513128B (zh) 2022-06-24
CN103828365A (zh) 2014-05-28
MY171041A (en) 2019-09-23
CN108337517A (zh) 2018-07-27
CN103828368B (zh) 2018-03-20
BR112014006845B1 (pt) 2022-07-19
RU2014116245A (ru) 2015-10-27
WO2013043907A1 (en) 2013-03-28
EP2759136A2 (en) 2014-07-30
WO2013043887A1 (en) 2013-03-28
RU2014116243A (ru) 2015-10-27
JP5940669B2 (ja) 2016-06-29
TW201320762A (zh) 2013-05-16
RU2014116250A (ru) 2015-10-27
WO2013043893A2 (en) 2013-03-28
IL231211A (en) 2017-08-31
ZA201402902B (en) 2016-11-30
JP5940668B2 (ja) 2016-06-29
US20130077678A1 (en) 2013-03-28
JP2014530571A (ja) 2014-11-17
EP2759133A1 (en) 2014-07-30
KR20140065003A (ko) 2014-05-28
CN107580229A (zh) 2018-01-12
TWI531218B (zh) 2016-04-21
HK1243571A1 (zh) 2018-07-13
EP2759130B1 (en) 2020-08-12
CN103999462A (zh) 2014-08-20
TWI521944B (zh) 2016-02-11
WO2013044075A2 (en) 2013-03-28
IL231267A (en) 2016-08-31
IL231316A (en) 2016-09-29
BR112014006867A2 (pt) 2017-04-04
ZA201402901B (en) 2017-10-29
CN108513128A (zh) 2018-09-07
CN107682695A (zh) 2018-02-09
KR20140065001A (ko) 2014-05-28
US10034018B2 (en) 2018-07-24
IL256349A (en) 2018-02-28
CA2849281A1 (en) 2013-03-28
US20130077681A1 (en) 2013-03-28
AR089561A1 (es) 2014-09-03
US9998757B2 (en) 2018-06-12
CN103828374A (zh) 2014-05-28
TWI530162B (zh) 2016-04-11
KR101613804B1 (ko) 2016-04-19
AU2012312324A1 (en) 2014-04-17
WO2013043886A3 (en) 2013-10-31
CN103828375A (zh) 2014-05-28
IL231267A0 (en) 2014-04-30
AR089559A1 (es) 2014-09-03
AR089558A1 (es) 2014-09-03
JP5882475B2 (ja) 2016-03-09
KR20140066252A (ko) 2014-05-30
KR101612651B1 (ko) 2016-04-14
CN107770523B (zh) 2020-07-17
WO2013043892A3 (en) 2013-10-31
TWI498004B (zh) 2015-08-21
CN103828374B (zh) 2017-09-08
TW201338558A (zh) 2013-09-16
KR101614634B1 (ko) 2016-04-29
BR112014006839A2 (pt) 2017-04-04
KR101615051B1 (ko) 2016-04-22
RU2580098C2 (ru) 2016-04-10
US20130077687A1 (en) 2013-03-28
CA2848406A1 (en) 2013-03-28
CA2849501C (en) 2017-02-28
IN2014CN01822A (pt) 2015-05-29
IL231210B (en) 2018-02-28
IL231320A (en) 2016-09-29
JP2014526858A (ja) 2014-10-06
JP2014530570A (ja) 2014-11-17
IL264182A (en) 2019-02-28
US20130077679A1 (en) 2013-03-28
AU2012312317A1 (en) 2014-04-03
ES2776147T3 (es) 2020-07-29
JP2018093506A (ja) 2018-06-14
HK1197329A1 (en) 2015-01-09
SG11201400264XA (en) 2014-07-30
EP2759134A2 (en) 2014-07-30
TWI521952B (zh) 2016-02-11
CN108184123B (zh) 2021-06-01
WO2013043913A1 (en) 2013-03-28
BR112014006843A2 (pt) 2017-04-04
US9106927B2 (en) 2015-08-11
US20210044827A1 (en) 2021-02-11
CA2849284A1 (en) 2013-03-28
TW201334542A (zh) 2013-08-16
CA2849499A1 (en) 2013-03-28
AU2012312324B2 (en) 2015-09-24
AU2012312344B2 (en) 2015-09-17
AU2012312338A1 (en) 2014-03-27
CN103814574A (zh) 2014-05-21
RU2587420C2 (ru) 2016-06-20
AU2012312338B2 (en) 2015-08-27
SG11201400265WA (en) 2014-08-28
ZA201402913B (en) 2017-11-29
RU2551815C1 (ru) 2015-05-27
AU2012312344A1 (en) 2014-04-03
EP2759134B1 (en) 2020-02-19
CN103814575A (zh) 2014-05-21
AR089560A1 (es) 2014-09-03
US20130077677A1 (en) 2013-03-28
CN107580229B (zh) 2020-06-09
US9237356B2 (en) 2016-01-12
CA2849283C (en) 2020-03-24
CN103828375B (zh) 2017-06-09
JP6009569B2 (ja) 2016-10-19
MY169092A (en) 2019-02-18
IN2014CN01825A (pt) 2015-05-29
HK1247761A1 (zh) 2018-09-28
JP6038929B2 (ja) 2016-12-07
ZA201402900B (en) 2022-11-30
CN103828365B (zh) 2017-10-31
IL264182B (en) 2021-03-25
CN107682695B (zh) 2020-06-30
WO2013043886A2 (en) 2013-03-28
US20130077680A1 (en) 2013-03-28
TWI600311B (zh) 2017-09-21
KR101614633B1 (ko) 2016-04-29
RU2549162C1 (ru) 2015-04-20
RU2584510C2 (ru) 2016-05-20
CN107517381A (zh) 2017-12-26
KR101553788B1 (ko) 2015-10-01
SG11201400317XA (en) 2014-06-27
AU2012312318A1 (en) 2014-04-03
BR112014006845A2 (pt) 2017-04-04
CA3062214A1 (en) 2013-03-28
RU2571410C2 (ru) 2015-12-20
WO2013043892A2 (en) 2013-03-28
CN108174202A (zh) 2018-06-15
JP2019126079A (ja) 2019-07-25
IL256349B (en) 2019-02-28
SG11201400220VA (en) 2014-05-29
MY172880A (en) 2019-12-13
WO2013043893A3 (en) 2013-08-22
KR20140066251A (ko) 2014-05-30
JP2014530573A (ja) 2014-11-17
TW201325251A (zh) 2013-06-16
CN108174202B (zh) 2021-06-01
CA2849283A1 (en) 2013-03-28
CN103828368A (zh) 2014-05-28
US10542285B2 (en) 2020-01-21
JP6275780B2 (ja) 2018-02-07
BR112014006854A2 (pt) 2017-04-04
KR20140085460A (ko) 2014-07-07
IL231266A0 (en) 2014-04-30
IL231266A (en) 2016-03-31
CN103814575B (zh) 2017-05-24
ZA201402898B (en) 2016-05-25
EP2759136B1 (en) 2023-01-04
CN103999462B (zh) 2017-09-22
RU2014116246A (ru) 2015-10-27
AU2012312318B2 (en) 2015-07-30
EP2759132A2 (en) 2014-07-30
KR20140065004A (ko) 2014-05-28
US9420307B2 (en) 2016-08-16
TW201330626A (zh) 2013-07-16
CA2849501A1 (en) 2013-03-28
EP2759135A2 (en) 2014-07-30
HK1247013A1 (zh) 2018-09-14
EP2759135B1 (en) 2017-02-08
MY166674A (en) 2018-07-18
JP5937216B2 (ja) 2016-06-22

Similar Documents

Publication Publication Date Title
US10856007B2 (en) Decoded picture buffer management
BR112016011818B1 (pt) Projeto de valor de poc para codificação de vídeo de multicamada

Legal Events

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

Ipc: H04N 19/58 (2014.01), H04N 7/12 (2006.01), H04N 19

B25A Requested transfer of rights approved

Owner name: VELOS MEDIA INTERNATIONAL LIMITED (IE)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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

B25A Requested transfer of rights approved

Owner name: QUALCOMM INCORPORATED (US)