BR112014026135B1 - Marcação de imagens de referência em sequências de vídeo possuindo imagens de enlace corrompido - Google Patents

Marcação de imagens de referência em sequências de vídeo possuindo imagens de enlace corrompido Download PDF

Info

Publication number
BR112014026135B1
BR112014026135B1 BR112014026135-0A BR112014026135A BR112014026135B1 BR 112014026135 B1 BR112014026135 B1 BR 112014026135B1 BR 112014026135 A BR112014026135 A BR 112014026135A BR 112014026135 B1 BR112014026135 B1 BR 112014026135B1
Authority
BR
Brazil
Prior art keywords
image
bla
picture
images
video
Prior art date
Application number
BR112014026135-0A
Other languages
English (en)
Other versions
BR112014026135A8 (pt
BR112014026135A2 (pt
Inventor
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112014026135A2 publication Critical patent/BR112014026135A2/pt
Publication of BR112014026135A8 publication Critical patent/BR112014026135A8/pt
Publication of BR112014026135B1 publication Critical patent/BR112014026135B1/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/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/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/188Methods 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 a video data packet, e.g. a network abstraction layer [NAL] unit
    • 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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

MARCAÇÃO DE IMAGENS DE REFERÊNCIA EM SEQUÊNCIAS DE VÍDEO POSSUINDO IMAGENS DE ENLACE CORROMPIDO. Trata-se de sistemas, métodos e dispositivos para processar dados de vídeo descritos. Alguns exemplos determinam que uma imagem atual é uma imagem de acesso de enlace corrompido (BLA). Esses exemplos também podem marcar uma imagem de referência em um buffer de armazenamento de imagem como não utilizada para referência. Em alguns exemplos, isso pode ser feito antes da decodificação da imagem de BLA.

Description

[0001] Este pedido reivindica o benefício de: Pedido Provisório sob No U.S. 61/643.100, depositado em 4 de maio de 2012, Pedido Provisório sob No U.S. 61/636.566, depositado em 20 de abril de 2012, e Pedido Provisório sob No U.S. 61/667.371, depositado em 2 de julho de 2012, cujos conteúdos são incorporados no presente documento a título de referência.
Campo da Invenção
[0002] Esta invenção refere-se, em geral, ao processamento de dados de vídeo e, mais particularmente, codificação de imagens de ponto de acesso aleatório (RAP) em uma sequência de vídeo.
Descrição da Técnica Anterior
[0003] As capacidades de vídeo digital podem ser incorporadas em uma faixa ampla de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop e desktop, computadores do tipo tablet, leitores de livro eletrônico, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de jogos, consoles de jogos, telefones de rádio de satélite ou celular, assim chamados “telefones inteligentes”, dispositivos de teleconferência de vídeo, dispositivos de fluxo contínuo (streaming) de vídeo, transcodificadores, roteadores ou outros dispositivos de rede, e similares. Os dispositivos de vídeo digital implantam técnicas de compactação de vídeo, como aqueles descritos nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento, e extensões desses padrões. Os dispositivos de vídeo pode transmitir, receber, codificador, decodificador, e/ou armazenar informações de vídeo digital de forma mais eficaz implantando-se essas técnicas de compactação de vídeo.
[0004] As técnicas de compactação de vídeo realizam predição espacial (intraimagem) e/ou predição temporal (interimagem) para reduzir ou remover inerente redundância na sequência de vídeos. Para codificação de vídeo à base de blocos, uma fatia de vídeo (isto é, um quadro de vídeo ou uma parte de um quadro de vídeo) pode ser particionada em blocos de vídeo, que também podem ser denominados como blocos em árvore (treeblocks), unidade de árvore de codificação (CTUs), unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados com o uso de predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem pode usar a predição espacial em relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal em relação a amostras de referência em outras imagens. As imagens podem ser denominadas quadros, e as imagens de referência podem ser referenciadas como quadros de referência. Uma sequência de vídeos também pode ser denominada fluxo de bits.
[0005] A 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 formam o bloco preditivo, e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em um arranjo bidimensional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada, e codificação por entropia pode ser aplicada para obter ainda mais compactação.
Sumário da Invenção
[0006] Esta invenção se refere a técnicas para codificador imagens de ponto de acesso aleatório (RAP) em uma sequência de vídeos codificada. Em alguns exemplos, quando uma imagem de RAP atual a ser decodificada é uma imagem de RAP de enlace corrompido, como uma imagem de acesso aleatório limpa de enlace corrompido (CRA) ou imagem de acesso de enlace corrompido (imagem de BLA), um elemento de sintaxe indica que nenhuma das imagens antes da imagem de BLA na ordem de decodificação em um buffer de imagem decodificada deve ser emitida. O elemento de sintaxe pode ser fornecido em uma posição adiantada em um cabeçalho de fatia da imagem de BLA e antes de quaisquer parâmetros de cabeçalho de fatia codificados por entropia de cada fatia na imagem de BLA. Em outros exemplos, quando uma imagem de RAP atual a ser decodificada é uma imagem de BLA, todas as imagens de referência em um buffer de imagem decodificada são marcadas como não utilizadas para referência.
[0007] Em um exemplo, a invenção descreve um método para decodificar dados de vídeo, sendo que o método inclui determinar que uma imagem atual é uma imagem de acesso de enlace corrompido (BLA), e marcar uma imagem de referência em um buffer de armazenamento de imagem como não utilizada para referência antes da decodificação da imagem de BLA.
[0008] Em outro exemplo, a invenção descreve um dispositivo para decodificar dados de vídeo, em que o dispositivo inclui um processador configurado para determinar que uma imagem atual é uma imagem de acesso de enlace corrompido (BLA) e marcar uma imagem de referência como não utilizada para referência antes da decodificação da imagem de BLA.
[0009] Em outro exemplo, a invenção descreve um dispositivo para decodificar dados de vídeo, em que o dispositivo inclui um meio para determinar que uma imagem atual é uma imagem de acesso de enlace corrompido (BLA) e um meio para marcar uma imagem de referência como não utilizada para referência antes da decodificação da imagem de BLA.
[0010] Em outro exemplo, a invenção descreve um meio de armazenamento legível por computador. O meio de armazenamento legível por computador que tem armazenado instruções no mesmo que mediante execução fazem com que um ou mais processadores de um dispositivo determinem que uma imagem atual é uma imagem de acesso de enlace corrompido (BLA) e marquem uma imagem de referência como não utilizada para referência antes da decodificação da imagem de BLA.
[0011] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo. Outros recursos, objetivos, e vantagens serão aparentes a partir da descrição e dos desenhos, e a partir das reivindicações.
Breve Descrição das Figuras
[0012] Figura 1 - é um diagrama de blocos que ilustra um sistema de decodificação e codificação de vídeo exemplificativo que pode utilizar as técnicas descritas nesta invenção.
[0013] Figura 2 - é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta invenção.
[0014] Figura 3 - é um diagrama de blocos que ilustra um decodificador de vídeo exemplificativo que pode implantar as técnicas descritas nesta invenção.
[0015] Figura 4 - é um diagrama de blocos que ilustra um conjunto de dispositivos exemplificativos que forma parte de uma rede para a comunicação de dados de vídeo.
[0016] Figura 5 - é um diagrama que ilustra uma sequência de vídeos exemplificativa que inclui uma imagem de RAP de acordo com as técnicas descritas nesta invenção.
[0017] Figura 6 - é um fluxograma que ilustra um método exemplificativo para codificador imagens de RAP de acordo com um ou mais exemplos descritos nesta invenção.
[0018] Figura 7 - é um fluxograma que ilustra um método exemplificativo para codificador imagens de RAP de acordo com um ou mais exemplos descritos nesta invenção.
[0019] Figura 8 - é um fluxograma que ilustra um método exemplificativo para codificador imagens de RAP de acordo com um ou mais exemplos descritos nesta invenção.
[0020] Figura 9 - é um fluxograma que ilustra um método exemplificativo para decodificador a fatia de acordo com um ou mais exemplos descritos nesta invenção.
[0021] Figura 10 - é um fluxograma que ilustra um método exemplificativo para codificador uma fatia de acordo com um ou mais exemplos descritos nesta invenção.
Descrição Detalhada da Invenção
[0022] Esta invenção descreve vários projetos de codificação de vídeo, relacionados a imagens que podem ser usados, por exemplo, como pontos de acesso aleatório ou pontos de adaptação de fluxo, como um ponto de comutação de camada temporal, ou similares. Por exemplo, esse tipo de imagem poderia ser um ponto de comutação para a adaptação de taxa de bits, taxa de quadros ou resolução espacial, cada uma das quais será denominada imagens de RAP nesta invenção. Em alguns casos, um codificador de vídeo ou decodificador de vídeo pode codificar uma imagem ou imagens que são posicionadas, em uma sequência de vídeo, após uma imagem de RAP na ordem de decodificação, mas posicionada antes do ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal em ordem de saída, isto é, ordem de exibição. Essas imagens podem ser denominadas imagens principais. As imagens principais são imagens que seguem uma imagem de RAP na ordem de decodificação, mas precedem a imagem de RAP na ordem de saída. Mais especificamente, essas imagens podem ser denominadas imagens principais da imagem de RAP.
[0023] Uma imagem de acesso aleatório limpa (CRA) é um tipo de imagem de RAP. As imagens principais de uma imagem de CRA atual podem ser decodificadas corretamente se a decodificação começar a partir de uma renovação de decodificação instantânea (IDR) ou imagem de CRA que está posicionada na sequência de vídeos antes da imagem de CRA atual. Entretanto, as imagens principais de uma imagem de CRA não pode ser decodificada corretamente quando o acesso aleatório da imagem de CRA atual ocorre. Isso acontece porque as imagens principais, isto é, as imagens que são posicionadas após a imagem de CRA atual na ordem de decodificação, mas antes da imagem de CRA atual na ordem de saída, podem apontar para blocos para referência de predição nas imagens anteriores que são indisponíveis, (por exemplo, imagens antes da imagem de BLA na ordem de decodificação).
[0024] Em particular, as imagens que residem antes da imagem de CRA atual na ordem de decodificação ficam indisponíveis quando a decodificação de acesso aleatório começa a partir da imagem de CRA atual. Consequentemente, as imagens principais não são decodificáveis nesse caso, e são tipicamente descartadas quando a decodificação de acesso aleatório começa em uma imagem de CRA. Para evitar a propagação de erro das imagens que podem não estar disponíveis dependendo de onde a decodificação começa, todas as imagens que seguem uma imagem de CRA tanto na ordem de decodificação quanto na ordem de saída não usam quaisquer imagens que precedem a imagem de CRA na ordem de decodificação ou ordem de saída (que inclui as imagens principais) das imagens de referência.
[0025] Para o caso em que as imagens principais não são decodificáveis, por exemplo, quando a decodificação começa a partir de uma imagem de RAP anterior, uma imagem de CRA pode incluir um sinalizador de enlace corrompido. Esse sinalizador indica que as imagens principais da imagem de CRA não são decodificáveis, por exemplo, por que uma imagem de referência não é válida para uso na decodificação na imagem principal devido a uma mudança do fluxo de bits ser decodificado. Essa imagem de CRA pode ser denominada uma imagem de acesso aleatório limpo de enlace corrompido (BLC) ou uma imagem de acesso de enlace corrompido (BLA).
[0026] Um enlace corrompido pode se referir, em geral, a uma localização em um fluxo de bits na qual é indicado que algumas imagens subsequentes na ordem de decodificação pode conter artefatos visuais significativos devido a operações não especificadas realizadas na geração do fluxo de bits. Em vez do, ou além do, uso de um sinalizador de enlace corrompido, uma imagem de BLC (ou BLA análoga) pode ser usada para indicar um enlace corrompido em uma sequência de vídeo. Uma imagem de BLA ou BLC pode ser usada, por exemplo, para união de fluxo de bits por qualquer um dentre uma variedade de dispositivos, como um servidor, elemento de rede de mídia consciente (MANE), ou emendador/editor de vídeo. Novamente, uma imagem de BLC pode ser considerada em geral análoga a uma imagem de BLA, conforme descrito em HEVC WD9 (veja abaixo). Embora a terminologia seja levemente diferente, a imagem de BLC ou BLA pode se referir, em geral, a uma imagem de CRA ou acesso de camada temporal (TLA) para a qual as imagens principais não são decodificáveis, essas imagens podem não ser decodificáveis, por exemplo, quando a decodificação começa a partir de uma imagem de RAP mais cedo.
[0027] Em vários exemplos dessa invenção, para uma imagem de BLA ou BLC, as imagens principais são consideradas para não serem decodificáveis, com a compreensão de que as imagens de referência antes da imagem de BLA ou BLC na ordem de decodificação, por exemplo, antes de um ponto de união, não estão disponíveis. De acordo com um exemplo dessa invenção, para decodificador uma imagem de BLA ou BLC atual, as imagens de referência em um buffer de imagem decodificada podem ser marcadas como não utilizadas para referência por um decodificador. Em particular, as imagens de referência no buffer de imagem decodificada (DPB) podem ser marcadas como não utilizadas para referência pelo decodificador quando a imagem atual a ser decodificada for uma imagem de BLA ou BLC. Em outro exemplo, para decodificador de uma imagem de BLA ou BLC, um codificador ou outro dispositivo pode gerar, e um decodificador pode receber, um elemento de sintaxe como um sinalizador, por exemplo, um no_output_of_prior_pics_flag, que indica que nenhuma das imagens de referência antes de uma imagem de CRA ou uma imagem de BLA (ou BLC) que pode ser armazenada no DPB deve ser emitida. Em alguns exemplos, esse sinalizador ou outro elemento de sintaxe pode ser colocado, por um codificador ou outro dispositivo, adiantado em um cabeçalho de fatia de uma imagem de BLA (ou BLC) ou CRA, por exemplo, antes dos elementos que são decodificados por entropia, de modo que o sinalizador possa ser decodificado com mais facilidade e as informações podem estar disponíveis mais cedo no processo de decodificação ou facilmente acessíveis a outras entidades além de um decodificador de vídeo. Por exemplo, de modo que dispositivos com menos capacidade, como um Elemento de Rede de Mídia Consciente (MANE) pode ter acesso às informações sem requerer a decodificação por entropia, o no_output_of_prior_pics_flag pode ser posicionado em uma posição adiantada no cabeçalho de fatia e para preceder parâmetros de cabeçalho de fatia codificados por entropia.
[0028] Em outro exemplo, um codificador pode processar tipos de unidade de NAL atribuídos para indicar quando imagens de BLA (ou BLC) ou CRA têm e não têm imagens principais. Observe que as imagens de BLA são substancialmente semelhantes a imagens de BLC. Em geral, a mudança de das imagens de BLC para imagens de BLA é uma mudança em terminologia, embora o processamento das imagens de BLA também possa incluir a adição dos tipos de unidade de NAL descritos no presente documento. Por exemplo, tipos de unidade de NAL podem incluir tipo de unidade de NAL 16, BLA_W_LP (BLA com imagem principal); tipo de unidade de NAL 17, BLA_W_DLP (BLA com imagem principal decodificável, mas nenhuma imagem principal não decodificável); e tipo de unidade de NAL 18, BLA_N_LP (BLA sem imagem principal) são incluídas. Em alguns exemplos, esses tipos de unidade de NAL podem ser usadas para indicar se uma imagem de BLA pode incluir imagem tanto descodificável quanto não decodificável, somente imagens principais decodificáveis, ou sem imagens principais. Quando as imagens de BLA não têm imagens principais não decodificáveis todas as imagens principais associadas, se presentes, são decodificáveis.
[0029] A Codificação de Vídeo de Alta Eficácia (HEVC), que é desenvolvida pelo Time de colaboração Conjunta sobre a Codificação de Vídeo (JCT-VC) do Grupo de Peritos de Codificação de Vídeo de ITU-T (VCEG) e Grupo de Peritos de Imagem em Movimento de ISO/IEC (MPEG) é descrita em várias especificações preliminares de trabalho. Uma especificação preliminar recente do padrão de HEVC, denominado “Especificação Preliminar de Trabalho de HEVC 6” ou “WD6”, é descrita no documento JCTVC-H1003, Bross et al., “High efficiency video coding (HEVC) text specification draft 6”, Time de Colaboração Conjunta sobre a Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 8o Encontro: San Jose, California, EUA, 01 a 10 de fevereiro de 2012, que, a partir de 04 de maio de 2012, é transferível por download por http://phenix.int- evry.fr/jct/docenduser/documents/8San%20Jose/wg11/JCTVC- H1003-v22.zip, cujo conteúdo inteiro é incorporado no presente documento a título de referência. Uma Especificação Preliminar de Trabalho mais recente (WD) de HEVC, denominada HEVC WD9 doravante é descrita no documento JCTVC-K1003v13, Bross et al., “High efficiency video coding (HEVC) text specification draft 9”, Time de Colaboração Conjunta sobre a Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 11o Encontro: Shanghai, CN, 10 a 19 de outubro de 2012, que, a partir de 27de dezembro de 2012, é transferível por download por http://phenix.int- evry.fr/jct/doc end user/documents/11 Shanghai/wg11/JCTVC- K1003-v13.zip, cujo conteúdo inteiro é incorporado no presente documento a título de referência. Em WD9, a terminologia de imagem de BLC usada para se referir a imagens de CRA de enlace corrompido foi alterada para terminologia de imagem de BLA. Consequentemente, a terminologia de BLC e BLA podem ser usadas de forma intercambiável nesta invenção para se referir a uma imagem de CRA de enlace corrompido.
[0030] Outros padrões de codificação de vídeo exemplificativos 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), que inclui suas extensões Codificação de Vídeo Escalável (SVC) e Codificação de Vídeo Multivista (MVC).
[0031] Vários aspectos de imagens de RAP serão descritos agora. O acesso aleatório se refere, em geral, a uma decodificação de um fluxo de bits de vídeo que começa a partir de uma imagem codificada que não é a primeira imagem codificada no fluxo de bits. O acesso aleatório a um fluxo de bits pode ser necessário em muitas aplicações de vídeo, como difusão e fluxo contínuo, por exemplo, para usuários comutarem entre canais diferentes, para pular para partes específicas do vídeo, para suportar a união de fluxo de bits, ou para comutar para um fluxo de bits diferente para a adaptação de fluxo (da taxa de bits, taxa de quadros, resolução espacial, e etc.). Uma aplicação de vídeo pode inserir imagens de RAP, muitas vezes em intervalos regulares, e/ou em locais selecionados, no fluxo de bits de vídeo para permitir esse recurso.
[0032] Os codificadores e decodificador podem usar a imagem de renovação de decodificador instantânea (IDR) para acesso aleatório. Entretanto, visto que uma imagem de IDR começa uma sequência de vídeos codificada e sempre limpa o buffer de imagem decodificada (DPB), as imagens seguindo a IDR na ordem de decodificação usam imagens decodificadas antes da imagem de IDR como imagens de referência. Consequentemente, os fluxos de bits que dependem das imagens de IDR para acesso aleatório podem ter uma eficácia de codificação significativamente inferior. Para aprimorar a eficácia de codificação, o conceito de imagens de acesso aleatório limpas (CRA) foi introduzido no padrão de HEVC em desenvolvimento para permitir que as imagens que seguem a imagem de CRA na ordem de decodificação, mas precedem a mesma na ordem de saída usem imagens decodificadas antes da imagem de CRA como referência. Por conseguinte, a imagem de CRA pode ser usada para acesso aleatório como a primeira imagem decodificada em uma sequência de vídeo, ou pode ser decodificada como parte de uma sequência de vídeos para a qual imagens de RAP anteriores (por exemplo, IDR ou CRA) foram decodificadas.
[0033] As imagens que seguem uma imagem de CRA na ordem de decodificação, mas precedem a imagem de CRA na ordem de saída são denominadas imagens principais da imagem de CRA. As imagens principais de uma imagem de CRA podem ser decodificadas corretamente se a decodificação começar a partir de uma imagem de RAP antes da imagem de CRA atual. Entretanto, as imagens principais de uma imagem de CRA não podem ser decodificadas corretamente quando o acesso aleatório a partir da imagem de CRA ocorre. Consequentemente, conforme discutido acima, no processo de HEVC, essas imagens principais são, tipicamente, descartadas durante a decodificação de acesso aleatório da imagem de CRA. Para evitar a propagação de erro das imagens de referência que podem não estar disponíveis dependendo de onde a decodificação começa, todas as imagens que seguem uma imagem de CRA tanto na ordem de decodificação quanto na ordem de saída não deverão usar qualquer imagem que precede a imagem de CRA na ordem de decodificação ou ordem de saída (que inclui as imagens principais) como referência.
[0034] As funcionalidades de acesso aleatório são suportadas em H.264/AVC com a mensagem de SEI de ponto de recuperação. Uma implantação de decodificador de H.264/AVC pode suportar ou não a funcionalidade. Em HEVC, um fluxo de bits que começa com uma imagem de CRA é considerado como um fluxo de bits conformante. Quando um fluxo de bits começa com uma imagem de CRA, as imagens principais da imagem de CRA podem se referir a imagens de referência indisponíveis e, por conseguinte, não podem ser decodificadas corretamente. Entretanto, o padrão de HEVC especifica que as imagens principais da imagem de CRA iniciais não são emitidas, por conseguinte o nome “acesso aleatório limpo” para uma imagem de CRA. Para o estabelecimento dos requisitos de conformância de fluxo de bits, a HEVC especifica um processo de decodificação para gerar imagens de referência indisponíveis para a decodificação das imagens principais não emitidas, isto é, as imagens principais que não são emitidas. Entretanto, as implantações de decodificador conformante não necessitam seguir aquele processo de decodificação, desde que a implantação de decodificador possa gerar uma emissão idêntica em comparação a quando o processo de decodificação é realizado a partir do início da sequência de vídeos codificada.
[0035] Em HEVC, um fluxo de bits conformante pode conter nenhuma imagem de IDR, e consequentemente pode conter um subconjunto de uma sequência de vídeos codificada ou uma sequência de vídeos codificada incompleta. Em HEVC WD6, uma sequência de vídeos codificada é definida conforme a seguir. Uma sequência de vídeos codificada é uma sequência de unidades de acesso que inclui, na ordem de decodificação, uma unidade de acesso de IDR seguida por zero ou mais unidades de acesso de não IDR que incluem todas as unidades de acesso subsequentes até, mas não incluindo qualquer unidade de acesso de IDR subsequente.
[0036] Um conceito de "imagens de CRA com enlaces corrompidos" foi descrito no documento JCTVC-I0404, Sullivan et al., “CRA Pictures with Broken Links”, Time de Colaboração Conjunta sobre a Codificação de Vídeo (JCT-VC) de ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 9o Encontro: Geneva, CH, 27 de abril a 7 de maio de 2012, que, a partir de 27 de dezembro de 2012, é transferível por download por: http://phenix.int- evry.fr/jct/doc end user/documents/9 Geneva/wg11/JCTVC- I0404-v1.zip, cujo conteúdo inteiro é incorporado no presente documento a título de referência. Em comparação ao conceito de CRA incluído em HEVC WD6, em um exemplo, é proposto em JCTVC-I0404 permitir, adicionalmente, que as imagens de CRA que não estão no início do fluxo de bits tenham imagens principais não decodificáveis como uma imagem de CRA que começa o fluxo de bits pode ter. Em HEVC WD6, é permitido que uma imagem de CRA que inicia um fluxo de bits seja seguida (na ordem de fluxo de bits, também denominada ordem de decodificação) por imagens principais que não podem ser decodificadas devido a imagens de referência em falta antes da imagem de BLA na ordem de decodificação. Entretanto, não é permitido que uma imagem de CRA que está no meio de um fluxo de bits tenha essas imagens principais não decodificáveis. Em um exemplo, a remoção dessa restrição é proposta em JCTVC-I0404 adicionando-se um sinalizador de "enlace corrompido" que indicaria a potencial presença dessas imagens principais não decodificáveis.
[0037] O sinalizador de “enlace corrompido” é proposto em JCTVC-I0404 como informações em nível de imagem das imagens de CRA no cabeçalho de fatia ou algum outro lugar para informações em nível de imagem. Em um exemplo que inclui um conjunto de parâmetros de adaptação (APS) o sinalizador de “enlace corrompido” pode ser parte do APS. Alguns padrões não fornecem um APS, entretanto. Quando o sinalizador é igual a 1, seria permitido que o fluxo de bits contivesse imagens principais da imagem de CRA que não decodificáveis devido a imagens de referência precedentes em falta embora o fluxo de bits comece com uma imagem de IDR ou uma imagem de CRA anterior na ordem de fluxo de bits.
[0038] Para uma imagem de CRA com o sinalizador de “enlace corrompido” igual a 1, além de ter a permissão de ter imagens principais não decodificáveis conforme discutido no presente documento, seus bits mais significativos (MSBs) de contador de ordem de imagem (POC) são ajustados para 0. Além disso, a imagem de CRA com o sinalizador de enlace corrompido igual a 1 pode incluir um no_output_of_prior_pics_flag que faz com que a imagem de CRA aja da mesma forma que uma imagem de IDR, e um random_access_pic_id que faz com que a imagem de CRA aja da mesma forma que o idr_pic_id das imagens de IDR em HEVC WD6. Adicionalmente, o idr_pic_id atual como em HEVC WD6 é renomeado para random_access_pic_id e suas restrições deveriam ser feitas para se aplicarem tanto a imagens de CRA quanto a imagens de IDR em vez de somente a imagens de IDR. Como uma imagem de IDR, uma imagem de CRA com broken_link_flag igual a 1 poderia ativar um conjunto de parâmetros de sequência diferentes (SPS), muda o tamanho de imagem, etc.
[0039] Em alguns exemplos, a sinalização do sinalizador de “enlace corrompido” no cabeçalho de fatia ou um APS exigiria uma entidade (por exemplo, um servidor, elemento de rede de mídia consciente (MANE), ou emendador/editor de vídeo) que muda uma imagem de CRA normal para uma assim chamada imagem de acesso aleatório limpo de enlace corrompido (BLC), também denominada uma imagem de BLA nesta invenção. Essa entidade normalmente precisaria ter a capacidade de codificação por entropia e análise do cabeçalho de fatia e/ou APS para codificador o sinalizador de enlace corrompido. Da mesma forma, uma entidade (por exemplo, um servidor, MANE, ou editor de vídeo) que identifica uma imagem de BLA ou BLC, quando necessário, necessitaria ter a capacidade de decodificação por entropia e análise do cabeçalho de fatia e/ou a APS para encontrar o sinalizador.
[0040] Em alguns exemplos, pode não ser permitido que uma imagem de CRA de enlace corrompido (BLA) ative um conjunto de parâmetros de sequência (SPS), conjunto de parâmetros de imagem (PPS) ou APS (quando referido pela imagem) se o ID de conjunto de parâmetros for o mesmo que o SPS, PPS ou APS ativo. Entretanto, visto que a imagem de BLA é geralmente originada de um fluxo de bits diferente da imagem anterior na ordem de decodificação, por exemplo, no caso de união de fluxo de bits, a imagem de BLA ou BLC e imagem anterior podem usar cargas de sequência de bits brutas de SPS diferentes (RBSPs), PPS RBSPs, e RBSPs de APS. Consequentemente, em alguns exemplos, é provável que tanto BLA quanto BLC e a imagem anterior na ordem de decodificação possam se referir (direta ou indiretamente) ao mesmo valor de ID de SPS ou PPS. Adicionalmente, em alguns exemplos, também é possível para as imagens para se referirem ao mesmo valor de ID de APS. Portanto, o uso do SPS, PPS, ou APS ativo para a imagem anterior na decodificação é muito provável que faça com que a decodificação da imagem de BLA ou BLC e das imagens seguintes (não somente as imagens principais) seja incorreta.
[0041] Em exemplos que não incluem os elementos de sintaxe random_access_pic_id e no_output_of_prior_pics_flag em imagens de CRA normais, uma entidade (por exemplo, a servidor, elemento de rede de mídia consciente (MANE), ou emendador/editor de vídeo) que muda uma imagem de CRA normal para ser uma imagem de BLA ou BLC, quando necessário, seria necessário ter a capacidade de codificação por entropia ou decodificação e análise do cabeçalho de fatia e/ou APS para codificador os elementos de sintaxe.
[0042] Visto que uma imagem de BLA ou BLC seria originalmente originada de um fluxo de bits diferente da imagem anterior na ordem de decodificação, se no_output_of_prior_pics_flag for igual a 0, o buffer de imagem decodificada pode estourar. Como um resultado, todas as imagens seguintes na ordem de decodificação podem ser decodificadas incorretamente ou o decodificador pode até mesmo falhar.
[0043] Quando uma parte de um primeiro fluxo de bits e uma parte de um segundo fluxo de bits, em que a parte do segundo fluxo de bits começa a partir de uma imagem de CRA (picA), são emendadas ou concatenadas, pode ser possível não mudar a imagem de CRA para uma imagem de BLA ou BLC. Em vez disso, é possível manter a picA como uma imagem de CRA em um caso quando a decodificação começa a partir da imagem de CRA ou imagem de IDR ou imagem de BLA ou BLC anterior e a qualidade de decodificação das imagens principais da imagem de CRA picA é aceitável embora não perfeita (por exemplo, quando as somas de verificação de uma ou mais das imagens principais não correspondem as somas de verificação sinalizadas nas mensagens de informações suplementares de enriquecimento (SEI) de hash de imagem decodificada como em HVEC WD6). Entretanto, essa abordagem carece de um mecanismo para indicar as informações acima no fluxo de bits.
[0044] Para lidar com alguns dos problemas acima, em um exemplo, em vez de usar um sinalizador para indicar que uma imagem de CRA tem um enlace corrompido, ou indicar uma imagem de CRA de enlace corrompido (BLA), um tipo de unidade de NAL distinto (por exemplo, tipo de unidade de NAL igual a 2 que é reservado em HEVC WD6) pode ser usado. Nesse exemplo, as informações fornecidas pelas unidades de NAL podem estar disponíveis sem codificação por entropia ou decodificação. Essa abordagem pode permitir que uma entidade (por exemplo, um servidor, elemento de rede de mídia consciente (MANE), ou emendador/editor de vídeo) mudem uma imagem de CRA normal, para a qual se não a partir do fluxo de bits todas as imagens principais associadas devem ser decodificáveis (isto é, podem ser decodificadas corretamente), para ser uma imagem de BLA ou BLC, quando necessário. Isso também pode permitir que uma entidade (por exemplo, um servidor, MANE, ou editor de vídeo) identifique uma imagem de BLA ou BLC quando necessário.
[0045] Em alguns exemplos, em vez de permitir que uma imagem de BLC ative um SPS diferente, uma imagem de BLC é requerida para ativar uma SPS, mesmo se o ID de SPS referido pela imagem de BLC for o mesmo que o ID de SPS do SPS ativo para a imagem anterior na ordem de decodificação. Isso pode ser realizado indiretamente através de um PPS como em HEVC WD6 ou por outros métodos, por exemplo, indiretamente através de um conjunto de parâmetros de grupo conforme descrito em JCTVC-I0338, ou diretamente, por exemplo, quando o ID de SPS for incluído diretamente no cabeçalho de fatia, ou indiretamente através de uma mensagem de SEI de período de buffer. Uma imagem de BLC pode ser requerida para ativar um SPS porque uma imagem de BLC era tipicamente de um fluxo de bits diferente da imagem anterior na ordem de decodificação. Adicionalmente, RBSPs de SPS tipicamente diferentes são aplicados com IDs de SPS diferentes ou idênticos.
[0046] Uma imagem de BLC também pode ser usada para ativar um PPS. Esse pode ser o caso mesmo se o ID de PPS referido pela imagem de BLC (indiretamente através de um conjunto de parâmetros de grupo conforme descrito em JCTVC- I0338, ou diretamente, por exemplo, quando o ID de PPS é incluído diretamente no cabeçalho de fatia como em HEVC WD6) for o mesmo que o ID de PPS do PPS ativo para a imagem anterior na ordem de decodificação. Isso acontece novamente porque uma imagem de BLC era tipicamente de um fluxo de bits diferente da imagem anterior na ordem de decodificação, e RBSPs de PPS tipicamente diferentes são aplicados, com IDs de PPS idênticos ou diferentes.
[0047] Em alguns exemplos, uma imagem de BLA ou BLC também é requerida para ativar um APS se o mesmo se referir a um APS, mesmo se o ID de APS referido pela imagem de BLA ou BLC for o mesmo que o ID de APS do PPS ativo para a imagem anterior na ordem de decodificação. Isso acontece novamente porque uma imagem de BLA ou BLC era, tipicamente, se um fluxo de bits diferente da imagem anterior na ordem de decodificação. Adicionalmente, RBSPs de APS tipicamente diferentes são aplicados, com IDs de APS idênticos ou diferentes.
[0048] Uma imagem de BLA ou BLC pode ser considerada um tipo especial de imagem de CRA e pode ser definida como uma imagem codificada para a qual o tipo de unidade de NAL é o único para a imagem de BLC (por exemplo, tipo de unidade de NAL igual a 2 que é reservada em HEVC WD6). Essa definição pode ser aplicada, com terminologia diferente, mas efeito semelhante, para as imagens de BLA, conforme descrito em HEVC WD9. O mesmo processo de decodificação para uma imagem de CRA não BLA quando a mesma começa o fluxo de bits e as imagens principais associadas podem ser aplicadas para decodificador uma imagem de BLA ou BLC e as imagens principais associadas, mesmo se a imagem de BLA ou BLC não for a primeira imagem no fluxo de bits. Alternativamente, as imagens de BLA ou BLC podem ser excluídas das imagens de CRA, isto é, uma imagem de BLA ou BLC pode ser considerada que não é uma imagem de CRA. Nesse caso, o mesmo processo de decodificação para uma imagem de CRA quando a mesma inicia o fluxo de bits e as imagens principais associadas é aplicado para decodificador uma imagem de BLA ou BLC e as imagens principais associadas, mesmo se a imagem de BLA ou BLC não for a primeira imagem no fluxo de bits. Na discussão a seguir, presume-se que essa alternativa se aplica.
[0049] Em alguns exemplos, uma unidade de acesso de BLA ou BLC pode ser definida com uma unidade de acesso na qual a imagem codificada é uma imagem de BLA ou BLC. A definição da sequência de vídeos codificada pode ser alterada conforme a seguir: uma sequência de unidades de acesso modo que inclui, na ordem de decodificação, uma unidade de acesso de IDR ou uma unidade de acesso de BLA ou BLC seguida por zero ou mais unidades de acesso de não IDR e não BLA que incluem todas as unidades de acesso subsequentes até, mas que não inclui, qualquer unidade de acesso de IDR ou BLA subsequente.
[0050] Em vez de ter random_access_pic_id e no_output_of_prior_pics_flag para todas as imagens de IDR e imagens de BLA somente como em JCTVC-I0404, em outra abordagem os dois campos estão sempre presentes para todas as imagens de IDR, BLA, e todas as imagens de CRA. Para cada imagem de CRA, no_output_of_prior_pics_flag é requerido para ser igual a 0. Em alguns exemplos pode ser mais fácil para uma entidade (por exemplo, um servidor, elemento de rede de mídia consciente (MANE), ou emendador/editor de vídeo) alterar uma imagem de CRA para ser uma imagem de BLA, quando necessário.
[0051] Em outro exemplo alternativo, para uma imagem de BLA, pode ser requerido que no_output_of_prior_pics_flag seja igual a 1. Alternativamente, cada imagem de BLA não tem no_output_of_prior_pics_flag sinalizado, mas o comportamento de emissão de imagem é o mesmo que se tivesse no_output_of_prior_pics_flag igual a 1. Como uma alternativa adicional, cada imagem de BLA não tem no_output_of_prior_pics_flag sinalizado, mas o comportamento de emissão de imagem é o mesmo que se tivesse no_output_of_prior_pics_flag igual a 1, independentemente do valor do no_output_of_prior_pics_flag sinalizado.
[0052] O valor de bit mais significativo (MSB) de contador de ordem de imagem (POC) para uma imagem de BLA pode ser sinalizado, por exemplo, no cabeçalho de fatia. Se o mesmo for sinalizado, o valor ainda seria considerado igual a 0 no processo de decodificação, independentemente do valor. Alternativamente, o valor de MSB de POC sinalizado é usado no processo de decodificação - mas então o emendador precisa verificar e possivelmente alterar o valor para ser consistente com os valores de POC de imagens anteriores na ordem de decodificação.
[0053] Quando uma parte de um primeiro fluxo de bits e uma parte de um segundo fluxo de bits, em que a parte do segundo fluxo de bits começa a partir de uma imagem de CRA picA, são emendadas ou concatenadas, o emendador pode manter uma imagem do primeiro fluxo de bits como uma imagem de CRA. Em um exemplo, quando a decodificação começa a partir da imagem anterior de CRA, da imagem de IDR, ou da imagem de BLA, a qualidade de decodificação das imagens principais da imagem de CRA pode ser aceitável embora não perfeita. Por exemplo, a qualidade de decodificação pode ser aceitável quando as somas de verificação de uma ou mais das imagens principais não correspondem às somas de verificação sinalizadas nas mensagens de SEI de hash de imagem decodificada como em HVEC WD6.
[0054] Uma indicação das informações acima pode ser sinalizada no fluxo de bits. As informações podem ser sinalizadas através de uma indicação associada a uma imagem de CRA a partir do primeiro fluxo de bits, por exemplo, como um sinalizador no cabeçalho de unidade de NAL ou no cabeçalho de fatia ou no APS referido, ou uma mensagem de SEI associada a uma imagem de CRA a partir do primeiro fluxo de bits. O sinalizador pode ser nomeado exact_match_flag. Em um exemplo, um valor 1 indica que a soma de verificação de cada imagem principal associada a uma imagem de CRA a partir do primeiro fluxo de bits corresponde à soma de verificação sinalizada in na mensagem de SEI de hash de imagem decodificada, se presente. Um valor 0 indica que a soma de verificação de cada imagem principal associada a uma imagem de CRA a partir do primeiro fluxo de bits pode corresponder ou não à soma de verificação sinalizada na mensagem de SEI de hash de imagem decodificada, se presente.
[0055] Uma discussão da sinalização das imagens principais e presença de imagens principais das imagens de CRA é fornecida em JCTVC-I0275, disponível em: http://phenix.int- evry.fr/jct/doc end user/documents/9 Geneva/wg11/JCTVC- I0275-v2.zip; e documento JCTVC-I0277, disponível em: http://phenix.int- evry.fr/jct/docenduser/documents/9Geneva/wg11/JCTVC- I0277-v3.zip para a discussão da sinalização das imagens principais e presença das imagens principais de imagens de CRA, cujos conteúdos inteiros são incorporados no presente documento a título de referência. Em alguns exemplos, uma ideia semelhante para a sinalização da presença das imagens principais de imagens de CRA pode ser aplicada a imagens de BLA ou BLC.
[0056] O uso das imagens de RAP de enlace corrompido, como imagens de BLA ou BLC, pode apresentar alguns problemas. Vários refinos podem ser fornecidos para lidar com esses problemas associados a imagens de RAP de enlace corrompido, como imagens de BLA ou BLC, e outras abordagens de acesso aleatório de vídeo existentes.
[0057] Um problema é que a definição de somente um tipo de unidade de NAL para as imagens principais associadas a uma imagem de CRA pode não ser suficiente, como uma imagem principal também pode ser uma imagem de acesso de camada temporal (TLA). Portanto, os codificadores e decodificador que implantam os sistemas e métodos descritos no presente documento podem precisar de mais tipos de unidade de NAL para identificar unidades de NAL que pertencem a imagens principais que também são imagens de TLA e unidades de NAL que pertencem a imagens principais que não são imagens de TLA.
[0058] Como outro problema, se uma imagem de BLA ou BLC alterar a resolução espacial das imagens na sequência de vídeo, então o processo de decodificação atual conforme especificado em HEVC WD6 para imagens principais de uma imagem de CRA que inicia o fluxo de bits não pode ser aplicado diretamente para imagens principais da imagem de BLA ou BLC. Em alguns casos, pode parecer que a resolução espacial é diferente para uma imagem atual e uma imagem de referência para a imagem atual. Como outro problema, no processo de decodificação especificado em HEVC WD6, o elemento de sintaxe slice_type pode ser desnecessariamente presente no cabeçalho de fatia das fatias de IDR, CRA, e imagens de BLA ou BLC.
[0059] Essa invenção descreve várias técnicas para as imagens de RAP em geral e para codificador imagens de RAP de enlace corrompido (por exemplo, imagens de BLA) em particular em uma sequência de vídeo. Algumas das técnicas podem lidar com um ou mais dos problemas descritos acima, embora algumas das técnicas possam fornecer recursos adicionais que podem ser úteis na decodificação de imagens de acesso aleatório.
[0060] Em alguns exemplos, quando uma imagem de RAP atual a ser decodificada é uma imagem de RAP de enlace corrompido, como uma imagem de acesso aleatório limpa de enlace corrompido (CRA) (imagem de BLA), um elemento de sintaxe indica que nenhuma das imagens de referência antes da imagem de BLA na ordem de decodificação em um buffer de imagem decodificada deve ser emitida. Esse elemento de sintaxe pode ser codificado por um codificador, e decodificado por um decodificador. Além disso, o elemento de sintaxe pode ser fornecido em uma posição adiantada em um cabeçalho de fatia de uma imagem de RAP de enlace corrompido atual e antes de quaisquer parâmetros de cabeçalho de fatia codificados por entropia de cada fatia na imagem de RAP de enlace corrompido atual. O fornecimento do elemento de sintaxe antes de elementos de sintaxe codificados por entropia, por exemplo, antes de qualquer elemento de ue(v), pode permitir que um dispositivo menos capaz, em alguns exemplos, interprete o elemento de sintaxe sem a necessidade para a codificação por entropia. Em outros exemplos, quando uma imagem de RAP atual a ser decodificada é uma imagem de RAP de enlace corrompido, todas as imagens de referência em um buffer de imagem decodificada são marcadas como não utilizadas para referência. Esses recursos podem permitir um processo de decodificação padrão a ser aplicado para as imagens principais de uma imagem de BLA ou BLC mesmo se uma imagem de BLA ou BLC altera a resolução espacial. Essas e outras técnicas exemplificativas são descritas nesta invenção.
[0061] A Figura 1 é um diagrama de blocos que ilustra um sistema de decodificação e codificação de vídeo exemplificativo 10 que pode utilizar as técnicas descritas nesta invenção. Conforme ilustrado na Figura 1, o sistema 10 inclui um dispositivo de fonte 12 que gera dados de vídeo codificados que um dispositivo de destino 14 pode decodificar posteriormente. O dispositivo de fonte 12 e dispositivo de destino 14 pode compreender qualquer um dentre uma faixa ampla de dispositivos, que inclui computadores do tipo desktop, computadores do tipo notebook (isto é, laptop), computadores do tipo tablet, decodificadores de sinal, aparelhos de telefone como os assim chamados telefones “inteligentes”, teclados “inteligentes”, televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos, dispositivo de fluxo contínuo de vídeo, ou similares. Em alguns casos, dispositivo de fonte 12 e dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0062] Em alguns casos, o codificador de vídeo 20 pode codificar uma imagem ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal. Por exemplo, isso poderia ser um ponto de comutação para a adaptação da taxa de bits, taxa de quadros ou resolução espacial. Uma ou mais dessas imagens podem ser imagens principais de uma imagem de CRA em uma sequência de vídeo. Um decodificador pode decodificar as imagens principais de uma imagem de CRA corretamente se a decodificação da sequência de vídeos começar a partir de uma imagem de RAP antes da imagem de CRA atual na sequência de vídeo. Entretanto, as imagens principais de uma imagem de CRA não pode ser decodificada corretamente quando o acesso aleatório a partir da imagem de CRA ocorre. Por exemplo, as imagens principais pode apontar para blocos para referência de predição que estão indisponíveis. Consequentemente, a imagem principal pode não ser decodificável no decodificador de vídeo 30. Consequentemente, um dispositivo de destino 14 pode tipicamente descartar essas imagens principais durante a decodificação de acesso aleatório.
[0063] Em outro exemplo, para uma imagem de BLA ou BLC, codificador 20 pode codificar um sinalizador, por exemplo, um no_output_of_prior_pics_flag (que pode ser denominado mais corretamente como elemento de sintaxe) de modo que nenhuma das imagens anteriores no DPB sejam emitidas. Em alguns exemplos, esse sinalizador, ou elemento de sintaxe, pode estar antecipado no cabeçalho de fatia antes da decodificação por entropia de modo que possa ser decodificado com mais facilidade e as informações estejam disponíveis antes no processo de codificação. Por exemplo, de modo que dispositivos menos sofisticados, como um MANE, possam ter acesso às informações sem requerer um decodificador visto que, por exemplo, o no_output_of_prior_pics_flag não precisa ser decodificado por entropia. Como uma ilustração, o sinalizador no_output_of_prior_pics pode ser apresentado como um elemento de sintaxe codificado por não entropia como, por exemplo, como um elemento u(1) de comprimento fixo, em vez de um elemento de sintaxe codificado por entropia, como, por exemplo, um elemento ue(v) de comprimento variável. O sinalizador no_output_of_prior_pics pode ser apresentado, por exemplo, imediatamente após um sinalizador first_slice_segment_in_pic, e antes de quaisquer elementos de sintaxe codificados por entropia.
[0064] Em um exemplo, o decodificador de vídeo 30 pode marcar as imagens armazenadas em um buffer de imagem de referência como não utilizadas para referência quando, por exemplo, o uso dessas imagens pode resultar em uma imagem decodificada incorretamente. Por exemplo, uma imagem de referência que precede uma imagem de BLA ou BLC na ordem de decodificação ou ordem de saída pode ser não utilizável para referência para uma imagem principal que segue a imagem de BLA ou BLC na ordem de decodificação. Consequentemente, a imagem de referência pode ser marcada como não utilizada para referência pelo decodificador de vídeo 30 em resposta ao recebimento de uma imagem de referência que precede uma imagem de BLA ou BLC na ordem de decodificação ou ordem de saída pode ser não utilizável para referência para uma imagem principal que segue a imagem de BLA ou BLC na ordem de decodificação.
[0065] Em um exemplo, um codificador de vídeo 20 pode ser configurado para incluir tipos de unidade de NAL atribuídas para indicar quando as imagens de BLA ou BLC têm ou não imagens principais. Por exemplo, em um padrão, os tipos de unidade de NAL 16, BLA_W_LP (BLA com imagem principal); 17, BLA_W_DLP (BLA com imagem principal descodificável); e 18, BLA_N_LP (BLA sem imagem principal) são incluídos.
[0066] Em um exemplo, o codificador de vídeo 20 pode processar tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA têm e não imagens principais. Por exemplo, o codificador de vídeo 20 pode codificar imagens de acordo com um de uma pluralidade de tipos diferentes de unidades de camada de abstração de rede (NAL). A pluralidade de tipos de unidades de NAL inclui um ou mais dentre (1) uma fatia codificada de uma imagem de acesso de enlace corrompido (BLA), em que a imagem de BLA é uma imagem de BLA com imagens principais associadas em um fluxo de bits, (2) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA com imagens principais decodificáveis associadas no fluxo de bits, e (3) uma fatia codificada de uma imagem de BLA, em que uma imagem de BLA é uma imagem de BLA sem imagens principais associadas no fluxo de bits.
[0067] O dispositivo de destino 14 pode receber os dados de vídeo codificados. O dispositivo de destino pode decodificar os dados recebidos por meio de um enlace 16. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo que tem a capacidade de mover os dados de vídeo codificados de dispositivo de fonte 12 para dispositivo de destino 14. Em um exemplo, o enlace 16 pode compreender um meio de comunicação para habilitar o dispositivo de fonte 12 para transmitir dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitido para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, como um espectro de rádio frequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede à base de pacotes, como uma rede de área local, uma rede de área ampla, ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações-base, ou qualquer outro equipamento pode ser útil para facilitar a comunicação do dispositivo de fonte 12 para o dispositivo de destino 14.
[0068] Alternativamente, os dados codificados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento 34. De forma semelhante, os dados codificados podem ser acessados a partir do dispositivo de armazenamento 34 pela interface de entrada. O dispositivo de armazenamento 34 pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados acessados localmente ou distribuídos como um disco rígido, discos Bluray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil, ou quaisquer outros meios de armazenamento digitais adequados para armazenar os dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 34 pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode reter o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenamentos de dispositivo de armazenamento 34 por meio de fluxo contínuo ou transferência por download. O servidor de arquivo pode ser qualquer tipo de servidor que tem a capacidade de armazenar dados de vídeo codificados e transmitir aqueles dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivo exemplificativos incluem um servidor de web (por exemplo, para um sítio da web), um servidor de FTP, dispositivos de armazenamento em rede (NAS), ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, que inclui uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão de Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos que é adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivo. A transmissão de dados de vídeo codificados de dispositivo de armazenamento 34 pode ser uma transmissão de fluxo contínuo, uma transmissão de transferência por download, ou uma combinação de dados.
[0069] As técnicas desta invenção não são necessariamente limitadas a definições e aplicações sem fio. As técnicas podem ser aplicadas a codificação de vídeo em suporte de qualquer uma dentre uma variedade de aplicações de multimídia, como difusões de televisão pelo ar, transmissões de televisão por cabo, transmissões de televisão por satélite, transmissões de vídeo de fluxo contínuo, por exemplo, por meio 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, ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar uma transmissão de vídeo uni ou bidirecional para suportar aplicações como vídeo fluxo contínuo, reprodução de vídeo, difusão de vídeo, e/ou telefonia de vídeo.
[0070] No exemplo da Figura 1, o dispositivo de fonte 12 inclui uma fonte de vídeo 18, codificador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de fonte 12, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo, e/ou um sistema de gráficos de computador para gerar dados de gráficos de computador como o vídeo de fonte, ou uma combinação dessas fontes. Como um exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formam assim chamados telefones com câmera ou telefones de vídeo. Entretanto, as técnicas descritas nesta invenção podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fio e/ou com fio.
[0071] O vídeo gerado por computador, pré- capturado ou capturado pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o dispositivo de destino 14 por meio da interface de saída 22 do dispositivo de fonte 12. Os dados de vídeo codificados também podem ser (ou alternativamente) armazenados no dispositivo de armazenamento 34 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificador e/ou reprodução.
[0072] O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30, e um dispositivo de exibição 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destino 14 recebe os dados de vídeo codificados através do enlace 16. Os dados de vídeo codificados comunicados através de um enlace 16, ou fornecido no dispositivo de armazenamento 34, pode incluir uma variedade de elementos de sintaxe gerados pelo codificador de vídeo 20 para uso por um decodificador de vídeo, como decodificador de vídeo 30, na decodificação os dados de vídeo. Esses elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação, armazenado sem um meio de armazenados, ou armazenados em um servidor de arquivo.
[0073] Em alguns exemplos, o decodificador de vídeo 30 do dispositivo de destino 14 pode decodificar uma imagem ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal. Por exemplo, isso poderia ser um ponto de comutação para a adaptação da taxa de bits, taxa de quadros (isto é, ponto de comutação de camada temporal), ou resolução espacial. Uma ou mais dessas imagens podem ser imagens principais. As imagens principais não podem ser decodificadas corretamente quando o acesso aleatório de uma imagem de BLA ou BLC ocorre.
[0074] Em um exemplo, para evitar a propagação de erro de imagens de referência que podem não estar disponíveis dependendo de quando a decodificação começa, o decodificador de vídeo 30 pode não usar qualquer que precede a imagem de BLA ou BLC na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) as imagens de referência.
[0075] Em vários exemplos, o decodificador de vídeo 30 pode marcar todas as imagens de referência no DPB como não utilizadas para referência antes da decodificação a imagem de BLA quando se decodifica uma imagem de BLA ou BLC. Por exemplo, o decodificador de vídeo 30 pode marcar as imagens de referência no buffer de imagem decodificada (DPB) como não utilizadas para referência.
[0076] Em outro exemplo, o codificador 20 pode incluir no fluxo de bits, e o decodificador 30 pode receber, um sinalizador ou outro elemento de sintaxe, por exemplo, um no_output_of_prior_pics_flag, para uma imagem de BLA a ser decodificada. O sinalizador, quando igual a 1, indica que nenhuma das imagens anteriores no DPB são emitidas para exibição. Em particular, quando o no_output_of_prior_pics_flag é igual a 1, o decodificador 30 esvazia todos os armazenamentos temporários de armazenamento de imagem no buffer de imagem decodificada sem a emissão das imagens que contêm. Em alguns exemplos, esse sinalizador ou elemento de sintaxe pode ser apresentado muito antecipado no cabeçalho de fatia antes da decodificação por entropia de modo que possa ser decodificado com mais facilidade, sem a necessidade para a codificação por entropia, e as informações estão disponíveis mais antecipados no processo de codificação. Por exemplo, de modo que dispositivos menos sofisticados, como um MANE possam ter acesso às informações sem requerer um decodificador visto que, por exemplo, o no_output_of_prior_pics_flag não precise ser decodificado por entropia.
[0077] Em outro exemplo, o decodificador de vídeo 30 pode processar tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA ou BLC têm e não têm imagens principais. (Novamente, conforme descrito acima as imagens de BLA são, conceitualmente, de modo geral, as mesmas que as imagens de BLC, em que as imagens de BLA e BLC significam imagens de CRA de enlace corrompido). Em um exemplo, o decodificador de vídeo 30 pode decodificar as imagens de acordo com um de uma pluralidade de tipos de unidade de camada de abstração de rede (NAL) diferentes. A pluralidade dos tipos de unidade de NAL inclui uma ou mais dentre (1) uma fatia codificada de uma imagem de acesso de enlace corrompido (BLA), em que a imagem de BLA é uma imagem de BLA com imagens principais associadas em um fluxo de bits, (2) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA com imagens principais decodificáveis associadas no fluxo de bits, e (3) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA sem imagens principais associadas no fluxo de bits.
[0078] Em alguns exemplos, o decodificador de vídeo 30 é configurado para marcar todas as imagens de referência como não utilizadas para referência se as mesmas detectassem um tipo de unidade de NAL de BLA. Se um tipo de unidade de NAL de BLA é detectada pelo decodificador 30, as imagens de referência não são válidas para decodificar a imagem de BLA ou quaisquer imagens após a imagem de BLA na ordem de saída ou decodificação.
[0079] O dispositivo de exibição 32 pode ser integrado com, ou externo ao, dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para realizar interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 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 um dentre uma variedade de dispositivos de exibição como um visor de cristal líquido (LCD), um plasma display, um visor de diodo emissor de luz orgânico (OLED), ou outro tipo de dispositivo de exibição.
[0080] O codificador de vídeo 20 e decodificador de vídeo 30 pode operar de acordo com um padrão de compactação de vídeo, como o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente sob desenvolvimento, e pode conformar para o Modelo de teste de HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de indústria e propriedade, como o padrão ITU-T H.264, alternativamente denominado MPEG-4, Part 10, Codificação de Vídeo Avançada (AVC), ou extensões desses padrões. As técnicas dessa invenção, entretanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compactação de vídeo incluem MPEG-2 e ITU-T H.263.
[0081] Embora não mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser integrados com um codificador e decodificador de áudio, e pode incluir unidades de MUX- DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio quanto vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicáveis, em alguns exemplos, as unidades de MUX-DEMUX podem conformar para o protocolo de multiplexador de ITU H.223, ou outros protocolos como o protocolo de datagrama de usuário (UDP).
[0082] Cada um dentre o codificador de vídeo 20 e decodificador de vídeo pode ser implantado como qualquer um dentre uma variedade de circuitos de codificador adequados, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos por aplicação (ASICs), arranjos de porta programável de campo (FPGAs), lógica distinta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta invenção. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinados em um respectivo dispositivo.
[0083] O JCT-VC está trabalhando no desenvolvimento do padrão de HEVC. Os esforços de padronização HEVC são baseados em um modelo em evolução de um dispositivo de codificação de vídeo denominado o Modelo de Teste de HEVC (HM). O HM presume diversas capacidades adicionais dos dispositivos de codificação de vídeo em relação a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto que H.264 fornece nove modos de codificação intrapredição, o HM pode fornecer tanto quanto trinta e três modos de codificação de intrapredição.
[0084] Em geral, o modelo de trabalho do HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos em árvore ou unidades de codificação maiores (LCU) que incluem amostras tanto de luma quanto de croma. Um bloco em árvore tem um propósito semelhante a um macrobloco do padrão H.264. Uma fatia inclui diversos blocos em árvore consecutivos na ordem de codificação. Um quadro de vídeo ou imagem pode ser particionado em uma ou mais fatias. Cada bloco em árvore pode ser dividido em unidades de codificação (CUs) de acordo com uma quadtree. Por exemplo, um bloco em árvore, como um nó raiz do quadtree, pode ser dividido em quatro nós filhos, e cada nó filho pode por sua vez se um nó pai e ser dividido em outros quatro nós filhos. Um nó filho não dividido final como um nó folha do quadtree, compreende um nó de codificação, isto é, um bloco de vídeo codificado. Os dados de sintaxe associados com um fluxo de bits codificado pode definir um número máximo de vezes que um bloco em árvore pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação.
[0085] Uma CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ter o formato quadrado. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco em árvore com um máximo de 64x64 pixels ou mais. Cada CU pode conter uma ou mais PUs e um ou mais TUs. Os dados de sintaxe associadas com uma CU pode descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem ser diferir entre se a CU for codificada por modo direto ou pulado, codificada por modo de intrapredição, ou codificado por modo de interpredição. As PUs podem ser particionadas para não terem o formato quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com um quadtree. Uma TU pode ter o formato quadrado ou não quadrado.
[0086] O padrão de HEVC permite transformações de acordo com TUs, que podem ser diferentes para Cus diferentes. As TUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada, embora esse não seja sempre o caso. As TUs têm tipicamente o mesmo tamanho ou menor do que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores com o uso de uma estrutura de quadtree conhecida como “quadtree residual” (RQT). Os nós folha do RQT podem ser denominadas unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantizados.
[0087] Em geral, uma PU inclui dados relacionados ao processo de predição. Por exemplo, quando a PU é codificada em intramodo, a PU pode incluir dados que descrevem um modo de intrapredição para a PU. Como outro exemplo, quando a PU é codificada em intermodo, 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 pixel de um quarto ou precisão de pixel de um oitavo), uma imagem de referência para a qual os pontos de vetor de movimento, e/ou uma lista de imagem de referência (por exemplo, Lista 0, Lista 1, ou Lista C) para o vetor de movimento.
[0088] 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 transformada (TUs). Após a predição, o codificador de vídeo 20 pode calcular valores residuais correspondentes à PU. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantizados, e varridos com o uso das TUs para produzir coeficientes de transformada serializados para a codificação por entropia. Essa invençã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, essa invenção também pode usar o termo “bloco de vídeo” para se referir a um bloco em árvore, isto é, LCU, ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0089] Uma sequência de vídeos inclui tipicamente uma série de quadro de vídeos ou imagens. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais de imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de um ou mais das imagens, ou em outro lugar, que descreve diversas imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. O codificador de vídeo 20 tipicamente opera em blocos de vídeo dentro de fatias de vídeo individuais a fim de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo pode ter tamanhos variantes ou físicos, e pode diferir em tamanho de acordo com um padrão de codificação especificado.
[0090] Como um exemplo, o HM suporta a predição em vários tamanhos de PU. Presumindo que o tamanho de uma CU particular é 2Nx2N, o HM suporta a intrapredição em tamanhos de PU de 2Nx2N ou NxN, e interpredição em tamanhos de PU simétricas de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta o particionamento assimétrico para a interpredição em tamanhos de PU de 2NxnU, 2NxnD, nLx2N, e nRx2N. No particionamento assimétrico, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A parte da CU correspondente à partição de 25% é indicada por um “n” seguido por uma indicação de “Cima”, “Baixo”, “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.
[0091] Nessa invenção, “NxN” e “N por N” pode ser usado de forma intercambiável para se referir às dimensões de pixel de um bloco de vídeo em termos de dimensões verticais e horizontais, por exemplo, pixels de 16x16 ou pixels 16 por 16. Em geral, um bloco de 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 de NxN tem, em geral, N pixels em uma direção vertical e N pixels em uma direção horizontal, em que N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Ademais, os blocos não precisam ter necessariamente o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0092] Após a codificação intrapreditiva ou interpreditiva com o uso das 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 denominado domínio de pixel) e as TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, por exemplo, uma transformada discreta de cosseno (DCT), uma transformada de número inteiro, uma transformada em ondeleta, ou uma transformada conceitualmente semelhante a dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de predição correspondentes às PUs. O codificador de vídeo 20 pode formar as TUs que incluem os dados residuais para a CU, e então transformar as TUs para produzir coeficientes de transformada para a CU.
[0093] Após quaisquer transformadas para produzir coeficientes de transformada, o codificador de vídeo 20 pode realizar a quantização dos coeficientes de transformada. A quantização se refere, em geral, a um processo no qual os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usados para representar os coeficientes, fornecer compactação adicional. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. Por exemplo, um valor n-bit pode ser arredondado para um valor m-bit durante a quantização, em que n é maior do que m.
[0094] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura pré-definida 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 a varredura dos 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 a codificação de comprimento variável adaptativa de contexto (CAVLC), codificação aritmética binária adaptativa de contexto (CABAC), codificação aritmética binária adaptativa de contexto baseado em sintaxe (SBAC), codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 também pode codificar por entropia os elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0095] Para realizar a CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se referir a, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. Para realizar a CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras de código em VLC podem ser construídas de modo que códigos relativamente curtos correspondam a símbolos mais prováveis, enquanto que códigos maiores correspondem a símbolos menos prováveis. Desta forma, o uso de VLC pode alcançar um uma economia de bit através, por exemplo, do uso de 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 atribuído ao símbolo.
[0096] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo 20 que pode implantar as técnicas para codificar imagens de RAP de enlace corrompido descritas nesta invenção. O codificador de vídeo 20 pode realizar intra e intercodificação dos blocos de vídeo dentro de fatias de vídeo. A intracodificação depende da predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um dado quadro de vídeo ou imagem. A intercodificação depende da predição temporal para reduzir ou remover redundância temporal no vídeo dentro de quadros adjacentes ou imagens de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre diversos modos de compactação baseado em espaço. Os intermodos, como predição unidirecional (modo P) ou bi- predição (modo B), podem se referir a qualquer um dentre diversos modos de compactação baseados em tempo.
[0097] No exemplo da Figura 2, o codificador de vídeo 20 inclui um módulo de particionamento 35, módulo de predição 41, módulo de filtro 63, memória de imagem de referência 64, somador 50, módulo de transformação 52, módulo de quantização 54, e módulo de codificação por entropia 56. O módulo de predição 41 inclui módulo de estimação de movimento 42, módulo de compensação de movimento 44, e módulo de intrapredição 46. Para a reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui um módulo de quantização inversa 58, módulo de transformada inversa 60, e somador 62. O módulo de filtro 63 é destinado a representar um ou mais filtros de laço como um filtro de desbloqueamento, um filtro de laço adaptativo (ALF), e um filtro de desvio adaptativo de amostra (SAO). Embora o módulo de filtro 63 seja ilustrado na Figura 2 como estando em um filtro de laço, em outras configurações, o módulo de filtro 63 pode ser implantado como um filtro pós laço.
[0098] Conforme ilustrado na Figura 2, o codificador de vídeo 20 recebe dados de vídeo, e o módulo de particionamento 35 particiona os dados em blocos de vídeo. Esse particionamento também pode incluir o particionamento em fatias, aglomerados, ou outras unidades maiores, bem como o particionamento de bloco de vídeo, por exemplo, de acordo com uma estrutura de quadtree das LCUs e CUs. O codificador de vídeo 20 ilustra, em geral, os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo denominados aglomerados). O módulo de predição 41 pode selecionar um dentre uma pluralidade de modos de codificação possíveis, como um dentre uma pluralidade de modos de intracodificação ou um dentre uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de codificação e o nível de distorção). O módulo de predição 41 pode fornecer o bloco intra ou intercodificado resultante para o somador 50 gerar dados de bloco residuais e para o somador 62 reconstruir o bloco codificado para uso como uma imagem de referência.
[0099] Conforme discutido acima, em alguns casos, o codificador de vídeo 20 pode codificar um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal, como uma imagem de BLA ou BLC. Por exemplo, a codificação pode ocorrer dentro do módulo de codificação por entropia 56, que pode realizar tanto codificação por entropia quanto por não entropia. Uma ou mais dessas imagens podem ser imagens principais da imagem de CRA. As imagens principais de uma imagem de CRA podem ser decodificadas corretamente se a decodificação começar a partir de uma imagem de RAP antes da imagem de CRA atual. Entretanto, as imagens principais de uma imagem de CRA não podem ser decodificadas corretamente quando o acesso aleatório a partir da imagem de CRA ocorre. Por exemplo, as imagens principais podem apontar para blocos para referência de predição que estão indisponíveis. Consequentemente, a imagem principal pode não ser decodificável no decodificador de vídeo 30. Consequentemente, essas imagens principais são tipicamente descartadas durante a decodificação de acesso aleatório.
[0100] Em um exemplo, o codificador de vídeo 20 pode fornecer um sinalizador no cabeçalho de fatia, por exemplo, um no_output_of_prior_pics_flag ou elemento de sintaxe de modo que nenhuma das imagens anteriores, isto é, imagens antes da imagem de BLA ou BLC, no DPB seja emitida. Em alguns exemplos, esse sinalizador (ou elemento de sintaxe) pode estar antecipado no cabeçalho de fatia antes da codificação por entropia de modo que possa ser decodificado com mais facilidade no decodificador 30, por exemplo, e as informações possam ficar disponíveis antecipadamente no processo de codificação. O elemento de sintaxe ou sinalizador pode ser codificado, por exemplo, em um cabeçalho de fatia para uma imagem de BLA ou BLC, pelo módulo de codificação por entropia 56 (que pode realizar uma codificação por não entropia). Isso pode ser útil, por exemplo, para dispositivos intermediários como um MANE, de modo que as informações fornecidas pelo elemento de sintaxe ou sinalizados possam ficar disponível para o dispositivo intermediário sem a decodificação por entropia, embora também seja útil para um decodificador ter acesso a essas informações antes da decodificação por entropia.
[0101] Por exemplo, o codificador de vídeo 20 (por exemplo módulo de codificação por entropia 56) pode incluir um elemento de sintaxe que indica que um buffer de armazenamento de imagem é esvaziado sem emitir quaisquer imagens do buffer de armazenamento de imagem. O elemento de sintaxe, quando definido, pode fazer com que as imagens antes de uma imagem atual na ordem de decodificação e que residem no buffer de armazenamento de imagem no momento da decodificação da imagem atual sejam esvaziadas do buffer de armazenamento de imagem sem serem emitidas. Em alguns exemplos, o elemento de sintaxe pode ser um dentre uma pluralidade de elementos de sintaxe. Adicionalmente, a pluralidade de elementos de sintaxe pode incluir elementos de sintaxe de cabeçalho de fatia codificados por entropia e elementos de sintaxe de cabeçalho de fatia codificados por não entropia. Em um exemplo, o elemento de sintaxe que indica que um buffer de armazenamento de imagem é esvaziado sem emitir quaisquer imagens do buffer de armazenamento de imagem é incluído no cabeçalho de fatia antes de qualquer elemento de sintaxe de cabeçalho de fatia codificado por entropia de modo que o próprio elemento de sintaxe não seja codificado por entropia.
[0102] Em alguns exemplos, o elemento de sintaxe pode ser um no_output_of_prior_pics_flag e o no_output_of_prior_pics_flag pode ser incluído no cabeçalho de fatia imediatamente após um first_slice_in_pic_flag. O first_slice_in_pic_flag pode ser um sinalizador que indica se uma fatia é a primeira fatia, na ordem de decodificação, de uma imagem.
[0103] Em um exemplo, um codificador de vídeo 20 pode ser configurado para incluir tipos de unidade de NAL atribuídas para indicar quando as imagens de BLA ou BLC têm e não têm imagens principais. Por exemplo, em um padrão, os tipos de unidade de NAL 16, BLA_W_LP (BLA com imagem principal); 17, BLA_W_DLP (BLA com imagem principal decodifivável); e 18, BLA_N_LP (BLA sem imagem principal) são incluídos. Esses tipos de unidade de NAL podem ser codificados pelo módulo de codificação por entropia 56 (que podem realizar codificação por não entropia). Consequentemente, com base no tipo de unidade de NAL, um decodificador pode saber quando uma imagem de BLA tem uma imagem principal e quando a imagem principal não é decodificável, por exemplo, quando a decodificação começa a partir de uma imagem de RAP antecipada. Consequentemente, essas informações podem ser usadas para determinar quando as imagens principais podem ser marcadas como não utilizadas para referência, que pode acionar o decodificador para marcar imagens de referência no buffer de imagem decodificada como não utilizadas para referência.
[0104] O módulo de intrapredição 46 dentro do módulo de predição 41 pode realizar uma codificação intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia como o bloco a ser codificado atual para fornecer compactação espacial. O módulo de estimação de movimento 42 e o módulo de compensação de movimento 44 dentro do módulo de predição 41 realizam codificação interpreditiva do bloco de vídeo atual em relação a um ou mais blocos para referência de predição em uma ou mais imagens de referência para fornecer compactação temporal.
[0105] O módulo de estimação de movimento 42 pode ser configurado 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, fatias B ou fatias GPB. O módulo de estimação de movimento 42 e o módulo de compensação de movimento 44 podem ser altamente integrados, mas são ilustrados separadamente para propósitos conceituais. A estimação de movimento, realizada pelo módulo de estimação de movimento 42, é o processo de geração de vetores de movimento, que estimam o movimento para blocos de vídeo. UM vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem em relação a um bloco preditivo dentro de uma imagem de referência.
[0106] É observado que um bloco preditivo é um bloco que quase corresponde a PU do vídeo bloco a ser codificado em termos de diferença de pixel, que pode ser determinada pela soma de diferença absoluta (SAD), soma de diferença quadrada (SSD), ou outras diferenças métricas. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel sub-inteiras das imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto (1/4), posições de pixel de um oitavo (1/8), ou outras posições de pixel fracionárias da imagem de referência. Portanto, o módulo de estimação de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel completas e posições de pixel fracionárias e emitir um vetor de movimento com precisão de pixel fracionária.
[0107] O módulo de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando-se 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 imagem de referência (Lista 0) ou uma segunda lista de imagem de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagem de referência 64. O módulo de estimação de movimento 42 envia o vetor de movimento calculado para o módulo de codificação por entropia 56 e o módulo de compensação de movimento 44.
[0108] A compensação de movimento, realizada pelo módulo de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimação de movimento, possivelmente realizando interpolações para precisão sub-pixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, o módulo de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagem de referência. O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual que é codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir componentes de diferença tanto de luma quanto de croma. O somador 50 representa o componente ou componentes que realizam essa operação de subtração. Um módulo de compensação de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à 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.
[0109] O módulo de intrapredição 46 pode intraprever um bloco atual, como uma alternativa para a interpredição realizada pelo módulo de estimação de movimento 42 e pelo módulo de compensação de movimento 44, conforme descrito acima. Em particular, o módulo de intrapredição 46 pode determinar um modo de intrapredição para usar para codificar um bloco atual. Em alguns exemplos, o módulo de intrapredição 46 pode codificar um bloco atual com uso de vários modos de intrapredição, por exemplo, durante passagens de codificação separadas, e o módulo de intrapredição 46 (ou módulo de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intrapredição apropriado para uso pelos modos testados. Por exemplo, o módulo de intrapredição 46 pode calcular valores de taxa de distorção com o uso de 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 determinar, em geral, uma quantidade de distorção (ou erro) entre um bloco codificado e um original, o bloco não codificado que foi codificado para produzir o bloco codificado, bem com uma taxa de bits (isto é, um número de bits) usada 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.
[0110] De qualquer forma, após selecionar um modo de intrapredição para um bloco, o módulo de intrapredição 46 pode fornecer informações indicativas do modo de intrapredição selecionado para o bloco para o módulo de codificação por entropia 56. O módulo de codificação por entropia 56 pode codificar as informações que indicam o modo de intrapredição selecionado de acordo com as técnicas desta invenção. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração. O fluxo de bits pode incluir uma pluralidade de tabelas de índice de modo de intrapredição e uma pluralidade de tabelas de índice de modo de intrapredição modificadas (também denominadas tabelas de mapeamento de palavra de código), as definições dos contextos de codificação para vários blocos, e indicações de um modo de intrapredição mais provável, uma tabela de índice de modo de intrapredição, e uma tabela de índice de modo de intrapredição modificada para uso para cada um dos contextos.
[0111] Após o módulo de predição 41 gerar o bloco preditivo para o bloco de vídeo atual por meio de interpredição ou intrapredição, o codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se o bloco preditivo do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados ao módulo de transformação 52. O módulo de transformação 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformação, como uma transformação discreta de cosseno (DCT) ou uma transformada conceitualmente semelhante. O módulo de transformação 52 pode converter os dados de vídeo residuais de um domínio de pixel em um domínio de transformada, como um domínio de frequência.
[0112] O módulo de transformação 52 pode enviar os coeficientes de transformada resultantes para o módulo de quantização 54. O módulo de quantização 54 quantifica os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, o módulo de quantização 54 pode então realizar uma varredura da matriz que inclui os coeficientes de transformada quantizados. Alternativamente, o módulo de codificação por entropia 56 pode realizar a varredura.
[0113] Após a quantização, o módulo de codificação por entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, o módulo de codificação por entropia 56 pode realizar a codificação de comprimento variável adaptativa de contexto (CAVLC), a codificação aritmética binária adaptativa de contexto (CABAC), a codificação aritmética binária adaptativa de contexto baseado em sintaxe (SBAC), a codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação por entropia. Após a codificação por entropia pelo módulo de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para transmissão posterior ou recuperação pelo decodificador de vídeo 30. O módulo de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[0114] O módulo de quantização inversa 58 e o módulo de transformada inversa 60 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel para uso posterior como um bloco de referência de uma imagem de referência. Um módulo de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de uma das imagens de referência dentro de uma das listas de imagem de referência. Um módulo de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação para o bloco residual reconstruído para calcular valores de pixel sub-inteiros para uso na estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição compensada de movimento produzido pelo módulo de compensação de movimento 44 para produzir um bloco de referência para o armazenamento na memória de imagem de referência 64. O bloco de referência pode ser usado pelo módulo de estimação de movimento 42 e pelo módulo de compensação de movimento 44 como um bloco de referência para interprever um bloco em um quadro de vídeo ou imagem subsequente.
[0115] O codificador de vídeo 20 da Figura 2 representa um exemplo de um codificador de vídeo configurado para codificador um sinalizador ou outro elemento de sintaxe para indicar quando as imagens de referência antes de uma imagem de BLA na ordem de decodificação podem não ser usadas como imagens de referência de acordo com as técnicas desta invenção.
[0116] A Figura 3 é um diagrama de blocos que ilustra um exemplo decodificador de vídeo 30 que pode implantar as técnicas descritas para suporte enriquecido de adaptação de fluxo e união com base em imagens de RAP similares a quebradas descritas acima. No exemplo da Figura 3, o decodificador de vídeo 30 inclui um módulo de decodificação por entropia 80, módulo de predição 81, módulo de quantização inversa 86, módulo de transformada inversa 88, somador 90, módulo de filtro 91, e memória de imagem de referência 92. O módulo de predição 81 inclui o módulo 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, em geral, recíproca à passagem de codificação descrita em relação a um codificador de vídeo 20 da Figura 2.
[0117] 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 do codificador de vídeo 20. O decodificador de vídeo 30 pode receber o fluxo de bits de vídeo codificado a partir de uma entidade de rede 29. A entidade de rede 29 pode, por exemplo, ser um servidor, um elemento de rede de mídia consciente (MANE), um emendador/editor de vídeo, ou outro dispositivo similar configurado para implantar uma ou mais das técnicas descritas acima. Uma entidade de rede 39 pode incluir ou não um codificador de vídeo 20. Conforme descrito acima, algumas das técnicas descritas nesta invenção podem ser implantadas pela entidade de rede 29 antes da rede 29 transmitir o fluxo de bits de vídeo codificado para o decodificador de vídeo 30. Em alguns sistemas de decodificação de vídeo, a entidade de rede 29 e o decodificador de vídeo 30 podem ser partes de dispositivos separados, enquanto em outros casos, a funcionalidade descrita em relação à entidade de rede 29 pode ser realizada pelo mesmo dispositivo que compreende o decodificador de vídeo 30.
[0118] Conforme discutido acima, em alguns exemplos, o decodificador de vídeo 30 pode decodificar uma imagem de RAP de enlace corrompido, como uma imagem de BLA, ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal, como imagens principais. As imagens principais não podem ser decodificada corretamente quando o acesso aleatório pela imagem de RAP de enlace corrompido ocorre.
[0119] Em um exemplo, para evitar a propagação de erro das imagens de referência que podem não estar disponíveis dependendo de onde a decodificação começa, o decodificador de vídeo 30 pode não usar qualquer imagem que precede a imagem de RAP de enlace corrompido na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) como imagens de referência. Por exemplo, o módulo de predição 81 pode não usar qualquer imagem armazenada na memória de imagem de referência 92 que precede a imagem de RAP de enlace corrompido na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) como imagens de referência.
[0120] Em vários exemplos, o decodificador de vídeo 30 pode marcar todas as imagens de referência no DPB como não utilizadas para referência antes da decodificação da imagem de BLA como não utilizada para referência. Por exemplo, o módulo de decodificação por entropia 80, que pode realizar decodificação por entropia e por não entropia, pode marcar imagens de referência na memória de imagem de referência 92, algumas vezes denominado o buffer de imagem decodificada (DPB), como não utilizadas para referência. O decodificador de vídeo 30 (por exemplo módulo de decodificação por entropia 80) pode determinar que uma imagem atual é uma imagem de BLA ou BLC e marcar imagens de referência em um buffer de armazenamento de imagem como não utilizadas para referência antes da decodificação da imagem de BLA ou BLC. A determinação de que uma imagem atual é uma imagem de BLA ou BLC pode incluir determinar que a imagem atual é uma imagem de CRA e determinar que a imagem atual é uma imagem de RAP. A imagem de CRA atual é uma imagem de BLA quando a imagem atual é tanto uma imagem de CRA quanto uma imagem de RAP. Em alguns exemplos, essa determinação pelo decodificador 30 pode ser feita com base na imagem ter um tipo de unidade de NAL de BLA.
[0121] Em outro exemplo, quando se decodifica uma imagem de BLA, o decodificador 30 pode receber um sinalizador ou elemento de sintaxe no fluxo de bits codificado, por exemplo, um no_output_of_prior_pics_flag, de modo que nenhuma das imagens anteriores no DPB seja emitida. Em alguns exemplos, esse sinalizador pode ser apresentado de forma antecipada em um cabeçalho de fatia, de uma fatia de uma imagem de BLA, antes da decodificação por entropia de modo que possa ser decodificado com mais facilidade e as informações estejam disponíveis antecipadamente no processo de codificação. O sinalizador ou elemento de sintaxe pode ser decodificado pelo módulo de decodificação por entropia 80, que pode realizar tanto decodificação por entropia quanto por não entropia. A colocação do sinalizador ou outro elemento de sintaxe antecipadamente no cabeçalho de fatia antes da codificação por entropia pode permitir que dispositivos menos sofisticados, como um MANE tenham acesso às informações sem requerer um decodificador por entropia visto que, por exemplo, o no_output_of_prior_pics_flag não precisa ser decodificado por entropia.
[0122] Em um exemplo, o decodificador de vídeo 30 pode colocar um elemento de sintaxe, por exemplo, um no_output_of_prior_pics_flag, no fluxo de bits para um decodificador receber. O elemento de sintaxe pode indicar que um buffer de armazenamento de imagem é esvaziado sem emitir quaisquer imagens do buffer de armazenamento de imagem. O elemento de sintaxe, quando definido, pode fazer com que imagens antes de uma imagem atual na ordem de decodificação e que residem no buffer de armazenamento de imagem no momento da decodificação da imagem atual sejam esvaziadas do buffer de armazenamento de imagem sem serem emitidas. Em alguns exemplos, o elemento de sintaxe pode ser um dentre uma pluralidade de elementos de sintaxe. Adicionalmente, a pluralidade de elementos de sintaxe pode incluir um ou mais elementos de sintaxe de cabeçalho de fatia codificados por entropia e um ou mais elementos de sintaxe de cabeçalho de fatia codificados por não entropia. Em um exemplo, o elemento de sintaxe que indica que um buffer de armazenamento de imagem é esvaziado sem emitir quaisquer imagens do buffer de armazenamento de imagem é incluído no cabeçalho de fatia, por exemplo, como um elemento u(1), antes de qualquer elemento de sintaxe de cabeçalho de fatia codificado por entropia, por exemplo, antes de qualquer elemento ue(v). Em alguns exemplos, o elemento de sintaxe pode ser um no_output_of_prior_pics_flag e o no_output_of_prior_pics_flag pode ser incluído no cabeçalho de fatia imediatamente após um first_slice_in_pic_flag e antes de quaisquer elementos codificados por entropia. O first_slice_in_pic_flag pode ser um sinalizador que indica se uma fatia é a primeira fatia, na ordem de decodificação, de uma imagem.
[0123] Em outro exemplo, o decodificador de vídeo 30 pode processar tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA têm e não têm imagens principais. O decodificador de vídeo 30 pode ser configurado para incluir tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA têm e não têm imagens principais. Por exemplo, o módulo de decodificação por entropia 80, que pode realizar a decodificação por entropia e por não entropia, pode processar os tipos de unidade de NAL.
[0124] Em um exemplo, o decodificador de vídeo 30 (por exemplo, o módulo de decodificação por entropia 80) pode decodificar imagens de acordo com um dentre uma pluralidade de tipos de unidade de camada de abstração de rede (NAL) diferentes. A pluralidade de tipos de unidade de NAL inclui uma ou mais dentre (1) uma fatia codificada de uma imagem de acesso de enlace corrompido (BLA), em que a imagem de BLA é uma imagem de BLA com imagens principais associadas em um fluxo de bits, (2) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA com imagens principais decodificáveis associadas no fluxo de bits, e (3) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA sem imagens principais associadas no fluxo de bits. Em um exemplo, a imagem principal compreende uma imagem que precede uma imagem de acesso aleatório (RAP) em uma ordem de exibição mas segue a imagem de acesso aleatório na ordem de decodificação.
[0125] O módulo de decodificação por 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. O módulo de decodificação por entropia 80 encaminha os vetores de movimento e outros elementos de sintaxe para o módulo de predição 81. O decodificador 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.
[0126] Quando a fatia de vídeo é codificada como uma fatia intracodificada (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 atual com base em um modo de intrapredição sinalizado e dados de blocos decodificados anteriormente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia intercodificada (isto é, B, P ou GPB), o módulo de compensação de movimento 82 do módulo de predição 81 produz blocos para referência de predição para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos do módulo de decodificação por entropia 80. Os blocos para referência de predição podem ser produzir a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção usuais com base nas imagens de referência armazenadas na memória de imagem de referência 92.
[0127] Um módulo de compensação de movimento 82 determina informações de predição para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos para referência de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, o módulo de compensação de movimento 82 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou interprediçã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, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo intercodificado da fatia, situação de interpredição para cada bloco de vídeo intercodificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. Quando as imagens no DPB são marcadas como não utilizadas para referência, não existem imagens de referência disponíveis. Consequentemente, o decodificador de vídeo 30 não terá a capacidade de decodificar uma imagem principal que referencia uma imagem de referência anterior para interpredição.
[0128] Um módulo de compensação de movimento 82 também pode realizar interpolação com base nos filtros de interpolação. Um módulo de compensação de movimento 82 pode usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels sub-inteiros dos blocos de referência. Nesse caso, o módulo 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 para referência de predição.
[0129] O módulo de quantização inversa 86 quantifica de forma inversa, isto é, desquantifica, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pelo módulo de decodificaçã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, da mesma forma, um grau de quantização inversa que seria aplicado. O módulo de transformada inversa 88 aplica uma transformada inversa , por exemplo, uma DCT inversa, uma transformação de número inteiro inversa, ou um processo de transformada inversa conceitualmente semelhante, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.
[0130] Após o módulo de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando-se os blocos residuais do módulo de transformada inversa 88 com os blocos correspondentes para referência de predição gerada pelo módulo de compensação de movimento 82. O somador 90 representa o componente ou componentes que realizam essa operação de soma. Se desejado, os filtros de laço (no laço de codificação ou após o laço de codificação) também podem ser usados para suavizar as transações de pixel, ou de outra forma aprimorar a qualidade de vídeo. O módulo de filtro 91 se destina a representar um ou mais filtros de laço como um filtro de desbloqueamento, um filtro de laço adaptativo (ALF), e um filtro de desvio adaptativo de amostra (SAO). Embora o módulo de filtro 91 seja ilustrado na Figura 3 como sendo um filtro em laço, em outras configurações, o módulo de filtro 91 pode ser implantado como um filtro pós laço. Os blocos decodificados de vídeo em um dado quadro ou imagem são então armazenados na memória de imagem de referência 92, que armazena as imagens de referência usadas para a compensação de movimento subsequente. A memória de imagem de referência 92 também armazena vídeo decodificado para apresentação posterior em um dispositivo de exibição, como o dispositivo de exibição 32 da Figura 1.
[0131] Desta forma, o decodificador de vídeo 30 da Figura 3 representa um exemplo de um decodificador de vídeo configurado para decodificar os IDs de conjunto de parâmetros codificados de acordo com as técnicas desta invenção.
[0132] A Figura 4 é um diagrama de blocos que ilustra um conjunto de dispositivos exemplificativos que formam parte da rede 100. Nesse exemplo, a rede 10 inclui dispositivos de roteamento 104A, 104B (dispositivos de roteamento 104) e dispositivo de transcodificação 106. Os dispositivos de roteamento 104 e dispositivo de transcodificação 106 se destinam a representar um pequeno número de dispositivos que podem formar parte de rede 100. Outros dispositivos de rede, como comutadores, hubs, portas, barreiras de proteção, pontes, e outros dispositivos similares também podem ser incluídos dentro da rede 100. Ademais, os dispositivos de rede adicionais podem ser fornecidos ao longo de um trajeto de rede entre o dispositivo de servidor 102 e o dispositivo de cliente 108. O dispositivo de servidor 102 pode corresponder ao dispositivo de fonte 12 (Figura 1), enquanto o dispositivo de cliente 108 pode corresponder ao dispositivo de destino 14 (Figura 1), em alguns exemplos.
[0133] Em geral, os dispositivos de roteamento 104 implantam um ou mais protocolos de roteamento para trocar dados de rede através da rede 100. Em alguns exemplos, os dispositivos de roteamento 104 podem ser configurados para realizar operações de proxy ou armazenamento em cache. Portanto, em alguns exemplos, os dispositivos de roteamento 104 podem ser denominados dispositivos de proxy. Em geral, os dispositivos de roteamento 104 executam protocolos de roteamento para descobrir rotas através da rede 100. Executando-se esses protocolos de roteamento, o dispositivo de roteamento 104B pode descobrir uma rota de rede a partir de si para o dispositivo de servidor 102 por meio do dispositivo de roteamento 104A.
[0134] As técnicas desta invenção podem ser implantadas por dispositivos de rede como dispositivos de roteamento 104 e dispositivo de transcodificação 106, mas também podem ser implantadas pelo dispositivo de cliente 108. Desta forma, os dispositivos de roteamento 104, o dispositivo de transcodificação 106, e o dispositivo de cliente 108 representam exemplos de dispositivos configurados para realizar as técnicas desta invenção. Ademais, os dispositivos da Figura 1, e o codificador ilustrados na Figura 2 e o decodificador ilustrado na Figura 3 também são dispositivos exemplificativo que podem ser configurados para realizar as técnicas desta invenção.
[0135] Por exemplo, o dispositivo de servidor 102 pode incluir um codificador para codificar uma imagem ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal, ou outro ponto de adaptação de fluxo. Por exemplo, isso poderia ser um ponto de comutação para uma adaptação da taxa de bits, taxa de quadros (isto é, ponto de comutação de camada temporal), ou resolução espacial. De forma semelhante, o dispositivo de cliente 108 pode decodificar uma imagem ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal. Novamente, isso poderia ser um ponto de comutação para a adaptação de taxa de bits, taxa de quadros (isto é, ponto de comutação de camada temporal), ou resolução espacial. Uma ou mais dessas imagens podem ser imagens principais. As imagens principais não podem ser decodificadas corretamente no dispositivo de cliente 108 quando o acesso aleatório da imagem de BLA ocorre.
[0136] Em um exemplo, para evitar a propagação de erro das imagens de referência que podem não estar disponíveis dependendo de onde a decodificação começa, o dispositivo de cliente 108 pode não aplicar as imagens armazenadas no buffer de imagem decodificada (DPB) que precedem a imagem de BLA na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) como imagens de referência.
[0137] Em vários exemplos, o dispositivo de cliente 108 pode marcar todas as imagens de referência no DPB como não utilizadas para referência antes da decodificação da imagem de BLA. Por exemplo, o dispositivo de cliente 108 pode marcar as imagens de referência no buffer de imagem de decodificação (DPB) como não utilizadas para referência.
[0138] Em outro exemplo, o dispositivo de servidor 102, o dispositivo de cliente 108, ou ambos, podem incluir um elemento de sintaxe ou sinalizador em um cabeçalho de fatia e codificar o sinalizador em um fluxo de bits, por exemplo, um no_output_of_prior_pics_flag, de modo que nenhuma das imagens anteriores no DPB processadas pelo decodificador de vídeo 30 para codificar imagens principais ou emitir a partir do DPB, por exemplo, para apresentação em um monitor. Em alguns exemplos, esse sinalizador pode estar antecipado no cabeçalho de fatia antes da decodificação por entropia de modo que possa ser decodificado com mais facilidade e as informações estejam disponíveis antecipadamente no processo de codificação. Em um exemplo, um desses dispositivos de elemento de rede pode converter um CRA em um BLA quando, por exemplo, a união ou comutação de canal ou adaptação de fluxo, como comutação de camada temporal, é necessária. Ter o sinalizador pode ser acessível sem codificação por entropia o que permite que elementos de rede sem a capacidade de decodificar por entropia tenham acesso ao sinalizador.
[0139] A pluralidade de tipos de unidade de NAL inclui uma ou mais dentre (1) uma fatia codificada de uma imagem de acesso de enlace corrompido (BLA), em que a imagem de BLA é uma imagem de BLA com imagens principais associadas em um fluxo de bits, (2) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA com imagens principais decodificáveis associadas no fluxo de bits, e (3) uma fatia codificada de uma imagem de BLA, em que a imagem de BLA é uma imagem de BLA sem imagens principais associadas no fluxo de bits. Em um exemplo, a imagem principal compreende uma imagem que precede uma imagem de acesso aleatório (RAP) em uma ordem de exibição, mas segue a imagem de acesso aleatório na ordem de decodificação.
[0140] Em vários exemplos, os dispositivos de roteamento 104A, 104B, e o dispositivo de transcodificação 106 que compõem a rede 100 também podem realizar algum processamento na imagem ou imagens que estão após um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal. Por exemplo, isso poderia ser um ponto de comutação para a adaptação de taxa de bits, taxa de quadros (isto é, ponto de comutação de camada temporal), ou resolução espacial. Conforme discutido acima, uma ou mais dessas imagens podem ser imagens principais que não podem ser decodificadas corretamente.
[0141] Em um exemplo, um ou mais dos dispositivos de roteamento 104A, 104B, e dispositivo de transcodificação 106 pode não usar qualquer imagem que precede a imagem de CRA na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) como imagens de referência. Em outro exemplo, um ou mais dos dispositivos de roteamento 104A, 104B, e dispositivo de transcodificação 106 pode marcar todas as imagens de referência no DPB como não utilizadas para referência antes da decodificação da imagem de BLA. Por exemplo, um ou mais dos dispositivos de roteamento 104A, 104B, e o dispositivo de transcodificação 106 podem marcar imagens de referência no buffer de imagem decodificada (DPB) como não utilizadas para referência. Em outro exemplo, um ou mais dos dispositivos de roteamento 104A, 104B, e o dispositivo de transcodificação 106 ou um servidor de fluxo contínuo podem usar um sinalizador, por exemplo, um no_output_of_prior_pics_flag de modo que nenhuma das imagens anteriores no DPB seja emitida. Adicionalmente, os dispositivos de roteamento 104A, 104B, e o dispositivo de transcodificação 106 podem processar tipos de unidade de NAL atribuídas para indicar quando as imagens de BLA têm e não têm imagens principais.
[0142] A Figura 5 é um diagrama que ilustra um exemplo de acordo com as técnicas descritas nesta invenção. A Figura 5 ilustra exemplos de casos quando as imagens principais são decodificáveis e não decodificáveis. A capacidade de decodificação das imagens principais podem ser baseadas na localização do bloco preditivo. Adicionalmente, a capacidade de decodificação das imagens principais pode ser baseada em se a imagem de CRA atual é uma imagem de CRA que não é uma imagem de BLA ou a imagem de CRA atual é uma imagem de CRA que também é uma imagem de BLA. (imagens de BLA são um subconjunto das imagens de CRA.)
[0143] A parte 200 da Figura 5 ilustra uma série de imagens na ordem de decodificação. Inicialmente, o decodificador de vídeo 30 (Figuras 1 e 3) ou dispositivo de cliente 108 (Figura 4) por exemplo, podem decodificar uma imagem de RAP na localização 202 como uma primeira imagem em uma sequência de vídeo. O decodificador de vídeo 30 ou o dispositivo de cliente 108 podem então decodificar uma imagem ou parte de uma imagem que pode agir como uma imagem de referência na localização 204. Conforme ilustrado na Figura 5, a localização 204 é uma possível localização da imagem de referência na ordem de decodificação. Se a imagem de referência estiver localizada na localização 204 e a imagem na localização 206 for uma imagem de CRA que não é uma imagem de BLA, então a imagem principal na localização 208 será decodificável. Em contrapartida, se a imagem de referência estiver localizada na localização 204 e a imagem na localização 206 for uma imagem de CRA que também é uma imagem de BLA, então a imagem principal na localização 208 não será decodificável. (imagens de BLA são um subconjunto das imagens de CRA.)
[0144] Se a imagem de RAP na localização 202 for a imagem de RAP, em que a decodificação começa e a imagem de CRA atual na localização 206 não é uma imagem de BLA então, conforme descrito acima, a imagem principal na localização 208 é decodificável. Em contrapartida, se a imagem de CRA atual na localização 206 for a RAP, então a imagem de CRA atual na localização 206 também é uma imagem de BLA e a imagem principal na localização 208 não é decodificável. Isso acontece porque o bloco preditivo na localização 204 não está disponível para uma imagem de BLA que é uma imagem de CRA atual na localização 206. Consequentemente, o bloco preditivo na localização 204 pode ser (1) marcado como não utilizado para referência e (2) o no_output_of_prior_pics_flag pode indicar que as imagens anteriores, até e incluindo a imagem principal na localização 208 não deveriam ser emitidas.
[0145] Conforme ilustrado na Figura 5, a localização 210 é outra possível localização da imagem de referência na ordem de decodificação. Se a imagem de referência estiver localizada na localização 210 então a imagem principal na localização 208 será decodificável.
[0146] A parte 212 da Figura 5 ilustra uma série de imagens na ordem de saída. Inicialmente, o decodificador de vídeo 30 (Figuras 1 e 3) ou dispositivo de cliente 108 (Figura 4), por exemplo, pode decodificar uma imagem de RAP 202. O decodificador de vídeo 30 ou dispositivo de cliente 108 pode então decodificar uma imagem ou parte de uma imagem que pode agir como um bloco preditivo na localização 204. Conforme ilustrado na Figura 5, a localização 204 é uma possível localização do bloco preditivo na ordem de saída.
[0147] Na ordem de saída, a imagem principal 208 pode ser emitida antes da imagem de CRA atual na localização 206, conforme ilustrado na Figura 5. Conforme ilustrado na Figura 5, a localização 210 é outra possível localização do bloco preditivo na ordem de saída.
[0148] A Figura 6 é um fluxograma que ilustra um método exemplificativo para codificar imagens de RAP de acordo com um ou mais exemplos descritos nesta invenção. Conforme ilustrado na Figura 6, em alguns exemplos, um codificador de vídeo, por exemplo, codificador de vídeo 20 ou decodificador de vídeo 30 pode codificar uma imagem de BLA para um ponto de acesso aleatório ou ponto de adaptação de fluxo, como um ponto de comutação de camada temporal em uma sequência de vídeo. Por exemplo, isso poderia ser um ponto de comutação para a adaptação de taxa de bits, taxa de quadros ou resolução espacial. A imagem de BLA pode incluir um ou mais imagens principais. As imagens principais não podem ser decodificadas corretamente (por exemplo, pelo decodificador 30, um MANE, ou outro dispositivo de decodificação) quando o acesso aleatório da imagem de BLA ocorre.
[0149] Em um exemplo, para evitar a propagação de erro das imagens de referência que podem não estar disponíveis dependendo de onde a decodificação começa, o codificador de vídeo pode não usar qualquer imagem que precede a imagem de BLA na ordem de decodificação ou na ordem de saída (que inclui as imagens principais) como imagens de referência.
[0150] Por exemplo, o decodificador de vídeo 30 pode receber e decodificar um elemento de sintaxe que indica que um buffer de armazenamento de imagem é esvaziado sem emitir quaisquer imagens do buffer de armazenamento de imagem (600). O elemento de sintaxe pode ser incluído no fluxo de bits de vídeo codificado pelo codificador 20 ou um elemento de rede intermediário. O decodificador de vídeo 30 pode determinar se o elemento de sintaxe indica que uma emissão de imagens anteriores deveria ocorrer, por exemplo, o decodificador de vídeo 30 pode verificar o elemento de sintaxe (602) para determinar se o mesmo está definido, isto é, igual a 1. Quando o decodificador de vídeo 30 recebe um elemento de sintaxe que é definido, o decodificador de vídeo 30 pode fazer com que as imagens antes de uma imagem atual na ordem de decodificação e que residem no buffer de armazenamento de imagem no momento da decodificação da imagem atual sejam esvaziadas do buffer de armazenamento de imagem sem serem emitidas (604).
[0151] Em alguns exemplos, o elemento de sintaxe pode ser um dentre uma pluralidade de elementos de sintaxe. Adicionalmente, a pluralidade de elementos de sintaxe pode incluir elementos de sintaxe de cabeçalho de fatia codificados por entropia e elementos de sintaxe de cabeçalho de fatia codificados por não entropia. Em um exemplo, o elemento de sintaxe pode indicar que um buffer de armazenamento de imagem está vazio sem emitir quaisquer imagens do buffer de imagem decodificada o qual é incluído no cabeçalho de fatia antes de qualquer elemento de sintaxe de cabeçalho de fatia codificado por entropia. Em outro exemplo, o elemento de sintaxe pode indicar que os dados no buffer de armazenamento de imagem deveriam ser ignorados e/ou sobrescritos sem emitir quaisquer imagens do buffer de armazenamento de imagem o qual é incluído no cabeçalho de fatia antes de qualquer elemento de sintaxe de cabeçalho de fatia codificado por entropia. Em alguns exemplos, o elemento de sintaxe pode ser um no_output_of_prior_pics_flag e o no_output_of_prior_pics_flag pode ser incluído no cabeçalho de fatia imediatamente após um first_slice_in_pic_flag. O first_slice_in_pic_flag pode ser um sinalizador que indica se uma fatia é a primeira fatia, na ordem de decodificação, de uma imagem.
[0152] A Figura 7 é um fluxograma que ilustra um método exemplificativo de acordo com um ou mais exemplos descritos nesta invenção. No exemplo ilustrado, um codificador de vídeo pode determinar que a imagem atual é uma imagem de CRA (700). O codificador de vídeo também pode determinar que a imagem atual é uma imagem de RAP (702). O codificador de vídeo pode determinar que a imagem atual é uma imagem de BLA (700). Em outros exemplos, um codificador de vídeo pode usar um tipo de unidade de NAL para determinar que a imagem atual é uma imagem de BLA.
[0153] Em vários exemplos, o codificador de vídeo pode marcar todas as imagens de referência no DPB como não utilizadas para referência antes da decodificação da imagem de BLA. Por exemplo, o decodificador de vídeo 30 pode marcar imagens de referência na memória de imagem de referência 92, algumas vezes denominada buffer de imagem decodificada (DPB), como não utilizadas para referência. Consequentemente, as imagens não serão usadas para intercodificação, o que evitará possíveis erros, e em alguns exemplos pode lidar com alguns problemas com adaptação espacial. Adicionalmente, de modo geral, essas imagens não serão emitidas para, por exemplo, um monitor ou tela, em que elas podem ser visualizadas.
[0154] O decodificador de vídeo 30 pode determinar que uma imagem atual é uma imagem de BLA e marcar uma imagem de referência em um buffer de armazenamento de imagem como não utilizada para referência antes da decodificação da imagem de BLA. Em um exemplo, a marcação da imagem de referência no buffer de armazenamento de imagem pode ocorrer quando a imagem de BLA compreende uma imagem de BLA não decodificável, o que pode ser determinado em alguns exemplos, com base no tipo de unidade de NAL. Em alguns exemplos, um ou mais dentre (1) marcar as imagens em um DPB como não utilizadas para referência, (2) usar um elemento de sintaxe como um no_output_of_prior_pics_flag, e (3) usar tipos de unidade de NAL que indicam que as imagens de BLA podem ser usadas, de forma independente ou em qualquer combinação.
[0155] A Figura 8 é um fluxograma que ilustra um método exemplificativo de acordo com um ou mais exemplos descritos nesta invenção. Um codificador de vídeo pode processar tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA têm e não têm imagens principais. O codificador de vídeo pode ser configurado para incluir tipos de unidade de NAL atribuídos para indicar quando as imagens de BLA têm e não têm imagens principais. Por exemplo, em um padrão, os tipos de unidade de NAL 16, BLA_W_LP (BLA com imagem principal); 17, BLA_W_DLP (BLA com imagem principal decodificável); e 18, BLA_N_LP (BLA sem imagem principal) são incluídos.
[0156] Em um exemplo, o codificador de vídeo pode codificar imagens de acordo com um dentre uma pluralidade de tipos de unidade de camada de abstração de rede diferentes (NAL) que incluem um ou mais dos seguintes. Por exemplo, o codificador de vídeo pode determinar que uma imagem de BLA não tem imagens principais associadas (800) e codificar uma fatia codificada da imagem de BLA ou a imagem de BLA inteiro com o uso de um tipo de unidade de NAL que indica que a imagem de BLA é uma imagem de BLA sem imagens principais associadas em um fluxo de bits (802). O codificador de vídeo pode determinar que uma imagem de BLA tem imagens principais decodificáveis associadas (804) e codificar uma fatia codificada ou a imagem de BLA inteira com o uso de um tipo de unidade de NAL que indica que a imagem de BLA é uma imagem de BLA com imagens principais decodificáveis associadas no fluxo de bits (806). O codificador de vídeo determine que uma imagem de BLA tem imagens principais associadas (808) e pode codificar uma fatia codificada da imagem de BLA ou a imagem de BLA inteira com o uso de um tipo de unidade de NAL que indica que a imagem de BLA é uma imagem de BLA com imagens principais associadas no fluxo de bits (810). Em um exemplo, se o decodificador de vídeo 30 detectar um tipo de unidade de NAL de BLA, então o decodificador de vídeo 30 pode, por exemplo, marcar as imagens no DPB como não utilizadas para referência.
[0157] Em alguns exemplos, um ou mais dentre (1) marcar imagens em um DPB como não utilizadas para referência, (2) usar um elemento de sintaxe como um no_output_of_prior_pics_flag e (3) usar tipos de unidade de NAL que indicam que imagens de BLA podem ser usadas, independentemente ou em qualquer combinação. Por exemplo, em alguns casos todos os três desses podem ser usados. Em outros exemplos, os tipos de unidade de NAL de exemplo podem ser usados em conjunto com a marcação de imagens no DPB como não utilizadas para referência. Em outro exemplo, a não emissão de elemento de sintaxe de imagens anteriores e a marcação das imagens como não utilizadas para referência devem ser usados. Em outro exemplo, a não emissão de elementos de sintaxe de imagens anteriores e tipos de unidade de NAL devem ser usados.
[0158] Conforme usado no presente documento, BLC refere-se a acesso aleatório de Limpeza de Enlace Defeituoso, BLCL refere-se a uma imagem de BLC com imagens principais associadas no fluxo de bits e BLCNL refere-se a uma imagem de BLC sem nenhuma imagem principal associada no fluxo de bits. Conforme discutido no presente documento, as imagens de BLC são em geral as mesmas que as imagens de BLA. CRA refere-se a Acesso Aleatório de Limpeza, CRAL refere-se a uma imagem de CRA com imagens principais associadas no fluxo de bits, e CRANL refere-se a uma imagem de CRA sem nenhuma imagem principal associada no fluxo de bits. IDR refere-se à Atualização de Decodificação Instantânea, LPR refere-se à imagem principal associada a um ponto de acesso aleatório imagem, NSP refere-se a Plano Nada Especial, RAP refere-se a Ponto de Acesso Aleatório, e RPS refere-se a Conjunto de Imagens de Referência. Conforme usado no presente documento, TLA refere-se a Acesso de Camada Temporal, TLAL refere-se à imagem de TLA que também uma imagem de LRP, TLANL refere-se à imagem TLA que não é uma imagem de LRP.
[0159] A unidade de acesso de BLA refere-se a uma unidade de acesso na qual a imagem codificada é uma imagem de BLA. Uma imagem de BLC é uma imagem de RAP em que o cabeçalho de fatia das fatias codificadas inclui sintaxe de RPS enquanto o RPS é derivado como vazio sem utilizar a sintaxe de RPS. A unidade de acesso de BLCL é uma unidade de acesso na qual a imagem codificada é uma imagem de BLCL. As imagens de BLCL são imagens de BLA para as quais as imagens de LPR associadas não apresentam nenhum fluxo de bits. Em alguns exemplos, uma unidade de acesso de BLCL pode ser equivalente a uma combinação de BLA_W_DLP e BLA_W_LP. A unidade de acesso de BLCNL é uma unidade de acesso na qual a imagem codificada é uma imagem de BLCNL. Em alguns exemplos, uma unidade de acesso de BLCNL pode ser equivalente a BLA_N_LP. As imagens de BLCNL são imagens de BLA para as quais as imagens de LPR associadas não apresentam nenhum fluxo de bits.
[0160] Em um exemplo, a unidade de acesso de CRA é uma unidade de acesso na qual uma imagem codificada é uma imagem de CRA. As imagens de CRA são imagens de RAP em que o cabeçalho de fatia das fatias codificadas inclui sintaxe de RPS e a sintaxe de RPS é usada para derivação do RPS. A unidade de acesso de CRAL é uma unidade de acesso na qual uma imagem codificada é uma imagem de CRAL. As imagens de CRAL são imagens de CRA para as quais as imagens de LPR associadas não apresentam nenhum fluxo de bits. A unidade de acesso de CRANL é uma unidade de acesso na qual uma imagem codificada é uma imagem de CRANL. As imagens de CRANL são imagens de CRA para as quais as imagens de LPR associadas não apresentam nenhum fluxo de bits.
[0161] Em um exemplo, uma unidade de acesso de IDR é uma unidade de acesso na qual uma imagem codificada é uma imagem de IDR. As imagens de IDR são imagens de RAP em que o cabeçalho de fatia das fatias codificadas não inclui sintaxe de RPS e o RPS é derivado como vazio.
[0162] Em um exemplo, se todas as unidades de acesso precedentes na ordem de decodificação não estiverem presentes, contanto que cada conjunto de parâmetros referido pela imagem codificada e todas as imagens codificadas subsequentes na ordem de decodificação estejam presentes antes de sua ativação, uma imagem de IDR e todas as imagens codificadas subsequentes na ordem de decodificação podem ser decodificadas corretamente. Alternativamente, em outro exemplo, as imagens de IDR podem ser conforme definidas em HEVC com a adição da anterior.
[0163] Em outros exemplos, a imagem de IDR pode ser definida conforme a seguir mais a observação anterior, uma imagem de IDR pode ser uma imagem codificada que contém apenas fatias I. Adicionalmente, para uma imagem de IDR de exemplo, todas as imagens codificadas que seguem a imagem de IDR na ordem de decodificação não usam interpredição a partir de qualquer imagem que precede a imagem de IDR na ordem de decodificação. Em um exemplo, qualquer imagem que precede a imagem de IDR na ordem de decodificação também precede a imagem de IDR em ordem de emissão.
[0164] Uma imagem principal é uma imagem codificada que não é uma imagem de RAP e que segue alguma outra imagem particular na ordem de decodificação e precede a imagem particular em ordem de emissão. Uma imagem de LPR é uma imagem principal que está associada a uma imagem de RAP ou uma imagem principal de uma imagem de RAP.
[0165] A contagem de ordem de imagens pode ser uma variável que está associada a cada imagem codificada e tem um valor que está aumentando com a posição de imagem crescente em ordem de emissão em relação à imagem anterior de RAP na ordem de decodificação.
[0166] Em um exemplo, uma unidade de acesso de RAP é uma unidade de acesso na qual uma imagem codificada é uma imagem de RAP. Uma imagem de RAP pode ser uma imagem codificada que contém apenas fatias I. Para uma imagem de RAP, todas as imagens codificadas que seguem a imagem de RAP tanto na ordem de decodificação quanto na ordem de emissão não usam interpredição a partir de qualquer imagem que precede a imagem de RAP ou na ordem de decodificação ou na ordem de emissão. A emissão de qualquer imagem que precede a imagem de RAP na ordem de decodificação deve preceder a emissão da imagem de RAP. Se todas as unidades de acesso anteriores na ordem de decodificação não estiverem presentes, contanto que cada conjunto de parâmetros referido pela imagem codificada e todas as imagens codificadas subsequentes na ordem de decodificação estejam presentes antes de sua ativação, uma imagem de RAP e todas as imagens codificadas subsequentes tanto na ordem de decodificação como na ordem de emissão ordem ser corretamente decodificadas.
[0167] Alternativamente, a imagem de RAP pode ser definida consistente com a discussão anterior e conforme a seguir. Uma imagem de RAP pode ser uma imagem codificada que contém apenas fatias I e para a qual todas as imagens codificadas que seguem a imagem de RAP tanto na ordem de decodificação como na ordem de emissão não usam interpredição a partir de qualquer imagem que precede a imagem de RAP ou na ordem de decodificação ou ordem de emissão. Qualquer imagem que precede a imagem de RAP na ordem de decodificação também precede a imagem de RAP na ordem de emissão.
[0168] A unidade de acesso de TLA é uma unidade de acesso na qual uma imagem codificada é uma imagem de TLA. Uma imagem de TLA é uma imagem codificada para a qual a imagem de TLA e todas as imagens codificadas com temporal_id maior ou igual ao temporal_id da imagem de TLA. Uma imagem de TLA que segue a imagem de TLA na ordem de decodificação não usará interpredição a partir de qualquer imagem com temporal_id maior ou igual ao temporal_id de uma imagem de TLA que precede a imagem de TLA na ordem de decodificação. A unidade de acesso de TLAL é uma unidade de acesso na qual uma imagem codificada é uma imagem de TLA.
[0169] Em alguns exemplos, os seguintes tipos de unidade de NAL de VCL distinto podem ser definidos. Como um primeiro exemplo, um tipo de unidade de NAL pode ser fornecido para uma fatia codificada de uma imagem de IDR (por exemplo, nal_unit_type = 5). Para esse tipo de unidade de NAL, o conceito de imagem de IDR aplica-se em HEVC WD6. Um recurso único desse tipo de unidade de NAL de VCL em comparação a outros tipos de unidades de NAL de VCL é que não há sintaxe de conjunto de imagem de referência (RPS) incluída no cabeçalho de fatia.
[0170] Alguns exemplos incluem uma fatia codificada de uma imagem de BLCNL (uma imagem de BLC sem nenhuma imagem principal associada no fluxo de bits, por exemplo, nal_unit_type = 2). Em comparação a uma fatia codificada de uma imagem de IDR, uma fatia codificada de uma imagem de BLCNL inclui sintaxe de RPS no cabeçalho de fatia, mas a sintaxe de RPS não é usada para derivação de RPS, mas, de preferência, todos os subconjuntos de RPS são derivados para serem vazios.
[0171] Alguns exemplos incluem uma fatia codificada de uma imagem de BLCL (uma imagem de BLC com imagens principais associadas no fluxo de bits, por exemplo, nal_unit_type = 3). Em comparação a uma imagem de BLCNL, há imagens principais associadas a uma imagem de BLCL no fluxo de bits.
[0172] Alguns exemplos incluem uma fatia codificada de uma imagem de CRANL (um CRA sem nenhuma imagem principal associada no fluxo de bits, por exemplo, nal_unit_type = 15). Em comparação a uma fatia codificada de uma imagem de BLCNL, uma fatia codificada de uma imagem de CRANL inclui sintaxe de RPS no cabeçalho de fatia, e a sintaxe de RPS é usada para derivação de RPS.
[0173] Alguns exemplos incluem uma fatia codificada de uma imagem de CRAL (uma imagem de CRA com imagens principais associadas no fluxo de bits, por exemplo, nal_unit_type = 4). Em comparação a uma imagem de CRANL, há imagens principais associadas a uma imagem de CRAL no fluxo de bits.
[0174] Alguns exemplos incluem uma fatia codificada de uma imagem de TLANL (uma imagem de TLA que não é uma imagem de LFR, por exemplo, nal_unit_type = 16). Alguns exemplos incluem uma fatia codificada de uma imagem de TLAL (uma imagem de TLA que é também uma imagem de LPR, por exemplo, nal_unit_type = 17). Alguns exemplos incluem uma fatia codificada de uma imagem de NSP (uma imagem de plano nada especial - não qualquer um do anterior, nal_unit_type = 1).
[0175] Antes da decodificação de dados de fatia de cada imagem de BLC (BLCL ou BLCNL), todas as imagens de referência no buffer de imagem decodificada (DPB) precisam ser marcadas como "não usada para referência” pelo decodificador 30, conforme descrito acima. Apenas com isso, o processo de decodificação atual conforme corretamente especificado em HEVC WD 6 para imagens principais de uma imagem de CRA que inicia o fluxo de bits pode ser diretamente aplicado pelo decodificador 30 para imagens principais de uma imagem de BLA, independentemente de se a imagem de BLA altera a resolução espacial.
[0176] Sem o anterior, se uma imagem de BLA não mudar a resolução espacial, o processo de decodificação atual conforme atualmente especificado em HEVC WD 6 para imagens principais de uma imagem de CRA que inicia o fluxo de bits pode ser aplicado diretamente pelo decodificador 30 para imagens principais da imagem de BLA. Entretanto se uma imagem de BLA mudar a resolução espacial, então o processo de decodificação atual conforme atualmente especificado em HEVC WD 6 para imagens principais de uma imagem de CRA que inicia o fluxo de bits não pode ser diretamente aplicado para imagens principais da imagem de BLA, conforme a situação, pode parecer que a resolução espacial é diferente para uma imagem atual e uma imagem de referência para a imagem atual.
[0177] Uma forma de garantir que todas as imagens de referência no DPB devam ser marcadas como "não usada para referência" antes da decodificação dos dados de fatia de cada imagem de BLA é derivar o RPS de cada imagem de BLA para ser vazio, independentemente de se a sinalização de RPS no cabeçalho de fatia indica RPS não vazio. Por exemplo, mesmo se houver um RPS, o decodificador de vídeo 30 pode sobrepor o mesmo e derivar ou tratar o RPS como vazio se a imagem for uma imagem de BLA.
[0178] De fato, se a sinalização de RPS no cabeçalho de fatia não indicar RPS vazio para uma imagem de BLA ou uma imagem de CRA (CRAL ou CRANL), então a imagem deve ter sido codificada como uma imagem de IDR.
[0179] Em alguns exemplos, uma imagem de RAP pode ser definida como uma imagem codificada que contém apenas fatias I. Para uma imagem de RAP, todas as imagens codificadas que seguem a imagem de RAP tanto na ordem de decodificação quanto na ordem de emissão não usam interpredição a partir de qualquer imagem que precede a imagem de RAP ou na ordem de decodificação ou na ordem de emissão. Adicionalmente, a emissão de qualquer imagem que precede a imagem de RAP na ordem de decodificação pode preceder a emissão da imagem de RAP.
[0180] Para garantir que a emissão de qualquer imagem que precede a imagem de RAP na ordem de decodificação precederá a emissão da imagem de RAP, uma forma é um codificador de vídeo 20 definir o no_output_of_prior_pics_flag igual a 1 em um fluxo de bits codificado transmitido, por exemplo, a um decodificador de vídeo 30, conforme discutido acima. Em outro exemplo, um decodificador de vídeo 30 pode inferir que no_output_of_prior_pics_flag é igual a 1 (independentemente de seu valor) para uma imagem de BLA. Dessa forma, são permitidas operações de união em uma imagem de BLA em que no fluxo de bits unidos o valor de POC de uma imagem anterior à imagem de BLA é maior que o valor de POC da imagem de BLA. Em particular, o valor de POC da imagem de BLA é derivado como igual a seu LSB de POC (assumindo-se MSB de POC igual a 0), o anterior pode facilmente ocorrer. Outra forma de garantir isso é assegurar que os tempos de emissão de imagens que precedem a imagem de BLA na ordem de decodificação são anteriores àquele da imagem de BLA.
[0181] Alguns exemplos permitem que o codificador de vídeo 20 e/ou um emendador de fluxo de bits determine quais formas descritas no presente documento usar. Consequentemente, o codificador de vídeo 20, por exemplo, pode incluir um no_output_of_prior_pics_flag no cabeçalho de fatia de imagens de BLA em alguns exemplos. Em outros exemplos, o codificador de vídeo 20 pode incluir tipos de unidade de NAL que indicam se as imagens armazenadas em um buffer no decodificador de vídeo 30 podem ser usadas para referência. Consequentemente, o decodificador de vídeo 30 pode marcar imagens como não utilizadas para referência, por exemplo, quando o uso de tais imagens na decodificação resultará em incorretamente decodificação de uma imagem.
[0182] Para garantir regravação simples de um CRA para uma imagem de BLA por um elemento de rede, adicionalmente a colocar o no_output_of_prior_pics_flag no cabeçalho de fatia de uma imagem de CRA, o mesmo pode ser também incluído como o mais anterior possível no cabeçalho de fatia. O mesmo pode estar antes de quaisquer parâmetros de cabeçalho de fatia codificados por entropia, por exemplo, imediatamente após o first_slice_in_pic_flag em alguns exemplos, conforme discutido acima.
[0183] Em um exemplo, duas imagens de BLA uma após a outra têm o mesmo LSB de POC, e é apenas possível diferenciar as mesmas por random_access_pic_id (ou renomeado como rap_pic_id). Portanto, pode ser preferencial usar codificação de comprimento fixo para rap_pic_id e também colocar incluído o mais anterior possível no cabeçalho de fatia, preferencialmente, não após quaisquer parâmetros de cabeçalho de fatia de entropia, por exemplo, imediatamente após first_slice_in_pic_flag e no_output_of_prior_pics_flag, por exemplo, tanto para imagens de CRA como para imagens de BLA. Outros cabeçalhos de fatia elemento de sintaxe que podem ser usados para detecção de contorno de imagem, por exemplo, pic_parameter_set_id e LSB de POC (isto é, pic_order_cnt_lsb) podem ser similares.
[0184] Todos os conjuntos de parâmetro de um tipo particular (por exemplo, SPS) ou todos os tipos podem estar presentes no começo do fluxo de bits, isto é, incluídos na primeira unidade de acesso no fluxo de bits. Se for assim, é conveniente buscar todos os conjuntos de parâmetros de um tipo particular e enviar os mesmos fora de banda. Por exemplo, um codificador pode incluir em um parâmetro de Protocolo de Descrição de Sessão (SDP) que é usado durante negociação de sessão. Portanto, pode ser benéfico para um codificar para incluir uma indicação no fluxo de bits de que todos os conjuntos de parâmetros de um tipo particular ou todos os tipos estão presentes no começo do fluxo de bits. A indicação pode estar incluída em uma mensagem de SEI, um delimitador de unidade de acesso, ou um conjunto de parâmetros. Por exemplo, um tipo de unidade de NAL distinto pode ser usado para SPS, conjunto de parâmetros de imagem (PPS), ou conjunto de parâmetros de adaptação (APS) para indicar que todos os SPSs (ou PPSs ou APSs) estão presente no começo do fluxo de bits.
[0185] O elemento de sintaxe slice_type pode estar condicionalmente presente no cabeçalho de fatia, com base em se o tipo de unidade de NAL indica que a imagem que contém a fatia é uma imagem de IDR, uma imagem de CRA, ou uma imagem de BLA. Por exemplo, se o tipo de unidade de NAL indicar que a imagem que contém a fatia é uma imagem de IDR, uma imagem de CRA, ou uma imagem de BLA, slice_type não está presente no cabeçalho de fatia. De outro modo, o codificar insere o slice_type no cabeçalho de fatia. Quando não presente, o valor de slice_type indica que a fatia é uma fatia I.
[0186] A Figura 9 é um fluxograma que ilustra um método exemplificativo para decodificar uma fatia de acordo com um ou mais exemplos descritos nesta invenção. Em um exemplo, o decodificador de vídeo 30 pode decodificar dados de vídeo, incluindo receber uma fatia de uma imagem atual a ser decodificada para uma sequência de dados de vídeo (900). O decodificador de vídeo 30 pode receber, em um cabeçalho de fatia da fatia, pelo menos um elemento de sintaxe codificado por entropia e pelo menos um elemento de sintaxe codificado por não entropia. O elemento de sintaxe codificado por não entropia pode estar antes do elemento de sintaxe codificado por entropia no cabeçalho de fatia. Adicionalmente, o elemento de sintaxe codificado por não entropia pode indicar se imagens antes da imagem atual na ordem de decodificação estão devem ser esvaziadas de um buffer de armazenamento de imagem sem ser emitida (902). Em um exemplo, o elemento de sintaxe pode ser um no_output_of_prior_pics_flag. O no_output_of_prior_pics_flag pode ser definido em “1”, por exemplo, para indicar quando imagens antes da imagem atual na ordem de decodificação devem ser esvaziadas de um buffer de armazenamento de imagem sem ser emitida. O decodificador de vídeo 30 pode decodificar a fatia com base no elemento de sintaxe codificado por não entropia (904).
[0187] A Figura 10 é um fluxograma que ilustra um método exemplificativo para decodificar uma fatia de acordo com um ou mais exemplos descritos nesta invenção. O codificador 20 pode codificar dados de vídeo. O codificador de vídeo 20 pode codificar uma fatia de uma imagem atual para uma sequência de dados de vídeo (1000).
[0188] O codificador de vídeo 20 codifica, em um cabeçalho de fatia da fatia, pelo menos um elemento de sintaxe codificado por entropia e pelo menos um elemento de sintaxe codificado por não entropia, em que o elemento de sintaxe codificado por não entropia está antes do elemento de sintaxe codificado por entropia no cabeçalho de fatia e indica se as imagens antes da imagem atual na ordem de decodificação devem ser esvaziadas de um buffer de armazenamento de imagem sem ser emitida (1002). Em um exemplo, o elemento de sintaxe pode ser um no_output_of_prior_pics_flag. O no_output_of_prior_pics_flag pode ser definido em “1”, por exemplo, para indicar quando imagens antes da imagem atual na ordem de decodificação devem ser esvaziadas de um buffer de armazenamento de imagem sem ser emitida.
[0189] Em um ou mais exemplos, as funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implantado em software, as funções podem ser armazenadas em ou transmitidas por, 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. Os meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, que correspondem a um meio tangível como meios de armazenamento de dados, ou meios de comunicação que incluem qualquer meio que facilita a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, os meios legíveis por computador em geral correspondem a (1) meios de armazenamento legíveis por computador que são não transitórios ou (2) um meio de comunicação como um sinal ou onda portadora. Os meios de armazenamento de dados podem ser quaisquer meios disponíveis que podem ser acessados por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implantação das técnicas descritas nesta invenção. Um produto de programa de computador pode incluir um meio legível por computador.
[0190] Em ainda outros exemplos, esta invenção contempla um meio legível por computador que compreende uma estrutura de dados armazenada no mesmo, em que a estrutura de dados inclui um fluxo de bits codificado consistente com esta invenção. Em particular, as estruturas de dados podem incluir os projetos de unidade de NAL descritos no presente documento.
[0191] A título de exemplo, e não limitação, tais meios legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outro meio que pode ser usado para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessado por um computador. Além disso, qualquer conexão é apropriadamente designada um meio legível por computador. Por exemplo, se instruções forem transmitidas de um site da web, servidor, ou outra fonte remota com o uso de um cabo coaxial, um cabo de fibra óptica, um par trançado, uma linha de assinante digital (DSL), ou tecnologias sem fio como infravermelho, rádio e micro-ondas, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL, ou tecnologias sem fio como infravermelho, rádio e micro-ondas estão incluídas na definição de meio. Deve-se entender, no entanto, que os meios de armazenamento legíveis por computador e os meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outros meios transientes, mas são, em vez disso, direcionados aos meios de armazenamento tangíveis e não transientes. Disco magnético e disco óptico, conforme usados no presente documento, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Bluray, em que os discos magnéticos usualmente reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. Combinações dos anteriores devem estar também incluídas dentro do escopo dos meios legíveis por computador.
[0192] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs), ou outro conjunto de circuitos lógicos discreto ou integrados equivalentes. Consequentemente, o termo “processador”, conforme usado no presente documento, pode se referir a qualquer um dentre a estrutura anterior ou qualquer outra estrutura adequada para implantação das técnicas descritas no presente documento. Adicionalmente, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implantadas em um ou mais circuitos ou elementos lógicos.
[0193] As técnicas desta invenção podem ser implantadas em uma variedade ampla de dispositivos ou aparelhos, incluindo um monofone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta invenção para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, porém, não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0194] Vários exemplos foram descritos. Esses e outros exemplos estão dentro do escopo das seguintes reivindicações.

Claims (10)

1. Método para decodificar dados de vídeo, o método caracterizado pelo fato de que compreende: determinar (704) que uma imagem atual (206) é uma imagem de acesso de enlace corrompido, BLA, com base em um tipo de unidade de camada de abstração de rede, NAL, de uma fatia codificada da imagem atual, em que a imagem BLA possui uma ou mais imagens principais associadas, uma imagem principal associada da imagem BLA sendo uma imagem que segue a imagem BLA em ordem de decodificação, mas precede a imagem BLA em ordem de saída; e marcar (706), em resposta a determinação de que a imagem atual é uma imagem BLA, todas as imagens de referência (204, 208, 210) em um buffer de imagem decodificada, DPB, como não utilizada para referência antes de decodificar a imagem atual.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar que uma imagem atual é uma imagem BLA compreende adicionalmente determinar que a imagem atual é uma imagem de acesso aleatório limpa, CRA, e determinar que a imagem atual é uma imagem de acesso aleatório, RAP.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que decodificar a imagem BLA compreende decodificar a imagem BLA em um decodificador.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que decodificar a imagem BLA compreende decodificar a imagem BLA em um elemento de rede, o elemento de rede sendo um dentre: um Elemento de Rede Ciente de Mídia, MANE, um servidor de fluxo contínuo, e um splicer.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente decodificar a imagem BLA sem utilizar as imagens anteriores marcadas como não utilizadas para referência.
6. Dispositivo para decodificar dados de vídeo, o dispositivo caracterizado pelo fato de que compreende: meios para determinar que uma imagem atual (206) é uma imagem de acesso de enlace corrompido, BLA, com base em um tipo de unidade de camada de abstração de rede, NAL, de uma fatia codificada da imagem atual, em que a imagem BLA possui uma ou mais imagens principais associadas, uma imagem principal associada da imagem BLA sendo uma imagem que segue a imagem BLA em ordem de decodificação, mas precede a imagem BLA em ordem de saída; e meios para, em resposta a determinação de que a imagem atual é uma imagem BLA, marcar todas as imagens de referência (204, 208, 210) em um buffer de imagem decodificada, DPB, como não utilizada para referência antes de decodificar a imagem atual.
7. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que os meios para determinar que uma imagem atual é uma imagem BLA compreendem adicionalmente meios para determinar que a imagem atual é uma imagem de acesso aleatório limpa, CRA, e determinar que a imagem atual é uma imagem de acesso aleatório, RAP.
8. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que o dispositivo é um dentre: um Elemento de Rede Ciente de Mídia, MANE, um servidor de fluxo contínuo, e um splicer.
9. Dispositivo, de acordo com a reivindicação 6, caracterizado pelo fato de que compreende adicionalmente meios para decodificar a imagem BLA sem utilizar as imagens anteriores marcadas como não utilizadas para referência.
10. Memória legível por computador, caracterizada pelo fato de que contém gravado na mesma o método conforme definido em qualquer uma das reivindicações 1 a 5.
BR112014026135-0A 2012-04-20 2013-04-11 Marcação de imagens de referência em sequências de vídeo possuindo imagens de enlace corrompido BR112014026135B1 (pt)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201261636566P 2012-04-20 2012-04-20
US61/636,566 2012-04-20
US201261643100P 2012-05-04 2012-05-04
US61/643,100 2012-05-04
US201261667371P 2012-07-02 2012-07-02
US61/667,371 2012-07-02
US13/796,828 US10051264B2 (en) 2012-04-20 2013-03-12 Marking reference pictures in video sequences having broken link pictures
US13/796,828 2013-03-12
US13/797,458 US9979959B2 (en) 2012-04-20 2013-03-12 Video coding with enhanced support for stream adaptation and splicing
US13/797,458 2013-03-12
PCT/US2013/036225 WO2013158462A1 (en) 2012-04-20 2013-04-11 Marking reference pictures in video sequences having broken link pictures

Publications (3)

Publication Number Publication Date
BR112014026135A2 BR112014026135A2 (pt) 2017-06-27
BR112014026135A8 BR112014026135A8 (pt) 2021-06-22
BR112014026135B1 true BR112014026135B1 (pt) 2023-03-14

Family

ID=49380095

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112014026026-5A BR112014026026B1 (pt) 2012-04-20 2013-04-09 Métodos e dispositivos para processar dados de vídeo, e memória legível por computador
BR112014026135-0A BR112014026135B1 (pt) 2012-04-20 2013-04-11 Marcação de imagens de referência em sequências de vídeo possuindo imagens de enlace corrompido

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112014026026-5A BR112014026026B1 (pt) 2012-04-20 2013-04-09 Métodos e dispositivos para processar dados de vídeo, e memória legível por computador

Country Status (24)

Country Link
US (3) US10051264B2 (pt)
EP (3) EP2839642B1 (pt)
JP (3) JP6284924B2 (pt)
KR (3) KR102061378B1 (pt)
CN (3) CN104272745B (pt)
AU (2) AU2013249666B2 (pt)
BR (2) BR112014026026B1 (pt)
CA (2) CA2868521C (pt)
DK (3) DK2839642T3 (pt)
ES (3) ES2750175T3 (pt)
HK (2) HK1201113A1 (pt)
HU (3) HUE045842T2 (pt)
IL (2) IL234836B (pt)
MY (2) MY168214A (pt)
PH (2) PH12014502202B1 (pt)
PL (1) PL2839643T3 (pt)
PT (2) PT2839643T (pt)
RU (2) RU2630173C2 (pt)
SG (4) SG10201608770QA (pt)
SI (3) SI2839642T1 (pt)
TR (1) TR201815255T4 (pt)
UA (2) UA116775C2 (pt)
WO (3) WO2013158415A1 (pt)
ZA (1) ZA201408512B (pt)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2595562C2 (ru) 2011-06-30 2016-08-27 Телефонактиеболагет Л М Эрикссон (Пабл) Сигнализация опорных изображений
US20130272619A1 (en) * 2012-04-13 2013-10-17 Sharp Laboratories Of America, Inc. Devices for identifying a leading picture
US9351016B2 (en) 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
US10051264B2 (en) 2012-04-20 2018-08-14 Qualcomm Incorporated Marking reference pictures in video sequences having broken link pictures
US10491913B2 (en) * 2012-04-24 2019-11-26 Telefonaktiebolaget L M Ericsson (Publ) Identifying a parameter set for decoding a multi-layer video representation
PL3471419T3 (pl) * 2012-06-25 2023-07-17 Huawei Technologies Co., Ltd. Obrazy stopniowego dostępu do warstwy czasowej w kompresji wideo
JP6045222B2 (ja) * 2012-06-28 2016-12-14 株式会社Nttドコモ 動画像予測復号装置、方法及びプログラム
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
JP2015526016A (ja) * 2012-07-03 2015-09-07 サムスン エレクトロニクス カンパニー リミテッド 時間的スケーラビリティを有するビデオ符号化方法及びその装置、並びに時間的スケーラビリティを有するビデオ復号化方法及びその装置
JP6319083B2 (ja) 2012-07-10 2018-05-09 ソニー株式会社 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法
JP2014039252A (ja) * 2012-08-10 2014-02-27 Panasonic Corp 画像復号方法および画像復号装置
US9992490B2 (en) * 2012-09-26 2018-06-05 Sony Corporation Video parameter set (VPS) syntax re-ordering for easy access of extension parameters
KR20140043239A (ko) * 2012-09-27 2014-04-08 한국전자통신연구원 계층간 전환을 이용한 영상 부호화/복호화 방법 및 그 장치
JP6094126B2 (ja) * 2012-10-01 2017-03-15 富士通株式会社 動画像復号装置
US10419778B2 (en) 2013-01-04 2019-09-17 Sony Corporation JCTVC-L0227: VPS_extension with updates of profile-tier-level syntax structure
US10219006B2 (en) 2013-01-04 2019-02-26 Sony Corporation JCTVC-L0226: VPS and VPS_extension updates
US9807421B2 (en) * 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
US10136145B2 (en) 2014-01-03 2018-11-20 Samsung Electronics Co., Ltd. Method and apparatus for managing buffer for encoding and decoding multi-layer video
US20150195549A1 (en) * 2014-01-08 2015-07-09 Qualcomm Incorporated Support of non-hevc base layer in hevc multi-layer extensions
EP3104614A4 (en) * 2014-02-03 2017-09-13 Mitsubishi Electric Corporation Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CN105393537B (zh) * 2014-03-04 2019-08-27 微软技术许可有限责任公司 用于基于散列的块匹配的散列表构建和可用性检查
EP3598758B1 (en) * 2014-06-23 2021-02-17 Microsoft Technology Licensing, LLC Encoder decisions based on results of hash-based block matching
CN115665423A (zh) 2014-09-30 2023-01-31 微软技术许可有限责任公司 用于视频编码的基于散列的编码器判定
WO2016066093A1 (en) 2014-10-31 2016-05-06 Mediatek Inc. Method of improved directional intra prediction for video coding
CN107409220B (zh) 2015-01-29 2020-07-24 Vid拓展公司 块内拷贝搜索
US10798432B2 (en) * 2015-02-05 2020-10-06 Cisco Technology, Inc. Method and system for processing HEVC coded video in broadcast and streaming applications
WO2016133440A1 (en) * 2015-02-19 2016-08-25 Telefonaktiebolaget Lm Ericsson (Publ) Methods, encoder and decoder for coding of video sequences
CN104768011B (zh) 2015-03-31 2018-03-06 浙江大学 图像编解码方法和相关装置
US10148983B2 (en) * 2015-09-25 2018-12-04 Qualcomm Incorporated Methods and systems of improved video stream switching and random access
US20170105004A1 (en) * 2015-10-07 2017-04-13 Qualcomm Incorporated Methods and systems of coding a predictive random access picture using a background picture
US10063861B2 (en) * 2015-10-07 2018-08-28 Qualcomm Incorporated Methods and systems of performing predictive random access using a background picture
US10097608B2 (en) * 2015-12-26 2018-10-09 Intel Corporation Technologies for wireless transmission of digital media
US10356800B2 (en) * 2016-05-09 2019-07-16 Qualcomm Incorporated Scalable numerology with symbol boundary alignment for uniform and non-uniform symbol duration in wireless communication
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
GB2594615B (en) * 2017-03-20 2022-11-30 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
CN107194961B (zh) * 2017-05-19 2020-09-22 西安电子科技大学 群体图像编码中多参考图像的确定方法
WO2019191890A1 (zh) * 2018-04-02 2019-10-10 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
EP3777455B1 (en) 2018-04-05 2021-10-27 Telefonaktiebolaget LM Ericsson (publ) Multi-stage sidelink control information
CN110401622B (zh) * 2018-04-25 2022-04-29 中国移动通信有限公司研究院 一种语音质量评估方法、装置、电子设备和存储介质
CN109739667B (zh) * 2019-01-10 2021-04-02 广州方硅信息技术有限公司 一种消息的消费方法、装置及设备
WO2020171230A1 (en) * 2019-02-24 2020-08-27 Sharp Kabushiki Kaisha Systems and methods for signaling types of pictures and associated information in video coding
CN114026863A (zh) * 2019-06-24 2022-02-08 交互数字Vc控股公司 使用高级语法元素发信号通知解码数据的方法和装置
CN110446047A (zh) * 2019-08-16 2019-11-12 苏州浪潮智能科技有限公司 视频码流的解码方法及装置
EP4058935A4 (en) 2019-12-26 2023-01-18 ByteDance Inc. TECHNIQUES FOR IMPLEMENTING A DECODE ORDER IN AN ENCODED IMAGE
WO2021188796A1 (en) 2020-03-20 2021-09-23 Bytedance Inc. Use of subpicture information in video coding
BR112022021342A2 (pt) * 2020-04-20 2022-12-13 Bytedance Inc Método de processamento de vídeo, aparelho para processamento de dados de vídeo, meios de armazenamento e de gravação não transitórios legíveis por computador
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
US11962936B2 (en) * 2020-09-29 2024-04-16 Lemon Inc. Syntax for dependent random access point indication in video bitstreams
WO2024030279A1 (en) * 2022-08-01 2024-02-08 Innopeak Technology, Inc. Encoding method, decoding method, encoder and decoder

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US62009A (en) * 1867-02-12 Charles t
JP3358835B2 (ja) 1992-12-14 2002-12-24 ソニー株式会社 画像符号化方法及び装置
US5515107A (en) 1994-03-30 1996-05-07 Sigma Designs, Incorporated Method of encoding a stream of motion picture data
KR100557103B1 (ko) 1997-03-17 2006-03-03 마츠시타 덴끼 산교 가부시키가이샤 데이터 처리방법 및 데이터 처리장치
CA2273940C (en) 1997-10-03 2008-12-09 Sony Corporation Encoded stream splicing device and method, and an encoded stream generating device and method
JPH11177921A (ja) 1997-12-11 1999-07-02 Sony Corp ディジタルデータ編集方法、ディジタルデータ編集装置
TW416220B (en) 1998-01-23 2000-12-21 Matsushita Electric Ind Co Ltd Image transmitting method, image processing method, image processing device, and data storing medium
ES2569491T3 (es) * 1999-02-09 2016-05-11 Sony Corporation Sistema de codificación y método asociado
KR100959573B1 (ko) 2002-01-23 2010-05-27 노키아 코포레이션 비디오 코딩시 이미지 프레임들의 그루핑
WO2004008733A2 (en) 2002-07-15 2004-01-22 Nokia Corporation Method for error concealment in video sequences
US7953194B2 (en) * 2002-09-27 2011-05-31 Broadcom Corporation Handling video transition errors in video on demand streams
JP3513148B1 (ja) 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
KR20050090377A (ko) 2003-01-20 2005-09-13 마쯔시다덴기산교 가부시키가이샤 화상 부호화 방법
US8194751B2 (en) 2003-02-19 2012-06-05 Panasonic Corporation Moving picture coding method and moving picture decoding method
ES2379265T3 (es) 2003-03-03 2012-04-24 Panasonic Corporation Procedimiento de decodificación de videos
US7724818B2 (en) 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
EP1496707A1 (en) 2003-07-09 2005-01-12 Matsushita Electric Industrial Co., Ltd. Encoding and decoding of video images with delayed reference picture refresh
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7924921B2 (en) 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7466984B2 (en) 2004-02-19 2008-12-16 Research In Motion Limited Apparatus, and associated method, for improvement in facilitating routing of data by a mobile node operable in a packet radio communication system
CN1950907B (zh) 2004-04-28 2011-04-13 松下电器产业株式会社 运动画面流产生装置,运动画面编码装置,运动画面多路复用装置和运动画面解码装置
ES2405131T3 (es) 2004-06-02 2013-05-30 Panasonic Corporation Aparato de codificación de imagen y aparato de decodificación de imagen
JP4617773B2 (ja) 2004-08-23 2011-01-26 ソニー株式会社 記録装置および方法、再生装置および方法、記録媒体、並びにプログラム
JP4769717B2 (ja) 2005-01-17 2011-09-07 パナソニック株式会社 画像復号化方法
US20070030894A1 (en) 2005-08-03 2007-02-08 Nokia Corporation Method, device, and module for improved encoding mode control in video encoding
CN101326833B (zh) 2005-12-07 2012-11-14 汤姆森特许公司 利用参考帧选择规则进行视频错误隐藏的方法与装置
GB0600141D0 (en) * 2006-01-05 2006-02-15 British Broadcasting Corp Scalable coding of video signals
JP2007214814A (ja) 2006-02-08 2007-08-23 Sony Corp 復号化方法、復号化プログラムおよび復号化装置
KR100966567B1 (ko) 2006-03-30 2010-06-29 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
JP2008010110A (ja) 2006-06-30 2008-01-17 Sony Corp ファイル分割装置、ファイル分割方法及びファイル分割プログラム
US8559510B2 (en) 2006-08-10 2013-10-15 Canon Kabushiki Kaisha Image decoding apparatus
MX2009003967A (es) 2006-10-16 2009-06-01 Nokia Corp Sistema y método para implementar una administración eficiente de memoria intermedia decodificada en codificación de video de vistas múltiples.
WO2008084443A1 (en) 2007-01-09 2008-07-17 Nokia Corporation System and method for implementing improved decoded picture buffer management for scalable video coding and multiview video coding
CN101257624B (zh) * 2007-02-27 2011-08-24 华为技术有限公司 实现随机访问的方法及解码器
US8958486B2 (en) 2007-07-31 2015-02-17 Cisco Technology, Inc. Simultaneous processing of media and redundancy streams for mitigating impairments
EP2048886A1 (en) 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
US8107754B2 (en) 2007-12-07 2012-01-31 Mediatek Inc. Systems and methods for randomly accessing compressed images
WO2010002420A1 (en) 2008-07-01 2010-01-07 Thomson Licensing Network abstraction layer (nal)-aware multiplexer
JP2010041354A (ja) 2008-08-05 2010-02-18 Victor Co Of Japan Ltd 動画像符号化方法、符号化装置及び符号化プログラム
US20100098156A1 (en) 2008-10-16 2010-04-22 Qualcomm Incorporated Weighted prediction based on vectorized entropy coding
CN102265617A (zh) 2008-12-26 2011-11-30 日本胜利株式会社 图像编码装置、图像编码方法及其程序、以及图像解码装置、图像解码方法及其程序
EP2413606B1 (en) 2009-03-26 2018-05-02 Sun Patent Trust Decoding method, decoding device
JP5227875B2 (ja) 2009-04-06 2013-07-03 株式会社日立製作所 動画像符号化装置
US20120106634A1 (en) 2009-04-21 2012-05-03 Lg Electronics Inc. Method and apparatus for processing multi-view video signal
US20110222837A1 (en) 2010-03-11 2011-09-15 Cisco Technology, Inc. Management of picture referencing in video streams for plural playback modes
WO2012011859A1 (en) 2010-07-21 2012-01-26 Telefonaktiebolaget L M Ericsson (Publ) Picture coding and decoding
US9706227B2 (en) * 2011-03-10 2017-07-11 Qualcomm Incorporated Video coding techniques for coding dependent pictures after random access
JP5341952B2 (ja) 2011-05-30 2013-11-13 株式会社東芝 ビデオサーバ及びデータ収録再生方法
RU2595562C2 (ru) 2011-06-30 2016-08-27 Телефонактиеболагет Л М Эрикссон (Пабл) Сигнализация опорных изображений
CN103765900B (zh) 2011-06-30 2016-12-21 瑞典爱立信有限公司 绝对或显式的参考画面信号通知
US20140169449A1 (en) 2011-07-05 2014-06-19 Telefonaktiebolaget L M Ericsson (Publ) Reference picture management for layered video
US9277228B2 (en) 2011-07-18 2016-03-01 Qualcomm Incorporated Adaptation parameter sets for video coding
KR20170005464A (ko) 2011-08-30 2017-01-13 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
WO2013030458A1 (en) 2011-08-31 2013-03-07 Nokia Corporation Multiview video coding and decoding
PL3094092T3 (pl) 2011-09-07 2018-11-30 Sun Patent Trust Sposób dekodowania obrazów i urządzenie do dekodowania obrazów
JP5932811B2 (ja) 2011-09-19 2016-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像復号方法、及び画像復号装置
US9936197B2 (en) 2011-10-28 2018-04-03 Samsung Electronics Co., Ltd. Method for inter prediction and device therefore, and method for motion compensation and device therefore
US10447990B2 (en) 2012-02-28 2019-10-15 Qualcomm Incorporated Network abstraction layer (NAL) unit header design for three-dimensional video coding
US9351016B2 (en) 2012-04-13 2016-05-24 Sharp Kabushiki Kaisha Devices for identifying a leading picture
US20130272619A1 (en) 2012-04-13 2013-10-17 Sharp Laboratories Of America, Inc. Devices for identifying a leading picture
US9532055B2 (en) 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
US10051264B2 (en) 2012-04-20 2018-08-14 Qualcomm Incorporated Marking reference pictures in video sequences having broken link pictures
US9319679B2 (en) 2012-06-07 2016-04-19 Qualcomm Incorporated Signaling data for long term reference pictures for video coding
US9332255B2 (en) 2012-06-28 2016-05-03 Qualcomm Incorporated Signaling long-term reference pictures for video coding
JP6190397B2 (ja) 2012-07-01 2017-08-30 シャープ株式会社 パラメータセットにおいて長期参照ピクチャをシグナリングするためのデバイス
US9479776B2 (en) 2012-07-02 2016-10-25 Qualcomm Incorporated Signaling of long-term reference pictures for video coding
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation

Also Published As

Publication number Publication date
US9979958B2 (en) 2018-05-22
CN104272745B (zh) 2018-06-15
CA2868529A1 (en) 2013-10-24
SI2839642T1 (sl) 2019-09-30
SG10201608770QA (en) 2016-12-29
KR20150008136A (ko) 2015-01-21
ZA201408512B (en) 2019-09-25
IL234836B (en) 2018-11-29
CA2868529C (en) 2019-05-07
ES2750175T3 (es) 2020-03-25
MY168214A (en) 2018-10-15
CN104247430A (zh) 2014-12-24
UA116775C2 (uk) 2018-05-10
AU2013249666B2 (en) 2017-06-15
CA2868521A1 (en) 2013-10-24
SG10201608666QA (en) 2016-12-29
EP2839642A1 (en) 2015-02-25
PT2839644T (pt) 2018-12-04
PT2839643T (pt) 2018-12-19
HUE045842T2 (hu) 2020-01-28
HUE040542T2 (hu) 2019-03-28
DK2839643T3 (da) 2019-01-02
EP2839643A1 (en) 2015-02-25
WO2013158462A1 (en) 2013-10-24
UA115982C2 (uk) 2018-01-25
PH12014502201A1 (en) 2014-12-10
HUE041322T2 (hu) 2019-05-28
US20130279575A1 (en) 2013-10-24
BR112014026135A8 (pt) 2021-06-22
SG11201406007VA (en) 2014-11-27
EP2839644A1 (en) 2015-02-25
PL2839643T3 (pl) 2019-03-29
RU2014146625A (ru) 2016-06-10
RU2630181C2 (ru) 2017-09-05
KR20150013547A (ko) 2015-02-05
AU2013249619A1 (en) 2014-10-30
PH12014502201B1 (en) 2014-12-10
EP2839643B1 (en) 2018-09-12
BR112014026135A2 (pt) 2017-06-27
JP6234997B2 (ja) 2017-11-22
JP2015517278A (ja) 2015-06-18
PH12014502202A1 (en) 2014-12-10
WO2013158415A1 (en) 2013-10-24
KR102061378B1 (ko) 2019-12-31
CN104247430B (zh) 2017-12-29
EP2839644B1 (en) 2018-08-29
JP2015517277A (ja) 2015-06-18
SI2839643T1 (sl) 2019-01-31
PH12014502202B1 (en) 2014-12-10
KR102115051B1 (ko) 2020-05-25
CA2868521C (en) 2020-03-10
RU2630173C2 (ru) 2017-09-05
JP6664959B2 (ja) 2020-03-13
ES2701786T3 (es) 2019-02-25
SG11201405987WA (en) 2014-11-27
DK2839644T3 (en) 2018-12-10
CN104272745A (zh) 2015-01-07
US20130279599A1 (en) 2013-10-24
IL234834A0 (en) 2014-12-31
US9979959B2 (en) 2018-05-22
US20130279564A1 (en) 2013-10-24
KR20150013546A (ko) 2015-02-05
SI2839644T1 (sl) 2018-12-31
DK2839642T3 (da) 2019-10-14
HK1201113A1 (en) 2015-08-21
WO2013158461A1 (en) 2013-10-24
RU2014146588A (ru) 2016-06-10
CN104272746A (zh) 2015-01-07
BR112014026026B1 (pt) 2023-03-14
JP6284924B2 (ja) 2018-02-28
MY170383A (en) 2019-07-27
AU2013249666A1 (en) 2014-10-30
ES2699656T3 (es) 2019-02-12
BR112014026026A8 (pt) 2021-06-22
JP2015517279A (ja) 2015-06-18
EP2839642B1 (en) 2019-07-24
CN104272746B (zh) 2018-01-23
IL234834B (en) 2019-11-28
BR112014026026A2 (pt) 2017-06-27
TR201815255T4 (tr) 2018-11-21
AU2013249619B2 (en) 2017-06-15
KR102115050B1 (ko) 2020-05-25
HK1201663A1 (en) 2015-09-04
US10051264B2 (en) 2018-08-14

Similar Documents

Publication Publication Date Title
BR112014026135B1 (pt) Marcação de imagens de referência em sequências de vídeo possuindo imagens de enlace corrompido
BR112015006441B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
BR112014026745B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador
BR112015016230B1 (pt) Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo
BR112014033008B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112014032029B1 (pt) Adaptação de streaming baseada em imagens de acesso aleatório limpo (cra)
BR112016012510B1 (pt) Método e dispositivo para codificar dados de vídeo
BR112015006059B1 (pt) Codificação de vídeo codm comportamentos [de imagem [de ponto [de acesso aleatório melhorados
BR112015007273B1 (pt) Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador

Legal Events

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

Ipc: H04N 7/00 (2011.01)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

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

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

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 11/04/2013, OBSERVADAS AS CONDICOES LEGAIS