BR112015006849B1 - Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador - Google Patents

Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador Download PDF

Info

Publication number
BR112015006849B1
BR112015006849B1 BR112015006849-9A BR112015006849A BR112015006849B1 BR 112015006849 B1 BR112015006849 B1 BR 112015006849B1 BR 112015006849 A BR112015006849 A BR 112015006849A BR 112015006849 B1 BR112015006849 B1 BR 112015006849B1
Authority
BR
Brazil
Prior art keywords
sei message
unit
decoding
sei
video
Prior art date
Application number
BR112015006849-9A
Other languages
English (en)
Other versions
BR112015006849A2 (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 BR112015006849A2 publication Critical patent/BR112015006849A2/pt
Publication of BR112015006849B1 publication Critical patent/BR112015006849B1/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)

Abstract

CODIFICAÇÃO DE MENSAGENS COM INFORMAÇÕES DE APERFEIÇOAMENTO SUPLEMENTARES. São descritas técnicas para sinalizar identificadores de unidade de decodificação para unidades de decodificação de uma unidade de acesso. O decodificador de vídeo determina quais unidades de camada de abstração de rede (NAL) estão associadas a quais unidades de decodificação com base nos identificadores de unidade de decodificação. São também descritas técnicas para incluir uma ou mais cópias de mensagens com informações de aperfeiçoamento suplementares (SEI) na unidade de acesso.

Description

[0001] Este pedido reivindica o benefício do pedido provisório norte-americano N°. 61/707 759, depositado a 28 de setembro de 2012 cujo conteúdo inteiro é aqui incorporado à guisa de referência.
Campo Técnico
[0002] Esta revelação refere-se de maneira geral ao processamento de dados de vídeo e, mais especificamente, a técnicas aplicáveis a um ou mais padrões de codificação de vídeo.
Antecedentes
[0003] Capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de aparelhos, que incluem televisões digitais, sistema de broadcast direto digitais, sistemas de broadcast sem fio, assistentes digitais pessoais (PDAs), computadores laptop ou de mesa, computadores tablet, leitoras de e-books, câmeras digitais, aparelhos de gravação digitais, tocadores de meios digitais, aparelhos para jogos de vídeo, consoles para jogos de vídeo, telefones celulares ou de rádio-satélite, os chamados “telefones inteligentes”, aparelhos para teleconferência de vídeo, aparelhos de fluxo contínuo de vídeo, transcodificadores, roteadores ou outros aparelhos de rede e semelhantes. Os aparelhos de vídeo digital implementam técnicas de compactação de vídeo tais como as descritas nos padrões definidos pelo MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) atualmente em desenvolvimento, padrões patenteados, formatos de compactação de vídeo abertos tais como VP8 e extensões de tais padrões, técnicas ou formatos. Os aparelhos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informações de vídeo digital de maneira mais eficaz pela implementação de tais técnicas de compactação de vídeo.
[0004] As técnicas de compactação de vídeo executam predição espacial (intra-imagem) e/ou predição temporal (inter-imagem) para reduzir ou remover a redundância inerente a sequências de vídeo. Para codificação de vídeo baseada em 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 podem ser também referidos como blocos de árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intra-codificada (I) de uma imagem são codificados utilizando-se predição espacial com referência a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia inter-codificada (P ou B) de uma imagem podem utilizar predição espacial com relação a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação a amostras de referência em outras informações de referência. As imagens podem ser referidas como quadros e as imagens de referência podem ser referidas como quadros de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferença de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco inter-codificado é codificado de acordo com um vetor de movimento que indica um bloco de amostras de referência que forma o bloco preditivo e os dados residuais que indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intra-codificado é codificado de acordo com um modo de intra-codificação e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados do domínio de pixel em um domínio de transformada, do que resultam coeficientes de transformada residuais, que podem ser então quantificados. Os coeficientes de transformada quantificados inicialmente dispostos em um arranjo bidimensional, podem ser varridos de modo a se produzir um vetor unidimensional de coeficientes de transformada, e a codificação por entropia pode ser aplicada de modo a se obter uma compactação ainda maior.
Sumário
[0006] Em geral, esta revelação descreve técnicas para processar unidades de decodificação dentro de uma unidade de acesso. Uma unidade de acesso refere-se aos dados de vídeo de uma ou mais imagens dentro da mesma ocorrência de tempo. Por exemplo, a decodificação de uma unidade de acesso resulta em uma ou mais imagens decodificadas, onde todas as imagens decodificadas são para a mesma ocorrência de tempo.
[0007] Uma unidade de acesso inclui uma ou mais unidades de decodificação. Conforme descrito mais detalhadamente, em alguns exemplos, as técnicas descritas nesta revelação identificam de maneira única cada uma das unidades de decodificação dentro da unidade de acesso. Em alguns exemplos, as técnicas proporcionam uma ou mais cópias de uma mensagem a ser embutida dentro da unidade de acesso.
[0008] Em um exemplo a revelação descreve um método para decodificar dados de vídeo. O método compreende decodificar um identificador único para cada unidade de decodificação em uma unidade de acesso. Neste exemplo, o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. O método inclui também determinar quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidades de decodificação com base no identificador único para cada unidade de decodificação na unidade de acesso, e decodificar as unidades NAL de cada uma das unidades de decodificação na unidade de acesso com base na determinação, de modo a se reconstruir pelo menos uma imagem.
[0009] Em outro exemplo, a revelação descreve um método para codificar dados de vídeo. O método compreende determinar um identificador único para cada unidade de decodificação em uma unidade de acesso. Neste exemplo, o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. O método inclui também determinar quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidades de decodificação da unidade de acesso, e gerar para saída cada identificador único nas unidades de decodificação correspondentes de modo a indicar quais unidades NAL estão associadas a quais unidades de decodificação da unidade de acesso.
[0010] Em outro exemplo, a revelação descreve um aparelho para decodificar de vídeo. O aparelho compreende um decodificador de vídeo configurado para decodificar um identificador único para cada unidade de decodificação em uma unidade de acesso. Neste exemplo, o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. O decodificador de vídeo é configurado para determinar quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidades de decodificação com base no identificador único para cada unidade de decodificação na unidade de acesso, e decodificar as unidades NAL de cada uma das unidades de decodificação na unidade de acesso com base na determinação, de modo a se reconstruir pelo menos uma imagem.
[0011] Em outro exemplo, a revelação descreve um aparelho para codificar dados de vídeo. O aparelho compreende um codificador de vídeo configurado para determinar um identificador único para cada unidade de decodificação em uma unidade de acesso. Neste exemplo, o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. O codificador de vídeo é configurado para determinar quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidade de decodificação da unidade de acesso e gerar para saída cada e identificador único na unidade de decodificação correspondentes de modo a indicar unidades NAL estão associadas a quais unidades de decodificação da unidade de acesso.
[0012] Em outro exemplo, a revelação descreve um armazenamento passível de leitura por computador que tem instruções armazenadas nele que, quando executadas fazem com que um ou mais processadores de um aparelho para decodificar dados de vídeo decodifiquem um identificador único para cada unidade de decodificação em uma unidade de acesso, em que o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso, determinem quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidades de decodificação com base no identificador único para cada unidade de decodificação na unidade de acesso, e decodifiquem as unidades NAL de cada uma das unidades de decodificação na unidade de acesso com base na determinação, de modo a se reconstruir pelo menos uma imagem.
[0013] Em outro exemplo, a revelação descreve um aparelho para decodificar dados de vídeo, o aparelho compreendendo um dispositivo para decodificar um identificador único para cada unidade de decodificação em uma unidade de acesso, em que o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso, um dispositivo para determinar quais unidades de camada de acesso à rede (NAL) estão associadas a quais unidades de decodificação com base no identificador único para cada unidade de decodificação na unidade de acesso, e um dispositivo pra decodificar as unidades NAL de cada uma das unidades de decodificação na unidade de acesso com base na determinação, de modo a se reconstruir pelo menos uma imagem.
[0014] Em outro exemplo, a revelação descreve um método para decodificar dados de vídeo, o método compreendendo codificar uma mensagem com informações de aperfeiçoamento suplementar (SEI) em uma unidade de acesso. Neste exemplo, a unidade de acesso inclui os dados de vídeo para reconstruir pelo menos uma imagem, e a mensagem SEI define uma característica dos dados de vídeo. O método inclui também codificar uma cópia da mensagem SEI na unidade de acesso.
[0015] Em outro exemplo, a revelação descreve um aparelho para codificar dados de vídeo, o aparelho compreendendo um codificador de vídeo configurado para codificar uma mensagem de informação de aperfeiçoamento suplementar (SEI) em uma unidade de acesso. Neste exemplo, a unidade de acesso inclui os dados de vídeo para reconstruir pelo menos uma imagem, e a mensagem SEI define uma característica dos dados de vídeo. O codificador de vídeo é também configurado para codificar uma cópia da mensagem SEI na unidade de acesso.
[0016] Em outro exemplo, a revelação descreve um meio de armazenamento legível por computador que tem instruções armazenadas nele que, quando executadas por um ou mais processadores de um aparelho para codificar dados de vídeo, fazem com que os um ou mais processadores codifiquem uma mensagem de informação de aperfeiçoamento suplementar (SEI) em uma unidade de acesso. Neste exemplo, a unidade de acesso inclui os dados de vídeo para reconstruir pelo menos uma imagem, e a mensagem SEI define uma característica dos dados de vídeo. As instruções fazem com que os um ou mais processadores codifiquem uma cópia da mensagem SEI na unidade de acesso.
[0017] Em outro exemplo, a revelação descreve um aparelho para codificar dados de vídeo, o aparelho compreendendo para codificar uma mensagem de informação de aperfeiçoamento suplementar (SEI) em uma unidade de acesso. Neste exemplo, a utilizando inclui os dados de vídeo para reconstruir pelo menos uma imagem, e a mensagem SEI define uma característica do dados de vídeo. O aparelho inclui também um dispositivo para codificar uma cópia da mensagem SEI na unidade de acesso.
[0018] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição que se segue. Outros recursos, objetos e vantagens se tornarão evidentes com a descrição e os desenhos e com as reivindicações.
Descrição Resumida Dos Desenhos
[0019] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar as técnicas descritas nesta revelação.
[0020] A Figuras 2A e 2B são diagramas conceptuais que mostram exemplos de unidades de acesso que incluem identificadores de unidade de decodificação de acordo com as técnicas descritas nesta revelação.
[0021] A Figura 3 é um diagrama de blocos que mostra um codificador de vídeo exemplar que pode implementar as técnicas descritas nesta revelação.
[0022] A Figura 4 é um diagrama de blocos que mostra um decodificador de vídeo exemplar que pode implementar as técnicas descritas nesta revelação.
[0023] A Figura 5 é um fluxograma que mostra um exemplo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação.
[0024] A Figura 6 é um fluxograma que mostra um exemplo de decodificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação.
[0025] A Figura 7 é um fluxograma que mostra um exemplo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação.
Descrição Detalhada
[0026] Esta revelação descreve diversos métodos para sinalização e associação de unidades de decodificação resilientes em termos de erros na codificação de vídeo. Na codificação de várias vistas ou codificação escalonável de vídeo, várias imagens ou camadas podem ser codificadas para uma dada ocorrência de tempo. Imagens da mesma ocorrência de tempo são codificadas em uma única unidade de acesso (AU). Por exemplo, a decodificação de uma unidade de acesso resulta em uma imagem para quando a codificação de várias vistas não é utilizada ou de uma série de imagens da mesma ocorrência de tempo para codificação de várias vistas.
[0027] Uma unidade de decodificação (DU) refere-se de maneira geral a um sub-conjunto de uma unidade de acesso ou à totalidade da unidade de acesso. Por exemplo, se o funcionamento ao nível de sub-imagem for permitido, então uma unidade de decodificação é um sub-conjunto da unidade de acesso, e a unidade de acesso inclui uma série de unidades de decodificação. Uma vez que uma unidade de acesso inclui dados de vídeo para uma ou mais imagens, o funcionamento ao nível de unidade de decodificação pode ser considerado como funcionamento ao nível de sub-imagem. Se o funcionamento ao nível de sub-imagem não for permitido, então uma unidade de decodificação é a totalidade da unidade de acesso.
[0028] Uma unidade de decodificação inclui uma ou mais unidades de camada de abstração à rede (NAL). Por exemplo, uma unidade de decodificação inclui uma ou mais unidades NAL de camada de codificação de vídeo (VCL) e as unidades NAL não VCL conexas. Um exemplo de unidade NAL é uma fatia de uma imagem (isto é, os dados encapsulados na unidade NAL incluem os dados de vídeo necessários para decodificar uma fatia de uma imagem). Outro exemplo de unidade NAL é um conjunto de parâmetros. Por exemplo, uma unidade NAL pode incluir dados de vídeo de um conjunto de parâmetros de imagem, um conjunto de parâmetros de sequência e outros exemplos de um conjunto de parâmetros. Ainda como outro exemplo, uma unidade NAL pode incluir informações adicionais, tais como mensagens com informações de aperfeiçoamento suplementares (SEI) utilizadas com a finalidade de determinar os tempos de processamento e remoção das unidades de decodificação de um buffer (um armazenador de imagens codificadas, por exemplo).
[0029] Em alguns exemplos descritos nesta revelação, o codificador de vídeo gera para saída e transmite (sinaliza, por exemplo) em um fluxo de bits codificado um identificador para cada unidade de decodificação dentro da unidade de acesso. Cada identificador (referido como identificador de DU) identifica de maneira única uma unidade de decodificação dentro da unidade de acesso. O decodificador de vídeo recebe do fluxo de bits codificado, os identificadores para unidades de decodificação dentro da unidade de acesso. O decodificador de vídeo determina quais unidades NAL estão associadas quais unidades de decodificação com base nos identificadores de unidades de decodificação.
[0030] Desta maneira, as técnicas descritas nesta revelação podem assegurar que unidades NAL estejam associadas a unidades de decodificação corretas. Por exemplo, é possível que o codificador de vídeo sinalize informações (informações de saída, por exemplo) o número de unidades NAL que cada unidade de decodificação inclui. Em vez de utilizar identificadores de unidades de decodificação, o decodificador de vídeo pode determinar a associação das unidades NAL com unidades de decodificação com base na ordem na qual o decodificador de vídeo excedeu as unidades NAL e as informações sinalizadas que indicam o número de unidades NAL que cada unidade de decodificação inclui.
[0031] Entretanto, neste caso, o ato de assegurar que as unidades NAL estejam associadas às unidades de decodificação corretas não é resiliente em termos de erros. Por exemplo, se uma unidade NAL for perdida durante a transmissão (do codificador de vídeo para o decodificador de vídeo, do codificador de vídeo para um aparelho de armazenamento intermediário ou do aparelho de armazenamento intermediário para o decodificador de vídeo, por exemplo) o decodificador de vídeo pode não ser capaz de determinar quais unidades NAL estão associadas a quais unidade de decodificação.
[0032] Como outro exemplo de problemas possíveis em assegurar que unidades NAL estejam associadas às unidades de decodificação corretas, é possível que o codificador de vídeo sinalize as unidades NAL associadas a uma unidade de decodificação entre dois tipos de mensagem. Por exemplo, o codificador de vídeo pode sinalizar uma primeira ocorrência de um tipo específico de mensagem com informações de aperfeiçoamento suplementar (SEI), seguida de uma ou mais unidades NAL para uma primeira unidade de decodificação seguida de uma segunda ocorrência do tipo específico de mensagem SEI, seguida de uma ou mais unidades NAL de uma segunda unidade de decodificação e assim por diante. O decodificador de vídeo pode determinar que cada unidade NAL recebida depois da primeira ocorrência deste tipo de mensagem SEI e antes da segunda ocorrência deste tipo de mensagens está associada à primeira unidade de decodificação, que cada unidade NAL recebida depois da segunda ocorrência deste tipo de mensagem SEI e antes da terceira ocorrência deste tipo de mensagem SEI está associada à segunda unidade de decodificação.
[0033] Este tipo de mensagem SEI pode incluir informações adicionais pertinentes à temporização apropriada da codificação e da decodificação. Entretanto, uma vez que as posições deste tipo de mensagem SEI indicam quais unidades NAL estão associadas a quais unidade de decodificação, pode não ser possível ter o codificador de vídeo inclua várias cópias deste tipo de mensagem SEI dentro da unidade de decodificação. Portanto, mesmo se uma destas mensagens SEI for perdida na transmissão, o decodificador de vídeo pode não ser capaz de determinar quais unidades NAL estão associadas a quais unidades de decodificação e pode não ser capaz de determinar as informações adicionais portadas pela mensagem SEI perdida.
[0034] Nas técnicas descritas nesta revelação, o codificador de vídeo pode gerar para saída e transmitir informações (com identificadores de unidade de decodificação em uma mensagem SEI ou no cabeçalho de fatia, por exemplo) que indicam quais unidades NAL estão associadas a quais unidades de decodificação. Desta maneira, mesmo se uma unidade NAL for perdida na transmissão, o decodificador de vídeo pode ser capaz de determinar quais unidades NAL estão associadas a quais unidade de decodificação. Além disto, uma vez que o decodificador de vídeo pode não precisar recorrer às posições das mensagens SEI para determinar quais unidades NAL estão associadas a quais unidades de decodificação, o codificador de vídeo pode gerar para saída e transmitir uma ou mais cópias da mensagem SEI na unidade de decodificação. Tais técnicas podem proporcionar uma maneira comparativamente mais resiliente em termos de erros pela qual o decodificador de vídeo determina quais unidades NAL estão associadas as quais unidade de decodificação comparadas a algumas outras técnicas descritas acima.
[0035] Além do mais, em algumas das outras técnicas descritas acima é proibido repetir mensagens SEI de um determinado tipo (um problema que as técnicas descritas nesta revelação podem resolver). Em alguns casos, nestas outras técnicas não só é proibido repetir determinados tipos de mensagem SEI, mas também em geral é restringida a repetição de mensagens na unidade de acesso depois da primeira unidade NAL VCL na unidade de acesso e antes da última unidade NAL na unidade de acesso.
[0036] Por exemplo, em algumas dessas outras técnicas, um decodificador de vídeo determinaria o início de uma unidade de acesso com base na localização das mensagens SEI. Por exemplo, as mensagens SEI seria localizadas no início da unidade de acesso em depois de determinar que o decodificador de vídeo está processando uma mensagem SEI, o decodificador de vídeo determinaria que o decodificador de vídeo está processando uma nova unidade de acesso. Por conseguinte, há uma restrição à inclusão de várias cópias de mensagem SEI dentro da mesma unidade de acesso.
[0037] Em um ambiente propenso a erros, pode ser benéfico incluir cópias das mensagens SEI, de modo que se a mensagem SEI for perdida, outras cópias da mensagem SEI estão disponíveis. Em alguns exemplos, as técnicas proporcionam a repetição de diversos tipos de mensagens SEI dentro da unidade de acesso, o que também proporciona resiliência em termos de erros. Como exemplo, as técnicas podem especificar o seguinte para todas as mensagens SEI: (1) um alcance de aplicação ao qual as informações portadas em uma mensagem SEI se aplicam; (2) no caso de uma mensagem SEI estar presente; e (3) uma restrição aos conteúdos de várias ocorrências de um tipo específico de mensagem SEI.
[0038] Por exemplo, a unidade de acesso pode ser empacotada em uma série de pacotes (um pacote de protocolo de transporte em tempo real (RTP), por exemplo). Cada pacote inclui tipicamente uma ou mais unidades NAL, mas, em alguns casos, um pacote pode incluir um sub-conjunto de uma unidade NAL. Em um ambiente propenso a erros, um ou mais pacotes pode ser perdidos e, se os pacotes perdidos incluíam uma mensagem SEI, a mensagem SEI pode ser perdida. Nas técnicas descritas nesta revelação, o codificador de vídeo pode gerar para saída e transmitir (sinalizar, por exemplo) uma ou mais cópias das mensagens SEI na unidade de acesso. Desta maneira, se um pacote que inclui uma das mensagens SEI for perdido, a mensagem SEI pode ainda esta disponível como uma cópia em um pacote que não foi perdido.
[0039] Como outro exemplo, o codificador de vídeo pode codificar um fluxo de bits de vídeo de várias camadas, tal como na extensão de várias camadas do padrão de codificação de vídeo de alta eficácia (HEVC). As várias camadas incluem uma camada base e uma ou mais camadas não base. Uma camada não base pode ser uma camada espacial ou de operação de qualidade, a textura de uma vista diferente, a profundidade de uma vista diferente e outros exemplos que tais. O codificador de vídeo pode transportar as diferentes camadas em diferentes canais (como, por exemplo, utilizando transmissão em várias seções (MST) igualmente definida no IETF RFC 6190 (publicamente disponível em http://tools.ietf.org/rfc/rfc6190.txt). Nas técnicas descritas nesta revelação, o codificador de vídeo pode incluir uma unidade NAL SEI dentro de duas unidades NAL VCL dentro de uma unidade de acesso, onde a unidade NAL SEI inclui as mensagens SEI, e depois da primeira unidade NAL VCL da unidade de acesso. Em outras palavras, as técnicas descritas nesta revelação para incluir a mensagem SEI depois da primeira unidade NAL VCL em uma unidade de acesso são também aplicáveis a exemplos de transmissão em várias seções.
[0040] Nas técnicas descritas nesta revelação, o decodificador de vídeo não precisa necessariamente recorrer à localização de mensagem SEI pode determinar que o decodificador de vídeo está processando uma nova unidade de acesso. Por exemplo, o decodificador de vídeo pode recorrer a algumas outras informações para determinar que uma nova unidade de acesso está sendo processada. Por conseguinte, nas técnicas descritas nesta revelação, o codificador de vídeo pode gerar para saída e transmitir uma mensagem SEI na unidade de acesso e uma ou mais cópias da mensagem SEI na unidade de acesso, e o decodificador de vídeo pode receber a mensagem SEI e um ou mais cópias da mensagem SEI. Uma vez que o decodificador de vídeo não precisa recorrer à mensagem SEI para determinar quando uma nova unidade de acesso está sendo processada, o decodificador de vídeo pode ser configurado para processar várias cópias de mensagens SEI dentro da mesma unidade de acesso sem determinar que uma nova unidade de acesso diferente está sendo processada.
[0041] A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo 10 exemplar que pode utilizar as técnicas descritas nesta revelação. Conforme mostrado na Figura 1, o sistema 10 inclui um aparelho de origem 12, que gera dados de vídeo codificados a serem decodificados posteriormente por um aparelho de destino 14. O aparelho de origem 12 e aparelho de destino 14 podem compreender qualquer um de uma ampla faixa de aparelhos, que incluem computadores de mesa, computadores notebook (instruções laptop), computadores tablet, conversores set-top-box, aparelhos telefônicos e os chamados telefones “inteligentes”, os chamados dispositivos “inteligentes”, televisões, câmeras, aparelhos de exibição, tocadores de meios digitais, consoles para jogos de vídeo, aparelhos de fluxo contínuo de vídeo ou semelhantes. Em alguns casos, o aparelho de origem 12 e o aparelho de destino 14 podem ser equipados para comunicação sem fio.
[0042] O aparelho de destino 14 pode receber o dados de vídeo codificados a serem decodificados por meio de um link 16. O link pode compreender qualquer tipo de meio ou aparelhos capaz de mover os dados de vídeo codificados do aparelho de origem 12 até o aparelho de destino 14. Em um exemplo, o link 16 pode compreender um meio de comunicação para permitir que o aparelho de origem 12 transmita dados de vídeo codificados diretamente para o aparelho de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o aparelho de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou cabeado, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área estendida ou uma rede global como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do aparelho de origem 12 com o aparelho de destino 14.
[0043] Alternativamente, os dados codificados podem ser transmitidos da interface de saída 22 para um aparelho de armazenamento 32. Da mesma maneira, os dados codificados podem ser acessados do aparelho de armazenamento 32 por uma interface de entrada. O aparelho de armazenamento 32 pode incluir qualquer um de diverso meios de armazenamento de dados distribuídos ou acessados localmente, tais como uma unidade rígida, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou quaisquer outros meios de armazenamento digital adequados para armazenar dados de vídeo codificados. Em outro exemplo, o aparelho de armazenamento 32 pode corresponder a um servidor de arquivos ou outro aparelho de armazenamento intermediário que possa guardar o vídeo codificado gerado pelo aparelho de origem 12. O aparelho de destino 14 pode acessar os dados de vídeo armazenados do aparelho de armazenamento 32 por meio de fluxo contínuo ou download. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o aparelho de destino 14. Servidores de arquivos exemplares incluem um servidor da Web (para um site da Web, por exemplo), um servidor FTP, aparelhos de armazenamento anexados à rede (NAS) ou uma utilizando de disco local. O aparelho de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão com dados padrão, inclusive uma conexão com a Internet. Isto pode incluir um canal sem fio (uma conexão WiFi, por exemplo), uma conexão cabeada (como, por exemplo, DSL, modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar os dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do aparelho de armazenamento 32 pode ser uma transmissão em fluxo contínuo, uma transmissão de download ou uma combinação de ambas.
[0044] As técnicas desta revelação não estão limitadas necessariamente a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte a qualquer um de diversos aplicativos multimídia, tais como broadcasts de televisão através do ar, transmissões de televisão a cavo, transmissões de televisão por satélite, transmissões de vídeo de fluxo contínuo por meio da Internet, por exemplo, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outros aplicativos. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suporte a aplicativos tais como fluxo contínuo de vídeo, repetição de vídeo, execução de broadcasts de vídeo e/ou telefonia com vídeo.
[0045] No exemplo da Figura 1, o aparelho de origem 12 inclui uma fonte de vídeo 18, um 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 aparelho de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal como um aparelho de captação de vídeo, como, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente captado, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdos de vídeo e/ou um sistema de gráficos de computador para gerar dados gráficos de computador como a fonte de vídeo ou uma combinação de tais fontes. Como exemplo, se a fonte de vídeo for uma câmera de vídeo, o aparelho de origem 12 e o aparelho de destino 14 podem formar os chamados telefones com câmara ou telefones com vídeo. Entretanto, as técnicas descritas nesta revelação podem ser aplicadas à codificação de vídeo em geral e podem ser aplicadas a aplicativos sem fio e/ou cabeados.
[0046] O vídeo captado, pré-captado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos diretamente para o aparelho de destino 14 por meio da interface de saída 22 do aparelho de origem 12. Os dados de vídeo codificados podem também (ou alternativamente) ser armazenados no aparelho de armazenamento 32 para acesso posterior pelo aparelho de destino 14 ou por outros aparelhos, para decodificação e/ou repetição.
[0047] O aparelho de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um aparelho de exibição 31. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do aparelho de destino 14 recebe os dados de vídeo codificados através do link 16. Os dados de vídeo codificados comunicados através do link 16, ou apresentados no aparelho de armazenamento 32, podem incluir diversos elementos de sintaxe gerados pelo codificador de vídeo 20 para utilização por um decodificador de vídeo, tal como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento ou armazenado em um servidor de arquivos.
[0048] O aparelho de exibição 31 pode ser integrado, ou externo ao, aparelho de destino 14. Em alguns exemplos, o aparelho de destino 14 pode incluir um aparelho de exibição integrado e ser também configurado para formar interface com um aparelho de exibição externo. Em outros exemplos, o aparelho de destino pode ser um aparelho de exibição. Em geral, o aparelho de exibição 31 exibe os dados de vídeo codificados ao usuário e pode compreender qualquer um de diversos aparelhos de exibição, tais como uma tela de cristal líquido (LCD), uma tela de plasma, um monitor de diodo emissor de luz orgânico (OLED) ou outro tipo de aparelho de exibição.
[0049] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser formados como microprocessadores ou circuitos integrados (ICs) individuais ou podem ser parte de microprocessadores ou ICs maiores. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser parte de um aparelho de comunicação sem fio.
[0050] O codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com um padrão de compactação de vídeo. Exemplos dos padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPG-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 de codificação escalonável de vídeo (SVC) e codificação de vídeo de várias vistas (MVC).
[0051] Além disso, há um novo padrões de codificação vídeo de acordo com o qual o codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar, a saber, o padrão de Codificação de Vídeo de Alta Eficácia (HEVC) que é desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo ITU-T (VCEG) e do Grupo de Especialistas em Imagens em Movimento ISO/TEC (MPEG). O codificador de vídeo 20 e o decodificador de vídeo 30 podem conformar-se ao Modelo de Teste HEVC (HM). Um rascunho recente do padrão HEVC, referido como “Rascunho Operacional HEVC 8” ou “WD8”, é descrito no documento JCTVC-H1003, Bross et alii, “Rascunho de Especificação de Texto de Codificação de Vídeo de Alta Eficácia “HEVC 8”, Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do ITU-T SG16 WP 3 e ISO/IEC JTC1/SC2 9/WG11, 10° Encontro: Estocolmo, Suécia, 11-20 de julho de 2012, o qual, datado de 2 de abril de 2013 pode ser baixado de http://phenix.int- evry.fr/jct/doc end user/documents/10 Stockholm/wg11/JCTVC- J1003-v8.zip, cujo conteúdo inteiro é aqui incorporado à guisa de referência. Um rascunho operacional mais recente da HEVC e referido como “Rascunho Operacional HEVC 9” ou “DW9” apresentado daqui por diante, está disponível, datado de 2 de abril de 2013, de http://phenix.int- evry.fr/jct/doc end user/documents/11 Shangai/wg11/JCTVC- K1003-v10.zip.
[0052] Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem funcionar de acordo com outros padrões patenteados ou industriais, tais como o padrão ITU-T H.264, alternativamente referido como MPEG-4 Parte 10, Codificação Avançada de Vídeo (AVC) ou extensões de tais padrões. As técnicas desta revelação, contudo, não estão limitadas a qualquer padrão de codificação específico. Outros exemplos de padrões de compactação de vídeo incluem o MPEG-2 e o ITU-T H.263 assim como formatos abertos tais como VP8.
[0053] As técnicas desta revelação não estão limitadas a qualquer padrão de codificação específico. Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 não precisam necessariamente conforma-se a armação de lançadeira padrão de codificação de vídeo específico. Além do mais, mesmo se as técnicas descritas nesta revelação não tiverem que conformar-se necessariamente a um padrão específico, as técnicas descritas nesta revelação podem também ajudar na eficácia de codificação com relação aos diversos padrões. Além disto, as técnicas descritas nesta revelação podem ser partes de padrões futuros. Para facilitar o entendimento, as técnicas são descritas com relação ao padrão HEVC em desenvolvimento, mas as técnicas não estão limitadas ao padrão HEVC e podem ser estendidas a outros padrões de codificação de vídeo ou outras técnicas de codificação de vídeo que não estão definidas por um padrão específico.
[0054] Embora não mostrado na Figura 1, sob alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados com um codificador e decodificador de áudio e podem incluir unidades MUX-DEMUX apropriadas ou outro hardware e software, para processar a codificação tanto de áudio quanto de vídeo em um fluxo de dados comum ou em um fluxo de dados separado. Se aplicável, as unidades MUX-DEMUX podem conformar-se ao protocolo de multiplexador ITU-H.223 ou a outros protocolos tais como o protocolo de datagrama de usuário (UDP).
[0055] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um ser implementados como qualquer um de diversos circuitos de codificador adequados, tais como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados específicos de aplicativo (ASICs), arranjos de portas programáveis no campo (FPGAs), lógica discreta individuais ou parte de um circuito integrado (IC), software, hardware, firmware ou qualquer combinação deles. Quando as técnicas são implementadas parcialmente em software, um aparelho pode armazenar instruções para o software em um meio de armazenamento legível por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta revelação. Em outras palavras, quando implementado parcialmente em software, o software é executado em componentes de hardware subjacentes que fazem com que os componentes de hardware implementem determinadas funções. Cada um do codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, um ou outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo aparelho.
[0056] Por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser incluídos em um aparelho sem fio tal como o aparelho de origem 12 e aparelho de destino 14, respectivamente. Como outro exemplo, um aparelho pode incluir um microprocessador ou um circuito integrado. Em alguns exemplos, um aparelho tal como um microprocessador ou circuito integrado, pode incluir o decodificador de vídeo 30 e outro aparelho pode incluir o codificador de vídeo 20.
[0057] O JCT-VC está trabalhando no desenvolvimento de um padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um aparelho de codificação de vídeo referido como Modelo de Teste HEVC (HM). O HM presume várias capacidades adicionais de dispositivos de aparelhos de codificação de vídeo relativas a aparelhos existentes de acordo, como por exemplo, o ITU-T H.264/AVC.
[0058] Em geral, o modelo operacional do HM descreve que um quadro ou imagem de vídeo pode ser dividida em uma sequência de blocos de árvore ou unidades de codificação maiores (LCUs) que inclui amostras tanto luma quanto croma. Um bloco de árvore pode servir a algumas finalidades semelhantes de um macrobloco do padrão H.264, embora um bloco de árvore tenha muitas diferenças com relação a um macrobloco. Uma fatia inclui vários blocos de árvore consecutivos em ordem de codificação. Um quadro ou imagem de vídeo pode ser particionada em uma ou mais fatias. Cada bloco de árvore pode ser dividido em unidades de codificação (CUs) de acordo com uma transformação quadtree. Por exemplo, um bloco de árvore como um nó-raiz da transformação quad-tree pode ser dividido em quatro nós- filhos e cada nó-filho pode por sua vez ser uma nó-pai e ser dividido em outros quatro nós-filhos. Um nó-filho não dividido final como um nó-folha da transformação quad-tree, compreende um nó de codificação, instruções um bloco de vídeo codificado. Dados de sintaxe associados a um fluxo de bits codificado podem definir o número máximo de vezes em que um bloco de árvore pode ser dividido e podem definir também o tamanho mínimo dos nós de codificação.
[0059] 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. O tamanho da CU corresponde ao tamanho do nó de codificação e deve ser de conformação quadrada. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco de árvore com um máximo de 64x64 pixels ou mais. Cada CU pode conter um ou mais PUs e uma ou maus TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em um ou mais PUs. Os modos de particionamento podem diferir entre se a CU é saltada ou codificada no modo direto, codificada no modo de intra-predição ou codificada no modo de inter-predição. As PUs podem ser particionadas para serem de conformação não quadrada. Os dados de sintaxe associados a uma CU podem descrever também, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma conformação quad-tree. Uma TU pode ser de conformação quadrada ou não quadrada.
[0060] O padrão HEVC proporciona transformações de acordo com as TUs, que podem ser diferentes para CUs diferentes. As TUs são tipicamente dimensionadas com base no tamanho das PUs dentro de uma dada CU definida para uma LCU particionada, embora este possa não ser sempre o caso. As TUS são tipicamente do mesmo tamanho ou menores que as PUs. Em alguns exemplos, amostras residuais que correspondem a uma CU podem ser subdivididas em unidades menores utilizando-se uma estrutura de transformação quadtree conhecida como “transformação quad-tree residual” (RQT). Os nós-folha da RQT podem ser referidos como unidades de transformada (TU). Os valores de diferença de pixel associado às TUs podem ser transformados de modo a se produzirem coeficientes de transformada, que podem ser quantificados.
[0061] Em geral, uma PU inclui dados relacionados com o processo de predição. Por exemplo, quando a PU é codificada no intra-modo (isto é, codificada por intra-predição), a PU pode incluir dados que descrevem um modo de inter-predição para a PU. Como outro exemplo, quando a PU é codificada no inter-modo (isto é, codificada por inter-predição), 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 (precisão de um quarto de pixel ou precisão de um oitavo de pixel, por exemplo), uma imagem de referência que o vetor de movimento indica e/ou uma lista de imagens de movimento (por exemplo, RefPic1List0 ou RefPicList1) para o vetor de movimento.
[0062] Em geral, uma TU é utilizada em processos de transformada e quantificação. Uma dada CU que tem uma ou mais PUs pode incluir também uma ou mais unidades de transformada (TUs). Em seguida à predição, o codificador de vídeo 20 pode calcular valores residuais que correspondem à PU. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantificados e varridos utilizando-se a TUs de modo a se produzirem coeficientes de transformada serializados para codificação por entropia. Esta revelação utiliza tipicamente o termo “bloco de vídeo” para referir- se a um nó de codificação de uma CU. Em alguns casos específicos, esta revelação pode utilizar também o termo “bloco de vídeo” para referir-se a bloco de árvore, isto é, uma LCU ou uma CU que inclui um nó de codificação e PUs e TUs.
[0063] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode inclui dados de sintaxe no cabeçalho do GOP, no cabeçalho de uma ou mais das imagens ou em outro lugar, que descrevem o número de 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 funciona tipicamente em blocos de vídeo dentro de fatias de vídeo individuais de modo a codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variáveis e podem diferir no tamanho de acordo com um padrão de codificação especificado.
[0064] Como exemplo, o HM suporta predição em diversos tamanhos de PU. Supondo-se que o tamanho de uma CU específica seja 2Nx2N, o HM suporta intra-predição em tamanhos de PU de 2Nx2N ou NxN e inter-predição em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N ou NxN. O HM suporta também particionamento assimétrico para inter-prediçã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 que corresponde à partição de 25% é indicada por um N seguido por uma indicação de “Para Cima”, “Para baixo”, “Esquerdo” ou “Direito”. Assim, por exemplo, “2NxnU” refere-se a uma CU de 2Nx2N que é particionada em sentido horizontal com uma PU de 2Nx0,5N no topo e uma PU de 2Nx1,5N na base.
[0065] Nesta revelação, “NxN” e “N por N” podem ser utilizados de maneira intercambiável para referir-se às dimensões de pixel de um bloco de vídeo em termos de dimensões vertical e horizontal, como, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels na direção vertical (y = 16) e 16 pixels na direção horizontal (x = 16). Desta maneira, um bloco de NxN tem geralmente N pixels na direção vertical e N pixels na direção horizontal onde N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser dispostos em fileiras e colunas. Além do mais, os blocos não precisam necessariamente ter o mesmo número de pixels na direção horizontal que têm na direção vertical. Por exemplo, os blocos podem compreender NxM onde M não é necessariamente igual a N.
[0066] Após a codificação intra-preditiva ou inter- preditiva utilizando-se as 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 referido como domínio de pixel) e as Tus podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, como, por exemplo, uma transformada de co-seno discreta (DCT), uma transformada de número inteiro, uma transformada de wavelet ou uma transformada conceptualmente semelhante aos dados de vídeo residuais. Os dados residuais podem corresponder à diferenças de pixel entre os pixels da imagem não codificada e os valores de predição que correspondem às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU e em seguida transformar as TUs de modo a produzir coeficientes de transformada para a CU.
[0067] Em seguida a quaisquer transformadas para produzir coeficientes de transformada, o codificador de vídeo 20 pode efetuar a quantificação do coeficientes de transformada. A quantificação refere-se geralmente a um processo no qual coeficientes de transformada são quantificados para a possível redução da quantidade de dados utilizados para representar os coeficientes, obtendo- se compactação adicional. O processo de quantificação pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado até um valor de m bits durante a quantificação, onde n é maior que m.
[0068] Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para varrer os coeficientes de transformada quantificados de modo a produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode efetuar uma varredura adaptativa ou pode selecionar uma varredura a partir de uma série de varreduras possíveis. Depois de varrer os coeficientes de transformada quantificados de modo a formar um vetor unidimensional, o codificador de vídeo 20 pode codificar por entropia o vetor unidimensional, como, por exemplo, de acordo com a codificação de comprimento variável adaptativa ao contexto (CAVLC), a codificação aritmética binária adaptativa ao contexto (CABAC), a codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SEBAC), a codificação por Entropia com Particionamento de Intervalos de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. O codificador de vídeo 20 pode codificar por entropia também os elementos de sintaxe associados aos dados de vídeo codificados para utilização pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0069] Para efetuar 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 referir-se, por exemplo, a se os valores vizinhos do símbolo são não zero ou não. Para efetuar CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. Palavras de código na VLC podem ser construídas de modo que códigos relativamente mais curtos correspondam a símbolos mais prováveis, enquanto códigos mais compridos correspondem a símbolos menos prováveis. Desta maneira, a utilização da VLC pode levar a uma economia de bits em comparação, por exemplo, com a utilização de palavras de código de igual comprimento para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada no contexto atribuído ao símbolo.
[0070] O codificador de vídeo 20 gera dados de vídeo que definem a maneira pela qual as imagens serão reconstruídas pelo decodificador de vídeo 30, codifica os dados de vídeo (gera para saída, por exemplo) e transmite (sinaliza, por exemplo) os dados de vídeo para o decodificador de vídeo 30 em um fluxo de bits codificado. O decodificador de vídeo 30 recebe os dados de vídeo codificados do fluxo de bits codificado, decodifica os dados de vídeo e processa os dados de vídeo de modo a reconstruir as imagens. Em geral, o decodificador de vídeo 30 implementa o correspondente às técnicas que o codificador de vídeo 20 implementou para codificar e gerar os dados de vídeo.
[0071] Por exemplo, o decodificador de vídeo 30 decodifica os dados de vídeo utilizando uma técnica correspondente à maneira pela qual o codificador de vídeo 20 codificou os dados de vídeo. Além disto, o decodificador de vídeo 30 decodifica de maneira intra-preditiva ou de maneira inter-preditiva as imagens de modo a se reconstruir as imagens. Por exemplo, o decodificador de vídeo 30 processa os dados de vídeo de modo a determinar uma imagem decodifica anteriormente que é utilizada para decodificação intra-preditiva e para determinar o resíduo entre a imagem decodificada anteriormente e a imagem atual para decodificação inter-preditiva. O decodificador de vídeo 30 adiciona o resíduo à imagem decodificada anteriormente de modo a se reconstruir a imagem atual. Da mesma maneira, o decodificador de vídeo 30 processa os dados de vídeo de modo a determinar um bloco decodificado anteriormente dentro da imagem atual e de modo a determinar o resíduo entre o bloco decodificado anteriormente dentro da imagem atual e o bloco atual dentro da imagem atual para decodificação intra-preditiva. O decodificador de vídeo 30 adiciona o resíduo ao bloco decodificado anteriormente de modo a se reconstruir o bloco atual da imagem atual.
[0072] Dessa maneira, o codificador de vídeo 20 transmite dados de vídeo que o decodificador de vídeo 30 utiliza para reconstruir as imagens. Em alguns exemplos, o codificador de vídeo 20 transmite os dados de vídeo em unidades de acesso. Uma unidade de acesso é unidade conceptual que inclui os dados de vídeo para um ou mais imagens dentro da mesma ocorrência de tempo. Na codificação escalonável de vídeo, por exemplo, o cv2gera dados de vídeo em várias camadas para uma imagem. Neste exemplo, a unidade de acesso para a imagem inclui dados de vídeo para todas as várias camadas.
[0073] Como outro exemplo, na codificador de vídeo de várias vistas, o codificador de vídeo gera dados de vídeo para várias vistas, onde cada vista inclui várias imagens. Na codificação de vídeo de várias vistas uma imagem em cada vista é exibida na mesma ocorrência de tempo. Por exemplo, a primeira imagem na primeira vista é exibida na mesma ocorrência de tempo da primeira imagem na segunda vista, da primeira imagem na terceira vista e assim por diante. Neste exemplo, uma unidade de acesso inclui os dados de vídeo para todas as imagens que são exibidas na mesma ocorrência de tempo. Em exemplos nos quais a codificação escalonável de vídeo ou a codificação de vídeo de várias vistas não são utilizadas, uma unidade de acesso inclui os dados de vídeo para uma imagem.
[0074] Por conseguinte, em geral, a codificação e o processamento de uma unidade de acesso pelo decodificador de vídeo 30 resultam em uma ou mais imagens. Se a decodificação e o processamento de uma unidade de acesso pelo decodificador de vídeo 30 resultarem em uma imagem, então os dados de vídeo da unidade de acesso podem incluir informações para todas as camadas da imagem se a codificação escalonável de vídeo for utilizada ou incluir informações para apenas uma camada se a codificação escalonável de vídeo não for utilizada. Se a decodificação e o processamento de uma unidade de acesso pelo decodificador de vídeo 30 resultarem em várias imagens, os dados de vídeo da unidade de acesso podem incluir informações para todas as imagens na mesma ocorrência de tempo para a codificação de vídeo de várias vistas.
[0075] Uma unidade de acesso inclui um ou mais unidades de decodificação. Por exemplo, conforme descrito acima, a unidade de acesso pode incluir dados de vídeo para uma imagem inteira. Se o funcionamento ao nível de sub-imagem não for permitido, então a unidade de acesso inclui apenas uma unidade de decodificação. Se o funcionamento ao nível de sub-imagem for permitido, então a unidade de acesso inclui uma ou mais unidades de decodificação.
[0076] Por exemplo, o decodificador de vídeo 30 inclui um armazenador de imagens codificadas (CPB) e um armazenador de imagens decodificadas (DPB). O CPB armazena dados de vídeo recebidos do fluxo de bits codificado e o DPB armazena imagens reconstruídas. Conforme descrito mais detalhadamente o codificador de vídeo 20 gera e transmite informações que descrevem o comportamento do CPB, tais como informações que indicam quando as unidades de decodificação ou unidades de acesso serão removidas do CPB. Em alguns exemplos, o codificador de vídeo 20 codifica e transmite um elemento de sintaxe (um indicador referido como SubPicCpbFlag, por exemplo) que indica se o funcionamento ao nível de sub-imagem para uma unidade de acesso é permitido (para cada uma da unidades de decodificação dentro da unidade de acesso, por exemplo).
[0077] Se o decodificador de vídeo 30 determinar que SubPicCpbFlag é 0, então o decodificador de vídeo 30 pode determinar que o funcionamento da unidade de acesso não é permitido ao nível de sub-imagem e pode determinar também que a unidade de acesso inclui uma unidade de decodificação. Em outras palavras, quando SubPicCpbFlag é 0 a unidade de decodificação e a unidade de acesso são as mesmas. Se o decodificador de vídeo 30 determinar que SubPicCpbFlag é 1, então o decodificador de vídeo 30 pode determinar que o funcionamento da unidade de acesso é permitido ao nível de sub-imagem e pode determinar também que a unidade de acesso inclui uma ou mais unidade de decodificação.
[0078] Uma unidade de decodificação inclui uma ou mais unidades de camadas de abstração de rede (NAL). Uma unidade NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados de vídeo a seguir e bytes que contêm esses dados de vídeo. Exemplos de unidades NAL inclui uma unidade NAL de camada de codificação de vídeo (VCL) e uma unidade NAL não VCL. Como exemplo, as unidades NAL VCL podem incluir dados de vídeo para fatias dentro de uma imagem (como, por exemplo, informações tais como índices de listas de imagens de referência, vetores de movimento, modos de intra-predição, etc. necessárias para predizer as fatias) ou unidades NAL de um tipo de unidade NAL específico. Como exemplo, unidades NAL não VCL podem incluir dados de vídeo tais como informações de um conjunto de parâmetros (como, por exemplo, conjunto de parâmetros de imagem, conjunto de parâmetros de sequência, etc.) ou informações suplementares para ajudar na codificação de vídeo ou na decodificação de vídeo.
[0079] Nesta revelação, uma unidade de decodificação que inclui uma ou mais unidades NAL pode ser considerada como uma ou mais unidades NAL que estão associadas a ou atribuídas as unidade de decodificação. Em outras palavras, uma ou mais unidades NAL que estão associadas ou atribuídas a uma unidade de decodificação podem ser consideradas idênticas a uma unidade de decodificação que inclui esta unidade ou unidades NAL.
[0080] Por conseguinte, as técnicas descritas nesta revelação podem utilizar os termos seguintes com as definições seguintes.
[0081] unidade de decodificação: Uma unidade de acesso quando SubPicCpbFlag é igual a 0 ou um sub-conjunto de uma unidade de acesso quando SubPicCpbFlag é igual a 1, que consiste em uma ou mais unidades NAL VCL em uma unidade de acesso e nas unidades NAL não VCL conexas.
[0082] unidade NAL não VCL conexa: Uma unidade NAL não VCL conexa de uma unidade NAL VCL é uma das unidades NAL não VCL para as quais a Unidade NAL VCL é a sua unidade NAL VCL conexa. Em outras palavras, uma unidade NAL não VCL está associada a unidade NAL VCL e essa unidade NAL VCL pode ser considerada como estando associada à unidade NAL não VCL (a associação entre a unidade NAL VCL e a unidade NAL não VCL funciona de ambas as maneiras, por exemplo).
[0083] unidade NAL VCL conexa: a unidade NAL VCL precedente mais recente em ordem de decodificação para unidades NAL não VCL com nal_unit_type é igual a UNSPEC0, EOS_NUT, EOB_NUT, FD_NUT, na faixa de RSV_NVCL44..RSV_NVCL47, ou na faixa de UNSPEC48: UNSPEC63, ou a primeira unidade NAL VCL subsequente em ordem de decodificação para unidades NAL não VCL com nal_unit_type é igual a outros valores.
[0084] Conforme descrito acima, em alguns exemplos, o codificador de vídeo 20 codifica e transmite unidades NAL que incluem informações suplementares para ajudar na codificação de vídeo ou decodificação de vídeo. Estas informações suplementares não são necessárias para que o codificador de vídeo 20 e o decodificador de vídeo 30 se conformem aos requisitos de um padrão de codificação de vídeo como o padrão de codificação de vídeo HEVC. Por conseguinte, a inclusão das informações suplementares é opcional, mas pode ser preferível uma vez que tais informações ajudam a aumentar a eficácia da codificação de vídeo e da decodificação de vídeo.
[0085] Um exemplo de unidades NAL que incluem tais informações suplementares são as unidades NAL de informações de aperfeiçoamento suplementares (SEI). A utilização de unidades NAL SEI permite que o codificador de vídeo 20 inclua tais metadados no fluxo de bits codificado que não é necessário para a decodificação correta da imagens de saída, mas podem ser utilizadas para diversos outros fins, tais como temporização de saída de imagem, exibição, assim como detecção e ocultação de perdas (para ajudar na codificação e decodificação, por exemplo). O codificador de vídeo 20 pode ser configurado para incluir qualquer número de unidades NAL SEI em uma unidade de acesso e cada unidade NAL SEI pode incluir uma ou mais mensagens SEI.
[0086] O padrão HEVC inclui a sintaxe e a semântica para várias mensagens SEI, mas o processamento das mensagens SEI não é especificado porque estas mensagens SEI geralmente não afetam o processo de decodificação normativo. Uma das razões para incluir mensagens SEI no padrão HEVC é a de assegurar que diversos tipos de decodificador de vídeo (um exemplo dos quais é o decodificador de vídeo 30) interpretem as mensagens SEI de maneira idêntica em sistemas diferentes que se conformam ao padrão HEVC. Por conseguinte, especificações ou sistemas que se conformam ao padrão HEVC podem exigir codificadores de vídeo (tais como o codificador de vídeo 20) para gerar determinadas mensagens SEI ou podem definir o processamento específico de tipos específicos de mensagens SEI recebidas por decodificadores de vídeo (tais como o decodificador de vídeo 30).
[0087] A Tabela 1enumera as mensagens SEI especificadas na HEVC e descreve de maneira resumida a sua finalidade. Deve ficar entendido que as mensagens SEI são descritas com relação ao padrão HEVC apenas para fins de exemplificação. Outros padrões de codificação de vídeo, que incluem padrões de codificação de vídeo patenteados, podem incluir mensagens SEI semelhantes ou diferentes das descritas na Tabela 1 ou senão descritas em seguida. Além disto, mesmo as técnicas de codificação de vídeo baseadas em não padrões podem recorrer a mensagens SEI semelhantes ou diferentes das descritas na Tabela 1 ou senão descritas em seguida. As técnicas descritas nesta revelação podem ser aplicadas a todos os casos que tais.
[0088] Em geral, as mensagens SEI podem ser consideradas como definindo características dos dados de vídeo. Por exemplo, as mensagens SEI de período de armazenamento e temporização de imagens definem características de dados de vídeo tais como retardos iniciais e tempo de saída de imagens de remoção de imagens/sub-imagens. Como exemplos adicionais, a finalidade das mensagens SEI na Tabela 1 apresenta exemplos de características dos dados de vídeo que são definidas por mensagens SEI correspondentes. Tabela 1 Vista panorâmica de Mensagens SEI
Figure img0001
Figure img0002
Figure img0003
[0089] Em alguns exemplos, o codificador de vídeo 20 pode ser configurado para limitar onde as mensagens SEI dentro da unidade de acesso. Por exemplo, entre as mensagens SEI a mensagem SEI de temporização de sub-imagens pode seguir-se, em ordem de decodificação, à primeira unidade NAL VCL na unidade de acesso que contém a mensagem SEI, mas pode não seguir-se em ordem de decodificação à última unidade NAL VCL na unidade de acesso. Todas as outras mensagens SEI podem preceder a primeira unidade NAL VCL na unidade de acesso quando nuh_reserved_zero_6bits é igual a 0 para a unidade NAL SEI que contém a mensagem SEI.
[0090] O elemento de sintaxe nuh_reserved_zero_6bits identifica uma camada na codificação escalonável de vídeo ou uma vista na codificação de vídeo de várias vistas. Por exemplo, o elemento de sintaxe nuh_reserved_zero_6bits é 0 para a camada base no codificação escalonável de vídeo ou 0 para a vista base na codificação de vídeo de várias vistas. O elemento de sintaxe nuh_reserved_zero_6bits para as outras camadas ou vistas é um valor de número inteiro positivo utilizado para identificar a camada ou vista. Nos casos em que a codificação escalonável de vídeo ou codificação de vídeo de várias vistas não é utilizada, supõe-se que nuh_reserved_zero_6bits seja 0.
[0091] Conforme indicado na Tabela 1, diversas mensagens SEI, tais como a mensagem SEI de período de armazenamento, a mensagem SEI de temporização de imagens e a mensagem SEI de temporização de sub-imagens, definem retardos e tempos de remoção em um decodificador de referências hipotéticas (HRD). O HRD é um método utilizado para definir as características do armazenador de imagens codificadas (CPB) e o armazenador de imagens decodificadas (DPB). Conforme descrito acima, o CPB armazena dados de vídeo do fluxo de bits tais como as imagens codificadas, antes da decodificação, e o DPB armazena dados de vídeo decodificados que incluem imagens decodificadas.
[0092] Em geral, cada padrão de codificação de vídeo inclui uma especificação para um modelo de armazenamento de vídeo. Na AVC e na HEVC o modelo de armazenamento é referido como decodificador de referências hipotéticas (HRD) que inclui um modelo de armazenamento tanto do armazenador de imagens codificadas (CPB) quanto do armazenador de imagens decodificadas (DPB), e os comportamentos do CPB e do DPB são especificados matematicamente. O HRD pode impor diretamente restrições a temporização, tamanhos de armazenador e taxa de bits diferentes e impor indiretamente restrições a características e estatísticas do fluxo de bits. Um conjunto completo de parâmetros de HRD inclui cinco parâmetros básico: retardo de remoção de CPB inicial, tamanho do CPB, taxa de bits, retardo de saída DPB inicial e tamanho do DPB.
[0093] Na AVC e na HEVC, a conformação do fluxo de bits e a conformação do decodificador são especificadas como partes da especificação do HRD. Deve ficar entendido que, embora o HRD seja rotulado como um tipo de decodificador, o HRD é tipicamente necessário no lado do codificador de vídeo 20 para garantir a conformação do fluxo de bits. O HRD pode não ser necessário no lado do decodificador de vídeo 30. Por exemplo, o codificador de vídeo 20 pode sinalizar as informações de temporização e outras características do CPB e do DPB como mensagem SEI e o decodificador de vídeo 30 pode determinar a temporização e as característica do CPB e do DPB com base nas mensagens SEI sinalizadas. Por exemplo, as mensagens SEI podem especificar dois tipos de conformação do fluxo de bits ou HRD, a saber, o Tipo I e o Tipo II. Além disto, as mensagens SEI podem especificar dois tipos de conformação de decodificador de vídeo 30: conformação do decodificador à temporização de saída e conformação do decodificador à ordem de saída.
[0094] Nas técnicas descritas nesta revelação o codificador de vídeo 20 pode especificar se o CPB do decodificador de vídeo 30 pode funcionar ou ao nível de unidade de acesso ou ao nível de sub-unidade de acesso (também referido como nível de sub-imagem). Conforme descrito acima, o codificador de vídeo 20 codifica e transmite (sinaliza, por exemplo) um elemento de sintaxe (o SubPicCpbFlag, por exemplo). Se o valor de SubPicCpbFlag for 0, então o funcionamento do CPB ao nível de sub-imagem não é permitido. Se o valor de SubPicCpbFlag for 1, então o funcionamento do CPB ao nível de sub-imagem é permitido.
[0095] As mensagens SEI podem fornecer informações referentes à unidades de decodificação dentro de uma unidade de acesso. Por exemplo, a mensagem SEI de temporização de imagens (mensagem SEI PT) inclui os elementos de sintaxe num_nalus_in_du_minus1[i], transmitidos pelo codificador de vídeo 20, para determinar quais unidades NAL estão associadas/atribuídas a quais unidades de decodificação. Como exemplo ilustrativo, suponha-se que os elementos de sintaxe num_nalus_in_du_minus1[i] indiquem que a primeira unidade de decodificação de uma unidade de acesso, está associada a três unidades NAL, a segunda unidade de decodificação, da unidade de acesso, está associada a duas unidades NAL e a terceira unidade de decodificação, da unidade de acesso está associada a duas unidades NAL.
[0097] Neste exemplo, o decodificador de vídeo 30 determina quais unidades NAL estão associadas a quais unidades de decodificação com base na ordem na qual o CPB recebe as unidades NAL. Por exemplo, o decodificador de vídeo 30 determina que as três primeiras unidades NAL que o CPB recebe estão associadas à primeira unidade de decodificação, que as duas unidades NAL seguintes que o CPB recebe estão associadas à segunda unidade de decodificação, e que as duas unidades NAL seguintes que o CPB estão associadas à terceira unidade de decodificação.
[0098] Entretanto, o ato de determinar, pelo decodificador de vídeo 30, quais unidades NAL estão associadas a quais unidades de decodificação com base em elementos de sintaxe que indicam o número de unidades NAL que estão associadas a cada unidade de decodificação não é resiliente em termos de erros. Em um link de comunicação propenso a erros ou com perdas, uma ou mais das unidades NAL podem ser perdidas. Por exemplo, se o link 16 for propenso a erros ou tiver perdas então uma ou mais das unidades NAL pode ser perdida. Como outro exemplo, se o link da interface de saída 22 ou o aparelho de armazenamento 32 ou o link da interface de saída 32 com a interface de entrada 28 for propenso ao erro ou tiver perdas, então uma ou mais das unidades NAL pode ser perdida.
[0099] Quando uma unidade NAL é perdida, o decodificador de vídeo 30 pode não ser capaz de determinar corretamente quais unidades NAL estão associadas a quais unidades de decodificação, a menos que sejam conhecidos a posição exata e o número de perdas de unidades NAL consecutivas (que o decodificador de vídeo 30 pode não ser capaz de determinar. Por exemplo, suponha-se que, no exemplo anterior, a segunda unidade NAL seja perdida. Neste caso, o decodificador de vídeo 30 determina que as três primeiras unidades NAL recebidas são para a primeira unidade de decodificação uma vez que o elemento de sintaxe num_nalus_in_du_minus1[i] indica que a primeira unidade de decodificação inclui três unidades NAL. Entretanto, o codificador de vídeo 20 associou a terceira unidade NAL recebida, neste caso, com a segunda unidade de decodificação (mais uma vez, a segunda unidade NAL é perdida). portanto, o decodificador de vídeo 30 associou incorretamente a terceira unidade NAL recebida com a primeira unidade de decodificação quando o decodificador de vídeo 30 deve ter associado a terceira unidade NAL recebida com a segunda unidade de decodificação.
[0100] Em alguns exemplos, além ou em vez dos elementos de sintaxe num_nalus_in_du_minus1[i], o decodificador de vídeo 30 pode determinar quais unidades NAL estão associadas a quais unidade de decodificação com base nas posições das mensagens SEI. Como exemplo, o codificador de vídeo 20 pode utilizar as posições das mensagens SEI de temporização de sub-imagens (SPT), dentro da unidade de acesso, para indicar quais unidades NAL estão associadas a quais unidades de decodificação, e o decodificador de vídeo 30 pode utilizar as posições das mensagens SEI SPT de temporização de sub-imagens dentro da unidade de acesso, para determinar quais unidades NAL estão associadas a quais unidades de decodificação.
[0101] Por exemplo, a mensagem SEI SPT é parte de uma unidade NAL SEI que está associada a uma unidade de decodificação. A mensagem SEI SPT pode fornecer informações que indicam quando uma unidade de decodificação será removida do CPB. Em alguns exemplos, todas as unidades NAL que se seguem à unidade NAL SEI que não incluem a mensagem SEI SPT até a mensagem SEI SPT seguinte são consideradas associadas à unidade de decodificação. Em outras palavras, as unidades NAL encaixadas entre uma primeira mensagem SEI SPT e uma segunda mensagem SEI SPT, e a unidade NAL SEI que inclui a primeira mensagem SEI SPT são todas consideradas como estando associadas a uma unidade de decodificação.
[0102] Dessa maneira, depois que o CPB do decodificador de vídeo 30 recebe uma primeira unidade NAL SEI com uma primeira mensagem SEI SPT, o decodificador de vídeo 30 pode determinar que a primeira unidade NAL SEI e todas as unidades NAL até a unidade NAL SEI seguinte com a mensagem SEI SPT seguinte (isto é, a segunda unidade NAL SEI com a segunda mensagem SEI SPT) estão associadas à primeira unidade de decodificação. O decodificador de vídeo 30 pode determinar também que a segunda unidade NAL SEI e todas as unidades NAL até a unidade NAL SEI seguinte com a mensagem SEI SPT seguinte (isto é, a terceira unidade NAL SEI com a terceira mensagem SEI SPT) estão associadas segunda unidade de decodificação e assim por diante.
[0102] Em alguns casos, o ato de contar com as posições das mensagens SEI SPT pode determinar quais unidades NAL estão associadas a quais unidades de decodificação pode não ser também resiliente em termos de erros. Como exemplo, uma vez que as posições das mensagens SEI SPT definem quais unidades NAL estão associadas a unidade de decodificação, uma mensagem SEI SPT não pode ser repetida dentro de uma unidade de decodificação (instruções, depois da unidade NAL que se segue imediatamente à mensagem SEI SPT e antes da última unidade NAL da unidade de decodificação, em ordem de decodificação). Por exemplo, suponha-se que uma unidade de decodificação inclua quatro unidades NAL. Por exemplo, uma primeira mensagem SEI SPT precederia as quatro unidades NAL e uma segunda mensagem SEI ASPT se seguiria às quatro unidades NAL. Se uma mensagem SEI SPT fosse inserida no meio das duas mensagens SEI SPT, então o decodificador de vídeo 30 determinaria incorretamente que as duas primeiras unidades NAL são para uma primeira unidade de decodificação e que as duas segundas unidades NAL são para uma segunda unidade de decodificação diferente.
[0104] Entretanto, pode ser benéfico incluir uma ou mais cópias de uma mensagem SEI SPT dentro de uma unidade de decodificação de modo que os dados de vídeo pertinentes possam ser recuperados de uma das cópias se a outra for perdida. Conforme descrito acima, a mensagem SEI SPT pode incluir informações que indicam quando uma unidade de decodificação será removida do SPB. Em um ambiente propenso a erros ou com perdas, por exemplo, uma mensagem SEI SPT pode ser perdida, e as informações dentro da mensagem SEI SPT que indicam quando a unidade de decodificação será removida podem ser perdidas.
[0105] Por exemplo, conforme descrito acima, uma unidade de acesso inclui dados de vídeo para uma imagem e uma unidade de decodificação é um sub-conjunto da unidade de acesso (supondo que SubPicCpbFlag seja 1). Por conseguinte, uma unidade de decodificação pode, em alguns exemplos, inclui dados de vídeo para uma ou mais filtros de interpolação de uma imagem, (isto é, sub-parte de uma imagem). O aparelho de origem 12 pode transmitir a fatia ou fatias de uma unidade de decodificação em pacotes (pacotes de protocolo de transporte em tempo real (RTP), por exemplo). Se o pacote que inclui a mensagem SEI SPT for perdido, o decodificador de vídeo 30 pode não ser capaz de determinar com precisão as informações de temporização de sub-imagens para os outros pacotes da unidade de decodificação (o tempo de remoção do CPB, por exemplo).
[0106] Se cada pacote fosse para incluir a mensagem SEI SPT, então a perda de um pacote não teria impacto sobre o processo de decodificação, uma vez que o decodificador de vídeo 30 pode determinar as informações de temporização de sub-imagens da mensagem SEI SPT a partir de uma cópia da mensagem SEI SPT em outro dos pacotes. Em algumas outras técnicas, contudo, a mensagem SEI SPT não pode ser repetida uma vez que o decodificador de vídeo 30 utilizou a posição da mensagem SEI pode determinar quais unidades NAL estavam associadas a quais unidades de decodificação. Em outras palavras, a proibição de repetir mensagem SEI SPT nas unidades de decodificação resulta em um esquema menos resiliente em termos de erro para determinar quais unidades NAL estão associadas a quais unidade de decodificação. Em alguns exemplos, as técnicas da revelação podem remover as proibições de repetir mensagem SEI SPT nas unidades de decodificação.
[0107] Conforme descrito mais detalhadamente em seguida, esta revelação descreve técnicas exemplares que permitem que o decodificador de vídeo 30 determine quais unidades NAL estão associadas a quais unidades de decodificação de uma maneira resiliente em termos de erros. Por exemplo, o codificador de vídeo 20 pode gerar para saída e transmitir um identificador para as unidades de decodificação. O decodificador de vídeo 30 pode utilizar este identificador pode determinar quais unidades NAL estão associadas a quais unidades de decodificação, em vez de contar com informações que indicam o número de unidades NAL associadas a uma unidade de decodificação e a ordem na qual as unidades NAL são recebidas, ou em vez de contar com a posição da mensagem SEI SPT. A transmissão e a recepção do identificador de unidade de decodificação podem também permitir várias cópias da mensagem SEI SPT, o que também aumenta a resilência em termos de erros da capacidade do decodificador de vídeo 30 de determinar os tempos de remoção das unidades de decodificação do SPC.
[0108] Foi descrito acima o exemplo no qual não é permitida a repetição da mensagem SEI SPT dentro da unidade de decodificação. Em alguns casos, pode ser também proibida a repetição de diversos outros tipos de mensagem SEI dentro de uma unidade de decodificação. Por exemplo, pode não ser permitida a repetição de qualquer mensagem SEI que não seja uma mensagem SEI SPT e para qual nuh_reserved_zero_6bits para unidade NAL SEI que inclui a mensagem SEI é igual a 0 dentro da unidade de acesso que inclui a mensagem SEI depois da primeira unidade NAL VCL e antes da última unidade NAL em ordem de decodificação.
[0109] Em algumas outras técnicas, por exemplo, as mensagens SEI são utilizadas pode determinar que o decodificador de vídeo 30 está processando uma nova unidade de acesso. Em outras palavras, a localização da mensagem SEI no fluxo de bits codificado indica o início de uma unidade de acesso. Se uma mensagem SEI for repetida dentro de uma unidade de acesso, então o decodificador de vídeo 30 pode determinar incorretamente que uma nova unidade de acesso está sendo processada. Uma vez que as mensagens SEI indicaram uma nova unidade de acesso, cópias de mensagem SEI podem ser proibidas nestas outras técnicas.
[0110] De maneira semelhante ao exposto acima, se uma unidade de acesso incluir várias fatias que são transmitidas em um ambiente propenso a erros, pode ser benéfico incluir cópias das mensagens SEI em cada pacote, de modo que se um pacote for perdido, as mensagens SEI podem ser recuperadas de um ou mais dos outros pacotes da unidade de acesso. Conforme descrito mais detalhadamente, as técnicas descritas nesta revelação podem permitir que várias cópias das diversas mensagens SEI sejam repetidas dentro da unidade de acesso.
[0111] Por exemplo, o decodificador de vídeo 30 não precisa contar com uma mensagem SEI pode determinar que uma nova unidade de acesso está sendo processada. Em vez disso, o decodificador de vídeo 30 pode contar com algumas outras informações de cabeçalho pode determinar quando uma nova unidade de acesso está sendo processada. Uma vez que a existência de uma mensagem SEI é desacoplada da indicação de que uma nova unidade de acesso está sendo processada, o codificador de vídeo 20 pode incluir várias cópias das mensagem SEI na unidade de acesso e o decodificador de vídeo 30 pode processar várias cópias de mensagem SEI dentro da mesma unidade de acesso sem determinar que uma nova unidade de acesso está sendo processada.
[0112] Nas técnicas descritas nesta revelação, o codificador de vídeo 20 pode sinalizar um identificador em cada unidade de decodificação (referido como identificador de unidade de decodificação, identificador de DU, ou ID de DU). O identificador de DU pode ser um identificador que identifica de maneira única uma unidade de decodificação. Por exemplo, o identificador de DU para a primeira unidade de decodificação, em ordem de decodificação, na unidade de acesso pode ser 0, o identificador de DU para a segunda unidade de decodificação, em ordem de decodificação, na unidade de acesso pode ser 1 e assim por diante (isto é, o identificador de DU para primeira unidade de decodificação é 0 e o valor do identificador de DU aumenta em 1 para cada unidade de decodificação subsequente). São possíveis outras maneiras de identificar de maneira única as unidades de decodificação com identificadores de unidade de decodificação, e as técnicas não devem ser consideradas limitadas às ascensão de identificadores de DU para cada unidade de decodificação em ordem de decodificação.
[0113] Pode haver diversas maneiras pelas quais o codificador de vídeo 20 sinaliza o identificador de DU. Por exemplo, o codificador de vídeo 20 pode sinalizar o identificador de DU no cabeçalho de fatia de uma fatia de uma unidade de decodificação e/ou em uma mensagem SEI (a mensagem SEI SPT, por exemplo) ou de qualquer outra maneira. Neste caso, a associação de unidades NAL com as unidades de decodificação é baseada nos identificadores de DU sinalizados. É possível incluir o identificador de DU em outros locais também, tais como o cabeçalho de uma unidade NAL.
[0114] Se a unidade NAL for para uma ou mais fatias, o decodificador de vídeo 30 pode determinar para qual unidade de decodificação a unidade NAL está associada a partir do identificador de DU no cabeçalho de fatia. Por conseguinte, mesmo se houver perdas nas unidades NAL, o decodificador de vídeo 30 é capaz de determinar qual unidade NAL está associada a qual unidade de decodificação com base no identificador de DU.
[0115] Nos exemplos em que a mensagem SEI inclui o identificador de DU, é possível que a mensagem SEI (a mensagem SEI SPT, por exemplo) seja perdida, e neste caso o identificador de DU pode ser perdido. Em alguns exemplos, o codificador de vídeo 20 pode incluir cópias da mensagem SEI SPT dentro da unidade de decodificação de modo a reduzir ao mínimo as possibilidades de que o identificador de DU seja perdido. Conforme descrito acima, por exemplo, em alguns casos, a posição da mensagem SEI SPT dentro de uma unidade de decodificação pode indicar quais unidades NAL estão associadas às unidades de decodificação, o que significa que pode não haver várias cópias das mensagens SEI SPT. Nas técnicas descritas nesta revelação, o decodificador de vídeo 30 pode utilizar o identificador de DU para determinar quais unidades NAL estão associadas a quais unidades de decodificação. Por conseguinte, o decodificador de vídeo 30 não precisa recorrer à posição das mensagens SEI SPT para determinar quais unidades NAL estão associadas a quais unidades de decodificação. Isto permite que o codificador de vídeo 20 inclua várias cópias das mensagens SEI SPT dentro de uma unidade de decodificação dentro do fluxo de bits codificado, o que por sua vez reduz a possibilidade de que o identificador de DU seja perdido se cada cópia da mensagem SEI SPT incluir i identificador de DU.
[0116] Conforme descrito acima, em alguns exemplos, não é permitido às mensagens SEI se seguirem à primeira unidade NAL VCL na ordem de decodificação na unidade de acesso que contém a mensagem SEI. Em alguns exemplos, o codificador de vídeo 20 pode permitir que todas as mensagens SEI se sigam a primeira unidade NAL VCL em ordem de decodificação, na unidade de acesso que contém mensagem SEI. Entretanto, a mensagem SEI pode não ser posicionada depois da última unidade NAL VCL, em ordem de decodificação, na unidade de acesso.
[0017] Como exemplo, o codificador de vídeo 20 pode incluir uma mensagem SEI antes da primeira unidade NAL VCL em ordem de decodificação. O codificador de vídeo 20 pode incluir uma cópia da mensagem SEI depois da primeira unidade NAL VCL em ordem de decodificação da unidade de acesso. Neste exemplo, o codificador de vídeo 20 pode não incluir uma cópia da mensagem SEI depois da última unidade NAL VCL depois em ordem de decodificação na unidade de acesso.
[0018] Nos exemplos em que o codificador de vídeo 20 permite que diversos tipos de mensagens SEI sejam repetidos na unidade de decodificação ou unidade de acesso, o codificador de vídeo 20 pode especificar informações adicionais referentes às mensagens SEI. Como exemplo, o codificador de vídeo pode especificar um alcance de aplicação ao qual as informações portadas em uma mensagem SEI se aplicam. Como outro exemplo, o codificador de vídeo 20 pode especificar onde uma mensagem SEI pode estar presente na unidade de acesso e/ou e unidade de decodificação. Como ainda outro exemplo, o codificador de vídeo 20 pode estabelecer uma restrição aos conteúdos da várias ocorrências de tipos específicos de mensagem SEI.
[0119] O decodificador de vídeo 30 utiliza tais informações para as mensagens SEI para decodificar dados nas unidades NAL. Em alguns exemplos, o decodificador de vídeo 30 pode ser pré-configurado com informações das mensagens SEI tais como informações que indicam restrição aos conteúdos das várias ocorrências de tipos de mensagens SEI ou pré-configurado com informações de onde as mensagens SEI podem estar localizadas dentro da unidade de acesso e/ou unidade de decodificação. Nestes casos, pode não ser necessário que o codificador de vídeo 20 especifique onde uma mensagem SEI pode estar presente ou sinalize informações que indicam qualquer restrição aos conteúdos das várias ocorrências de tipos de mensagens SEI.
[0120] Conforme descrito acima, uma unidade de acesso inclui dados de vídeo para pelo menos uma imagem. Em alguns exemplos, a unidade de acesso pode incluir dados de vídeo para várias camadas, e o codificador de vídeo 20 pode codificar um fluxo de bits de vídeo com várias camadas, tal como na extensão de várias camadas do padrão de codificação de vídeo de alta eficácia (HEVC).
[0121] As várias camadas incluem uma camada base e um ou mais camadas não base. Em alguns exemplos, uma camada base pode incluir dados de vídeo para construir uma imagem, e uma camada não base pode ser uma camada espacial ou de aperfeiçoamento de qualidade que inclui dados de vídeo para aperfeiçoar a qualidade da imagem na camada base. Em alguns exemplos, tais como para a codificação de vídeo de várias vistas, a camada base pode incluir dados de vídeo para imagens de uma vista específica (uma vista base que não exige qualquer outra vista de inter-predição, por exemplo), e uma camada não base pode incluir a textura de uma vista diferente, profundidade de uma vista diferente e outros exemplos que tais.
[0122] Nas técnicas descritas nesta revelação, o codificador de vídeo 20 pode transportar as diferentes camadas em diferentes canais ( utilizando, por exemplo, a transmissão em várias seções (MST) igualmente definida no IETF RFC 6190 (publicamente disponível em http://tools.ietf.org/rfc/rfc6190txt ) ) . As técnicas descritas nesta revelação podem ser estendidas a exemplos nos quais a transmissão em várias seções é utilizada para codificar várias camadas. Por exemplo, a técnicas descritas nesta revelação para incluir uma mensagem SEI depois da primeira unidade NAL VCL em uma unidade de acesso são também aplicáveis a exemplos de transmissão em várias seções. Como exemplo, o codificador de vídeo 20 pode incluir unidades NAL SEI entre duas unidades NAL VCL consecutivas dentro de uma unidade de acesso sem a necessidade de mover as unidades NAL SEI antes da primeira unidade NAL VCL da unidade de acesso.
[0123] Uma vez que a unidade NAL SEI inclui mensagem SEI para as técnicas de transmissão em várias seções, o decodificador de vídeo 30 é capaz de implementar o processo de desempacotamento de maneira mais simplificada. Por exemplo, o decodificador de vídeo 30 é capaz de decodificar mensagem SEI para as técnicas de transmissão em várias seções de dentro da unidade de acesso, em vez de tudo a partir do início da unidade de acesso. Uma vez que várias cópias da mensagem SEI estão disponíveis por toda unidade de acesso, o decodificador de vídeo 30 é capaz de desempacotar o pacotes recebidos de maneira mais eficaz.
[0124] As técnicas desta revelação podem ser aplicadas umas com as outras ou separadamente. Por exemplo, se o codificador de vídeo 20 incluir um identificador de DU, então o codificador de vídeo 20 não precisa necessariamente incluir várias cópias da mensagem SEI SPT em todos os exemplos, mas pode incluir várias cópias das mensagens SEI SPT em alguns exemplos. Como outro exemplo, o codificador de vídeo 20 pode incluir várias cópias de diversos tipos de mensagem SEI mesmo se o codificador de vídeo 20 não incluir identificadores de DU. Ainda como outro exemplo, nos exemplos em que o codificador de vídeo 20 inclui os identificadores de DU, o codificador de vídeo 20 não precisa necessariamente incluir várias cópias das mensagens SEI que não a mensagem SEI SPT. Em geral, as técnicas descritas nesta revelação podem ser vantajosas em proporcionar esquemas resilientes em termos de erros para um ambiente propenso a erros nos quais as informações podem ser perdidas na sinalização.
[0125] Conforme descrito acima, em um exemplo, o codificador de vídeo 20 inclui o identificador de DU no cabeçalho de fatia. A Tabela 2 abaixo apresenta um pseudocódigo exemplar para a maneira pela qual o codificador de vídeo 20 pode incluir o identificador de DU no cabeçalho de fatia, e para a maneira pela qual o decodificador de vídeo 30 pode efetuar parse no cabeçalho de fatia de modo a determinar o identificador de DU. Tabela 2. Sinalização no Cabeçalho de Fatia
Figure img0004
[0126] Neste exemplo decoding_unit_id refere-se ao identificador de DU e especifica o identificador da unidade de decodificação à qual a fatia pertence. O valor decoding_unit_id pode estar na faixa de 0 a PicSizeInCtbsY - 1, inclusive. PicSizeInCtbsY pode indicar o número de unidades de árvore de codificação (CTUs) em uma imagem, que é igual a ao número de blocos de árvore de codificação CTBs no componente luma de uma imagem.
[0127] No exemplo em que o codificador de vídeo 20 inclui o identificador de unidade de decodificação no cabeçalho de fatia, uma unidade de decodificação identificada por um valor específico do identificador de DU (ID de DU ou IDdu, por exemplo) e pode incluir apenas todas as unidades NAL de fatia codificadas com o decoding_unit_id igual a ao identificador de DU e suas unidades NAL não VCL conexas na unidade de acesso. Dentro de uma unidade de acesso, para quaisquer duas unidades de decodificação ( unidade de decodificação A e a unidade de decodificação B, por exemplo) com decoding_unit_id igual a duIDa e duIDb, respectivamente, onde duIDa é menor que duIDb, a unidade de decodificação A pode preceder a unidade de decodificação B em ordem de decodificação. Em outras palavras, a unidade de decodificação com o menor identificador de DU precede a unidade de decodificação com o maior identificador de DU em ordem de decodificação. Além do mais, uma unidade NAL de uma unidade de decodificação pode não residir, em ordem de decodificação, entre duas unidades NAL de outra unidade de decodificação. Em outras palavras, no exemplo acima, as unidades NAL de uma unidade de decodificação são contíguas.
[0128] Conforme descrito acima, em alguns exemplos, o codificador de vídeo 20 pode incluir o identificador de DU em uma mensagem SEI (a mensagem SEI SPT, por exemplo), e a mensagem SEI SPT inclui informações que indicam quando a unidade de decodificação será removida. A seguir são descritas algumas técnicas exemplares para que o codificador de vídeo 20 inclua o identificador de DU em uma mensagem SEI. Para evitar confusão, a seguir o nome da mensagem de temporização de sub-imagens (SPT) é alterado para mensagem SEI de informações de unidade de decodificação. Em outras palavras, em alguns exemplos, o codificador de vídeo 20 transmite e o decodificador de vídeo 30 recebida o identificador de DU em uma mensagem SEI que inclui também informações que indicam o tempo de remoção da unidade de decodificação do CPD.
[0129] A Tebela 3 abaixo apresenta um pseudo-código exemplar para a maneira pela qual o codificador de vídeo 20 pode incluir o identificador de DU em uma mensagem SEI e para a maneira pela qual o decodificador de vídeo 30 pode efetuar parse na mensagem SEI de modo a determinar identificador de DU. A seguir, o nome da mensagem SEI de temporização de sub-imagens (SPT) é alterado para mensagem SEI de informações de unidade de decodificação, e a sintaxe e a semântica podem ser as seguintes. Outras partes são as mesmas como no HEVC WD8, com a “mensagem SEI de temporização de sub-imagens” substituída pela “mensagem SEI de informações de unidade de decodificação”. A mensagem SEI de informações de unidade de decodificação pode fornecer o tempo de remoção do CPB (informações de retardo de remoção do CPB, por exemplo) para unidade decodificada associada à mensagem SEI. Tabela 3. Sinalização em mensagem SEI decoding_unit_info( playloadSize) { Descritor decoding_unit_id ue (v) du_cpb_r emoval_del ay u (V)
Figure img0005
[0130] No HEVC WD8, a mensagem SEI de temporização de sub-imagens (SPT) pode ser semelhante à Tabela 3. Entretanto, a mensagem SEI do HEVC WD8 não incluía o elemento de sintaxe de decoding_unit_id e incluía apenas o elemento de sintaxe du_cpb_removal_delay. Em algumas das técnicas exemplares descritas nesta revelação, uma vez que a mensagem SEI inclui também decoding_unit_id, a mensagem SEI SPT é renomeada para mensagem SEI de informações de unidade de decodificação.
[0131] Em alguns exemplos, o codificador de vídeo 20 gera para saída e transmite elementos de sintaxe e o decodificador de vídeo 30 recebe elementos de sintaxe que indicam a presença da mensagem SEI de informações de unidade de decodificação no fluxo de bits. Como exemplo, o codificador de vídeo transmite CpbDpbDelaysPresentFlag e o sub_pic_cpb_params_present_flag. Se o CpbDpbDelaysPresentFlag for igual a 1 e o sub_pic_cpb_params_present_flag for igual a 1, o decodificador de vídeo 30 pode determinar que uma ou mais ou mais de uma mensagens SEI de unidade de decodificação está presente em cada unidade de decodificação na sequência de vídeo codificada (isto é, uma ou mais mensagens SEI de informações de unidade de decodificação). Se CpbDpbDelaysPresentFlag for igual a 0 ou sub_pic_cpb_params_present_flag for igual a 0, o decodificador de vídeo 30 pode determinar que nenhuma mensagem SEI de informações de unidade de decodificação está presente em qualquer unidade de acesso da sequência de vídeo codificada.
[0132] De acordo com um ou mais exemplos descritos nesta revelação, as unidades NAL à quais a mensagem SEI de informações de unidade de decodificação se aplica, também referidas como as unidades NAL associadas a uma mensagem SEI de informações de unidade de decodificação, consistem em ordem de decodificação na unidade NAL SEI que contém a mensagem SEI de informações de unidade de decodificação e em todas as unidades NAL subsequentes na unidade de acesso até, mas não incluindo qualquer unidade NAL subsequente que contém uma mensagem SEI de informações de unidade de decodificação com um valor diferente de decoding_unit_id. Nestes exemplos, a definição de decoding_unit_id pode ser idêntica à definição de decoding_unit_id descrita acima com relação à Tabela 2, mas é incluída na mensagem SEI (a mensagem SEI de informações de unidade de decodificação). Por exemplo, uma unidade de decodificação identificada por um valor específico do ID de DU (ID de DU ou IDdu, por exemplo) pode incluir e pode incluir apenas todas as unidades NAL associadas a todas as mensagem SEI de informações de unidade de decodificação que têm decoding_unit_id igual a ao identificador de DU na unidade de acesso. Como acima, uma unidade de decodificação com um identificador de unidade de decodificação menor é anterior em ordem de decodificação a uma unidade de decodificação com um identificador de unidade de decodificação maior. Como acima, uma unidade NAL de uma unidade de decodificação pode não ser residir, em ordem de decodificação, entre duas unidades NAL de outra unidade de decodificação.
[0133] du_cpb_removal_delay pode especificar quantos pulsos de relógio de sub-imagem o decodificador de vídeo 30 deve aguardar a remoção do CPB da primeira unidade de decodificação na unidade de acesso associada à mensagem SEI de período de armazenamento mais recente em uma unidade de acesso precedente antes que o decodificador de vídeo 30 remova do CPB a unidade de decodificação associada à mensagem SEI de informações de unidade de decodificação. Este valor pode ser também utilizado para calcular o tempo mais antigo possível de chegada de dados de unidade de decodificação ao CPB para o programador de fluxos hipotéticos (HSS), conforme especificado no anexo AC do HEVC WD8.
[0134] O elemento de sintaxe pode ser representado por um código de comprimento fixo cujo comprimento em bits é dado por cpb_removal_delay_leghth_minus1 + 1. O du_cpb_removal_delay pode ser o restante de um contador de módulo 2(cpb_removal_delay_leghth_minus1 + 1).
[0135] Em alguns exemplos, o valor de cpb_removal_delay_leghth_minus1 que determina o comprimento (em bits) do elemento de sintaxe de du_cpb_removal_delay pode ser o valor de cpb_removal_delay_leghth_minus1 codificado no conjunto de podem ser de sequência que está ativo para a imagem codificada associada à mensagem SEI de informações de unidade de decodificação. Entretanto, du_cpb_removal_delay específica o número de pulsos de relógio de sub-imagem com relação ao tempo de remoção da primeira unidade de decodificação na unidade de acesso precedente que contém uma mensagem SEI de período de armazenamento, que pode ser uma unidade de acesso de uma sequência de vídeo codificada diferente.
[0136] A Tabela 3 apresenta um pseudo-código exemplar para um exemplo da mensagem SEI de informações de unidade de decodificação, no qual o nome da mensagem SEI SPT foi alterado para mensagem SEI de informações de unidade de decodificação uma vez que a mensagem SEI de informações de unidade de decodificação incluía informações que eram anteriormente uma parte da mensagem SEI SPT e incluía o identificador de DU para a unidade de decodificação associada à mensagem. Em alguns exemplos, pode haver potencialmente outras modificações na mensagem SEI de temporização de sub-imagens (SPT).
[0137] Por exemplo, o pedido provisório norte-americano N°. 61/705 119 (daqui por diante pedido ‘119), depositado a 24 de setembro de 2012 e o pedido provisório norte- americano N°. 61/708 475 (daqui por diante pedido ‘475) depositado a primeiro de outubro de 2102, o conteúdo inteiro de cada qual é incorporado à guisa de referência, descrevem algumas modificações possíveis na mensagem SEI SPT com relação à mensagem SEI SPT descrita no HEVC WD8. O pedido ‘119 e pedido ‘475 descreve uma estrutura de sintaxe de pontos operacionais de aplicação na mensagem SEI SPT e a alteração do elemento de sintaxe du_cpb_removal_delay para du_spt_cpb_removal_delay que é definido em seguida.
[0138] As técnicas descritas nesta revelação são rede básica aplicáveis a exemplos nos quais a mensagem SEI SPT se alterou do HEVC WD8 para a mensagem SEI SPT no pedido ‘119 e no pedido ‘475. A Tabela 4 apresenta um pseudocódigo exemplar para a maneira pela qual o codificador de vídeo 20 pode sinalizar o identificador de DU em um exemplo alternativo de mensagem SEI e para a maneira pela qual o decodificador de vídeo 30 pode efetuar parse na mensagem SEI de modo a determinar o identificador de DU. Como ocorre com a Tabela 3, para evitar confusão, o nome da mensagem SEI SPT é alterado para mensagem SEI de informações de unidade de decodificação uma vez que a mensagem SEI de informações de unidade de decodificação inclui o identificador de DU além das informações na mensagem SEI SPT descrita no pedido ‘119 e no pedido ‘475 Tabela 4. Sinalização Alternativa em Mensagem SEI
Figure img0006
[0139] sub_pic_cpb_params_in_pic_timing_sei_flag igual a 1 especifica que parâmetros de retardo de remoção do CPB ao nível de sub-imagem estão presentes em mensagem SEI de temporização de imagens e nenhuma mensagem SEI de temporização de sub-imagens está presente. sub_pic_cpb_params_in_pic_timing_sei_flag igual a 0° especifica que parâmetros de retardo de remoção do CPB ao nível de sub-imagem estão presentes em mensagem SEI de temporização de sub-imagens e as mensagem SEI de temporização de imagens não incluem parâmetros de retardo de remoção do CPB ao nível de sub-imagem.
[0140] Conforme exposto acima com relação à Tabela 3, a mensagem SEI de informações de unidade de decodificação fornece informações de retardo de remoção do CPB para a unidade de decodificação associada à mensagem SEI. O seguinte pode aplicar-se para a sintaxe e a semântica da mensagem SEI de informações de unidade de decodificação.
[0141] Os elementos de sintaxe sub_pic_cpb_params_present_flag, sub_pic_cpb_params_in_pic_timing_sei_flag e cpb_removal_delay_leghth_minus1 e a variável CpbDpbDelaysPresentFlag podem ser encontrados em ou derivados de elementos de sintaxe encontrados na estrutura de sintaxe hrd_paramters() e a estrutura de sintaxe sub_layer_hrd_paramters() aplicável a qualquer um dos pontos operacionais aos quais a mensagem SEI de informações de unidade de decodificação se aplica. O fluxo de bits (ou uma parte dele) refere-se ao sub-conjunto de fluxo de bits (ou uma parte dele) associado a qualquer um dos pontos operacionais aos quais a mensagem SEI de informações de unidade de decodificação se aplica.
[0142] De maneira semelhante ao exposto acima com relação à Tabela 3, o codificador de vídeo 20 transmite o CpbDpbDelaysPresentFlag e o sub_pic_cpb_params_presente_flag que o decodificador de vídeo 30 utiliza para determinar a presença da mensagem SEI de unidade de decodificação no fluxo de bits. No exemplo da Tabela 4, CpbDpbDelaysPresentFlag for igual a 1 e sub_pic_cpb_params_present_flag for igual a 1, é decodificador de vídeo 30 pode determinar que uma mensagem SEI de informações de unidade de decodificação aplicável aos pontos operacionais especificados está presente em cada unidade de decodificação na sequência de vídeo codificada. Caso contrário (ou CpbDpbDelaysPresentFlag é igual a 0 ou sub_pic_cpb_params_present_flag é igual a 0, por exemplo) o decodificador de vídeo 30 pode determinar que nenhuma mensagem SEI de informações de unidade de decodificação aplicável aos pontos operacionais especificados está presente na sequência de vídeo codificada.
[0143] De maneira semelhante a descrição relativa à Tabela 3, as unidades NAL as quais a mensagem SEI de informações de unidade de decodificação se aplica, também referidas como as unidades NAL associadas a uma mensagem SEI de informações de unidade de decodificação, consistem, em ordem de decodificação, na unidade NAL SEI que contém a mensagem SEI de informações de unidade de decodificação e todas as unidades NAL subsequentes na unidade de acesso até, mas não incluindo, qualquer unidade NAL subsequente que contém uma mensagem SEI de informações de unidade de decodificação com valor diferente de decoding_unit_id. A definição de decoding_unit_id pode ser idêntica à descrita acima com relação à Tabela 3, e uma unidade de decodificação com identificador de DU menor é anterior em ordem de decodificação a unidade de decodificação com um identificador de DU maior. No exemplo da Tabela 4, du_spt_cpb_removal_delay pode especificar a direção, em unidades de pulsos de relógio de sub-imagem (ver sub- parágrafo E. 2.1 do HEVC WD8), entre a remoção do CPB da última unidade de decodificação em ordem de decodificação na unidade de acesso atual que contém a mensagem SEI de informações de unidade de decodificação e a unidade de decodificação associada à mensagem SEI de informações de unidade de decodificação. Este valor pode ser também utilizado para calcular o tempo mais antigo possível de chegada de dados de unidades de decodificação ao CPB para o programador de sequências hipotéticas (HSS), conforme especificado no Anexo C do HEVC WD8. O elemento de sintaxe pode ser representado por um código de comprimento fixo cujo comprimento em bits é dado por du_cpb_removal_delay_length_minus1 + 1. Quando a unidade de decodificação associada à mensagem SEI de informações de unidade de decodificação é a última unidade de decodificação na unidade de acesso atual, o valor de du_spt_cpb_removal_delay pode ser igual a 0.
[0144] Alternativamente, du_spt_cpb_removal_delay pode especificar a direção em unidades de pulsos de relógio de sub-imagem (ver sub-parágrafo E.2.1) entre a remoção do CPB da unidade de decodificação seguinte em ordem de decodificação na unidade de acesso atual que contém a mensagem SEI de informações de unidade de decodificação e a unidade de decodificação associada à mensagem SEI de informações de unidade de decodificação. este valor pode ser também utilizado para calcular o tempo mais antigo possível de chegada de dados ao CPB para o HSS, conforme especificado no Anexo C do HEVC WD8). O elemento de sintaxe é representado por um código de comprimento fixo cujo comprimento em bits é dado por du_cpb_removal_delay_length_minus1 + 1. Quando a unidade de decodificação associada à mensagem SEI de informações de unidade de decodificação é a última unidade de decodificação na unidade de acesso atual, o valor de du_spt_cpb_removal_delay pode ser igual a 0. Alternativamente, nenhuma mensagem SEI de informações de unidade de decodificação pode estar associada à última unidade de decodificação em cada unidade de acesso.
[0145] Os exemplos acima descreveram técnicas para sinalizar um identificador de unidade de decodificação que o decodificador de vídeo 30 utiliza para determinar quais unidades NAL estão associadas a quais unidades de decodificação. Por exemplo, se o cabeçalho de fatia indicar um identificador de unidade de decodificação, então o decodificador de vídeo 30 pode determinar que a unidade NAL que inclui a fatia está associada á unidade de decodificação indicada no cabeçalho de fatia. Como outro exemplo, se uma mensagem SEI (a mensagem SEI de informações de unidade de decodificação, por exemplo) indicar o identificador de unidade de decodificação, então o decodificador de vídeo 30 determina que todas as unidades NAL que se seguem à mensagem SEI até a unidade NAL SEI seguinte que inclui uma mensagem SEI de informações de unidade de decodificação com um identificador de unidade de decodificação diferente do identificador de unidade de decodificação da mensagem SEI anterior. Isto permite que o codificador de vídeo 20 inclua várias cópias da mensagem SEI de informações de unidade de decodificação, o que por sua vez permite que o decodificador de vídeo 30 determine o tempo de remoção de uma unidade de decodificação do CPB a partir de uma de uma série de mensagem SEI de informações de unidade de decodificação caso uma das outras mensagem SEI de informações de unidade de decodificação seja perdida na transmissão.
[0146] Em alguns exemplos, o codificador de vídeo 20 pode gera para saída e transmitir e o decodificador de vídeo 30 pode receber várias cópias de diversos tipos de mensagem SEI. Conforme descrito acima, os aspectos seguintes são especificados para todas as mensagens SEI: a) um alcance de aplicação ao qual as informações portadas em uma mensagem SEI se aplicam: b) onde uma mensagem SEI pode estar presente; e c) uma restrição aos conteúdos de várias ocorrências de um tipo específico de mensagem SEI.
[0147] As convenções seguintes são presumidas para decodificar o alcance de aplicação, onde as mensagens podem estar presentes e restrições aos conteúdos de várias ocorrências de mensagens SEI. Uma mensagem SEI é considerada associada ao valor de nuh_reserved_zero_6bits no cabeçalho de unidade NAL da unidade NAL SEI que contém a mensagem SEI. A seguir, “ID de camada” é utilizado de maneira intercambiável com “nuh_reserved_zero_6bits”, uma vez que nuh_reserved_zero_6bits identifica a camada na codificação escalonável de vídeo.
[0148] Conforme exposto acima, o acrônimo AU significa unidade de acesso. Os pontos operacionais aplicáveis para cada mensagem SEI de período de armazenamento, mensagem SEI de temporização de imagens ou mensagem SEI de temporização de sub-imagens são conforme especificados no pedido ‘119 e no pedido ‘475. Um ponto operacional é identificado por um conjunto de valores de nuh_reserved_zero_6bits, denotado como OpLayerIdSet, e um valor de valor de identificação temporal (TemporalId) denotado como OpTid e o sub-conjunto de fluxo de bits conexo derivado como a saída do processo de extração de sub-fluxo de bits conforme especificado no sub-parágrafo 10.1 do HEVC DW8 com OpTid OpLayerIdSet com as entradas que são decodificáveis de maneira independente.
[0149] O valor de TemporalId das imagens indica se as imagens podem ser utilizadas para inter-predizer outras imagens. Por exemplo, uma primeira imagem não pode ser utilizada para inter-predição de uma segunda imagem se o valor de TemporalId da primeira imagem for maior que o valor de TemporalId da segunda imagem. Desta maneira, imagens com maiores valores de TemporalId podem ser removidos (extraídos) sem qualquer efeito sobre a decodificação de vídeo uma vez que as imagens não podem ser utilizadas para inter-predizer qualquer uma das imagens restantes. Da mesma maneira, imagens com os maiores valores de TemporalId seguintes podem ser removidas sem qualquer efeito sobre a decodificação de vídeo uma vez que estas imagens não podem ser utilizadas para inter-predizer qualquer uma das imagens restantes e assim por diante. Embora a remoção de tais imagens com base nos valores de TemporalId possa não afetar a decodificação de vídeo e aperfeiçoar a utilização da largura de banda (devida à remoção de imagens, por exemplo) pode haver um impacto negativo cobre a qualidade do vídeo se tais imagens forem removidas.
[0150] O processo de extração de sub-fluxos de bits especificado no sub-parágrafo 10.1 descreve determinados requisitos para conformação. Como exemplo, qualquer sub- fluxo de bits extraído de um fluxo de bits pelo processo com qualquer valor de TemporalId mais elevado-alvo na faixa de 0 a 6, inclusive e, a lista de identificadores de camada-alvo que só inclui o valor de nuh_reserved_zero_6bits = 0 é considerado como sendo um fluxo de bits conformador.
[0151] Um período de cena pode incluir e pode inclui apenas todas as AUs que começam de uma AU que contém uma mensagem SEI de informações de cena até a AU seguinte, em ordem de decodificação, que contém uma mensagem SEI de informações de cena ou final da sequência de vídeo codificada. Qualquer que seja é anterior, em ordem de decodificação. Um período pós-filtragem pode incluir e pode incluir apenas todas as AUs começando de uma AU que contém uma mensagem SEI de sugestão de pós-filtragem até a AU seguinte, em ordem de decodificação, que contém uma mensagem SEI de sugestão de pós-filtragem ou o final da sequência de vídeo codificada, qualquer que seja a anterior em ordem de decodificação.
[0152] Se a mensagem SEI de temporização de sub-imagens não incluir um ID de unidade de decodificação, uma unidade de decodificação pode incluir e pode incluir apenas um conjunto de unidades NAL dentro de uma AU de uma unidade NAL SEI que contém uma mensagem SEI de temporização de sub- imagens até a unidade NAL SEI seguinte que contém uma mensagem SEI de temporização de sub-imagens ou o final da AU qualquer que seja a anterior, em ordem de decodificação. Caso contrário, uma unidade de decodificação pode incluir e pode incluir apenas um conjunto de unidades NAL dentro de uma AU de uma unidade NAL SEI que contém uma mensagem SEI de temporização de sub-imagens até a unidade NAL SEI seguinte que contém uma mensagem SEI de temporização de sub-imagens com um valor diferente de ID de unidade de decodificação ou o final da AU, qualquer que seja a anterior, em ordem de decodificação. Tabela 5. Associação, Presença e Restrição para mensagens SEI.
Figure img0007
Figure img0008
Figure img0009
Figure img0010
Figure img0011
Figure img0012
Figure img0013
[0153] A Tabela 5 mostra tipos diferentes de mensagem SEI e mostra a relação entre os tipos diferentes de mensagem SEI, o valor de identificação temporal da unidade de acesso e se há quaisquer restrições e os tipos de restrição à mensagem SEI. Por exemplo, o codificador de vídeo 20 pode determinar um tipo de mensagem SEI e pode determinar o valor de identificação temporal da unidade de acesso. Com base no valor de identificação temporal e no tipo de mensagem SEI o codificador de vídeo 20 pode determinar se a presença da mensagem SEI é permitida.
[0154] Como exemplo, suponha-se que o tipo de mensagem SEI seja a mensagem SEI de período de armazenamento. Neste exemplo, se o valor de identificação temporal não for igual a 0, o codificador de vídeo 20 pode determinar que a presença da mensagem SEI de período de armazenamento não é permitida. Como outro exemplo, suponha-se que o tipo de mensagem SEI seja a mensagem SEI de temporização de imagens. Neste exemplo, independentemente do valor de identificação temporal, o codificador de vídeo 20 pode determinar que a presença da mensagem SEI de temporização de imagens é permitida.
[0155] De acordo com as técnicas descritas nesta revelação, o codificador de vídeo 20 e o decodificador de vídeo 30 são exemplos de um codificador de vídeo configurado para implementar uma ou mais técnicas exemplares descritas nesta revelação. Por exemplo, o codificador de vídeo 20 pode sinalizar identificadores para as unidades de decodificação (codificar e sinalizar os identificadores para as unidades de decodificação, por exemplo), e o decodificador de vídeo 30 pode receber os identificadores para as unidades de decodificação (receber e decodificar os identificadores para as unidades de decodificação, por exemplo). Neste sentido, um codificador de vídeo, tal como o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser configurado para codificar (codificar ou decodificar, por exemplo) identificadores para unidades de decodificação.
[0156] O codificador de vídeo pode ser configurado para codificar um identificador único para cada unidade de decodificação em uma unidade de acesso, de modo que o identificador para uma unidade de decodificação na unidade de acesso é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. Em alguns exemplos, o codificador de vídeo pode associar unidades de camada de acesso à rede (NAL) às unidades de decodificação na unidade de acesso com base no identificador único para cada uma das unidades de decodificação. Além disto, em alguns exemplos, o codificador de vídeo pode repetir mensagens com informações de aperfeiçoamento suplementares (SEI) dentro de uma unidade de decodificação ou uma unidade de acesso.
[0157] Para codificar cada DU, o codificador de vídeo pode codificar um primeiro identificador para uma primeira DU e codificar um segundo identificador diferente para uma segunda DU diferente. Neste exemplo, o segundo identificador pode ser o primeiro identificador incrementado em um.
[0158] Em alguns exemplos, o codificador de vídeo pode codificar o identificador único para cada decodificação em um cabeçalho de fatia. Nestes exemplos, o identificador único pode identificar a unidade de decodificação à qual a fatia pertence, e o codificador de vídeo pode determinar que a unidade NAL que inclui a fatia está associada à unidade de decodificação identificada pelo identificador de unidade de decodificação no cabeçalho de fatia. Em alguns exemplos, o codificador de vídeo pode codificar o identificador único para a unidade de decodificação em uma mensagem SEI. Por exemplo, o codificador de vídeo pode codificar o identificador único em uma mensagem SEI (a mensagem SEI de informações de unidade de decodificação, por exemplo) que inclui também informações sobre quando a unidade de decodificação será removida do armazenador de imagens codificadas (CPB). O identificador único para uma unidade de decodificação pode identificar a unidade de decodificação que contém a mensagem SEI de informações de unidade de decodificação.
[0159] Em uma ou mais técnicas exemplares, o codificador de vídeo pode codificar um primeiro identificador para uma primeira unidade de decodificação na UA e codificar um segundo identificador diferente para uma segunda unidade de decodificação diferente na unidade de acesso. Em alguns exemplos, quando o valor do primeiro identificador é menor que o valor do segundo identificador, a primeira unidade de decodificação pode preceder a segunda unidade de decodificação em ordem de decodificação. Em alguns exemplos, o codificador de vídeo pode codificar o identificador único para cada unidade de decodificação como índice da unidade de decodificação na lista de todas as unidades de decodificação na unidade de acesso em ordem de decodificação.
[0160] Em algumas ocorrências, o codificador de vídeo pode codificar uma primeira unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em uma unidade de acesso (AU). O codificador de vídeo pode codificar também uma mensagem com informações de aperfeiçoamento suplementar (SEI) que se segue à primeira unidade NAL VCL em ordem de decodificação. Em alguns exemplos, o codificador de vídeo pode codificar também a mensagem SEI de modo que a mensagem SEI preceda a última unidade NAL VCL na AU em ordem de decodificação.
[0161] As Figuras 2A e 2B são diagramas conceptuais que mostram exemplos de unidades de acesso que incluem identificadores de unidade de decodificação de acordo com as técnicas descritas nesta revelação. A Figura 2A mostra a unidade de acesso 34 e a Figura 2B mostra a unidade de acesso 50. A unidade de acesso 34 e a unidade de acesso 50 incluem dados de vídeo necessários para decodificar pelo menos uma imagem (uma ou mais camadas para decodificar uma imagem ou várias imagens de várias diferentes para a mesma ocorrência de tempo, por exemplo). O codificador de vídeo 20 transmite a unidade de acesso 14 ou a unidade de acesso 50 como parte do fluxo de bits codificado que o decodificador de vídeo 30 recebe por meio do link 16 ou do aparelho de armazenamento 32.
[0162] Nas Figuras 2A e 2B, a unidade de acesso 34 e unidade de acesso 50 incluem uma série de unidades de decodificação, o que significa que o codificador de vídeo transmitiu o SubPicCpbFlag para a unidade de acesso 34 e a unidade de acesso 50 como 1 de modo a indicar ao decodificador de vídeo 30 que o funcionamento ao nível de sub-imagem é permitido para a unidade de acesso 34 e a unidade de acesso 50.
[0163] Na Figura 2A, a unidade de acesso 34 inclui as unidades de decodificação 36A-36C (coletivamente referidas como “unidades de decodificação”). A unidade de decodificação 36A inclui uma primeira unidade NAL SEI 38A e uma segunda unidade NAL SEI 38B. Tanto a unidade NAL SEI 38A quanto a unidade NAL SEI 38B incluem uma mensagem SEI (mensagem SEI de informações de unidade de decodificação, por exemplo) que indica informações referentes ao tempo de remoção da unidade de decodificação 36A e inclui também um identificador de unidade de decodificação para a unidade de decodificação 36A. A unidade de decodificação 36A inclui também as unidades NAL 40A e 40D.
[0164] A unidade de decodificação 36B inclui uma terceira unidade NAL SEI 42 que inclui uma mensagem SEI que indica informações referentes ao tempo de remoção da unidade de decodificação 36B e inclui também um identificador de unidade de decodificação para a unidade de decodificação 36B. O identificador de unidade de decodificação para a unidade de decodificação 36B é diferente do identificador de unidade de decodificação para a unidade de decodificação 36A (mais que o identificador de unidade de decodificação para a unidade de decodificação 36A, por exemplo). A unidade de decodificação 36B inclui também as unidades NAL 44A e 44B.
[0165] A unidade de decodificação 36C inclui uma quarta unidade NAL SEI 46A e uma quinta unidade NAL SEI 46B. Ambas as unidades NAL SEI 46A e 46B incluem uma mensagem SEI (mensagem SEI de informações de unidade de decodificação, por exemplo) que indica informações referentes ao tempo de remoção da unidade de decodificação 36C e inclui também um identificador de unidade de decodificação para a unidade de decodificação 36C. A unidade de decodificação 36C inclui também as unidades NAL 48A e 48B.
[0166] O dc3 pode determinar quais unidades NAL estão associadas a quais unidades de decodificação com base na mensagem SEI de informações de unidade de decodificação. Por exemplo, o decodificador de vídeo 30 pode determinar que a unidade NAL SEI 38A e as unidades NAL (as unidades NAL 40A e 40B, por exemplo) que se seguem à unidade NAL SEI 38A estão associadas à unidade de decodificação 36A uma vez que a mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 38A incluiu o identificador de unidade de decodificação para a unidade de decodificação 36A, em seguida o decodificador de vídeo 30 pode determinar que a unidade NAL SEI 38B é também parte da unidade de decodificação 36A uma vez que a mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 38B é uma cópia da mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 38A (inclui as mesmas informações sobre tempo de remoção e o mesmo identificador de unidade de decodificação, por exemplo). Neste exemplo, o decodificador de vídeo 30 pode determinar que as unidades NAL 40C e 40D estão também associadas à unidade de decodificação 36A, uma vez que estas unidades NAL se seguem à unidade NAL SEI 38B e precedem outra unidade NAL SEI com uma mensagem SEI de informações de unidade de decodificação.
[0167] O decodificador de vídeo 30 pode determinar que a unidade NAL SEI 42 não pertence à unidade de decodificação 36A uma vez que o identificador de unidade de decodificação na mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 42 é diferente do identificador de unidade de decodificação na mensagem SEI de informações de unidade de decodificação para as unidades NAL SEI 38A e 38B. Neste caso, o decodificador de vídeo 30 pode determinar que a unidade NAL SEI 42 está associada a outra unidade de decodificação (unidade de decodificação 36B, por exemplo) e que as unidades NAL 44A e 44B estão também associadas à unidade de decodificação 36B uma vez que estas unidades NAL se seguem à unidade NAL SEI 42 e precedem outra unidade NAL SEI com uma mensagem SEI de informações de unidade de decodificação que inclui um identificador de unidade de decodificação diferente.
[0168] O decodificador de vídeo 30 pode determinar que a unidade NAL SEI 46A está associada a uma unidade de decodificação diferente (a unidade de decodificação 36C, por exemplo) uma vez que o identificador de unidade de decodificação na mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 46A é diferente dos identificadores de unidade de decodificação anteriores (um maior que o anterior, por exemplo). O decodificador de vídeo 30 determina que a unidade NAL 48A está associada à unidade de decodificação 36C uma vez que a unidade NAL 48A se segue à unidade NAL SEI 46A e precede a unidade NAL SEI 46B que inclui uma mensagem SEI de informações de unidade de decodificação.
[0169] Neste exemplo, a unidade NAL SEI 46B inclui uma mensagem SEI de informações de unidade de decodificação que inclui o mesmo identificador de unidade de decodificação da mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 46A (as mensagens SEI de informações de unidade de decodificação são cópias, por exemplo). O decodificador de vídeo 30 pode determinar então que a unidade NAL 48B está associada à unidade de decodificação 36C uma vez que a unidade NAL 48B é a última unidade NAL na unidade de acesso 34.
[0170] Na Figura 2A, exemplos da mensagem SEI de informações de unidade de decodificação incluem os exemplos descritos acima com relação às Tabelas 3 e 4. Além disto, na f2A, as unidades NAL que pertencem a uma unidade de decodificação são contíguas (isto é, unidades NAL para outras unidades de decodificação não são entremeadas com unidades NAL de uma unidade de decodificação).
[0171] Na Figura 2A, o codificador de vídeo 20 pode gerar para saída e transmitir os identificadores de unidade de decodificação para cada unidade de decodificação nas unidades de decodificação correspondentes. Por exemplo, o codificador de vídeo 20 inclui os identificadores de unidade de decodificação nas mensagens SEI de informações de unidade de decodificação da unidade NAL SEI 38A e da unidade NAL SEI 38B na unidade de decodificação 36A correspondente, e transmite os identificadores de unidade de decodificação como parte das mensagens SEI de informações de unidade de decodificação das unidades NAL SEI 38A e 38B. O codificador de vídeo 20 inclui os identificadores de unidade de decodificação na mensagem SEI de informações de unidade de decodificação da unidade NAL SEI 42 na unidade de decodificação 36B correspondente, e inclui os identificadores de unidade de decodificação nas mensagens SEI de unidade de decodificação da unidade NAL SEI 46A e da unidade NAL SEI 46B na unidade de decodificação 36C correspondente. Nestes exemplos, o codificador de vídeo 20 transmite os identificadores de unidade de decodificação como parte das respectivas mensagens SEI de unidade de decodificação das unidades NAL SEI 42, 46A e 46B.
[0172] A inclusão das mensagens SEI de unidade de decodificação permite que o decodificador de vídeo 30 determine quais unidades NAL está associada a quais unidades de decodificação com base nos identificadores de unidade de decodificação, de modo que, mesmo se uma unidade NAL for perdida, o decodificador de vídeo 30 ainda pode determinar quais unidades NAL estão associadas a quais unidades de decodificação. Por exemplo, suponha-se que a unidade NAL 40C seja perdida. Neste exemplo, o decodificador de vídeo 30 ainda pode determinar que a unidade NAL 40D está associada à unidade de decodificação 36E uma vez que a unidade NAL 40D é subsequente à unidade NAL SEI 36B, cuja mensagem SEI de informações de unidade de decodificação identificava um identificador de unidade de decodificação para a unidade de decodificação 36A e precede a unidade NAL SEI 42, cuja mensagem SEI de informações de unidade de decodificação indicava um identificador de unidade de decodificação para a unidade de decodificação 36B. Além do mais, com a mensagem SEI de unidade de decodificação indicando os identificadores de unidade de decodificação, o codificador de vídeo 20 pode incluir várias cópias da mensagem SEI de unidade de decodificação em uma unidade de decodificação.
[0173] Conforme mostrado na Figura 2B, a unidade de acesso 50 inclui as unidades de decodificação 52A-52C (coletivamente referidas como “unidades de decodificação 52”). A unidade de decodificação 52A inclui as unidades NAL de fatia 54A e 53B, a unidade de decodificação 50B inclui as unidades NAL de fatia 64A-64C e a unidade de decodificação 52C inclui as unidades NAL de fatia 78A e 78B. Cada uma das unidades NAL de fatia inclui um cabeçalho de fatia e um corpo de fatia. O cabeçalho de fatia inclui informações de cabeçalho que incluem um identificador de unidade de decodificação, e o corpo de fatia inclui dados de vídeo para decodificar a fatia.
[0174] Por exemplo, a unidade NAL de fatia 54A inclui o cabeçalho de fatia 56 e o corpo de fatia 58, e a unidade NAL de fatia 54B inclui o cabeçalho de fatia 60 e o corpo de fatia 62. Neste exemplo, o cabeçalho de fatia 56 da unidade NAL de fatia 54A e o cabeçalho de fatia 60 da unidade NAL de fatia 54B incluem, cada um, o mesmo identificador de unidade de decodificação, que o decodificador de vídeo 30 utiliza para determinar que a unidade NAL 54A e a unidade NAL53B estão associadas à mesma unidade de decodificação (a unidade de decodificação 52A, por exemplo).
[0175] A unidade NAL de fatia 64A inclui o cabeçalho de fatia 66 e o corpo de fatia 68, a unidade NAL de fatia 64B inclui o corpo de fatia 70 e o corpo de fatia 72, e a unidade NAL de fatia 64C inclui o cabeçalho de fatia 74 e o corpo de fatia 76. Neste exemplo, o cabeçalho de fatia 66 da unidade NAL de fatia 64A, o cabeçalho de fatia 70 da unidade NAL de fatia 64B e o cabeçalho de fatia 74 da unidade NAL de fatia 64C incluem, cada um, o mesmo identificador de unidade de decodificação, que o decodificador de vídeo 30 utiliza pode determinar que a unidade NAL 64A, a unidade NAL 64B e a unidade NAL 64C estão associadas à mesma unidade de decodificação (a unidade de decodificação 52B, por exemplo).
[0176] A unidade NAL 78A inclui o cabeçalho de fatia 80 e o configurado 82, e a unidade NAL 78B inclui o cabeçalho de fatia 84 e o corpo de fatia 86. Neste exemplo, o cabeçalho de fatia 80 da unidade NAL de fatia 78A e o cabeçalho de fatia 84 da unidade NAL de fatia 78B incluem, cada um, o mesmo identificador de unidade de decodificação, que o decodificador de vídeo 30 utiliza para determinar que a unidade NAL 78A e a unidade NAL 78B estão associadas à mesma unidade de decodificação (a unidade de decodificação 52C, por exemplo).
[0177] Na Figura 2B, exemplos da mensagem SEI de informações de unidade de decodificação incluem os exemplos descritos acima com relação à Tabela 2. De maneira semelhante à Figura 2A, na Figura 2B as unidades NAL que pertencem a unidade de decodificação são contíguas (isto é, as unidades NAL para outras unidades NAL de decodificação não são entremeadas com unidades NAL de uma unidade de decodificação).
[0178] Conforme mostrado, o codificador de vídeo 20 inclui o identificador de unidade de decodificação nos cabeçalhos de fatia 56 e 60 para a unidade de decodificação 52A correspondente e transmite o identificador de unidade de decodificação como parte dos cabeçalhos de fatia 56 e 60. Além disto, o codificador de vídeo 20 inclui o identificador de unidade de decodificação nos cabeçalhos de fatia 66, 70 e 74 para a unidade de decodificação 52B correspondente e transmite o identificador de unidade de decodificação como parte dos cabeçalhos de fatia 66, 70 e 74. Da mesma maneira, o codificador de vídeo 20 inclui o identificador de unidade de decodificação nos cabeçalhos de fatia 80 e 84 para a unidade de decodificação 52C correspondente e transmite o identificador de unidade de decodificação como parte dos cabeçalhos de fatia 80 e 84.
[0179] No exemplo mostrado na Figura 2B, o decodificador de vídeo 30 não precisa recorres às posições das mensagem SEI SPT para determinar qual unidade NAL de fatia está associada a qual unidade de decodificação. Em vez disso, o decodificador de vídeo 30 utiliza o identificador de unidade de decodificação indicado nos cabeçalhos de fatia da unidade NAL de fatia para determinar qual unidade NAL de fatia está associada a qual unidade de decodificação. Neste caso, mesmo se uma unidade NAL de fatia for perdida (a unidade NAL de fatia 56B, por exemplo), o decodificador de vídeo 30 ainda pode ser capaz de determinar qual unidade NAL está associada a quais unidade de decodificação com base no cabeçalho de fatia.
[0180] A Figura 3 é um diagrama de blocos que mostra um codificador de vídeo 20 exemplar que pode implementar as técnicas descritas nesta revelação. O codificador de vídeo pode efetuar intra-codificação e inter-codificação (codificação ou decodificação intra-preditiva e codificação ou decodificação inter-preditiva) de blocos de vídeo de fatias de vídeo. A intra-codificação recorre à predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de um dado quadro ou imagem de vídeo. A inter- codificação recorre à predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intra- modo (modo I) pode referir-se a qualquer um de vários modos de compactação espacial. Os inter-modos, tais como a predição unidirecional (modo P) ou bi-predição (modo B), podem referir-se a qualquer um de vários modos de compactação temporal.
[0181] No exemplo da Figura 3, o codificador de vídeo 20 inclui uma unidade de particionamento 135, uma unidade de processamento de predição 141, uma unidade de filtro 163, uma memória de imagens de referência 164 (as vezes referida com armazenador de imagens decodificadas), um somador 150, uma unidade de processamento de transformada 152, uma unidade de período de armazenamento de quantificação 154 e uma unidade codificação por entropia 156. A unidade de processamento de predição 141 inclui uma unidade de estimação de movimento 142, uma unidade de compensação de movimento 144 e uma unidade de intra-predição 146. Para reconstrução de blocos de vídeo, o codificador de vídeo 20 inclui também uma unidade de processamento de quantificação inversa 158, uma unidade de processamento de transformada inversa 160 e um somador 162. A unidade de filtro 163 pode representar geralmente um ou mais filtros de malha tais como um filtro desbloqueador, um filtro de malha adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora a unidade de filtro 163 seja mostrada na Figura 3 como sendo um filtro em malha em outras configurações a unidade de filtro 163 pode ser implementada como um filtro pós-malha, e neste caso dados não filtrados podem ser utilizados na malha de codificação.
[0182] Conforme mostrado na Figura 3, o codificador de vídeo 20 recebe dados de vídeo e a unidade de particionamento 135 particiona os dados em blocos de vídeo. Este particionamento pode incluir também particionamento em fatias, justaposições ou outras unidades maiores, assim como particionamento de blocos de vídeo, como, por exemplo, de acordo com uma estrutura de transformação quad-tree de LCUs e CUs, o codificador de vídeo 20 mostra geralmente os componentes que codificam blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em vários blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo referidos como justaposições). A unidade de processamento de predição 141 pode selecionar um de uma série de modos de codificação possíveis, tal como um de uma série de modos de intra-codificação ou um de uma série de modos de inter-codificação, para o bloco de vídeo atual com base em resultados de erros (taxa de codificação e o nível de distorção, por exemplo). A unidade de processamento de predição 141 pode enviar o bloco intra- ou inter-codificado resultante ao somador 150 de modo a gerar dados de bloco residuais e ao somador 162 de modo a reconstruir o bloco codificado para utilização como uma imagem de referência.
[0183] A unidade de intra-predição 146 dentro da unidade de processamento de predição 141 pode efetuar codificação intra-preditiva do bloco de vídeo atual com relação a um ou mais bloco vizinhos no mesmo quadro ou fatia do bloco atual a ser codificado, de modo a se obter compactação espacial. A unidade de estimação de movimento 142 e a unidade de compensação de movimento 144 dentro da unidade de processamento de predição 141 efetuam codificação inter- preditiva do bloco de vídeo atual com relação a um ou mais blocos preditivos em uma ou mais imagens de referência de modo a se obter compactação temporal.
[0184] A unidade de estimação de movimento 142 pode ser configurada para determinar o inter-prediçã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 u fatias GPB. A unidade de estimação de movimento 142 e a unidade de compensação de movimento 144 podem ser altamente integradas, mas são mostradas separadamente para fins conceptuais. A estimação de movimento efetuada pela unidade de estimação de movimento 142 é o processo de gerar vetores de movimento que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro do quadro ou imagem de vídeo atual com relação ao bloco preditivo dentro de uma imagem de referência.
[0185] Um bloco preditivo é um bloco que se verifica corresponder intimamente à PU do bloco de vídeo a ser codificado em termos de diferença de pixel, que pode ser determinada pela soma da diferença absoluta (SAD) pela soma da diferença ao quadrado (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de sub-pixel de número inteiro de imagens de referência armazenadas na memória de imagem de referência 164. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições de pixel fracionárias da imagem de referência. Portanto, a unidade de estimação de movimento 142 pode efetuar uma busca de movimento com relação à posições de pixel inteiro e posições de pixel fracionárias e transmitir um vetor de movimento com precisão de pixel fracionária.
[0186] A unidade de estimação de movimento 142 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia inter-codificada comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada de primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 164. A unidade de estimação de movimento 142 envia o vetor de movimento calculado à unidade de codificação por entropia 156 e à unidade de compensação de movimento 144.
[0187] A compensação de movimento, efetuada pela unidade de compensação de movimento 144, pode envolver a busca ou geração do bloco preditivo cabeçalho no vetor de movimento determinado pela estimação de movimento, possivelmente efetuando interpolações com precisão de sub-pixel. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 144 pode localizar o bloco preditivo para o qual aponta o vetor de movimento em uma das listas de imagens de referência. O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo valores de pixel do bloco preditivo dos valores de variável de pixel do bloco de vídeo atual que é codificado, formando-se 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 luma quanto croma. O somador 150 representa o componente ou componentes que executam esta operação de subtração. A unidade de compensação de movimento 144 pode também gerar elementos de sintaxe associados ao blocos de vídeo e à fatia de vídeo para utilização pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0188] A unidade de intra-predição 146 pode intra- predizer o bloco atual, como alternativa inter-predição efetuada pela unidade de estimação de movimento 142 e pela unidade de compensação de movimento 144, conforme descrito acima. Em particular, a unidade de intra-predição 146 pode determinar um modo de intra-predição a ser utilizado para codificar o bloco atual. Em alguns exemplos, a unidade de intra-predição 146 pode codificar o bloco atual utilizando diversos modos de intra-predição, como, por exemplo, durante passagens de codificação separadas, e a unidade de intra-predição 146 (ou uma unidade de seleção de modo (não mostrada), em alguns exemplos) pode selecionar um modo de intra-predição apropriado a ser utilizado a partir dos modos testados. Por exemplo, a unidade de intra-predição 146 pode calcular valores de distorção de taxa utilizando uma análise de distorção de taxa para os diversos modos intra-predição testados e selecionar o modo intra-predição que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa determina geralmente o grau de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado de modo a se produzir o bloco codificado, assim como a taxa de bits (isto é, o número de bits) utilizada para produzir o bloco codificado. A unidade de intra- predição 146 pode calcular razões a partir das distorções e taxas para os diversos blocos codificados de modo a determinar qual modo de intra-predição apresenta o melhor valor de distorção de taxa para o bloco.
[0189] Seja como for, depois de selecionar um modo de intra-predição para um bloco, a unidade de intra-predição 146 pode enviar à unidade de codificação por entropia 156 informações que indicam um modo de intra-predição selecionada para o bloco. A unidade de codificação por entropia 156 pode codificar as informações que indicam o modo de intra-predição selecionado de acordo com as técnicas desta revelação. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração, que podem incluir uma série de tabelas de índice de modos de intra-predição e uma série de tabelas de índice de modos intra-predição modificadas (também referidas como tabelas de mapeamento em palavras de código), definições de contextos de codificação para diversos blocos, e indicações do modo de intra-predição mais provável, uma tabela de índice de modos de intra-predição modificada a serem utilizadas para cada um dos contextos.
[0190] Depois que a unidade de processamento de predição 141 gera o bloco preditivo para o bloco de vídeo atual por meio ou da inter-predição ou da intra-predição, o codificador de vídeo 20 forma um bloco de vídeo residual subtraindo o bloco preditivo do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em um ou mais TUs e aplicados à unidade de processamento de transformada 152. A unidade de processamento de transformada 152 transforma os dados de vídeo residuais em coeficientes de transformada residuais utilizando uma transformada, tal como uma transformada de co-seno discreta (DCT) ou uma transformada conceptualmente semelhante. A unidade de processamento de transformada 152 pode converter os dados de vídeo residuais do domínio de pixel no domínio de transformada, tal como um domínio de frequência.
[0191] A unidade de processamento de transformada 152 pode enviar os coeficientes de transformada resultantes à unidade de processamento de quantificação 154. A unidade de processamento de quantificação 154 quantifica os coeficientes de transformada de modo a reduzir também a taxa de bits. O processo de quantificação pode reduzir a profundidade de bit associada a alguns ou a todos os coeficientes. O grau de quantificação pode ser modificado pelo ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de processamento de quantificação 154 pode efetuar então uma busca da matriz que inclui os coeficientes de transformada quantificados. Alternativamente, a unidade de codificação por entropia 156 pode efetuar a varredura.
[0192] Após a quantificação a unidade de codificação por entropia 156 codifica por entropia os coeficientes de transformada quantificados. Por exemplo, a unidade de codificação por entropia 156 pode efetuar codificação de comprimento variável adaptativa ao contexto CAVLC), a codificação aritmética binária adaptativa ao contexto (CABAC), a codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SEBAC), a codificação por Entropia com Particionamento de Intervalos de Probabilidade (PIPE) ou outra metodologia ou técnica de codificação por entropia. Em seguida à codificação por entropia pela unidade de codificação por entropia 156, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para transmissão ou recuperação posterior pelo decodificador de vídeo 30. A unidade de codificação por entropia 156 pode codificar também por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que é codificada.
[0193] A unidade de processamento de quantificação inversa 158 e a unidade de processamento de transformada inversa 160 aplicam quantificação inversa e transformação inversa respectivamente, para reconstruir o bloco residual no domínio de pixel para utilização posterior como um bloco de referência de uma imagem de referência. A unidade de compensação de movimento 144 pode calcular um bloco de referência adicionando o bloco residual a um bloco preditivo de uma das imagens de referência dentro de uma das listas de imagens de referência. A unidade de compensação de movimento 144 pode aplicar também um ou mais filtros de interpolação ao bloco residual reconstruído de modo a calcular valores de sub-pixel de número inteiro para utilização na estimação de movimento. O somador 162 adiciona o bloco residual reconstruído ao bloco de predição compensado em movimento produzido pela unidade de compensação de movimento 144 de modo a produzir um bloco de referência para armazenamento na memória de imagens de referência 164. O bloco de referência pode ser utilizado pela unidade de estimação de movimento 142 e pela unidade de compensação de movimento 144 como um bloco de referência para inter-predizer um bloco em um quadro ou imagem de vídeo subsequente.
[0194] O codificador de vídeo 20 da Figura 3 representa um exemplo de codificador de vídeo configurado para implementar uma ou mais da técnicas aqui descritas. A unidade de processamento de predição 141 representa uma unidade exemplar para desempenhar as funções exemplares descritas acima. A unidade de processamento de predição 141 pode gerar as unidades NAL e associar as unidades NAL com unidades de decodificação de uma unidade de acesso. A unidade de processamento de predição 141 pode gerar os identificadores de unidade de decodificação e incluir os identificadores de unidade de decodificação na mensagem SEI de informações de unidade de decodificação de uma unidade NAL SEI e/ou incluir os identificadores de unidade de decodificação em cabeçalhos de fatia de unidades NAL de fatia. A unidade de codificação por entropia 156 pode codificar por entropia as unidades de decodificação (as unidades NAL dentro das unidades de decodificação, por exemplo).
[0195] Em alguns exemplos, uma unidade diferente da unidade de processamento de predição 141 pode implementar os exemplos descritos acima. Em alguns exemplos, a unidade de processamento de predição 141, em conjunto com uma ou mais outras unidades do codificador de vídeo 20, pode implementar os exemplos descritos acima. Em alguns exemplos, um processador unidade do codificador de vídeo 20 (não mostrada na Figura 3) pode, sozinha ou em conjunto com outras unidades do codificador de vídeo 20, implementar os exemplos descritos acima.
[0196] A Figura 4 é um diagrama de blocos que mostra um decodificador de vídeo 30 exemplar que pode implementar as técnicas desta revelação. No exemplo da Figura 4, o decodificador de vídeo 30 inclui uma unidade de decodificação por entropia 180, uma unidade de processamento de predição 181, uma unidade de processamento de quantificação inversa 186, uma unidade de processamento de transformada inversa 188, um somador 190, uma unidade de filtro 191, uma memória de imagens de referência 192 (às vezes referida como armazenador de imagens decodificadas (DPB)) e um armazenador de imagens codificadas (CPB) 194. A unidade de processamento de predição 181 inclui uma unidade de compensação de movimento 182 e uma unidade de intra- predição 184. O decodificador de vídeo 30 pode, em alguns exemplos, executar uma passagem de decodificação geralmente correspondente à passagem de codificação descrita com relação ao codificador de vídeo da Figura 3.
[0197] 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 conexos do codificador de vídeo 20. O decodificador de vídeo 30 pode receber o fluxo de bits de vídeo codificado de uma entidade de rede 29. A entidade de rede 29 pode, por exemplo, ser um servidor, um elemento de rede ciente de meios (MAME), um editor/formador de emendas de vídeo ou outro aparelho que tal configurado para implementar uma ou mais das técnicas descritas acima. Conforme descrito acima, algumas das técnicas descritas nesta revelação podem ser implementadas pela entidade de rede 29 antes de a 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 peças de aparelhos separados, enquanto, em outros casos, a funcionalidade descrita com relação à entidade de rede 29 pode ser executada pelo mesmo aparelho que compreende o decodificador de vídeo 30.
[0198] O armazenador de imagens codificadas 194 recebe as imagens codificadas da entidade de rede 29. Conforme descrito nesta revelação, parte dos elementos de sintaxe no fluxo de bits codificado indica se o acesso ao nível de sub-imagem ao CPB 194 é permitido. Além disto, o fluxo de bits codificado pode incluir mensagens SEI que definem informações para o processamento das imagens dentro do CPB 194 (tempos de remoção das unidades de decodificação da unidade de acesso, por exemplo).
[0199] A unidade de decodificação por entropia 180 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits de modo a gerar coeficientes quantificados, vetores de movimento e outros elementos de sintaxe. A unidade de decodificação por entropia 180 emite os vetores de movimento e outros elementos de sintaxe para a unidade de processamento de predição 181. O decodificador de vídeo 30 para receber os elementos de sintaxe ao nível de fatia de vídeo ou ao nível de bloco de vídeo.
[0200] Quando a fatia de vídeo é codificada como uma fatia intra-codificada (I), a unidade de intra-predição 184 da unidade de processamento de predição 181 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base no modo de intra-predição sinalizado e em dados de blocos decodificados anteriormente do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia inter-codificada (isto é, B, P ou GPB) a unidade de compensação de movimento 182 da unidade de processamento de predição 181 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos da unidade de decodificação por entropia 180. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir listas de quadros (imagens), Lista 0 e Lista 1, utilizando técnicas de construção pré-definidas com base nas imagens de referência armazenadas na memória de imagens de referência 192.
[0201] A unidade de compensação de movimento 182 determina informações de predição para um bloco de vídeo da fatia de vídeo atual efetuando parse nos vetores de movimento e em outros elementos de sintaxe, e utiliza as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual que é codificado. Por exemplo, a unidade de compensação de movimento 182 utiliza alguns dos elementos de sintaxe recebidos para determinar um modo de predição (intra- ou inter-predição, por exemplo) utilizado para codificador os blocos de vídeo da fatia de vídeo, o tipo de fatia de inter-predição (fatia B, fatia P ou fatia GPB, por exemplo), informações de construção para uma ou mais das listas de imagens de referência para fatia, vetores de movimento para cada bloco de vídeo inter- codificado da fatia, a condição de inter-predição para cada bloco de vídeo inter-codificado da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0202] A unidade de compensação de movimento 182 pode também efetuar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 182 pode utilizar os filtros de interpolação utilizados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para sub-pixels de número inteiro de blocos de referência. Neste caso, a unidade de compensação de movimento 182 pode determinar os filtros de interpolação utilizados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e utilizar os filtros de interpolação para produzir blocos preditivos.
[0203] A unidade de processamento de quantificação inversa quantifica por inversão, isto é, desquantifica, os coeficientes de transformada quantificados apresentados no fluxo de bits e decodificados pela unidade de decodificação por entropia. O processo de quantificação inversa pode incluir a utilização de um parâmetro de quantificação calculado pelo codificador de vídeo 20 para cada bloco de vídeo na fatia de vídeo de modo a determinar o grau de quantificação e, da mesma maneira, o grau de quantificação inversa que deve ser aplicado. A unidade de processamento de transformada inversa 188 aplica uma transformada inversa, como, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceptualmente semelhante aos coeficientes de transformada de modo a produzir blocos residuais no domínio de pixel.
[0204] Depois que a unidade de compensação de movimento 182 gera o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando os blocos residuais da unidade de processamento de transformada 188 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 182. O somador 190 representa o componente ou componentes que executam esta operação de soma. Se desejável, filtros de malha (ou na malha de codificação ou depois da malha de codificação) podem ser também utilizados para suavizar transições entre pixels ou senão aperfeiçoar a qualidade de vídeo. A unidade de filtro 191 pode representar um ou mais filtros de malha, tais como um filtro desbloqueador, um filtro de malha adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAQ). Embora a unidade de filtro 191 seja mostrada na Figura 4 como sendo um filtro na malha, em outras configurações a unidade de filtro 191 pode ser implementada como um filtro pós-malha. Os blocos de vídeo decodificados em um dado quadro ou imagem são em seguida armazenados na memória de imagens de referência 192, que armazena as memórias de referência utilizadas na compensação de movimento subsequente. A memória de imagens de referência 192 armazena também vídeo decodificado para apresentação posterior em um aparelho de exibição, tal como o aparelho de exibição o aparelho de exibição 31 da Figura 1.
[0205] O decodificador de vídeo 30 da Figura 4 representa um exemplo de decodificador de vídeo configurado para implementar uma ou mais das técnicas aqui descritas. Por exemplo, a unidade de processamento de predição 181 representa uma unidade exemplar para desempenhar as funções exemplares descritas acima. Por exemplo, a unidade de processamento de predição 181 pode determinar se SubPicCpbFlag indica que o funcionamento ao nível de sub- imagem no CPB 194 é permitido. Se o funcionamento de sub- imagem for permitido, a unidade de processamento de predição 181 pode determinar quais unidades NAL estão associadas a quais unidade de decodificação de uma unidade de acesso.
[0206] Por exemplo, a unidade de processamento de predição 181 pode determinar que uma unidade NAL SEI inclui a mensagem SEI de informações de unidade de decodificação. A partir da mensagem SEI de informações de unidade de decodificação, a unidade de processamento de predição 181 pode determinar o tempo de remoção do CPB 194 da unidade de decodificação e o identificador de unidade de decodificação. A unidade de processamento de predição 181 pode determinar que a unidade NAL SEI e todas as unidades NAL que se seguem à unidade NAL SEI até outra unidade NAL SEI que inclui uma mensagem SEI de informações de unidade de decodificação com um identificador de unidade de decodificação diferente estão associadas à unidade de decodificação pela mensagem SEI de informações de unidade de decodificação da unidade de decodificação.
[0207] Como outro exemplo, a unidade de processamento de predição 181 pode determinar que uma fatia de um cabeçalho de fatia inclui um identificador de unidade de decodificação. A unidade de processamento de predição 181 pode determinar a qual unidade de decodificação a unidade NAL de fatia que inclui a fatia e seu cabeçalho de fatia está associada com base no identificador de decodificação.
[0208] Desta maneira, mesmo se uma unidade NAL for perdida na transmissão, a unidade de processamento de predição 181 é capaz de determinar a quais unidades de decodificação as outras unidades NAL (isto é, recebidas e não perdidas) estão associada. Em alguns exemplos, a unidade de processamento de predição 181 é capaz de determinar o momento em que a unidade de decodificação será removida do CPB 194 uma vez que pode haver várias cópias da mensagem SEI de unidade de decodificação dentro da unidade de decodificação.
[0209] Em alguns exemplos, uma unidade diferente da unidade de processamento de predição 181 pode implementar os exemplos descritos acima. Em alguns exemplos, a unidade de processamento de predição 181, em conjunto com uma ou mais outras unidades do decodificador de vídeo 30 pode implementar os exemplos descritos acima. Em alguns exemplos, um processador ou unidade do decodificador de vídeo 30 (não mostrada na Figura 4) pode, sozinha ou em conjunto com outras unidades do decodificador de vídeo 30 implementar os exemplos descritos acima.
[0210] A Figura 5 é um fluxograma que mostra um exemplo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação. Para fins de ilustração, o exemplo da Figura 5 é descrito com relação ao dcv2.
[0211] O codificador de vídeo 20 determina um identificador único para cada unidade de decodificação em uma unidade de acesso (200). O identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. Por exemplo, o codificador de vídeo 20 determina um primeiro identificador para uma primeira unidade de decodificação nas unidades de acesso e determina um segundo identificador diferente para uma segunda unidade de decodificação diferente na unidade de acesso. Neste exemplo, se o valor do primeiro identificador for menor que o valor do segundo identificador a primeira unidade de decodificação precede a segunda unidade de decodificação em ordem de decodificação.
[0212] O codificador de vídeo 20 determina quais unidades NAL estão associadas a quais unidade de decodificação (202) da unidade de acesso. Por exemplo, as unidades de decodificação podem cada uma representar dados de vídeo para uma parte de uma imagem, e as unidades NAL podem representar parte da unidade de decodificação. O codificador de vídeo 20 pode determinar quais partes dos dados de vídeo da unidade de decodificação são representadas por quais unidades NAL e determinar que as unidades NAL que representam os dados de vídeo da unidade de decodificação estão associadas à unidade de decodificação.
[0213] O codificador de vídeo 20 gera para saída cada identificador único nas unidades de decodificação correspondentes de modo a indicar quais unidades NAL estão associadas a quais unidade de decodificação da unidade de acesso (204). Por exemplo, o codificador de vídeo 20 pode codificar por entropia os identificadores únicos para cada uma das unidades de decodificação por meio da unidade de codificação por entropia 156. Nestes exemplos, a codificação pode ser considerada como gerando para saída. Além do mais, o codificador de vídeo 20 pode transmitir (sinalizar, por exemplo) cada identificador único nas unidades de decodificação correspondentes de modo a indicar quais unidades NAL estão associadas a quais unidades de decodificação das unidades de acesso como parte de um fluxo de bits codificado.
[0214] Por exemplo, o codificador de vídeo 20 pode incluir um primeiro identificador único para uma primeira unidade de decodificação em uma primeira mensagem SEI de informações de unidade de decodificação e transmitir todas as unidades NAL que estão associada à primeira unidade de decodificação após a transmissão do primeiro identificador único como parte da primeira mensagem SEI de informações de unidade de decodificação. O codificador de vídeo 20 pode incluir um segundo identificador de unidade de decodificação para uma segunda unidade de decodificação em uma segunda mensagem SEI de unidade de decodificação. Após a transmissão de todas as unidades NAL que estão associadas à primeira unidade de decodificação, o codificador de vídeo 20 pode transmitir o segundo identificador de unidade de decodificação na segunda mensagem SEI de unidade de decodificação como parte da transmissão da segunda unidade de decodificação. Como outro exemplo, o codificador de vídeo 20 pode incluir e transmitir cada um dos identificadores únicos em cabeçalhos de fatia de unidades NAL de fatia.
[0215] Em alguns exemplos, o codificador de vídeo 20 pode transmitir, como parte de uma unidade de decodificação, uma primeira mensagem SEI de unidade de decodificação que indica informações para o tempo de remoção da unidade de decodificação. O codificador de vídeo 20 pode transmitir também, como parte da unidade de decodificação, uma segunda mensagem SEI de unidade de decodificação que indica informações para o tempo de remoção da unidade de decodificação. Em alguns casos, a segunda mensagem SEI de unidade de decodificação é uma cópia da primeira mensagem SEI de unidade de decodificação. Em alguns exemplos, o codificador de vídeo 20 pode incluir uma mensagem SEI na unidade de acesso e inclui uma cópia da mensagem SEI na unidade de acesso. o codificador de vídeo 20 pode transmitir a unidade de acesso que inclui a mensagem SEI e uma cópia da mensagem SEI.
[0216] A Figura 6 é um fluxograma que mostra um exemplo de decodificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação. Para fins de ilustração, o exemplo da Figura 6 é descrito com relação ao decodificador de vídeo 30.
[0217] O decodificador de vídeo 30 pode decodificar um identificador único para cada unidade de decodificação em uma unidade de acesso (206). Neste exemplo, o identificador para uma unidade de decodificação é diferente do identificador para qualquer outra unidade de decodificação na unidade de acesso. Por exemplo, o decodificador de vídeo 30 pode decodificar um primeiro identificador para uma primeira unidade de decodificação na unidade de acesso e decodificar um segundo identificador diferente para uma segunda unidade diferente na unidade de acesso. Neste exemplo, se o valor do primeiro identificador for menor que o valor do segundo identificador, a primeira unidade de decodificação precede a segunda unidade de decodificação em ordem de decodificação.
[0218] O decodificador de vídeo 30 pode determinar quais unidades NAL estão associadas a quais unidade de decodificação com base no identificador único para cada unidade de decodificação na unidade de acesso (208). Por exemplo, o decodificador de vídeo 30 pode decodificar um primeiro identificador único a partir de uma primeira mensagem SEI de informações de unidade de decodificação para uma primeira unidade de decodificação e decodificar um segundo identificador único a partir de uma segunda mensagem SEI de unidade de decodificação para a segunda unidade de decodificação. O decodificador de vídeo 30 pode determinar que uma primeira unidade NAL SEI que inclui a primeira mensagem SEI de informações de unidade de decodificação e todas as unidades NAL que se seguem à primeira unidade NAL SEI até uma segunda unidade NAL SEI que inclui a segunda mensagem SEI de informações de unidade de decodificação estão associadas à primeira unidade de decodificação. Como outro exemplo, o decodificador de vídeo 30 pode decodificar o identificador único em um cabeçalho de fatia de uma unidade NAL de fatia e determinar qual unidade de decodificação à qual a unidade NAL de fatia está associada com base no identificador único no cabeçalho de fatia.
[0219] O decodificador de vídeo 30 pode decodificar unidades NAL com base na determinação de modo a reconstruir pelo menos uma imagem (210). Por exemplo, o resultado da decodificação de todas as unidades NAL associada com todas as unidades de decodificação pode ser a unidade de acesso decodificada. Conforme descrito acima, a decodificação de uma unidade de acesso resulta em pelo menos uma imagem (uma imagem quando a codificação de vídeo de várias vistas não é utilizada e várias imagens quando a codificação de vídeo de várias vistas é utilizada, por exemplo).
[0220] Em alguns exemplos, o decodificador de vídeo 30 pode decodificar uma primeira mensagem SEI de informações de unidade de decodificação que indica informações para o tempo de remoção da unidade de decodificação. O decodificador de vídeo 30 pode decodificar também uma segunda mensagem SEI de informações de unidade de decodificação que é localizada em duas unidades NAL associadas à unidade de decodificação. Neste exemplo, a segunda mensagem SEI de informações de unidade de decodificação é uma cópia da primeira mensagem SEI de informações de unidade de decodificação. Em alguns exemplos, o decodificador de vídeo 30 pode decodificar uma mensagem SEI na unidade de acesso e decodificar uma cópia da mensagem SEI na unidade de acesso.
[0221] A Figura 7 é um fluxograma que mostra um exemplo de codificação de dados de vídeo de acordo com um ou mais exemplos descritos nesta revelação. Para fins de ilustração, as técnicas são descritas com relação a um codificador de vídeo. Exemplos do codificador de vídeo incluem o codificador de vídeo 20 e o decodificador de vídeo 30. Por exemplo, quando se codifica vídeo, o exemplo do codificador de vídeo é o codificador de vídeo 20. Quando se decodifica vídeo, o exemplo do codificador de vídeo é o decodificador de vídeo 30.
[0222] Conforme mostrado na Figura 7, um codificador de vídeo é configurado para codificar uma mensagem com informações de aperfeiçoamento suplementar (SEI) em uma unidade de acesso (212). Conforme descrito acima, a unidade de acesso inclui os dados de vídeo para reconstruir pelo menos uma imagem, e a mensagem SEI define uma característica dos dados de vídeo (características tais como as descritas acima nas Tabelas 1 e 5, por exemplo). Em alguns exemplos, o codificador de vídeo pode codificar a mensagem SEI na unidade de acesso para a transmissão em várias seções. O codificador de vídeo é configurado para codificar uma cópia da mensagem SEI na unidade de acesso (214). Em alguns exemplos, o codificador de vídeo pode codificar a cópia da mensagem SEI na unidade de acesso para transmissão em várias seções.
[0223] Por exemplo, o codificador de vídeo pode incluir a mensagem SEI antes de uma primeira unidade de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em ordem de decodificação na unidade de acesso. O codificador de vídeo segundo pode incluir a cópia da mensagem SEI depois da primeira unidade NAL VCL em ordem de decodificação e antes da última unidade NAL VCL em ordem de decodificação. Neste exemplo, o codificador de vídeo 20 pode codificar a mensagem SEI que é incluída antes da primeira unidade NAL VCL e codificar a cópia da mensagem SEI que é incluída depois da primeira unidade NAL VCL e antes da última unidade NAL VCL.
[0224] Como outro exemplo, o decodificador de vídeo 30 pode decodificar uma primeira unidade NAL VCL em ordem de decodificação na unidade de acesso e decodificar a última unidade NAL VCL em ordem de decodificação na unidade de acesso. Neste exemplo, o decodificador de vídeo 30 pode decodificar a mensagem SEI antes de decodificar a primeira unidade NAL VCL e decodificar a cópia da mensagem SEI depois de decodificar a primeira unidade NAL VCL e antes de decodificar a última unidade NAL VCL.
[0225] Em alguns exemplos, o codificador de vídeo pode determinar o tipo da mensagem SEI. O codificador de vídeo pode determinar também um valor de identificação temporal da unidade de acesso. O codificador de vídeo pode determinar se a presença da mensagem SEI é permitida com base no valores de identificação temporal da unidade de acesso e no tipo da mensagem SEI. Nestes exemplos, o codificador de vídeo pode codificar a mensagem SEI com base na determinar de se a presença da mensagem SEI é permitida.
[0226] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas através de uma ou mais instruções ou código em um meio passível de leitura por computador e executadas por uma unidade de processamento baseada em hardware. Os meios passíveis de leitura por computador podem incluir meios de armazenamento passíveis de leitura por computador, que correspondem a um meio tangível tais como meios de armazenamento de dados ou meios de comunicação que incluem qualquer meio que facilite a transferência de um programa de computador de um lugar para outro, de acordo com um protocolo de comunicação, por exemplo. Desta maneira, os meios passíveis de leitura por computador podem corresponder geralmente a (1) meios de armazenamento passíveis de leitura por computador que são não transitórios ou (2) um meio de comunicação tal como um sinal ou onda portadora. Os meios de armazenamento podem ser quaisquer meios disponíveis que possam ser acessado por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estrutura de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir um meio passível de leitura por computador.
[0227] Em ainda outros exemplos, esta revelação contempla um meio passível de leitura por computador que compreende uma estrutura de dados armazenada nele, no qual a estrutura de dados inclui um fluxo de bits codificado que é codificado em conformidade com esta revelação.
[0228] A título de exemplo, e não de limitação, tais meios passíveis de leitura por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco óptico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético, memória flash ou qualquer outro meio que possa ser utilizado para armazenar código de programa desejado sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Além disto, qualquer conexão é apropriadamente denominada de meio passível de leitura por computador. Por exemplo, se as instruções forem transmitidas de um site da Web, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídos na definição de meio. Deve ficar entendido, contudo, que os meios de armazenamento passíveis de leitura por computador e os meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transitórios, mas são em vez disso direcionados a meios de armazenamento tangíveis não transitórios. O termo disco (disk) e disco (disc), conforme aqui utilizado, inclui disco compacto (CD), disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco Blu-ray, em que usualmente discos (disks) reproduzem dados magneticamente, enquanto discos (discs) reproduzem dados opticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance dos meios passíveis de leitura por computador.
[0229] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSP), microprocessadores de propósito geral, circuitos integrados específicos de aplicativo (ASICs), arranjos lógicos programáveis no campo (FPGAs) ou outros circuitos lógicos integrados ou discretos equivalentes. Por conseguinte, o termo “processador”, conforme aqui utilizado, pode referir-se a qualquer uma das estruturas precedentes ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disto, sob alguns aspectos, a funcionalidade aqui descrita pode ser apresentada dentro de hardware dedicado e/ou em módulos de software configurados para codificação e decodificação ou incorporada a um CODEC combinado. Além disto, as técnicas podem ser completamente implementadas em um ou mais circuitos ou elemento lógicos.
[0230] As técnicas desta revelação podem ser implementadas em uma ampla variedade de aparelhos ou equipamentos, que incluem um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (isto é, um conjunto de chips). Diversos componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de aparelhos configurados para executar as técnicas reveladas, mas não exigem necessariamente a execução por unidades de hardware diferente. Em vez disso, conforme descrito acima, diversas unidades podem ser combinadas em uma unidade de hardware de CODEC ou providas por uma coleção de unidades de hardware inter-operantes, que incluem um ou mais processadores, conforme descrito acima em conjunto com software e/ou firmware adequado.
[0231] Foram descritos diversos exemplos. Estes e outros exemplos estão dentro do alcance das reivindicações seguintes.

Claims (15)

1. Método para decodificar dados de vídeo, caracterizado pelo fato de compreender: decodificar, a partir de um fluxo de bits, uma primeira unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em ordem de decodificação em uma unidade de acesso, em que a unidade de acesso inclui os dados de vídeo para reconstrução de pelo menos uma imagem; decodificar, a partir do fluxo de bits, uma segunda unidade NAL VCL na ordem de decodificação na unidade de acesso; decodificar, a partir do fluxo de bits, uma mensagem com informações de aperfeiçoamento suplementar (SEI) de um tipo específico na unidade de acesso antes de decodificar, a partir do fluxo de bits, a primeira unidade NAL VCL, em que mensagens SEI contêm informação associada ao processamento dos dados de vídeo; e decodificar, a partir do fluxo de bits, uma cópia da mensagem SEI do tipo específico na unidade de acesso após a decodificação, a partir do fluxo de bits, da primeira unidade NAL VCL e antes da decodificação, a partir do fluxo de bits, da segunda unidade NAL VCL, em que o conteúdo da cópia da mensagem SEI do tipo específico no fluxo de bits é restrito a ser idêntico ao conteúdo da mensagem SEI decodificada do tipo específico.
2. Método para codificar dados de vídeo, caracterizado pelo fato de compreender: codificar, em uma unidade de acesso, uma mensagem com informações de aperfeiçoamento suplementar (SEI) de um tipo específico, em que a unidade de acesso inclui os dados de vídeo para reconstrução de pelo menos uma imagem, e mensagens SEI contêm informação associada ao processamento dos dados de vídeo; incluir a mensagem SEI do tipo específico antes de uma primeira unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em ordem de decodificação na unidade de acesso; codificar, com base em uma restrição de conteúdo em múltiplas ocorrências da mensagem SEI do tipo específico dentro da unidade de acesso, uma cópia da mensagem SEI do tipo específico na unidade de acesso, a restrição sendo o conteúdo da cópia codificada da mensagem SEI do tipo específico ser idêntico ao conteúdo da mensagem SEI codificada do tipo específico; e incluir a cópia da mensagem SEI após a primeira unidade NAL VCL na ordem de decodificação e antes de uma segunda unidade NAL VCL na ordem de decodificação na unidade de acesso.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar o tipo específico da mensagem SEI; determinar um valor de identificação temporal da unidade de acesso; e determinar se a presença da mensagem SEI é permitida com base no valor de identificação temporal da unidade de acesso e no tipo específico da mensagem SEI, em que decodificar a mensagem SEI compreende decodificar a mensagem SEI com base na determinação de que a presença da mensagem SEI é permitida.
4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende adicionalmente: determinar o tipo específico da mensagem SEI; determinar um valor de identificação temporal da unidade de acesso; e determinar se a presença da mensagem SEI é permitida com base no valor de identificação temporal da unidade de acesso e no tipo específico da mensagem SEI, em que codificar a mensagem SEI compreende codificar a mensagem SEI com base na determinação de que a presença da mensagem SEI é permitida.
5. Memória legível por computador, caracterizada pelo fato de possuir instruções nela armazenadas que, quando executadas por um ou mais processadores de um dispositivo para decodificar dados de vídeo, fazem com que os um ou mais processadores realizem o método conforme definido na reivindicação 1 ou 3.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que decodificar a mensagem SEI compreende decodificar a mensagem SEI na unidade de acesso para uma transmissão em várias seções, e em que decodificar a cópia da mensagem SEI compreende decodificar a cópia da mensagem SEI na unidade de acesso para a transmissão em várias seções.
7. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que codificar a mensagem SEI compreende codificar a mensagem SEI na unidade de acesso para uma transmissão em várias seções, e em que codificar a cópia da mensagem SEI compreende codificar a cópia da mensagem SEI na unidade de acesso para a transmissão em várias seções.
8. Memória, de acordo com a reivindicação 5, caracterizada pelo fato de compreender adicionalmente instruções que fazem com que os um ou mais processadores: determinem o tipo específico da mensagem SEI; determinem um valor de identificação temporal da unidade de acesso; e determinem se a presença da mensagem SEI é permitida com base no valor de identificação temporal da unidade de acesso e no tipo da mensagem SEI, em que as instruções que fazem com que os um ou mais processadores decodifiquem a mensagem SEI compreendem instruções que fazem com que os um ou mais processadores decodifiquem a mensagem SEI com base na determinação de que a presença da mensagem SEI é permitida
9. Aparelho para decodificar dados de vídeo, caracterizado pelo fato de compreender: dispositivos para decodificar, a partir de um fluxo de bits, uma primeira unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em ordem de decodificação em uma unidade de acesso, em que a unidade de acesso inclui os dados de vídeo para reconstrução de pelo menos uma imagem; dispositivos para decodificar, a partir do fluxo de bits, uma segunda unidade NAL VCL na ordem de decodificação na unidade de acesso; dispositivos para decodificar, a partir do fluxo de bits, uma mensagem com informações de aperfeiçoamento suplementar (SEI) de um tipo específico na unidade de acesso antes de decodificar, a partir do fluxo de bits, a primeira unidade NAL VCL, em que mensagens SEI contêm informação associada ao processamento dos dados de vídeo; e dispositivos para decodificar, a partir do fluxo de bits, uma cópia da mensagem SEI do tipo específico na unidade de acesso após a decodificação, a partir do fluxo de bits, da primeira unidade NAL VCL e antes da decodificação, a partir do fluxo de bits, da segunda unidade NAL VCL, em que o conteúdo da cópia da mensagem SEI do tipo específico no fluxo de bits é restrito a ser idêntico ao conteúdo da mensagem SEI decodificada do tipo específico.
10. Aparelho para codificar dados de vídeo, caracterizado pelo fato de compreender: dispositivos para codificar, em uma unidade de acesso, uma mensagem com informações de aperfeiçoamento suplementar (SEI) de um tipo específico, em que a unidade de acesso inclui os dados de vídeo para reconstrução de pelo menos uma imagem, e mensagens SEI contêm informação associada ao processamento dos dados de vídeo; dispositivos para incluir a mensagem SEI do tipo específico antes de uma primeira unidade de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) em ordem de decodificação na unidade de acesso; dispositivos para codificar, com base em uma restrição de conteúdo em múltiplas ocorrências da mensagem SEI do tipo específico dentro da unidade de acesso, uma cópia da mensagem SEI do tipo específico na unidade de acesso, a restrição sendo o conteúdo da cópia codificada da mensagem SEI do tipo específico ser idêntico ao conteúdo da mensagem SEI codificada do tipo específico; e dispositivos para incluir a cópia da mensagem SEI após a primeira unidade NAL VCL na ordem de decodificação e antes de uma segunda unidade NAL VCL na ordem de decodificação na unidade de acesso.
11. Aparelho, de acordo com a reivindicação 9 ou 10, caracterizado pelo fato de que a mensagem SEI compreende uma de: uma mensagem SEI de período de armazenamento em buffer; uma mensagem SEI de temporização de imagens; uma mensagem SEI de retângulo pan-scan; uma mensagem SEI de carga útil de enchimento; uma mensagem SEI registrada de dados de usuário; uma mensagem SEI não registrada de dados de usuário; uma mensagem SEI de ponto de recuperação; uma mensagem SEI de informações de cena; uma mensagem SEI de instantâneo de quadro total; uma mensagem SEI de início de seguimento de refinamento progressivo; uma mensagem SEI de fim de segmento de refinamento progressivo; uma mensagem SEI de características granulares de película; uma mensagem SEI de preferência de exibição de filtro desbloqueador; uma mensagem SEI de sugestão pós-filtragem; uma mensagem SEI de informações de mapeamento em tons; uma mensagem SEI de disposição de empacotamento de quadros; uma mensagem SEI de orientação de exibição; uma mensagem SEI de estrutura de descrição de imagens; uma mensagem SEI de indicação de campo; uma mensagem SEI de hash de imagens decodificadas; uma mensagem SEI de conjuntos de parâmetros ativos; e uma mensagem SEI de temporização de sub-imagens.
12. Aparelho, de acordo com a reivindicação 9, caracterizado pelo fato de que os dispositivos para decodificar são configurados para decodificar a mensagem SEI na unidade de acesso para uma transmissão em várias seções, e em que os dispositivos para decodificar são configurados para decodificar a cópia da mensagem SEI na unidade de acesso para a transmissão em várias seções.
13. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que os dispositivos para codificar são configurados para codificar a mensagem SEI na unidade de acesso para uma transmissão em várias seções, e em que os dispositivos para codificar são configurados para codificar a cópia da mensagem SEI na unidade de acesso para a transmissão em várias seções.
14. Aparelho, de acordo com a reivindicação 9, caracterizado pelo fato de compreender adicionalmente: dispositivos para determinar o tipo específico da mensagem SEI; dispositivos para determinar um valor de identificação temporal da unidade de acesso; e dispositivos para determinar se a presença da mensagem SEI é permitida com base no valor de identificação temporal da unidade de acesso e no tipo de mensagem SEI, no qual os dispositivos para decodificar a mensagem SEI compreendem dispositivos para decodificar a mensagem SEI com base na determinação de que a presença da mensagem SEI é permitida.
15. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de compreender adicionalmente: dispositivos para determinar o tipo específico da mensagem SEI; dispositivos para determinar um valor de identificação temporal da unidade de acesso; e dispositivos para determinar se a presença da mensagem SEI é permitida com base no valor de identificação temporal da unidade de acesso e no tipo de mensagem SEI, no qual os dispositivos para codificar a mensagem SEI compreendem dispositivos para codificar a mensagem SEI com base na determinação de que a presença da mensagem SEI é permitida.
BR112015006849-9A 2012-09-28 2013-08-20 Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador BR112015006849B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261707759P 2012-09-28 2012-09-28
US61/707,759 2012-09-28
US13/926,543 US9479782B2 (en) 2012-09-28 2013-06-25 Supplemental enhancement information message coding
US13/926,543 2013-06-25
PCT/US2013/055865 WO2014051893A1 (en) 2012-09-28 2013-08-20 Supplemental enhancement information message coding

Publications (2)

Publication Number Publication Date
BR112015006849A2 BR112015006849A2 (pt) 2017-07-04
BR112015006849B1 true BR112015006849B1 (pt) 2022-08-02

Family

ID=50385188

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112015006849-9A BR112015006849B1 (pt) 2012-09-28 2013-08-20 Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112015006856-1A BR112015006856B1 (pt) 2012-09-28 2013-08-20 Método e aparelho para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo e memória legível por computador

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112015006856-1A BR112015006856B1 (pt) 2012-09-28 2013-08-20 Método e aparelho para decodificar dados de vídeo, método e aparelho para codificar dados de vídeo e memória legível por computador

Country Status (19)

Country Link
US (2) US9565452B2 (pt)
EP (2) EP2901678B1 (pt)
JP (2) JP6235026B2 (pt)
KR (2) KR101741342B1 (pt)
CN (2) CN104704841B (pt)
AR (1) AR094447A1 (pt)
AU (2) AU2013324246B2 (pt)
BR (2) BR112015006849B1 (pt)
CA (2) CA2884560C (pt)
HK (2) HK1207927A1 (pt)
IL (2) IL237770B (pt)
MY (2) MY194740A (pt)
PH (2) PH12015500509B1 (pt)
RU (2) RU2618942C2 (pt)
SG (2) SG11201501636WA (pt)
TW (3) TWI569633B (pt)
UA (2) UA117355C2 (pt)
WO (2) WO2014051893A1 (pt)
ZA (1) ZA201502307B (pt)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102295680B1 (ko) 2010-12-08 2021-08-31 엘지전자 주식회사 인트라 예측 방법과 이를 이용한 부호화 장치 및 복호화 장치
US20150003536A1 (en) * 2012-02-08 2015-01-01 Thomson Licensing Method and apparatus for using an ultra-low delay mode of a hypothetical reference decoder
WO2014002385A1 (ja) * 2012-06-25 2014-01-03 日本電気株式会社 映像符号化/復号装置、方法、プログラム
EP2870757A1 (en) * 2012-07-09 2015-05-13 VID SCALE, Inc. Codec architecture for multiple layer video coding
US9565452B2 (en) 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association
US9374585B2 (en) * 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
EP3614676B1 (en) 2013-07-15 2023-11-08 GE Video Compression, LLC Layer id signaling using extension mechanism
WO2015009693A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Layer based hrd buffer management for scalable hevc
EP3055998A1 (en) * 2013-10-11 2016-08-17 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for video transcoding using mode or motion or in-loop filter information
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
WO2015058395A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
WO2015131326A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
WO2015131325A1 (en) * 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10645404B2 (en) * 2014-03-24 2020-05-05 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
US10063867B2 (en) * 2014-06-18 2018-08-28 Qualcomm Incorporated Signaling HRD parameters for bitstream partitions
CN105706450B (zh) * 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
US9819945B2 (en) * 2014-06-25 2017-11-14 Qualcomm Incorporated Multi-layer video coding
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
US9800898B2 (en) * 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
US9516147B2 (en) 2014-10-30 2016-12-06 Microsoft Technology Licensing, Llc Single pass/single copy network abstraction layer unit parser
EP3249912A4 (en) * 2015-01-23 2018-10-24 LG Electronics Inc. Method and device for transmitting and receiving broadcast signal for restoring pulled-down signal
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
JP7026450B2 (ja) * 2017-04-24 2022-02-28 ソニーグループ株式会社 送信装置、送信方法、受信装置および受信方法
JP6982990B2 (ja) 2017-06-19 2021-12-17 ソニーグループ株式会社 送信装置、送信方法、受信装置および受信方法
KR102625573B1 (ko) 2018-02-14 2024-01-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 레이트 왜곡 최적화를 이용한 비디오 코딩에서의 이미지 재성형
BR112021012096A2 (pt) * 2018-12-20 2021-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Métodos para decodificar e codificar um fluxo contínuo de bits, portadora, e, aparelhos de decodificação e codificação para decodificar e codificar um fluxo contínuo de bits
US11140403B2 (en) * 2018-12-20 2021-10-05 Tencent America LLC Identifying tile from network abstraction unit header
US20200236377A1 (en) * 2019-01-22 2020-07-23 Tencent America LLC Method for tile group identification
CN109905715B (zh) * 2019-02-26 2021-07-06 北京世纪好未来教育科技有限公司 插入sei数据的码流转换方法及系统
JP7425204B2 (ja) 2019-12-26 2024-01-30 バイトダンス インコーポレイテッド ビデオビットストリームにおける仮想参照デコーダパラメータのシグナリングに対する制約
JP7432735B2 (ja) 2019-12-26 2024-02-16 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイルティアレベルパラメータセット
JP7431330B2 (ja) 2019-12-26 2024-02-14 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイル、層及びレイヤの指示
EP4066387A4 (en) 2019-12-27 2023-02-15 ByteDance Inc. SUBPICTURE SIGNALING IN PARAMETER SETS
CN115280781A (zh) 2020-01-02 2022-11-01 Lg电子株式会社 图像解码方法及其装置
AU2020418309B2 (en) 2020-01-02 2024-04-04 Lg Electronics Inc. Image decoding method and apparatus for coding image information including picture header
WO2021137590A1 (ko) * 2020-01-02 2021-07-08 엘지전자 주식회사 Ph nal 유닛 코딩 관련 영상 디코딩 방법 및 그 장치
WO2021138652A1 (en) * 2020-01-04 2021-07-08 Bytedance Inc. Restrictions on inter prediction for subpicture
KR20220125235A (ko) 2020-01-09 2022-09-14 바이트댄스 아이엔씨 상이한 sei 메시지들의 디코딩 순서
WO2021193775A1 (ja) * 2020-03-27 2021-09-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US11706428B2 (en) * 2020-04-06 2023-07-18 Tencent America LLC Method for signaling picture header in coded video stream
BR112022025044A2 (pt) 2020-06-09 2022-12-27 Bytedance Inc Contenções de conjunto de parâmetros de vídeo para extração de sub-bitstream de subimagem
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
US11770498B2 (en) 2020-09-29 2023-09-26 Lemon Inc. Supplemental enhancement information for multi-layer video streams
US11930222B1 (en) * 2021-03-30 2024-03-12 Amazon Technologies, Inc. Encoding video for film grain synthesis
JP2024514323A (ja) * 2021-04-12 2024-04-01 テレフオンアクチーボラゲット エルエム エリクソン(パブル) メッセージ参照
CN114745600B (zh) * 2022-06-10 2022-09-27 中国传媒大学 一种基于sei的视频标签标注方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2382940A (en) 2001-11-27 2003-06-11 Nokia Corp Encoding objects and background blocks
US7831990B2 (en) * 2002-04-29 2010-11-09 Sony Corporation Generic adaptation layer for JVT video
US20050201471A1 (en) * 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US7586924B2 (en) * 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
EP1773063A1 (en) 2005-06-14 2007-04-11 Thomson Licensing Method and apparatus for encoding video data, and method and apparatus for decoding video data
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
RU2395174C1 (ru) * 2006-03-30 2010-07-20 ЭлДжи ЭЛЕКТРОНИКС ИНК. Способ и устройство для декодирования/кодирования сигнала видео
US8520733B2 (en) 2006-06-30 2013-08-27 Core Wireless Licensing S.A.R.L Video coding
US8582663B2 (en) * 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
WO2008018626A2 (en) * 2006-08-10 2008-02-14 Canon Kabushiki Kaisha Image decoding apparatus
CA2674710C (en) * 2007-01-09 2016-02-23 Vidyo, Inc. Improved systems and methods for error resilience in video communication systems
AU2008206744B2 (en) * 2007-01-18 2011-09-22 Nokia Technologies Oy Carriage of SEI messages in RTP payload format
EP2147558A2 (en) 2007-04-17 2010-01-27 Nokia Corporation Feedback based scalable video coding
US20080291999A1 (en) 2007-05-24 2008-11-27 Julien Lerouge Method and apparatus for video frame marking
WO2009130561A1 (en) * 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
US20110110436A1 (en) 2008-04-25 2011-05-12 Thomas Schierl Flexible Sub-Stream Referencing Within a Transport Data Stream
KR101242472B1 (ko) * 2008-07-16 2013-03-12 노키아 코포레이션 트랙 및 트랙 서브세트의 그룹화를 위한 방법 및 장치
TWI371214B (en) 2008-12-03 2012-08-21 Himax Media Solutions Inc Decoding testing device and decoding testing method
US20120106921A1 (en) * 2010-10-25 2012-05-03 Taiji Sasaki Encoding method, display apparatus, and decoding method
EP4250733A3 (en) * 2011-01-14 2023-12-27 Sun Patent Trust Image coding method, image decoding method, memory managing method, image coding apparatus, image decoding apparatus, memory managing apparatus, and image coding and decoding apparatus
EP2684294A4 (en) 2011-03-10 2014-08-20 Vidyo Inc RENDERING ORIENTATION DATA IN A VIDEO DATA BIT TRAIN
US20120236115A1 (en) 2011-03-14 2012-09-20 Qualcomm Incorporated Post-filtering in full resolution frame-compatible stereoscopic video coding
AU2013283173B2 (en) * 2012-06-29 2016-03-24 Ge Video Compression, Llc Video data stream concept
US9565452B2 (en) 2012-09-28 2017-02-07 Qualcomm Incorporated Error resilient decoding unit association

Also Published As

Publication number Publication date
BR112015006849A2 (pt) 2017-07-04
CN104685888A (zh) 2015-06-03
CN104704841B (zh) 2018-10-26
MY173902A (en) 2020-02-26
CA2884352A1 (en) 2014-04-03
ZA201502307B (en) 2017-05-31
KR20150063117A (ko) 2015-06-08
CA2884352C (en) 2019-01-08
CA2884560A1 (en) 2014-04-03
TW201611583A (zh) 2016-03-16
AU2013324246B2 (en) 2017-09-14
EP2901676A1 (en) 2015-08-05
SG11201501632SA (en) 2015-05-28
AU2013324245B2 (en) 2017-08-10
CA2884560C (en) 2019-05-14
KR101741342B1 (ko) 2017-05-29
JP2015534773A (ja) 2015-12-03
KR20150063116A (ko) 2015-06-08
TW201424404A (zh) 2014-06-16
JP6125643B2 (ja) 2017-05-10
UA114343C2 (uk) 2017-05-25
US20140092993A1 (en) 2014-04-03
CN104685888B (zh) 2018-02-06
SG11201501636WA (en) 2015-05-28
PH12015500645B1 (en) 2015-05-11
CN104704841A (zh) 2015-06-10
KR101762521B1 (ko) 2017-07-27
EP2901678B1 (en) 2024-05-15
JP6235026B2 (ja) 2017-11-22
JP2015534774A (ja) 2015-12-03
AU2013324245A1 (en) 2015-04-16
AR094447A1 (es) 2015-08-05
WO2014051892A1 (en) 2014-04-03
PH12015500509A1 (en) 2015-04-27
TWI556630B (zh) 2016-11-01
TWI569633B (zh) 2017-02-01
PH12015500509B1 (en) 2015-04-27
US20140092994A1 (en) 2014-04-03
HK1208580A1 (en) 2016-03-04
BR112015006856A2 (pt) 2017-07-04
IL237770A0 (en) 2015-05-31
IL237771A (en) 2017-09-28
US9565452B2 (en) 2017-02-07
WO2014051893A1 (en) 2014-04-03
RU2618942C2 (ru) 2017-05-11
EP2901678A1 (en) 2015-08-05
HK1207927A1 (en) 2016-02-12
RU2015115894A (ru) 2016-11-20
UA117355C2 (uk) 2018-07-25
MY194740A (en) 2022-12-15
RU2015115896A (ru) 2016-11-20
BR112015006856B1 (pt) 2022-08-09
TW201424391A (zh) 2014-06-16
IL237770B (en) 2019-08-29
AU2013324246A1 (en) 2015-04-16
RU2628250C2 (ru) 2017-08-15
US9479782B2 (en) 2016-10-25
PH12015500645A1 (en) 2015-05-11

Similar Documents

Publication Publication Date Title
BR112015006849B1 (pt) Métodos para decodificar e codificar dados de vídeo, aparelhos para decodificar e codificar dados de vídeo, e, memória legível por computador
ES2744235T3 (es) Actualizaciones de conjuntos de parámetros en la codificación de vídeo
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
BR112014026026B1 (pt) Métodos e dispositivos para processar dados de vídeo, e memória legível por computador
BR112015032977B1 (pt) Equipamento e método para codificar informações de vídeo, equipamento e método para decodificar informações de vídeo, e memória legível por computador
BR112015000597B1 (pt) Codificação de imagens de acesso aleatório para codificação de vídeo
BR112015014649B1 (pt) Modelo de armazenamento de baixo retardo em codificação de vídeo
BR112014002479B1 (pt) Conjuntos de parâmetros de codificação para várias dimensões em codificação de vídeo
BR112014033008B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112013031006B1 (pt) Modelagem de contexto eficaz em memória
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
BR112015025639B1 (pt) Alinhamento poc de camada cruzada para fluxos de bits de várias camadas que podem incluir imagens irap não alinhadas
BR112015006839B1 (pt) Sinalizando identificadores de camada para pontos de operação em codificação de vídeo
BR112015008574B1 (pt) Métodos para decodificar e codificar dados de vídeo, dispositivos para decodificar e codificar dados de vídeo, e, memória legível por computador
BR112014032473B1 (pt) Método e dispositivo para decodificar dados de vídeo, método e dispositvo para codificar dados de vídeo e mídia de armazenamento legível por computador
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
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador
BR112014033011B1 (pt) Conjunto de parâmetros de vídeo para hevc e extensões
BR112016029306B1 (pt) Método e dispositivo para decodificar, bem como, método e dispositivo para codificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc) uma extensão multivista do mesmo ou uma extensão escalonável do mesmo, e, memória legível por computador
BR112014031749B1 (pt) Acesso randômico e sinalização de imagens de referência de longo termo em codificação de vídeo
BR112015000599B1 (pt) Codificação de unidades nal sei para codificação de vídeo

Legal Events

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

Ipc: H04N 7/00 (2011.01)

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

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