BR112016015552B1 - Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits - Google Patents

Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits Download PDF

Info

Publication number
BR112016015552B1
BR112016015552B1 BR112016015552-1A BR112016015552A BR112016015552B1 BR 112016015552 B1 BR112016015552 B1 BR 112016015552B1 BR 112016015552 A BR112016015552 A BR 112016015552A BR 112016015552 B1 BR112016015552 B1 BR 112016015552B1
Authority
BR
Brazil
Prior art keywords
video
layer
reference image
unit
inter
Prior art date
Application number
BR112016015552-1A
Other languages
English (en)
Other versions
BR112016015552A2 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Fnu HENDRY
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 BR112016015552A2 publication Critical patent/BR112016015552A2/pt
Publication of BR112016015552B1 publication Critical patent/BR112016015552B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

MÉTODOS PARA CODIFICAÇÃO DE UM CONJUNTO DE IMAGENS DE REFERÊNCIA (RPS) ENTRE CAMADAS E CODIFICAÇÃO DE UNIDADES DA CAMADA DE ACESSO À REDE (NAL) DO FIM DO FLUXO DE BITS A presente invenção se refere a métodos para codificação de um conjunto de imagens de referência (RPS) entre camadas e codificação de unidades de acesso à rede (NAL) do fim do fluxo de bits em codificação multicamadas. Em um aspecto, o método inclui determinar se uma imagem de referência entre camadas candidata está presente nas informações de vídeo. As informações de vídeo incluem um RPS entre camadas que inclui uma pluralidade de subconjuntos. O método inclui ainda determinar um subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata em resposta à determinação de que a imagem de referência entre camadas candidata não está presente, e indicar que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata.

Description

CAMPO TÉCNICO
[0001] Esta invenção se refere ao campo da codificação e compressão de vídeo, particularmente a codificação de vídeo escalável, codificação de vídeo multivista e / ou codificação de vídeo tridimensional (3D).
ANTECEDENTES DA INVENÇÃO DESCRIÇÃO DA TÉCNICA RELACIONADA
[0002] Capacidades de vídeo digitais podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisores digitais, sistemas de transmissão diretos digitais, sistemas de transmissão sem fio, assistentes digitais pessoais (PDAs), computadores desktop ou laptop, câmeras digitais, dispositivos de gravação digital, leitores de mídia digital, dispositivos de jogos de vídeo, consoles de videogames, telefones via rádio celular ou satélite, dispositivos de teleconferência de vídeo e semelhantes. Dispositivos de vídeo digital implementam técnicas de compressão de vídeo, tais como aquelas descritas nas normas definidas pelo Grupo de Especialistas de Imagens em Movimento 2 (MPEG-2), MPEG-4, Setor de Padronização de Telecomunicações da União Telegráfica Internacional (ITU-T) H.263, ITU-T H.264 / MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), a norma de Codificação de Vídeo de alta Eficiência (HEVC), e extensões de tais normas. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e / ou armazenar informações de vídeo digital de forma mais eficiente através da implementação de tais técnicas de codificação de vídeo.
[0003] Uma sequência de vídeo codificada pode incluir um conjunto de imagens de referência (RPS) que é associado com uma imagem e contém listas de imagens de referência que identificam imagens que podem ser utilizadas para inter-predição da imagem associada ou quaisquer imagens seguintes. Um RPS também pode incluir imagens usadas para predição entre camadas. Uma sequência de vídeo codificada também pode incluir uma unidade da camada de acesso à rede (NAL) do fim do fluxo de bits (EoB), que é opcionalmente incluída no fim de uma unidade de acesso. Nos esquemas de codificação em multicamadas, as unidades NAL incluem um identificador de camada que identifica uma camada à qual pertence a unidade NAL.
SUMÁRIO
[0004] Os sistemas, métodos e dispositivos desta invenção têm, cada um, vários aspectos inovadores, nenhum deles é o único responsável pelos atributos desejáveis aqui descritos.
[0005] Em um aspecto, um método para codificação de informações de vídeo de um fluxo de bits em multicamadas compreende determinar se uma imagem de referência entre camadas candidata está presente na informação de vídeo, em que a informação vídeo compreende um conjunto de imagens de referência (RPS) entre camadas incluindo uma pluralidade de subconjuntos, em resposta à determinação de que a imagem de referência entre camadas candidata não está presente, determinação de um subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata, indicando que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata, e codificação das informações de vídeo com base, pelo menos em parte, na indicação de que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas.
[0006] Em outro aspecto, um dispositivo para decodificação das informações de vídeo de um fluxo de bits em multicamadas compreende uma memória configurada para armazenar as informações de vídeo e um processador em comunicação com a memória e configurado para: determinar se uma imagem de referência entre camadas candidata está presente nas informações de vídeo, em que as informações de vídeo compreendem um RPS incluindo uma pluralidade de subconjuntos, em resposta à determinação de que a imagem de referência entre camadas candidata não está presente; determinar um subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata; indicar que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual pertence a imagem de referência entre camadas candidata e decodificar a informação de vídeo com base, pelo menos em parte, na indicação de que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas.
[0007] Em ainda outro aspecto, um método para codificação de informações de vídeo de um fluxo de bits em multicamadas inclui determinar se uma unidade de acesso incluída na informação de vídeo inclui uma unidade da camada de abstração de rede (NAL) do fim de fluxo de bits (EoB); definir de um valor de identificação de camada para a unidade NAL EoB para zero de acordo com uma restrição; e codificar a informação de vídeo com base, pelo menos em parte, em um valor de zero para o valor de identificação de camada.
[0008] Em ainda outro aspecto, um dispositivo para codificação de informações de vídeo de um fluxo de bits em multicamadas compreende uma memória configurada para armazenar a informação de vídeo e um processador em comunicação com a memória e configurado para: determinar se uma unidade de acesso incluída nas informações de vídeo inclui uma unidade NAL EoB; definir o valor de identificação de camada para a unidade NAL EoB para zero, de acordo com uma restrição; e codificar as informações de vídeo com base, pelo menos em parte, em um valor de zero para o valor de identificação de camada.
BREVE DESCRIÇÃO DOS DESENHOS
[0009] A FIG. 1A é um diagrama em blocos que ilustra um exemplo de codificação de vídeo e sistema de decodificação que pode utilizar técnicas de acordo com aspectos descritos na presente invenção.
[0010] A FIG. 1B é um diagrama em blocos que ilustra outro exemplo de codificação de vídeo e sistema de decodificação que pode executar técnicas de acordo com os aspectos descritos na presente invenção.
[0011] A FIG. 2A é um diagrama em blocos que ilustra um exemplo de um codificador de vídeo que pode implementar as técnicas de acordo com os aspectos descritos na presente invenção.
[0012] A FIG. 2B é um diagrama em blocos que ilustra um exemplo de um codificador de vídeo que pode implementar as técnicas de acordo com os aspectos descritos na presente invenção.
[0013] A FIG. 3A é um diagrama em blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar as técnicas de acordo com os aspectos descritos na presente invenção.
[0014] A FIG. 3B é um diagrama em blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar as técnicas de acordo com os aspectos descritos na presente invenção.
[0015] A FIG. 4 é um diagrama em blocos que ilustra uma unidade de acesso de um fluxo de bits de multicamadas em acordo com os aspectos descritos na presente invenção.
[0016] A FIG. 5 é um diagrama em blocos que ilustra um exemplo de como um RPS é gerado por um codificador ou decodificador.
[0017] As Figs. 6-8 são fluxogramas que ilustram métodos para codificação ou decodificação de informações de vídeo em conformidade com os aspectos descritos na presente invenção.
DESCRIÇÃO DETALHADA
[0018] Certas formas de realização aqui descritas referem-se a unidades da camada de acesso à rede (NAL) do fim do fluxo de bits (EoB) e RPSs para codificação de vídeo em multicamadas no contexto de CODECs de vídeo avançadas, tal como Codificação de Vídeo de Alta Eficiência (HEVC). Mais especificamente, a presente descrição se refere a sistemas e métodos para desempenho avançado na codificação ou decodificação de unidades NAL EoB e RPSs das extensões multivista e escalável de HEVC, nomeadamente MV-HEVC e SHVC.
[0019] Na descrição abaixo, são descritas técnicas H.264 / de Codificação de Vídeo Avançada (AVC) relacionadas com certas formas de realização; também são discutidas as técnicas da norma HEVC e relacionadas. Em particular, alguns esquemas de codificação de vídeo incluem unidade de acesso que pode incluir unidades NAL EoB, que indicam o final do fluxo de bits para a unidade de acesso correspondente. Unidades NAL podem ter um identificador de camada que identifica a camada em que a unidade NAL está incluída. Quando o identificador de camada de unidades NAL EoB é irrestrito, a unidade NAL EoB pode ser descartada (ou processada incorretamente) a partir do fluxo de bits. Visto que a decodificação correta do fluxo de bits pode contar com a presença de unidades NAL EoB, isso pode resultar na decodificação incorreta do fluxo de dados. Alguns esquemas de codificação de vídeo também podem manter um conjunto de imagem de referência (RPS) associado com uma imagem da sequência de vídeo codificada (CVS). O RPS para uma determinada imagem contém um conjunto de imagens de referência, incluindo todas as imagens de referência anteriores à imagem associada em ordem de decodificação que podem ser usadas para inter-predição da imagem associada ou qualquer imagem após a imagem associada em ordem de decodificação. Esquemas de codificação convencionais não determinam qual subconjunto entre camadas RPS em que uma entrada de “sem imagem de referência” deve ser inserida quando uma imagem é descartada (ou processada incorretamente) a partir do fluxo de bits. Assim, os subconjuntos entre camadas RPS podem não ter conteúdo correto.
[0020] Esta invenção se refere à semântica para esquemas de codificação em multicamadas que podem impedir unidades NAL EoB de serem descartadas (ou processadas incorretamente) a partir do fluxo de bits devido a identificadores de camada irrestritos. Especificamente, os identificadores de camada para unidades NAL EOB podem ser limitados para evitar que as unidades NAL EoB sejam descartadas, permitindo assim a correta decodificação do fluxo de bits quando dependente da presença de unidades NAL EoB. Esta invenção também se refere à semântica para esquemas de codificação em multicamadas que podem inserir uma entrada “sem imagem de referência” dentro do subconjunto entre camadas RPS. Por conseguinte, as entradas “sem imagem de referência” podem ser inseridas no subconjunto entre camadas RPS correto com base em um identificador de vista da imagem corrente.
[0021] Embora certas formas de realização sejam aqui descritas no contexto das normas HEVC e / ou H.264, um perito na arte pode apreciar que os sistemas e métodos aqui descritos podem ser aplicáveis a qualquer norma de codificação de vídeo apropriada. Por exemplo, formas de realização aqui divulgadas podem ser aplicáveis a uma ou mais das seguintes normas: H.261 do Setor de Normalização de Telecomunicações (ITU-T) da União de Telecomunicações Internacional (ITU), Organização Internacional para MPEG-1 Visual da Comissão de Eletrotécnica de Normalização / Internacional (ISO / IEC), 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 conhecida como ISO / IEC MPEG-4 AVC), incluindo suas extensões escalável e multivista.
[0022] HEVC geralmente segue a estrutura de normas de codificação de vídeo anteriores em muitos aspectos. A unidade de predição em HEVC é diferente das unidades de predição (por exemplo, macroblocos) em certas normas de codificação de vídeo anteriores. De fato, o conceito de um macrobloco não existe em HEVC como entendido em certas normas de codificação de vídeo anteriores. Um macrobloco é substituído por uma estrutura hierárquica com base em um esquema quadtree, o que pode proporcionar elevada flexibilidade, entre outros benefícios possíveis. Por exemplo, no esquema HEVC, três tipos de blocos, Unidade de Codificação (CU), Unidade de Predição (PU) e Unidade de Transformada (TU), são definidos. CU pode referir-se à unidade básica de particionamento da região. CU pode ser considerada análoga ao conceito de macrobloco, mas HEVC não restringe o tamanho máximo de CUs e pode permitir o particionamento recursivo em quatro CUs de mesmo tamanho para melhorar a adaptabilidade do conteúdo. PU pode ser considerada a unidade básica de inter-/ intra-predição e uma única PU pode conter várias partições de forma arbitrárias para efetivamente codificar padrões de imagem irregulares. TU pode ser considerada a unidade básica de transformada. TU pode ser definida de forma independente da PU; no entanto, o tamanho de uma TU pode ser limitado ao tamanho da CU à qual pertence a TU. Esta separação da estrutura de bloco em três conceitos diferentes pode permitir que cada unidade seja optimizada de acordo com o respectivo papel da unidade, o que pode resultar no aumento da eficiência de codificação.
[0023] Para fins de ilustração apenas, certas formas de realização aqui descritas são descritas com exemplos incluindo apenas duas camadas (por exemplo, uma camada inferior, tal como a camada de base, e uma camada superior, tal como a camada de reforço) de dados de vídeo. Uma “camada” de dados de vídeo pode, em geral, referir-se a uma sequência de imagens que possuem pelo menos uma característica comum, tal como uma vista, uma taxa de quadros, um resolução, ou semelhante. Por exemplo, uma camada pode incluir dados de vídeo associados com uma vista particular (por exemplo, em perspectiva) de dados de vídeo multivista. Como outro exemplo, uma camada pode incluir dados de vídeo associados com uma camada particular de dados de vídeo escaláveis. Assim, esta invenção pode indiferentemente referir-se a uma camada e uma vista de dados de vídeo. Isto é, uma vista de dados de vídeo pode ser referida como uma camada de dados de vídeo, e uma camada de dados de vídeo pode ser referida como uma vista de dados de vídeo. Além disso, um codec em multicamadas (também referido como um sistema codificador de vídeo em multicamadas ou codificador-descodificador em multicamadas) pode referir-se, em conjunto, a um codec multivista ou um codec escalável (por exemplo, um codec configurado para codificar e / ou decodificar dados de vídeo usando MV-HEVC, 3D-HEVC, SHVC ou outra técnica de codificação em multicamadas). A codificação de vídeo e decodificação de vídeo podem ser ambas geralmente referidas como codificação de vídeo. Deve ser entendido que tais exemplos podem ser aplicáveis a configurações incluindo várias camadas de base e / ou de reforço. Além disso, para facilidade de explicação, a descrição a seguir inclui os termos “quadros” ou “blocos” com referência a certas formas de realização. No entanto, estes termos não pretendem ser limitativos. Por exemplo, as técnicas descritas abaixo podem ser usadas com quaisquer unidades de vídeo adequadas, tais como blocos (por exemplo, CU, PU, TU, macroblocos, etc.), fatias, quadros, etc.
NORMAS DE CODIFICAÇÃO DE VÍDEO
[0024] Uma imagem digital, como uma imagem de vídeo, uma imagem de TV, uma imagem estática ou uma imagem gerada por um gravador de vídeo ou um computador, pode consistir em pixels ou amostras dispostas em linhas horizontais e verticais. O número de pixels em uma única imagem é tipicamente na casa das dezenas de milhares. Cada pixel contém tipicamente informações de luminância e crominância. Sem compressão, a grande quantidade de informação a ser transmitida a partir de um codificador de imagem para um decodificador imagem tornaria impossível a transmissão de imagem em tempo real. Para reduzir a quantidade de informação a ser transmitida, foi desenvolvida uma série de diferentes métodos de compressão, tais como normas JPEG, MPEG e H.263.
[0025] Normas de codificação de vídeo incluem H.261 ITU-T, ISO / IEC MPEG-1 Visual, ITU-T H.262 ou ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG-4 Visual e ITU-T H.264 (também conhecida como ISO / IEC MPEG-4 AVC), incluindo as suas extensões escalável e multivista.
[0026] Além disso, uma norma de codificação de vídeo, a saber, HEVC, foi desenvolvida pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo (VCEG) do ITU-T e ISO / IEC MPEG. A citação completa para o Projeto HEVC 10 é o documento JCTVC-L1003, Bross et al, “High Efficiency Video Coding (HEVC) Text Specification Draft 10”, Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do ITU-T SG16 WP3 e ISO / IEC JTC1 / SC29 / WG11, 12° Encontro: Genebra, Suíça, 14 de janeiro de 2013 a 23 de janeiro de 2013. A extensão multivista para HEVC, a saber, MV-HEVC, e a extensão escalável para HEVC, chamada SHVC, também estão sendo desenvolvidas por JCT-3V (Equipe de Colaboração Conjunta no Desenvolvimento da Extensão da Codificação de Vídeo 3D do ITU-T/ISSO/IEC) e JCT-VC, respectivamente.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0027] Vários aspectos dos novos sistemas, aparelhos e métodos são descritos mais completamente a seguir com referência aos desenhos anexos. Esta invenção pode, no entanto, ser realizada de muitas formas diferentes e não deve ser interpretada como limitada a qualquer estrutura ou função específica apresentada ao longo desta invenção. Em vez disso, estes aspectos são fornecidos para que esta descrição seja minuciosa e completa, e irão transmitir totalmente o âmbito da descrição para os especialistas na técnica. Com base nos ensinamentos aqui, um perito na arte deveria apreciar que o âmbito da descrição se destina a cobrir qualquer aspecto dos novos sistemas, aparelhos e métodos aqui descritos, se implementados independentemente de, ou combinados com qualquer outro aspecto da presente invenção. Por exemplo, um aparelho pode ser implementado ou um método pode ser praticado utilizando qualquer número dos aspectos aqui enunciados. Além disso, o âmbito da presente invenção se destina a abranger um aparelho ou método que é praticado usando outra estrutura, funcionalidade, ou estrutura e funcionalidade em complemento a ou diferente dos vários aspectos da presente invenção aqui descrita. Deve ser entendido que qualquer aspecto aqui descrito pode ser concretizado por um ou mais elementos de uma reivindicação.
[0028] Embora aspectos particulares sejam aqui descritos, muitas variações e permutações destes aspectos caem dentro do âmbito da invenção. Embora alguns benefícios e vantagens dos aspectos preferidos sejam mencionados, o âmbito da descrição não deve ser limitado aos benefícios particulares, usos ou objetivos. Em vez disso, os aspectos da presente descrição devem ser amplamente aplicáveis a diferentes tecnologias sem fios, configurações do sistema, redes e protocolos de transmissão, alguns dos quais são ilustrados a título de exemplo nas figuras e na descrição a seguir dos aspectos preferidos. A descrição detalhada e os desenhos são meramente ilustrativos da invenção, em vez de limitantes do âmbito da invenção que está sendo definido pelas reivindicações anexas e seus equivalentes.
[0029] Os desenhos anexos ilustram exemplos. Os elementos indicados por números de referência nos desenhos anexos correspondem a elementos indicados por números de referência na descrição a seguir. Nesta invenção, elementos com nomes que começam com palavras comuns (por exemplo, “primeiro”, “segundo”, “terceiro”, e assim por diante) não necessariamente implicam que os elementos têm uma ordem particular. Em vez disso, essas palavras comuns são meramente usadas para se referir a diferentes elementos de um mesmo tipo ou similar.
[0030] A FIG. 1A é um diagrama em blocos que ilustra um sistema de codificação de vídeo exemplificativo 10 que pode utilizar as técnicas de acordo com os aspectos descritos na presente invenção. Tal como utilizado aqui descrito, o termo “codificador de vídeo” se refere genericamente a ambos os codificadores de vídeo e decodificadores de vídeo. Na presente descrição, os termos “codificação de vídeo” ou “codificação” pode referir-se, genericamente, à codificação de vídeo e decodificação de vídeo. Além de codificadores de vídeo e decodificadores de vídeo, os aspectos descritos no presente pedido de patente podem ser estendidos a outros dispositivos relacionados, como transcodificadores (por exemplo, dispositivos que podem decodificar um fluxo de bits e recodificar outro fluxo de bits) e middleboxes (por exemplo, dispositivos que podem modificar, transformar e / ou manipular um fluxo de dados).
[0031] Como mostrado na FIG. 1A, o sistema de codificação de vídeo 10 inclui um dispositivo de origem 12 que gera dados de vídeo codificados para serem decodificados em um momento posterior por um dispositivo de destino 14. No exemplo da FIG. 1A, o dispositivo de origem 12 e o dispositivo de destino 14 constituem dispositivos separados. Deve ser notado, no entanto, que o dispositivo de origem 12 e o dispositivo de destino 14 podem estar sobre ou parte do mesmo dispositivo, como mostrado no exemplo da FIG. IB.
[0032] Com referência, mais uma vez, à FIG. 1A, o dispositivo de origem 12 e o dispositivo de destino 14 podem compreendem, respectivamente, qualquer um de uma ampla gama de dispositivos, incluindo computadores desktop, notebooks (por exemplo, laptops), tablets, set-top boxes, aparelhos de telefone, como os chamados smartphones, chamados smartpads, televisores, câmeras, dispositivos de exibição, leitores de mídia digitais, consoles de jogos de vídeo, dispositivos de transmissão de vídeo ou semelhante. Em várias formas de realização, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicações sem fios.
[0033] O dispositivo de destino 14 pode receber, via ligação 16, os dados de vídeo codificados para serem decodificados. A ligação 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. No exemplo da FIG. 1A, a ligação 16 pode compreender um meio de comunicação para permitir ao dispositivo de origem 12 transmitir dados de vídeo codificados para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fios ou com fios, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área ampla, ou de uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0034] Em alternativa, dados codificados podem ser produzidos a partir de uma interface de saída 22 para um dispositivo de armazenamento 31 (opcionalmente presente). Da mesma forma, dados codificados podem ser acessados a partir do dispositivo de armazenamento 31 por uma interface de entrada 28, por exemplo, do dispositivo de destino 14. O dispositivo de armazenamento 31 pode incluir qualquer de uma variedade de meios de armazenamento de dados distribuídos ou localmente acessados, como um disco rígido, memória flash, memória volátil ou não volátil, ou qualquer outro meio de armazenamento digital adequado para o armazenamento de dados de vídeo codificados. Em outro exemplo, o dispositivo de armazenamento 31 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode conter o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar os dados de vídeo armazenados a partir do dispositivo de armazenamento 31 através de transmissão 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 dispositivo de destino 14. Servidores de arquivos exemplificativos incluem um servidor de rede (por exemplo, para um site), um servidor do Protocolo de Transferência de Arquivo (FTP), dispositivos de armazenamento ligado em rede (NAS) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma ligação à Internet. Isto pode incluir um canal sem fios (por exemplo, uma ligação de rede de área local sem fios (WLAN)), uma ligação com fios (por exemplo, uma linha de assinante digital (DSL), um modem por cabo, etc), ou uma combinação de ambos, que é adequado para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento 31 pode ser uma transmissão ao vivo, uma transmissão de download, ou uma combinação de ambos.
[0035] As técnicas da presente descrição não se limitam a aplicações ou configurações sem fios. As técnicas podem ser aplicadas à codificação de vídeo em apoio de qualquer um de uma variedade de aplicações de multimídia, como transmissões televisivas por via aérea, transmissões televisivas por cabo, emissões de televisão por satélite, transmissões de vídeo ao vivo, por exemplo, através da Internet (por exemplo, transmissão dinâmica adaptativa através do Protocolo de Transferência de Hipertexto (HTTP), etc.), 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 outras aplicações. Em alguns exemplos, o sistema de codificação de vídeo 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicativos como transmissão ao vivo de vídeo, reprodução de vídeo, radiodifusão de vídeo, e / ou vídeo telefonia.
[0036] No exemplo da FIG. 1A, o dispositivo de origem 12 inclui uma fonte de vídeo 18, o codificador de vídeo 20 e o interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador / demodulador (modem) e / ou um transmissor. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmara de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo a partir de um provedor de conteúdo de vídeo, e / ou um sistema de computação gráfica para gerar dados de computação gráfica como o vídeo de origem, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18 é uma câmara de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os chamados “telefones com câmera” ou “telefones com câmera de vídeo”, tal como ilustrado no exemplo da FIG. 1B. No entanto, as técnicas descritas na presente descrição podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações sem fios e / ou com fios.
[0037] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos para o dispositivo de destino 14 através da interface de saída 22 do dispositivo de origem 12. Os dados de vídeo codificados podem também (ou alternativamente) ser armazenados no dispositivo de armazenamento 31 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e / ou reprodução. O codificador de vídeo 20 ilustrado nas FIGS. 1A e 1B pode compreender o codificador de vídeo 20 ilustrado na FIG. 2A, o codificador de vídeo 23 ilustrado na FIG. 2B, ou qualquer outro codificador de vídeo aqui descrito.
[0038] No exemplo da FIG. 1A, o dispositivo de destino 14 inclui a interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de visualização 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e / ou um modem. A interface de entrada 28 do dispositivo de destino 14 pode receber os dados de vídeo codificados através da ligação 16 e / ou do dispositivo de armazenamento 31. Os dados de vídeo codificados comunicados através da ligação 16, ou fornecidos no dispositivo de armazenamento 31, podem incluir uma variedade de 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ídeo30, 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 armazenados em um servidor de arquivos. O decodificador de vídeo 30 ilustrado nas FIGS. 1A e 1B pode compreender o decodificador de vídeo 30 ilustrado FIG. 3A, o decodificador de vídeo 33 ilustrado na FIG. 3B, ou qualquer outro decodificador de vídeo aqui descrito.
[0039] O dispositivo de exibição 32 pode ser integrado com, ou externo ao, dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de visualização integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 mostra os dados de vídeo decodificados para um usuário, e pode compreender qualquer um de uma variedade de dispositivos de exibição, tal como um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0040] Em aspectos relacionados, a FIG. 1B mostra um exemplo do sistema de codificação de vídeo 10’, em que o dispositivo de origem 12 e o dispositivo de destino 14 estão sobre ou parte de um dispositivo 11. O dispositivo 11 pode ser um telefone portátil, tal como um smartphone ou semelhante. O dispositivo 11 pode incluir um dispositivo controlador / processador 13 (opcionalmente presente) em comunicação operativa com o dispositivo de origem 12 e o dispositivo de destino 14. O sistema de codificação de vídeo 10’ da FIG. 1B pode incluir ainda uma unidade de processamento de vídeo 21 entre o codificador de vídeo 20 e a interface de saída 22. Em algumas implementações, a unidade de processamento de vídeo 21 é uma unidade separada, como ilustrado na FIG. 1B; no entanto, em outras implementações, a unidade de processamento de vídeo 21 pode ser implementada como uma parte do codificador de vídeo 20 e / ou o dispositivo processador / controlador 13. O sistema de codificação de vídeo 10’ pode também incluir um rastreador 29 (opcionalmente presente), o qual pode seguir um objeto de interesse em uma sequência de vídeo. O objeto de interesse a ser rastreado pode ser segmentado através de uma técnica descrita em ligação com um ou mais aspectos da presente invenção. Em aspectos relacionados, o rastreio pode ser realizado pelo dispositivo de exibição 32, sozinho ou em conjunto com o rastreador 29. O sistema de codificação de vídeo 10’ da FIG. 1B, e os seus componentes, são de outra forma semelhantes ao sistema de codificação de vídeo 10 da Fig. 1A, e os seus componentes.
[0041] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compressão de vídeo, como HEVC, e pode estar de acordo com um Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outras normas de propriedade ou da indústria, tal como a norma H.264ITU-T, alternativamente referida como MPEG-4, Parte 10, AVC, ou extensões de tais normas. As técnicas da presente descrição, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compressão de vídeo incluem o MPEG-2 e H.263 ITU-T.
[0042] Embora não esteja representado nos exemplos das Figs. 1A e 1B, 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 lidar com a codificação de áudio e vídeo em um comum fluxo de dados ou fluxos de dados separados. Se for o caso, em alguns exemplos, as unidades MUX-DEMUX podem estar em conformidade com o protocolo multiplexador ITU H.223, ou outros protocolos, tal como o protocolo de datagrama do usuário (UDP).
[0043] O codificador de vídeo 20 e o decodificador de vídeo 30 podem, cada um, ser implementados como qualquer um de uma variedade de circuitos de codificador adequado, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs) (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer suas combinações. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio de leitura por computador não transitório adequado e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta invenção. Cada um do codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, cada um dos quais pode ser integrado como parte de um codificador / decodificador combinado em um respectivo dispositivo.
PROCESSO DE CODIFICAÇÃO DE VÍDEO
[0044] Como mencionado brevemente acima, o codificador de vídeo 20 codifica dados de vídeo. Os dados de vídeo podem compreender uma ou mais imagens. Cada uma das imagens é uma parte formadora de imagem estática de um vídeo. Em alguns casos, uma imagem pode ser referida como um “quadro” de vídeo. Quando o codificador de vídeo 20 codifica os dados de vídeo, o codificador de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma sequência de bits que formam uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir imagens codificadas e dados associados. Uma imagem codificada é uma representação codificada de uma imagem.
[0045] Para gerar o fluxo de bits, o codificador de vídeo 20 pode executar operações de codificação em cada imagem nos dados de vídeo. Quando o codificador de vídeo 20 executa operações de codificação nas imagens, o codificador de vídeo 20 pode gerar uma série de imagens codificadas e dados associados. Os dados associados podem incluir conjuntos de parâmetros de vídeo (VPS), conjuntos de parâmetros de sequência (SPSs), conjuntos de parâmetros de imagem (PPSs), conjuntos de parâmetros de adaptação (APSs), e outras estruturas de sintaxe. Um SPS podem conter parâmetros aplicáveis a zero ou mais sequências de imagens. Um PPS pode conter parâmetros aplicáveis a zero ou mais imagens. Um APS pode conter parâmetros aplicáveis a zero ou mais imagens. Parâmetros em um APS podem ser parâmetros que são mais propensos a mudar do que parâmetros em um PPS.
[0046] Para gerar uma imagem codificada, o codificador de vídeo 20 pode dividir uma imagem em blocos de vídeo de tamanho igual. Um bloco de vídeo pode ser uma matriz bidimensional de amostras. Cada um dos blocos de vídeo é associado com um treeblock. Em alguns casos, um treeblock pode ser referido como uma unidade de codificação maior (LCU). Os treeblocks de HEVC podem ser amplamente análogos aos macroblocos dos padrões anteriores, tal como o H.264 / AVC. No entanto, um treeblock não é necessariamente limitado a um tamanho particular e pode incluir uma ou mais CUs. O codificador de vídeo 20 pode usar particionamento de quadtree para particionar os blocos de vídeo de treeblocks em blocos de vídeo associados com CUs, daí o nome “treeblocks”.
[0047] Em alguns exemplos, o codificador de vídeo 20 pode dividir uma imagem em uma pluralidade de fatias. Cada uma das fatias pode incluir um número inteiro de CUs. Em alguns casos, uma fatia compreende um número inteiro de treeblocks. Em outros casos, um limite de uma fatia pode estar dentro de um treeblock.
[0048] Como parte da realização de uma operação de codificação em um quadro, o codificador de vídeo 20 pode executar operações de codificação em cada fatia da imagem. Quando o codificador de vídeo 20 executa uma operação de codificação em uma fatia, o codificador de vídeo 20 pode gerar dados codificados associados com a fatia. Os dados codificados associados com a fatia podem ser referidos como uma “fatia codificada”.
[0049] Para gerar uma fatia codificada, o codificador de vídeo 20 pode executar operações de codificação em cada treeblock em uma fatia. Quando o codificador de vídeo 20 executa uma operação de codificação em um treeblock, o codificador de vídeo 20 pode gerar um treeblock codificado. O treeblock codificado pode compreender dados que representam uma versão codificada do treeblock.
[0050] Quando o codificador de vídeo 20 gera uma fatia codificada, o codificador de vídeo 20 pode executar operações de codificação (por exemplo, codificar) nos treeblocks na fatia de acordo com uma ordem de varredura raster. Por exemplo, o codificador de vídeo 20 pode codificar os treeblocks da fatia em uma ordem que procede da esquerda para a direita em uma linha superior de treeblocks na fatia, em seguida, da esquerda para a direita em uma próxima linha inferior do treeblocks, e assim sucessivamente até o codificador de vídeo 20 tenha codificado cada um dos treeblocks na fatia.
[0051] Como resultado da codificação dos treeblocks de acordo com a ordem de varredura raster, os treeblocks acima e à esquerda de um dado treeblock podem ter sido codificados, mas os treeblocks abaixo e à direita do dado treeblock ainda não foram codificados. Por conseguinte, o codificador de vídeo 20 pode ser capaz de acessar a informação gerada pela codificação de treeblocks acima e à esquerda do dado treeblock quando se codifica o dado treeblock. No entanto, o codificador de vídeo 20 pode ser incapaz de acessar informações geradas pela codificação dos treeblocks abaixo e à direita do dado treeblock quando codificando o dado treeblock.
[0052] Para gerar um treeblock codificado, o codificador de vídeo 20 pode de forma recursiva executar o particionamento de quadtree no bloco de vídeo do treeblock para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode ser associado com uma CU diferente. Por exemplo, o codificador de vídeo 20 pode dividir o bloco de vídeo de um treeblock em quatro sub-blocos de tamanho igual, dividir um ou mais dos sub-blocos em quatro sub-sub- blocos de tamanho igual, e assim por diante. Uma CU dividida pode ser uma CU cujo bloco de vídeo é dividido em blocos de vídeo associados com outras CUs. Uma CU não- dividida pode ser um CU cujo bloco de vídeo não é dividido em blocos de vídeo associados com outras CUs.
[0053] Um ou mais elementos de sintaxe no fluxo de bits pode indicar um número máximo de vezes que o codificador de vídeo 20 pode dividir o bloco de vídeo de um treeblock. Um bloco de vídeo de uma CU pode ser em formato quadrado. O tamanho do bloco de vídeo de uma CU (por exemplo, o tamanho da CU) pode variar de 8x8 pixels ao tamanho de um bloco de vídeo de um treeblock (por exemplo, o tamanho do treeblock) com um máximo de 64x64 pixels ou mais.
[0054] O codificador de vídeo 20 pode executar operações de codificação em (por exemplo, codificar) cada CU de um treeblock acordo com uma ordem de varredura em Z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU superior esquerda, um CU superior direita, uma CU inferior esquerda e depois uma CU inferior direita, nessa ordem. Quando o codificador de vídeo 20 executa uma operação de codificação em uma CU dividida, o codificador de vídeo 20 pode codificar CUs associadas com sub-blocos do bloco de vídeo da CU dividida de acordo com a ordem de varredura em Z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU associada com um sub-bloco superior esquerdo, uma CU associada com um sub-bloco superior direito, uma CU associada com um sub-bloco inferior esquerdo e, em seguida, uma CU associada com um sub-bloco inferior direito, nessa ordem.
[0055] Como resultado da codificação das CUs de um treeblock acordo com uma ordem de varredura em Z, as CUs acima, acima e à esquerda, acima e à direita, à esquerda e abaixo e à esquerda de uma dada CU pode ter sido codificada. CUs abaixo e à direita da dada CU ainda não tinham sido codificadas. Consequentemente, o codificador de vídeo 20 pode ser capaz de acessar informações geradas através da codificação de algumas CUs vizinhas da dada CU quando se codifica a dada CU. No entanto, o codificador de vídeo 20 pode ser incapaz de acessar informações geradas através da codificação de outras CUs vizinhas da dada CU quando se codifica a dada CU.
[0056] Quando o codificador de vídeo 20 codifica uma CU não dividida, o codificador de vídeo 20 pode gerar uma ou mais PUs para a CU. Cada uma das PUs da CU pode ser associada com um bloco de vídeo diferente dentro do bloco de vídeo da CU. O codificador de vídeo 20 pode gerar um bloco de vídeo predito para cada PU da CU. O bloco de vídeo predito de uma PU pode ser um bloco de amostras. O codificador de vídeo 20 pode usar a intra-predição ou inter-predição para gerar o bloco de vídeo predito para uma PU.
[0057] Quando o codificador de vídeo 20 utiliza intra-predição para gerar o bloco de vídeo predito de uma PU, o codificador de vídeo 20 pode gerar o bloco de vídeo predito da PU com base em amostras decodificadas da imagem associada com a PU. Se o codificador de vídeo 20 utiliza intra-predição para gerar blocos de vídeo preditos das PUs de uma CU, a CU é uma CU intra-predita. Quando o codificador de vídeo 20 utiliza inter-predição para gerar o bloco de vídeo predito da PU, o codificador de vídeo 20 pode gerar o bloco de vídeo predito da PU com base em amostras decodificadas de um ou mais imagens diferentes da imagem associada com a PU. Se o codificador de vídeo 20 usa inter-predição para gerar blocos de vídeo preditos das PUs de uma CU, a CU é uma CU inter-predita.
[0058] Além disso, quando o codificador de vídeo 20 utiliza inter-predição para gerar um bloco de vídeo predito para uma PU, o codificador de vídeo 20 pode gerar informações de movimento para a PU. As informações de movimento da PU podem indicar um ou mais blocos de referência da PU. Cada bloco de referência da PU pode ser um bloco de vídeo dentro de uma imagem de referência. A imagem de referência pode ser uma imagem diferente da imagem associada com a PU. Em alguns casos, um bloco de referência de uma PU pode também ser referido como a “amostra de referência” da PU. O codificador de vídeo 20 pode gerar o bloco de vídeo predito para a PU com base nos blocos de referência da PU.
[0059] Depois que o codificador de vídeo 20 gera blocos de vídeo preditos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de vídeo preditos para as PUs da CU. Os dados residuais para a CU podem indicar diferenças entre amostras nos blocos de vídeo preditos para as PUs da CU e o bloco de vídeo original da CU.
[0060] Além disso, como parte da execução de uma operação de codificação em uma CU não dividida, o codificador de vídeo 20 pode executar o particionamento de quadtree recursivo nos dados residuais da CU para dividir os dados residuais da CU em um ou mais blocos de dados residuais (por exemplo, blocos de vídeo residuais) associados com TUs da CU. Cada TU de uma CU pode ser associada com um bloco de vídeo residual diferente.
[0061] O vídeo codificador 20 pode aplicar uma ou mais transformadas a blocos de vídeo residuais associados com as TUs para gerar blocos de coeficiente de transformada (por exemplo, blocos de coeficientes de transformação) associados à TUs. Conceitualmente, um bloco de coeficiente de transformada pode ser uma matriz bidimensional (2D) de coeficientes de transformada.
[0062] Após gerar um bloco de coeficiente de transformada, o codificador de vídeo 20 pode realizar um processo de quantização no bloco de coeficientes de transformada. A quantização geralmente se refere a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes de transformada, proporcionando compressão adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n-bits pode ser arredondado para baixo para um coeficiente de transformada de m-bits durante quantização, em que n é maior do que m.
[0063] O codificador de vídeo 20 pode associar cada CU com um valor de parâmetro de quantização (QP). O valor QP associado a um CU pode determinar como o codificador de vídeo 20 quantiza blocos de coeficiente transformada associados à CU. O codificador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficiente de transformada associados com uma CU, ajustando o valor QP associado com a CU.
[0064] Depois que o codificador de vídeo 20 quantiza um bloco de coeficientes de transformada, o codificador de vídeo 20 pode gerar conjuntos de elementos de sintaxe que representam os coeficientes de transformada no bloco de coeficientes de transformada quantizados. O codificador de vídeo 20 pode aplicar operações de codificação de entropia, como operações de Codificação Aritmética Binária Adaptativa ao Contexto (CABAC), a alguns desses elementos de sintaxe. Outras técnicas de codificação de entropia, tais como Codificação por Comprimento Variável Adaptativo ao Contexto (CAVLC), codificação de entropia por particionamento de intervalo de probabilidade (PIPE), ou outra codificação aritmética binária também poderia ser utilizada.
[0065] O fluxo de bits gerado pelo codificador de vídeo 20 pode incluir uma série de unidades NAL. Cada uma das unidades NAL pode ser uma estrutura de sintaxe contendo uma indicação de um tipo de dados na unidade NAL e bytes contendo os dados. Por exemplo, uma unidade NAL pode conter dados que representam um conjunto de parâmetros de vídeo, um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, uma fatia codificada, informação de reforço suplementar (SEI), um delimitador de unidade de acesso, dados de enchimento, ou outro tipo de dados. Os dados em uma unidade NAL podem incluir várias estruturas de sintaxe.
[0066] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo codificador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo codificados pelo codificador de vídeo 20. Quando o decodificador de vídeo 30 recebe o fluxo de bits, o decodificador de vídeo 30 pode executar uma operação de análise quanto ao fluxo de bits. Quando o decodificador de vídeo 30 executa a operação de análise, o decodificador de vídeo 30 pode extrair elementos de sintaxe do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base nos elementos de sintaxe extraídos do fluxo de bits. O processo para reconstruir os dados de vídeo com base nos elementos de sintaxe podem ser geralmente recíprocos ao processo executado pelo codificador de vídeo 20 para gerar os elementos de sintaxe.
[0067] Depois que o decodificador de vídeo 30 extrai os elementos de sintaxe associados com uma CU, o decodificador de vídeo 30 pode gerar blocos de vídeo preditos para as PUs da CU com base nos elementos de sintaxe. Além disso, o decodificador de vídeo 30 pode quantizar em inverso blocos de coeficiente de transformada associados com TUs da CU. O decodificador de vídeo 30 pode realizar transformações inversas nos blocos de coeficiente de transformada para reconstruir blocos de vídeo residuais associados com as TUs da CU. Depois de gerar os blocos de vídeo preditos e reconstruir os blocos de vídeo residuais, o decodificador de vídeo 30 pode reconstruir o bloco de vídeo da CU com base nos blocos de vídeo preditos e os blocos de vídeo residuais. Desta forma, o decodificador de vídeo 30 pode reconstruir os blocos de vídeo de CUs com base nos elementos de sintaxe no fluxo de bits.
CODIFICADOR DE VÍDEO
[0068] A FIG. 2A é um diagrama em blocos que ilustra um exemplo do codificador de vídeo 20 que pode implementar técnicas de acordo com os aspectos descritos nesta invenção. O codificador de vídeo 20 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como para HEVC. Além disso, o codificador de vídeo 20 pode ser configurado para realizar qualquer uma ou todas as técnicas da presente invenção. Em alguns exemplos, as técnicas descritas nesta invenção podem ser compartilhadas entre os vários componentes do codificador de vídeo 20. Em alguns exemplos, adicionalmente ou em alternativa, um processador (não mostrado) pode ser configurado para realizar qualquer uma ou todas as técnicas descritas nesta invenção.
[0069] Para fins de explicação, esta invenção descreve o codificador de vídeo 20 no contexto da codificação HEVC. No entanto, as técnicas desta invenção podem ser aplicáveis a outras normas ou métodos de codificação. O exemplo representado na FIG. 2A é para um codec de camada única. No entanto, como será descrito adicionalmente com referência à FIG. 2B, alguns ou todos os codificadores de vídeo 20 podem ser duplicados para o processamento de um codec em multicamadas.
[0070] O codificador de vídeo 20 pode realizar intra- e inter-codificação de blocos de vídeo dentro de fatias de vídeo. Intra-codificação se baseia na predição espacial para reduzir ou eliminar a redundância espacial em vídeo dentro de um determinado quadro ou imagem de vídeo. A inter-codificação se baseia em predição temporal para reduzir ou eliminar a redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. Intra-Modo (modo I) pode referir-se a qualquer um dos vários modos de codificação de base espacial. Inter-modos, tal como previsão unidirecional (modo P) ou previsão bidirecional (modo B), pode se referir a qualquer um dos vários modos de codificação de base temporal.
[0071] No exemplo da FIG. 2A, o codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do codificador de vídeo 20 incluem uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 113, um buffer de imagem decodificada 114 e uma unidade de codificação de entropia 116. A unidade de processamento de predição 100 inclui uma unidade de inter-predição 121, uma unidade de estimativa de movimento 122, uma unidade de compensação de movimento 124, uma unidade de intra-predição 126 e uma unidade de predição entre camadas 128. Em outros exemplos, o codificador de vídeo 20 pode incluir mais, menos ou diferentes componentes funcionais. Além disso, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem ser altamente integradas, mas estão representadas no exemplo da FIG. 2A separadamente para fins de explicação.
[0072] O codificador de vídeo 20 pode receber dados de vídeo. O codificador de vídeo 20 pode receber os dados de vídeo a partir de várias fontes. Por exemplo, o codificador de vídeo 20 pode receber os dados de vídeo a partir da fonte de vídeo 18 (por exemplo, mostrado na FIG. 1A ou 1B) ou outra fonte. Os dados de vídeo podem representar uma série de imagens. Para codificar os dados de vídeo, o codificador de vídeo 20 pode executar uma operação de codificação em cada uma das imagens. Como parte da realização da operação de codificação em uma imagem, o codificador de vídeo 20 pode executar operações de codificação em cada fatia da imagem. Como parte da realização de uma operação de codificação em uma fatia, o codificador de vídeo 20 pode executar operações de codificação em treeblocks na fatia.
[0073] Como parte da execução de uma operação de codificação em um treeblock, a unidade de processamento de predição 100 pode executar o particionamento de quadtree no bloco de vídeo do treeblock para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode estar associado com uma CU diferente. Por exemplo, a unidade de processamento de predição 100 pode particionar um bloco de vídeo de um treeblock em quatro sub-blocos de tamanho igual, particionar um ou mais dos sub-blocos em quatro sub-sub- blocos de tamanho igual, e assim por diante.
[0074] Os tamanhos dos blocos de vídeo associados com CUs podem variar a partir de amostras de 8x8 até o tamanho do treeblock com um máximo de amostras de 64x64 ou maiores. Na presente descrição, “NxN” e “N por N” podem ser usados indiferentemente para se referir às dimensões da amostra de um bloco de vídeo em termos de dimensões vertical e horizontal, por exemplo, amostras de 16x16 ou amostras de 16 por 16. Em geral, um bloco de vídeo de 16x16 tem dezesseis amostras em uma direção vertical (y = 16) e dezesseis amostras em uma direção horizontal (x = 16). Do mesmo modo, um bloco NxN geralmente tem N amostras em uma direção vertical e N amostras em uma direção horizontal, em que N representa um valor inteiro não negativo.
[0075] Além disso, como parte da realização da operação de codificação em um treeblock, a unidade de processamento de predição 100 pode gerar uma estrutura de dados quadtree hierárquica para o treeblock. Por exemplo, um treeblock pode corresponder a um nó raiz da estrutura de dados quadtree. Se a unidade de processamento de predição 100 particiona o bloco de vídeo do treeblock em quatro sub- blocos, o nó raiz tem quatro nós secundários (child) na estrutura de dados quadtree. Cada um dos nós secundários corresponde a uma CU associada com um dos sub-blocos. Se a unidade de processamento de predição 100 particiona um dos sub-blocos em quatro sub-sub-blocos, o nó correspondente à CU associada com o sub-bloco pode ter quatro nós secundários, cada um dos quais corresponde a uma CU associada com um dos sub-sub-blocos.
[0076] Cada nó da estrutura de dados quadtree pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o treeblock ou CU correspondente. Por exemplo, um nó no quadtree pode incluir uma bandeira de divisão que indica se o bloco de vídeo da CU correspondente ao nó é particionado (por exemplo, dividir) em quatro sub- blocos. Os elementos de sintaxe para uma CU podem ser definidos recursivamente, e podem depender de se o bloco de vídeo da CU é dividido em sub-blocos. Uma CU cujo bloco de vídeo não é particionado pode corresponder a um nó folha na estrutura de dados quadtree. Um treeblock codificado pode incluir dados com base na estrutura de dados quadtree para um treeblock correspondente.
[0077] O codificador de vídeo 20 pode executar operações de codificação em cada CU não particionada de um treeblock. Quando o codificador de vídeo 20 executa uma operação de codificação em uma CU não particionada, o codificador de vídeo 20 gera dados que representam uma representação codificada da CU não particionada.
[0078] Como parte da realização de uma operação de codificação em uma CU, a unidade de processamento de predição 100 pode particionar o bloco de vídeo da CU entre uma ou mais PUs da CU. O codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar diversos tamanhos de PU. Assumindo que o tamanho de uma CU particular é 2Nx2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou NxN, e a inter-predição em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N, ou semelhantes. O codificador de vídeo 20 e o decodificador de vídeo 30 podem também suportar o particionamento assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Em alguns exemplos, a unidade de processamento de predição 100 pode executar o particionamento geométrico para particionar o bloco de vídeo de uma CU entre as PUs da CU ao longo de uma fronteira que não cumpre os lados do bloco de vídeo da CU em ângulos retos.
[0079] A unidade de inter-predição 121 pode realizar inter-predição em cada PU da CU. Inter-predição pode fornecer compressão temporal. Para executar inter- predição em uma PU, a unidade de estimativa de movimento 122 pode gerar informações de movimento para a PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo predito para a PU com base nas informações de movimento e amostras decodificadas de imagens diferentes da imagem associada com a CU (por exemplo, imagens de referência). Na presente descrição, um bloco de vídeo predito gerado pela unidade de compensação de movimento 124 pode ser referido como um bloco de vídeo inter-predito.
[0080] Fatias podem ser fatias I, fatias P ou fatias B. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem realizar diferentes operações para uma PU de uma CU, dependendo se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intra-preditas. Assim, se a PU está em uma fatia I, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 não realizam inter-predição na PU.
[0081] Se a PU está em uma fatia P, a imagem contendo a PU é associada com uma lista de imagens de referência referidas como “lista 0”. Cada uma das imagens de referência na lista 0 contém amostras que podem ser utilizadas para inter-predição de outras imagens. Quando a unidade de estimativa de movimento 122 executa a operação de estimativa de movimento em relação a uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode procurar as imagens de referência na lista 0 para um bloco de referência para a PU. O bloco de referência da PU pode ser um conjunto de amostras, por exemplo, um bloco de amostras que mais intimamente corresponde às amostras no bloco de vídeo da PU. A unidade de estimativa de movimento 122 pode usar uma variedade de indicadores para determinar o grau de correspondência de um conjunto de amostras em uma imagem de referência às amostras no bloco de vídeo de uma PU. Por exemplo, a unidade de estimativa de movimento 122 pode determinar o grau de correspondência de um conjunto de amostras em uma imagem de referência às amostras no bloco de vídeo de uma PU pela soma da diferença absoluta (SAD), soma da diferença quadrática (SSD), ou outro indicador de diferença.
[0082] Após identificar um bloco de referência de uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode gerar um índice de referência que indica a imagem de referência na lista 0 contendo o bloco de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e o bloco de referência. Em vários exemplos, a unidade de estimativa de movimento 122 pode gerar vetores de movimento em diferentes graus de precisão. Por exemplo, a unidade de estimativa de movimento 122 pode gerar vetores de movimento na precisão de um quarto da amostra, precisão de um oitavo da amostra, ou outra precisão fracionária da amostra. No caso de precisão fracionária da amostra, valores de bloco de referência podem ser interpolados a partir de valores de amostra de posição de número inteiro na imagem de referência. A unidade de estimativa de movimento 122 pode produzir o índice de referência e o vetor de movimento como a informação de movimento da PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo predito da PU, com base no bloco de referência identificado pela informação de movimento da PU.
[0083] Se a PU está em uma fatia B, a imagem contendo a PU pode estar associada com duas listas de imagens de referência, referidas como “lista 0” e “lista 1”. Em alguns exemplos, uma imagem contendo uma fatia B pode ser associada com uma combinação de listas que é uma combinação da lista 0 e lista 1.
[0084] Além disso, se a PU está em uma fatia B, a unidade de estimativa de movimento 122 pode executar predição unidirecional ou predição bidirecional para a PU. Quando a unidade de estimativa de movimento 122 executa predição unidirecional para a PU, a unidade de estimativa de movimento 122 pode procurar as imagens de referência da lista 0 ou lista 1 para um bloco de referência para a PU. A unidade de estimativa de movimento 122 pode, então, gerar um índice de referência que indica a imagem de referência na lista 0 ou lista 1 que contém o bloco de referência e um vetor de movimento que indica um deslocamento espacial entre a PU e o bloco de referência. A unidade de estimativa de movimento 122 pode emitir o índice de referência, um indicador de direção de predição e o vetor de movimento como a informação de movimento da PU. O indicador de direção de predição pode indicar se o índice de referência indica uma imagem de referência na lista 0 ou lista 1. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU com base no bloco de referência indicado pela informação de movimento da PU.
[0085] Quando a unidade de estimativa de movimento 122 executa predição bidirecional para uma PU, a unidade de estimativa de movimento 122 pode procurar as imagens de referência na lista 0 para um bloco de referência para a PU e também pode procurar as imagens de referência na lista 1 para outro bloco de referência para a PU. A unidade de estimativa de movimento 122 pode, então, gerar índices de referência que indicam as imagens de referência na lista 0 e lista 1 contendo os blocos de referência e vetores de movimento que indicam deslocamentos espaciais entre os blocos de referência e a PU. A unidade de estimativa de movimento 122 pode emitir os índices de referência e os vetores de movimento da PU como a informação de movimento da PU. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo predito da PU, com base nos blocos de referência indicados pela informação de movimento da PU.
[0086] Em alguns casos, a unidade de estimativa de movimento 122 não emite um conjunto completo de informações de movimento para a PU à unidade de codificação de entropia 116. Ao contrário, a unidade de estimativa de movimento 122 pode sinalizar a informação de movimento de uma PU com referência à informação de movimento de outra PU. Por exemplo, a unidade de estimativa de movimento 122 pode determinar que a informação de movimento da PU é suficientemente semelhante às informações de movimento de uma PU vizinha. Neste exemplo, a unidade de estimativa de movimento 122 pode indicar, em uma estrutura de sintaxe associada com a PU, um valor que indica ao decodificador de vídeo 30 que a PU tem as mesmas informações de movimento que a PU vizinha. Em outro exemplo, a unidade de estimativa de movimento 122 pode identificar, em uma estrutura de sintaxe associada com a PU, uma PU vizinha e uma diferença do vetor de movimento (MVD). A diferença do vetor de movimento indica uma diferença entre o vetor de movimento da PU e o vetor de movimento da PU vizinha indicada. O decodificador de vídeo 30 pode utilizar o vetor de movimento da PU vizinha indicada e a diferença de vetor de movimento para determinar o vetor de movimento da PU. Ao referir-se às informações de movimento de uma primeira PU quando sinalizando a informação de movimento de uma segunda PU, o codificador de vídeo 20 pode ser capaz de sinalizar as informações de movimento da segunda PU utilizando menos bits.
[0087] Como parte da realização de uma operação de codificação em uma CU, a unidade de intra-predição 126 pode realizar intra-predição em PUs da CU. A intra-predição pode fornecer compressão espacial. Quando a unidade de intra-predição 126 realiza a intra-predição em uma PU, a unidade intra-predição 126 pode gerar dados de predição para a PU com base em amostras decodificadas de outras PUs na mesma imagem. Os dados de predição para a PU podem incluir um bloco de vídeo predito e vários elementos de sintaxe. A unidade de intra-predição 126 pode executar a intra-predição em PUs nas fatias I, fatias P e fatias B.
[0088] Para executar intra-predição em uma PU, a unidade de intra-predição 126 pode usar vários modos de intra-predição para gerar vários conjuntos de dados de predição para a PU. Quando a unidade de intra-predição 126 utiliza um modo de intra-predição para gerar um conjunto de dados de predição para a PU, a unidade de intra-predição 126 pode estender amostras de blocos de vídeo de PUs vizinhas através do bloco de vídeo da PU em uma direção e / ou gradiente associado com o modo de intra-predição. As PUs vizinhas podem estar acima, acima e à direita, acima e à esquerda, ou à esquerda da PU, assumindo uma ordem de codificação da esquerda para a direita, de cima para baixo para PUs, CUs e treeblocks. A unidade de intra-predição 126 pode usar vários números de modos de intra-predição, por exemplo, 33 modos de intra-predição direcionais, dependendo do tamanho da PU.
[0089] A unidade de processamento de predição 100 pode selecionar os dados de predição para uma PU dentre os dados de predição gerados pela unidade de compensação de movimento 124 para a PU ou os dados de predição gerados pela unidade de intra-predição 126 para a PU. Em alguns exemplos, a unidade de processamento de predição 100 seleciona os dados de predição para a PU com base em indicadores de velocidade / distorção dos conjuntos de dados de predição.
[0090] Se a unidade de processamento de predição 100 seleciona dados de predição gerados pela unidade de intra-predição 126, a unidade de processamento de predição 100 pode sinalizar o modo de intra-predição que foi utilizado para gerar os dados de predição para as PUs, por exemplo, o modo de intra-predição selecionado. A unidade de processamento de predição 100 pode sinalizar o modo de intra-predição selecionado de várias maneiras. Por exemplo, pode ser provável que o modo de intra-predição selecionado seja o mesmo que o modo de intra-predição de uma PU vizinha. Em outras palavras, o modo de intra-predição da PU vizinha pode ser o modo mais provável para a PU corrente. Assim, a unidade de processamento de predição 100 pode gerar um elemento de sintaxe para indicar que o modo de intra-predição selecionado é o mesmo que o modo de intra- predição da PU vizinha.
[0091] Como discutido acima, o codificador de vídeo 20 pode incluir a unidade de predição entre camadas 128. A unidade de predição entre camadas 128 é configurada para predizer um bloco corrente (por exemplo, um bloco corrente na EL), utilizando uma ou mais camadas diferentes que estão disponíveis na extensão escalável para HEVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser referida como predição entre camadas. A unidade de predição entre camadas 128 utiliza métodos de predição para reduzir a redundância entre camadas, assim melhorando a eficiência da codificação e reduzindo as necessidades de recursos computacionais. Alguns exemplos de predição entre camadas incluem intra-predição entre camadas, a predição de movimento entre camadas e a predição residual entre camadas. A predição intra- entre camadas utiliza a reconstrução de blocos co-localizados na camada de base para predizer o bloco corrente na camada de reforço. A predição de movimento entre camadas utiliza informações de movimento da camada de base para predizer o movimento na camada de reforço. A predição residual entre camadas usa o resíduo da camada de base para predizer o resíduo da camada de reforço.
[0092] Depois que a unidade de processamento de predição 100 seleciona os dados de predição para PUs de uma CU, a unidade de geração residual 102 pode gerar dados residuais para a CU, subtraindo (por exemplo, indicado pelo sinal de menos) os blocos de vídeo preditos das PUs da CU a partir do bloco de vídeo da CU. Os dados residuais de uma CU podem incluir blocos de vídeo residuais 2D que correspondem a diferentes componentes de amostra das amostras no bloco de vídeo da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que corresponde a diferenças entre os componentes de luminância de amostras nos blocos de vídeo preditos das PUs da CU e componentes de luminância de amostras no bloco de vídeo original da CU. Além disso, os dados residuais da CU podem incluir blocos de vídeo residuais que correspondem às diferenças entre os componentes de crominância de amostras nos blocos de vídeo preditos das PUs da CU e os componentes de crominância das amostras no bloco de vídeo original da CU.
[0093] A unidade de processamento de predição 100 pode executar o particionamento de quadtree para particionar os blocos de vídeo residuais de uma CU em sub- blocos. Cada bloco de vídeo residual não dividido pode ser associado com uma TU diferente da CU. Os tamanhos e posições dos blocos de vídeo residuais associados com TUs de uma CU podem ou não basear-se nos tamanhos e posições dos blocos de vídeo associados com as PUs da CU. Uma estrutura quadtree conhecida como um “quadtree residual” (QT) pode incluir nós associados com cada um dos blocos de vídeo residuais. As TUs de uma CU podem corresponder a nós folha do RQT.
[0094] A unidade de processamento de transformada 104 pode gerar um ou mais blocos de coeficientes de transformada para cada TU de uma CU, através da aplicação de uma ou mais transformadas a um bloco de vídeo residual associado à TU. Cada um dos blocos de coeficientes de transformada pode ser uma matriz 2D de coeficientes de transformada. A unidade de processamento de transformada 104 pode aplicar várias transformadas ao bloco de vídeo residual associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformação de cosseno discreta (DCT), uma transformada direcional ou uma transformada conceitualmente semelhante ao bloco de vídeo residual associado com uma TU.
[0095] Depois que a unidade de processamento de transformada 104 gera um bloco de coeficientes de transformada associado com uma TU, a unidade de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficientes de transformada. A unidade de quantização 106 pode quantizar um bloco de coeficiente de transformada associado com uma TU de uma CU com base em um valor QP associada com a CU.
[0096] O vídeo codificador 20 pode associar um valor QP com uma CU de várias maneiras. Por exemplo, o codificador de vídeo 20 pode executar uma análise da taxa de distorção em um treeblock associado com a CU. Na análise da taxa de distorção, o codificador de vídeo 20 pode gerar várias representações codificadas do treeblock, realizando uma operação de codificação várias vezes no treeblock. O codificador de vídeo 20 pode associar diferentes valores QP com a CU quando o codificador de vídeo 20 gera diferentes representações codificadas do treeblock. O codificador de vídeo 20 pode sinalizar que um determinado valor QP está associado com a CU quando o dado valor QP está associado com a CU em uma representação codificada do treeblock que tem uma menor taxa de bits e indicador de distorção.
[0097] A unidade de quantização inversa 108 e uma unidade de transformada inversa 10 podem aplicar quantização inversa e transformadas inversas ao bloco de coeficiente de transformada, respectivamente, para reconstruir um bloco de vídeo residual a partir do bloco de coeficientes de transformada. A unidade de reconstrução 112 pode adicionar o bloco de vídeo residual reconstruído a amostras correspondentes de um ou mais blocos de vídeo preditos gerados pela unidade de processamento de predição 100 para produzir um bloco de vídeo reconstruído associado com uma TU. Ao reconstruir blocos de vídeo para cada TU de uma CU deste modo, o codificador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0098] Depois que a unidade de reconstrução 112 reconstrói o bloco de vídeo de uma CU, a unidade de filtro 113 pode executar uma operação de desbloqueio para reduzir artefatos de bloqueio no bloco de vídeo associado com a CU. Após a realização de uma ou mais operações de desbloqueio, uma unidade de filtro 13 pode armazenar o bloco de vídeo reconstruído da CU no buffer de imagem decodificada 114. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem usar uma imagem de referência que contém o bloco de vídeo reconstruído para executar inter-predição em PUs de imagens subsequentes. Além disso, a unidade de intra-predição 126 pode usar blocos de vídeo reconstruídos no buffer de imagem decodificada 114 para executar intra-predição em outras PUs na mesma imagem que a CU.
[0099] A unidade de codificação de entropia 16 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação de entropia 116 pode receber blocos de coeficientes de transformada da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. Quando a unidade de codificação de entropia 116 recebe os dados, a unidade de codificação de entropia 116 pode executar uma ou mais operações de codificação de entropia para gerar dados codificados por entropia. Por exemplo, o codificador de vídeo 20 pode executar uma operação CAVLC, uma operação CABAC, uma operação de codificação de comprimento variável- a-variável (V2V), uma operação de Codificação Aritmética Binária Adaptativa ao Contexto baseada em Sintaxe (SBAC), uma operação de codificação de Entropia por Particionamento de Intervalo de Probabilidade (PIPE) ou outro tipo de operação de codificação de entropia nos dados. A unidade de codificação de entropia 116 pode emitir um fluxo de dados, que inclui os dados codificados por entropia.
[0100] Como parte da realização de uma operação de codificação de entropia em dados, a unidade de codificação de entropia 116 pode selecionar um modelo de contexto. Se a unidade de codificação de entropia 116 está executando uma operação CABAC, o modelo de contexto pode indicar estimativas de probabilidades de bins específicas com valores específicos. No contexto da CABAC, o termo “bin” é utilizado para se referir a um bit de uma versão binarizada de um elemento de sintaxe.
CODIFICADOR DE VÍDEO EM MULTICAMADAS
[0101] A FIG. 2B é um diagrama em blocos que ilustra um exemplo de um codificador de vídeo em multicamadas 23 (também referido simplesmente como codificador de vídeo 23) que pode implementar técnicas de acordo com os aspectos descritos na presente descrição. O codificador de vídeo 23 pode ser configurado para processar quadros de vídeo em multicamadas, tal como por SHVC e MV- HEVC. Além disso, o codificador de vídeo 23 pode ser configurado para realizar qualquer uma ou todas as técnicas da presente descrição.
[0102] O codificador de vídeo 23 inclui um codificador de vídeo 20A e codificador de vídeo 20B, cada um dos quais pode ser configurado como o codificador de vídeo 20 e pode executar as funções descritas acima em relação ao codificador de vídeo 20. Além disso, tal como indicado pela reutilização de números de referência, os codificadores de vídeo 20A e 20B podem incluir pelo menos alguns dos sistemas e subsistemas, tal como o codificador de vídeo 20. Embora o codificador de vídeo 23 seja ilustrado como incluindo dois codificadores de vídeo 20A e 20B, o codificador de vídeo 23 não é limitado como tal e pode incluir qualquer número de camadas do codificador de vídeo 20. Em algumas formas de realização, o codificador de vídeo 23 pode incluir um codificador de vídeo 20 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou codificada por um codificador de vídeo que inclui cinco camadas de codificador. Em algumas formas de realização, o codificador de vídeo 23 pode incluir mais camadas de codificador do que quadros em uma unidade de acesso. Em algumas de tais casos, algumas das camadas de codificador de vídeo podem ser inativas quando processando algumas unidades de acesso.
[0103] Em adição aos codificadores de vídeo 20A e 20B, o codificador de vídeo 23 pode incluir uma unidade de reamostragem 90. A unidade de reamostragem 90 pode, em alguns casos, aumentar a resolução de uma camada de base de um quadro de vídeo recebido para, por exemplo, criar um camada de reforço. A unidade reamostragem 90 pode aumentar a resolução de informações particulares associadas com a camada de base recebida de um quadro, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode aumentar a resolução do tamanho espacial ou número de pixels da camada de base, mas o número de fatias ou a ordem das imagens pode permanecer constante. Em alguns casos, a unidade de reamostragem 90 não pode processar o vídeo recebido e / ou pode ser opcional. Por exemplo, em alguns casos, a unidade de processamento de predição 100 pode executar o aumento da resolução. Em algumas formas de realização, a unidade de reamostragem 90 é configurada para aumentar a resolução de uma camada e reorganizar, redefinir, modificar ou ajustar uma ou mais fatias para cumprir um conjunto de regras de limite de fatia e / ou regras de varredura raster. Apesar de descrita principalmente como aumentando a resolução de uma camada de base, ou uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode diminuir a resolução de uma camada. Por exemplo, se durante a transmissão contínua de um vídeo, a largura de banda é reduzida, um quadro pode ser de resolução diminuída, em vez de resolução aumentada.
[0104] A unidade de reamostragem 90 pode ser configurada para receber uma imagem ou quadro (ou informações de imagem associadas com a imagem) a partir do buffer de imagem decodificada 114 do codificador de camada inferior (por exemplo, o codificador de vídeo 20A) e aumentar a resolução da imagem (ou as informações de imagem recebidas). A imagem de resolução aumentada pode então ser fornecida à unidade de processamento de predição 100 de um codificador de camada superior (por exemplo, o codificador vídeo 20B) configurado para codificar uma imagem na mesma unidade de acesso que o codificador de camada inferior. Em alguns casos, o codificador de camada superior é uma camada removida do codificador de camada inferior. Em outros casos, pode haver um ou mais codificadores de camada superior entre o codificador de vídeo da camada 0 e o codificador da camada 1 da FIG. 2B.
[0105] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou ignorada. Em tais casos, a imagem do buffer de imagem decodificada 114 do codificador de vídeo 20A pode ser fornecida diretamente, ou pelo menos sem ser fornecida à unidade de reamostragem 90, à unidade de processamento de predição 100 do codificador de vídeo 20B. Por exemplo, se os dados de vídeo fornecidos ao codificador de vídeo 20B e a imagem de referência do buffer de imagem decodificada 114 do codificador de vídeo 20A são do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida para o codificador de vídeo 20B sem qualquer reamostragem.
[0106] Em algumas formas de realização, o codificador de vídeo 23 reduz a resolução dos dados de vídeo a serem fornecidos ao codificador de camada inferior utilizando a unidade de redução da resolução 94 antes de fornecer os dados de vídeo ao codificador de vídeo 20A. Em alternativa, a unidade de redução da resolução 94 pode ser uma unidade de reamostragem 90 capaz aumentar a resolução ou diminuir a resolução dos dados de vídeo. Em ainda outras formas de realização, a unidade de redução da resolução 94 pode ser omitida.
[0107] Tal como ilustrado na FIG. 2B, o codificador de vídeo 23 pode ainda incluir um multiplexador (ou MUX) 98. O multiplexador 98 pode emitir um fluxo de bits combinado a partir do codificador de vídeo 23. O fluxo de bits combinado pode ser criado tomando um fluxo de bits de cada um dos codificadores de vídeo 20A e 20B e alternando qual fluxo de fluxo é emitido em um determinado momento. Embora em alguns casos os bits provenientes dos dois (ou mais, no caso de mais do que duas camadas de codificador de vídeo) fluxos de bits podem ser alternados um bit de cada vez, em muitos casos, os fluxos de bits são combinados de forma diferente. Por exemplo, o fluxo de bits de saída pode ser criado alternando o um fluxo de bits selecionado um bloco de cada vez. Em outro exemplo, o fluxo de bits de saída pode ser criado emitindo uma razão diferente de 1:1 de blocos a partir de cada um dos codificadores de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos a partir do codificador de vídeo 20B para cada bloco emitido a partir do codificador de vídeo 20A. Em algumas formas de realização, o fluxo de saída do mux 98 pode ser pré-programado. Em outras formas de realização, o mux 98 pode combinar os fluxos de bits dos codificadores de vídeo 20A, 20B com base em um sinal de controle recebido a partir de um sistema externo ao codificador de vídeo 23, tal como a partir de um processador em um dispositivo de origem, incluindo o dispositivo de origem 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo a partir da fonte de vídeo 18, com base em uma largura de banda da ligação 16, com base em uma assinatura associada a um usuário (por exemplo, uma assinatura paga versus uma assinatura livre), ou com base em qualquer outro fator para determinar uma saída de resolução desejada a partir do codificador de vídeo 23.
DECODIFICADOR DE VÍDEO
[0108] A FIG. 3A é um diagrama em blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implementar técnicas de acordo com os aspectos descritos na presente descrição. O decodificador de vídeo 30 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como por HEVC. Além disso, o decodificador de vídeo 30 pode ser configurado para realizar qualquer uma ou todas as técnicas da presente descrição. Em alguns exemplos, as técnicas descritas na presente descrição podem ser compartilhadas entre os vários componentes do decodificador de vídeo 30. Em alguns exemplos, adicionalmente ou em alternativa, um processador (não mostrado) pode ser configurado para realizar qualquer uma ou todas as técnicas descritas na presente descrição.
[0109] Para efeitos de explicação, esta invenção descreve o decodificador de vídeo 30 no contexto da codificação HEVC. No entanto, as técnicas da presente descrição podem ser aplicáveis a outras normas ou métodos de codificação. O exemplo representado na FIG. 3A é para um codec de camada única. No entanto, como será descrito adicionalmente com referência à FIG. 3B, alguns ou todos os decodificadores de vídeo 30 podem ser duplicados para o processamento de um codec em multicamadas.
[0110] No exemplo da FIG. 3A, o decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 150, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, uma unidade de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 159 e um buffer de imagem decodificada 160. A unidade de processamento de predição 152 inclui uma unidade de compensação de movimento 162, uma unidade de intra- predição 164 e uma unidade de predição entre camadas 166. Em alguns exemplos, o decodificador de vídeo 30 pode executar uma passagem de decodificação geralmente recíproca à passagem de codificação descrita em relação ao codificador de vídeo 20 da FIG. 2A. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[0111] O decodificador de vídeo 30 pode receber um fluxo de bits que compreende dados de vídeo codificados. O fluxo de bits pode incluir uma pluralidade de elementos de sintaxe. Quando o decodificador de vídeo 30 recebe o fluxo de bits, a unidade de decodificação de entropia 150 pode executar uma operação de análise no fluxo de bits. Como um resultado da execução da operação de análise no fluxo de bits, a unidade de decodificação de entropia 150 pode extrair elementos de sintaxe do fluxo de bits. Como parte da execução da operação de análise, a unidade de decodificação de entropia 150 pode decodificar por entropia elementos de sintaxe codificados de entropia no fluxo de bits. A unidade de processamento de predição 152, unidade de quantização inversa 154, unidade de transformada inversa 156, unidade de reconstrução 158 e a unidade de filtro 159 podem executar uma operação de reconstrução que gera dados de vídeo decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[0112] Como discutido acima, o fluxo de bits pode compreender uma série de unidades NAL. As unidades NAL do fluxo de bits pode incluir unidades NAL do conjunto de parâmetros de vídeo, unidades NAL do conjunto de parâmetros de sequência, unidades NAL do conjunto de parâmetros de imagem, unidades NAL SEI, e assim por diante. Como parte da realização das operações de análise no fluxo de bits, a unidade de decodificação de entropia 150 pode executar operações de análise que extraem e decodificam por entropia conjuntos de parâmetros de sequência de unidades NAL do conjunto de parâmetros de sequência, conjuntos de parâmetros de imagem das unidades NAL do conjunto de parâmetros de imagem, dados SEI de unidades NAL SEI e assim por diante.
[0113] Além disso, as unidades NAL do fluxo de bits podem incluir unidades NAL de fatia codificada. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação de entropia 150 pode executar operações de análise que extraem e decodificam por entropia fatias codificadas a partir das unidades NAL da fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho da fatia pode conter elementos de sintaxe que pertencem a uma fatia. Os elementos de sintaxe no cabeçalho da fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetros de imagem associado com uma imagem que contém a fatia. A unidade de decodificação de entropia 150 pode executar operações de decodificação de entropia, como operações de decodificação CABAC, em elementos de sintaxe no cabeçalho da fatia codificada para recuperar o cabeçalho de fatia.
[0114] Como parte da extração dos dados da fatia a partir de unidades NAL da fatia codificada, a unidade de decodificação de entropia 150 pode executar operações de análise que extraem elementos de sintaxe de CUs codificadas nos dados da fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados com blocos de coeficientes de transformada. A unidade de decodificação de entropia 150 pode, em seguida, executar operações de decodificação CABAC em alguns dos elementos de sintaxe.
[0115] Depois que a unidade de decodificação de entropia 150 executa uma operação de análise em uma CU não particionada, o decodificador de vídeo 30 pode executar uma operação de reconstrução na CU não particionada. Para executar a operação de reconstrução em uma CU não particionada, o decodificador de vídeo 30 pode executar uma operação de reconstrução em cada TU da CU. Ao realizar a operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruir um bloco de vídeo residual associado à CU.
[0116] Como parte da realização de uma operação de reconstrução em uma TU, a unidade de quantização inversa 154 pode quantizar em inverso, por exemplo, desquantizar, um bloco de coeficientes de transformada associado à TU. A unidade de quantização inversa 154 pode quantizar em inverso o bloco de coeficiente de transformada de um modo semelhante aos processos propostos de quantização inversa para HEVC ou definidos pela norma de decodificação H.264. A unidade de quantização inversa 154 pode usar um QP de parâmetro de quantização calculado pelo codificador de vídeo 20 para uma CU do bloco de coeficientes de transformada para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa para a unidade de quantização inversa 154 para aplicar.
[0117] Depois que a unidade de quantização inversa 154 quantiza em inverso um bloco de coeficientes de transformada, a unidade de transformada inversa 156 pode gerar um bloco de vídeo residual para a TU associada ao bloco de coeficientes de transformada. A unidade de transformada inversa 156 pode aplicar uma transformada inversa ao bloco de coeficiente de transformada, a fim de gerar o bloco de vídeo residual para a TU. Por exemplo, a unidade de transformada inversa 156 pode aplicar uma DCT inversa, uma transformada integral inversa, uma transformada Karhunen-Loeve inversa (KLT), uma transformada rotação inversa, uma transformada direcional inversa ou outra transformada inversa ao bloco de coeficiente de transformada. Em alguns exemplos, a unidade de transformada inversa 156 pode determinar uma transformada inversa a aplicar ao bloco de coeficiente de transformada com base na sinalização a partir do codificador de vídeo 20. Em tais exemplos, a unidade de transformada inversa 156 pode determinar a transformada inversa com base em uma transformada sinalizada no nó raiz de um quadtree para um treeblock associado com o bloco de coeficientes de transformada. Em outros exemplos, a unidade de transformada inversa 156 pode inferir a transformada inversa a partir de uma ou mais características de codificação, tal como tamanho do bloco, modo de codificação, ou semelhantes. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformação inversa em cascata.
[0118] Em alguns exemplos, a unidade de compensação de movimento 162 pode refinar o bloco de vídeo predito de uma PU efetuando interpolação com base em filtros de interpolação. Identificadores para filtros de interpolação a serem utilizados para a compensação de movimento com precisão de sub-amostra podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 162 pode usar os mesmos filtros de interpolação utilizados pelo codificador de vídeo 20 durante a geração do bloco de vídeo predito da PU para calcular valores interpolados para amostras de sub-inteiros de um bloco de referência. A unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 de acordo com as informações de sintaxe recebidas e utilizar os filtros de interpolação para produzir o bloco de vídeo predito.
[0119] Se uma PU é codificada utilizando intra- predição, então a unidade de intra-predição 164 pode executar intra-predição para gerar um bloco de vídeo predito para a PU. Por exemplo, a unidade de intra-predição 164 pode determinar um modo de intra-predição para a PU com base em elementos de sintaxe no fluxo de bits. O fluxo de bits pode incluir elementos de sintaxe que a unidade de intra-predição 164 pode usar para determinar o modo de intra-predição da PU.
[0120] Em alguns casos, os elementos de sintaxe podem indicar que a unidade de intra-predição 164 deve usar o modo de intra-predição de outra PU para determinar o modo de intra-predição da PU corrente. Por exemplo, pode ser provável que o modo de intra-predição da PU corrente seja o mesmo que o modo de intra-predição de uma PU vizinha. Em outras palavras, o modo de intra-predição da PU vizinha pode ser o modo mais provável para a PU corrente. Assim, neste exemplo, o fluxo de bits pode incluir um pequeno elemento de sintaxe que indica que o modo de intra-predição da PU é o mesmo que o modo de intra-predição da PU vizinha. A unidade de intra-predição 164 pode, então, utilizar o modo de intra-predição para gerar dados de predição (por exemplo, amostras preditas) para a PU com base nos blocos de vídeo de PUs espacialmente vizinhas.
[0121] Como discutido acima, o decodificador de vídeo 30 pode também incluir a unidade de predição entre camadas 166. A unidade de predição entre camadas 166 é configurada para predizer um bloco corrente (por exemplo, um bloco corrente na camada de reforço), utilizando uma ou mais camadas diferentes que estão disponíveis na extensão escalável para HEVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser referida como predição entre camadas. A unidade de predição entre camadas 166 utiliza métodos de predição para reduzir a redundância entre camadas, assim melhorando a eficiência da codificação e reduzindo as necessidades de recursos computacionais. Alguns exemplos de predição entre camadas incluem intra- predição entre camadas, predição de movimento entre camadas e predição residual entre camadas. A intra-predição entre camadas utiliza a reconstrução de blocos co-localizados na camada de base para predizer o bloco corrente na camada de reforço. A predição de movimento entre camadas utiliza informações de movimento da camada de base para predizer o movimento na camada de reforço. A previsão residual entre camadas usa o resíduo da camada de base para predizer o resíduo da camada de reforço. Cada um dos esquemas de predição entre camadas é discutido abaixo em maiores detalhes.
[0122] A unidade de reconstrução 158 pode usar os blocos de vídeo residuais associados com TUs de uma CU e os blocos de vídeo preditos das PUs da CU, por exemplo, ou dados de intra-predição ou dados de inter-predição, conforme o caso, para reconstruir o bloco de vídeo da CU. Assim, o decodificador de vídeo 30 pode gerar um bloco de vídeo predito e um bloco de vídeo residual com base em elementos de sintaxe no fluxo de bits e pode gerar um bloco de vídeo com base no bloco de vídeo predito e o bloco de vídeo residual.
[0123] Depois que a unidade de reconstrução 158 reconstrói o bloco de vídeo da CU, a unidade de filtro 159 pode executar uma operação de desbloqueio para reduzir artefatos de bloqueio associados com a CU. Depois que a unidade de filtro 159 realiza uma operação de desbloqueio para reduzir artefatos de bloqueio associados com a CU, o decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU no buffer de imagem decodificada 160. O buffer de imagem decodificada 160 pode fornecer imagens de referência para subsequente compensação de movimento, intra-predição e apresentação em um dispositivo de exibição, como o dispositivo de exibição 32 da FIG. 1A ou 1B. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de vídeo no buffer de imagem decodificada 160, operações de intra-predição ou inter-predição em PUs de outras CUs.
DECODIFICADOR EM MULTICAMADAS
[0124] A FIG. 3B é um diagrama em blocos que ilustra um exemplo de um decodificador de vídeo em multicamadas 33 (também referido simplesmente como decodificador de vídeo 33) que pode implementar técnicas de acordo com os aspectos descritos na presente descrição. O decodificador de vídeo 33 pode ser configurado para processar os quadros de vídeo em multicamadas, tal como por SHVC e codificação multivista. Além disso, o decodificador de vídeo 33 pode ser configurado para realizar qualquer uma ou todas as técnicas da presente invenção.
[0125] O decodificador de vídeo 33 inclui um decodificador de vídeo 30A e decodificador de vídeo 30B, cada um dos quais pode ser configurado como o decodificador de vídeo 30 e pode executar as funções descritas acima em relação ao decodificador de vídeo 30. Além disso, tal como indicado pela reutilização de números de referência, os decodificadores de vídeo 30A e 30B podem incluir pelo menos alguns dos sistemas e subsistemas, como o decodificador de vídeo 30. Embora o decodificador de vídeo 33 seja ilustrado como incluindo dois decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 não é limitado dessa forma e pode incluir qualquer número de camadas do decodificador de vídeo 30. Em algumas formas de realização, o decodificador de vídeo 33 pode incluir um decodificador de vídeo 30 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas formas de realização, o decodificador de vídeo 33 pode incluir mais camadas do decodificador do que quadros em uma unidade de acesso. Em algumas de tais casos, algumas das camadas do decodificador de vídeo podem ser inativas quando processando algumas unidades de acesso.
[0126] Em adição aos decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 pode incluir uma unidade de aumento da resolução 92. Em algumas formas de realização, a unidade de aumento da resolução 92 pode aumentar a resolução de uma camada de base de um quadro de vídeo recebido para criar uma camada reforçada a ser adicionada à lista de imagens de referência para o quadro ou unidade de acesso. Esta camada reforçada pode ser armazenados no buffer de imagem decodificada 160. Em algumas formas de realização, a unidade de aumento da resolução 92 pode incluir algumas ou todas as formas de realização descritas no que diz respeito à unidade de reamostragem 90 da FIG. 2A. Em algumas formas de realização, a unidade de aumento da resolução 92 é configurada para aumentar a resolução de uma camada e reorganizar, redefinir, modificar ou ajustar uma ou mais fatias para cumprir um conjunto de regras de limites de fatias e / ou regras de varredura raster. Em alguns casos, a unidade de aumento da resolução 92 pode ser uma unidade configurada de reamostragem para aumentar a resolução e / ou diminuir a resolução de uma camada de um quadro de vídeo recebido.
[0127] A unidade de aumento da resolução 92 pode ser configurada para receber uma imagem ou quadro (ou informações de imagem associadas com a imagem) a partir do buffer de imagem decodificada 160 do decodificador de camada inferior (por exemplo, o decodificador de vídeo 30A) e para aumentar a resolução da imagem (ou as informações da imagem recebida). A imagem com aumento da resolução pode então ser fornecida à unidade de processamento de predição 152 de um decodificador de camada superior (por exemplo, o decodificador de vídeo 30B) configurado para decodificar uma imagem na mesma unidade de acesso que o decodificador de camada inferior. Em alguns casos, o decodificador de camada superior é uma camada removida do decodificador de camada inferior. Em outros casos, pode haver um ou mais decodificadores de camadas superior entre o decodificador da camada 0 e o decodificador da camada 1 da FIG. 3B.
[0128] Em alguns casos, a unidade de aumento da resolução 92 pode ser omitida ou ignorada. Em tais casos, a imagem a partir do buffer de imagem decodificada 160 do decodificador de vídeo 30A pode ser fornecida diretamente ou pelo menos sem ser fornecida à unidade de aumento da resolução 92, à unidade de processamento de predição 152 do decodificador de vídeo 30B. Por exemplo, se os dados de vídeo fornecidos ao decodificador de vídeo 30B e a imagem de referência a partir do buffer de imagem decodificada 160 do decodificador de vídeo 30A são do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida para o decodificador de vídeo 30B sem aumento da resolução. Além disso, em algumas formas de realização, a unidade de aumento da resolução 92 pode ser uma unidade de aumento da resolução 90 configurada para aumentar a resolução ou diminuir a resolução de uma imagem de referência recebida a partir do buffer de imagem decodificada 160 do decodificador de vídeo 30A.
[0129] Tal como ilustrado na FIG. 3B, o decodificador de vídeo 33 pode ainda incluir um desmultiplexador (ou demux) 99. O demux 99 pode dividir um fluxo de bits de vídeo codificado em múltiplos fluxos de bits com cada saída de fluxo de bits pelo demux 99 sendo fornecida a um decodificador de vídeo 30A e 30B diferentes. Os múltiplos fluxos de bits podem ser criados recebendo um fluxo de bits e cada um dos decodificadores de vídeo 30A e 30B recebe uma parte do fluxo de bits em um determinado momento. Embora em alguns casos os bits do fluxo de bits recebidos no demus 99 possam ser alternados um bit de cada vez entre cada um dos decodificadores de vídeo (por exemplo, decodificadores de vídeo 30A e 30B no exemplo da FIG. 3B), em muitos casos, o fluxo de bits é dividido de maneira diferente. Por exemplo, o fluxo de bits pode ser dividido alternando qual decodificador de vídeo recebe o fluxo de bits um bloco de cada vez. Em outro exemplo, o fluxo de bits pode ser dividido por uma razão de blocos diferente de 1:1 para cada um dos descodificadores de vídeo 30A e 30B. Por exemplo, dois blocos podem ser fornecidos ao decodificador de vídeo 30B para cada bloco fornecido ao decodificador de vídeo 30A. Em algumas formas de realização, a divisão do fluxo de bits pelo demux 99 pode ser pré-programada. Em outras formas de realização, o demux 99 pode dividir o fluxo de bits com base em um sinal de controle recebido a partir de um sistema externo ao decodificador de vídeo 33, tal como a partir de um processador de um dispositivo de destino, incluindo o dispositivo de destino 14. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo a partir da interface de entrada 28, com base em uma largura de banda da ligação 16, com base em uma assinatura associada a um usuário (por exemplo, uma assinatura paga versus uma assinatura gratuita), ou com base em qualquer outro fator para determinar uma resolução que pode ser obtida pelo decodificador de vídeo 33.
IMAGENS DE PONTO DE ACCESSO INTRA-ALEATÓRIO (IRAP)
[0130] Alguns esquemas de codificação de vídeo podem fornecer vários pontos de acesso aleatórios através do fluxo de bits, de tal forma que o fluxo de bits pode ser decodificado a partir de qualquer um desses pontos de acesso aleatórios, sem a necessidade de decodificar quaisquer imagens que antecedem esses pontos de acesso aleatórios no fluxo de bits. Nesses esquemas de codificação de vídeo, todas as imagens que seguem um ponto de acesso aleatório em ordem de decodificação, com exceção de imagens anteriores ignoradas por acesso aleatório (RASL), podem ser corretamente decodificadas sem o uso de quaisquer imagens que antecedem o ponto de acesso aleatório. Por exemplo, mesmo que uma parte do fluxo de bits seja perdida durante a transmissão ou durante a decodificação, um decodificador pode continuar a decodificar o fluxo de bits a partir do próximo ponto de acesso aleatório. Suporte para acesso aleatório pode facilitar, por exemplo, serviços de transmissão dinâmica, operações de busca, troca de canal, etc.
[0131] Em alguns esquemas de codificação, tais pontos de acesso aleatório podem ser fornecidos por imagens que são referidas como imagens de ponto de acesso intra- aleatório (IRAP). Por exemplo, um ponto de acesso aleatório associado com uma imagem IRAP de camada de reforço em uma camada de reforço (“camadaA”) que está contido em uma unidade de acesso (“auA”) pode proporcionar acesso aleatório específico de camada, de modo que, para cada camada de referência (“camadaB”) da camadaA (por exemplo, uma camada de referência sendo uma camada que é usada para predizer a camadaA) tendo um ponto de acesso aleatório associado com uma imagem contida em uma unidade de acesso (“auB”) que está na camadaB e precede auA na ordem de decodificação (ou um ponto de acesso aleatório contido em auA), as imagens na camadaA que seguem auA em ordem de decodificação (incluindo as imagens localizadas em auA), são corretamente decodificáveis sem a necessidade de decodificar quaisquer imagens na camadaA que precedem auA.
[0132] Imagens IRAP podem ser codificadas utilizando intra-predição (por exemplo, codificadas sem referência a outras imagens) e / ou predição entre camadas, e podem incluir, por exemplo, imagens de atualização de decodificador instantânea (IDR), imagens de acesso aleatório limpo (CRA) e imagens de acesso à ligação rompida (BLA). Quando há uma imagem IDR no fluxo de bits, todas as imagens que antecedem a imagem IDR em ordem de decodificação não são usadas para predição por imagens que se seguem a imagem IDR. Quando existe uma imagem CRA no fluxo de bits, as imagens que se seguem a imagem CRA podem ou não utilizar imagens que precedem a imagem CRA em ordem de decodificação para predição. Aquelas imagens que seguem a imagem CRA em ordem de decodificação, mas usam imagens que antecedem a imagem CRA em ordem de decodificação podem ser referidas como imagens RASL. Outro tipo de imagem que pode seguir uma imagem IRAP em ordem de decodificação e preceder a imagem IRAP em ordem de saída é uma imagem anterior decodificável por acesso aleatório (RADL), que pode não conter referências a quaisquer imagens que antecedem a imagem IRAP em ordem de decodificação. Imagens RASL podem ser descartadas pelo decodificador se as imagens que antecedem a imagem CRA não estão disponíveis. Uma imagem BLA indica ao decodificador que as imagens que antecedem a imagem BLA podem não estar disponíveis para o decodificador (por exemplo, porque dois fluxos de bits são emendados e a imagem BLA é a primeira imagem do segundo fluxo de bits em ordem de decodificação). Uma unidade de acesso (por exemplo, um grupo de imagens que consiste em todas as imagens codificadas associadas com o mesmo tempo de saída através de múltiplas camadas) que contém uma imagem de camada de base (por exemplo, com um valor ID de camada de 0) que é uma imagem IRAP pode ser referida como uma unidade de acesso IRAP.
UNIDADES NAL DO FIM DE FLUXO DE BITS
[0133] A FIG. 4 é um diagrama em blocos que ilustra uma unidade de acesso de um fluxo de bits de multicamadas de acordo com uma forma de realização. Como mostrado na FIG. 4, uma unidade de acesso 400 inclui uma unidade NAL da primeira Camada de Codificação de Vídeo (VCL) 460 e pode incluir uma ou mais outras unidades NAL opcionais. Por exemplo, a unidade de acesso 400 pode incluir uma ou mais de cada uma das seguintes: uma unidade NAL delimitadora da unidade de acesso 410, uma unidade NAL VPS 420, uma unidade NAL SPS 430, uma unidade NAL PPS 440, uma unidade NAL prefixo SEI 450, imagem codificada adicional ou unidades NAL não-VCL 470 e uma unidade NAL EoB 480. Cada uma das unidades NAL opcionais listadas pode ser incluída dependendo dos aspectos da implementação e outras estruturas de sintaxe também podem ser incluídas, dependendo do esquema de codificação de vídeo usado para codificar ou decodificar a unidade de acesso.
[0134] De acordo com o esquema HEVC, quando uma unidade NAL EoB 480 está presente na unidade de acesso 400, a unidade de acesso seguinte deve ser uma unidade de acesso IRAP, que pode ser uma unidade de acesso IDR, uma unidade de acesso BLA, ou uma unidade de acesso CRA em ordem de decodificação para o fluxo de bits codificado para estar em conformidade com o esquema HEVC. Assim, quando incluída em uma unidade de acesso, a unidade NAL EoB 480 indica que a unidade de acesso seguinte é uma unidade de acesso IRAP.
[0135] Em esquemas de codificação de camada única convencionais (por exemplo, HEVC versão 1), cada unidade de acesso corresponde exclusivamente a uma única imagem. Visto que cada unidade de acesso contém uma única imagem, os termos “unidade de acesso” e “imagem” foram capazes de ser utilizados indiferentemente no contexto de esquemas de codificação de uma única camada, por exemplo, no que diz respeito à utilização de mensagens SEI de ponto de recuperação. No entanto, as unidades de acesso de esquemas de codificação em multicamadas podem incluir uma imagem separada para cada camada do fluxo de bits. Em outras palavras, em um fluxo de bits em multicamadas, uma única unidade de acesso pode incluir (isto é, incluir ou compreender) uma pluralidade de imagens. Em algumas implementações de codificação de multicamadas, como MV-HEVC e SHVC, cada unidade NAL inclui um identificador de camada que identifica a camada à qual pertence a unidade NAL. Por conseguinte, a camada de uma unidade NAL EoB é definida com base em um valor do identificador de camada da unidade NAL EOB. Em esquemas de codificação de camada única convencionais, o identificador de camada para todas as unidades NAL é limitado à mesma camada, ou seja, a camada zero. Em outras palavras, as unidades NAL de esquemas de codificação de camada única convencionais são todas identificadas como pertencendo à mesma camada. No entanto, em esquemas de codificação em multicamadas, não existem essas restrições ao identificador de camada incluído em unidades NAL, incluindo o identificador camada associado com as unidades NAL EoB.
[0136] Devido à natureza irrestrita do identificador de camada de unidades NAL EoB em esquemas de codificação em multicamadas, uma série de erros de decodificação indesejáveis pode ocorrer quando a unidade NAL EoB tem um identificador de camada com um valor diferente de zero. Como um exemplo, um fluxo de bits codificado pode incluir uma camada de base (BL) e uma camada de reforço (EL). Quando a largura de banda entre o codificador e o decodificador é restrita ou cai abaixo de um determinado nível, a camada de reforço (ou outras camadas que têm um identificador de camada diferente da camada zero) pode ser descartada (ou processada incorretamente) a partir do fluxo de bits para conservar a largura de banda. Isto pode ocorrer, por exemplo, quando a largura de banda entre um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou o codificador de vídeo 23) e um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 ou o decodificador de vídeo 33) é limitada. Nesta situação, se a unidade NAL EoB tem um identificador de camada com um valor de um (“1”), ou seja, a unidade NAL EoB está contida na camada de reforço (EL), a unidade NAL EOB será descartada do fluxo de bits e não será recebida pelo decodificador.
[0137] Há uma série de funcionalidades de esquemas de codificação que contam com as informações contidas dentro da unidade NAL EoB. Por conseguinte, quando a unidade NAL EoB é descartada do fluxo de bits, estas funções não funcionam como esperado. Em um exemplo, um decodificador pode decodificar um fluxo de bits incluindo uma unidade de acesso de acesso aleatório limpo (CRA) de maneiras diferentes com base na presença ou ausência de uma unidade NAL EoB imediatamente antes da unidade de acesso CRA. Assim, se a unidade NAL EoB é descartada da camada de reforço, a decodificação da unidade de acesso CRA seguinte não será executada conforme o esperado. Da mesma forma, outras funcionalidades de decodificação contam com a existência da unidade NAL EoB para decodificação adequada, e, portanto, quando a unidade NAL EoB tem um valor de identificador de camada que indica uma camada diferente da camada zero, a unidade NAL EoB pode ser descartada, uma vez que está incluída em uma camada diferente da camada de base, é possível que o decodificador não seja capaz de decodificar corretamente o fluxo de bits.
[0138] Além disso, as normas de codificação em multicamadas não definem qualquer funcionalidade adicional para permitir que uma unidade NAL EoB tenha um identificador de camada com um valor diferente de zero. Assim, em pelo menos uma forma de realização da presente descrição, todas as unidades NAL EoB são configuradas para ter um identificador camada de zero. Especificamente, de acordo com a presente invenção, a codificação do fluxo de bits é realizada com base em uma restrição de que as unidades NAL EoB têm um identificador de camada de zero. Ao restringir o identificador de camada de todas as unidades NAL EoB para a camada zero, as unidades NAL não serão descartadas (ou processadas incorretamente) uma vez que, como discutido acima, são descartadas apenas as unidades NAL com um identificador de camada diferente da camada zero.
RPSs
[0139] Esquemas de codificação de vídeo podem manter um RPS associado com uma imagem da sequência de vídeo codificada (CVS). O RPS para uma determinada imagem contém um conjunto de imagens de referência incluindo todas as imagens de referência anteriores à imagem associada em ordem de decodificação que pode ser utilizado para a inter- predição da imagem associada ou qualquer imagem após a imagem associada em ordem de decodificação. Como exemplo, no esquema HEVC, o RPS inclui cinco listas RPS, três das quais são referidas coletivamente como os RPSs de curto prazo e os dois restantes que são coletivamente referidos como os RPSs de longo prazo. Os RPSs de curto prazo contêm todas as imagens de referência que podem ser utilizadas para inter-predição da imagem associada e uma ou mais imagens após a imagem associada em ordem de decodificação. O RPSs de longo prazo contém todas as imagens de referência que não são usadas para inter-predição da imagem associada, mas podem ser utilizadas para inter-predicação de uma ou mais imagens que seguem a imagem associada em ordem de decodificação.
[0140] A FIG. 5 é um diagrama em blocos que ilustra um exemplo de como um RPS é gerado por um codificador ou decodificador. Na descrição a seguir, o buffer de imagem decodificada 510 será descrito como incluído em um decodificador (por exemplo, o decodificador de vídeo 30 ou o decodificador de vídeo 33), no entanto, o que segue se aplica igualmente a um codificador. Como mostrado na FIG. 5, uma pluralidade de imagens 520 a 528 são retidas no buffer de imagem decodificada 510 do decodificador. Um RPS pode ser gerado para uma imagem e pode incluir referências a imagens contidas no buffer de imagem decodificada 510. A primeira lista RPS 530 inclui imagens 520, 522, 526 e 528, enquanto a segunda lista RPS 540 inclui imagens 520, 524, 526 e 528. A forma de realização da FIG. 5 é apenas um exemplo e as imagens incluídas em um RPS podem ser quaisquer imagens a partir do fluxo de bits, as quais são utilizadas para referência de acordo com as condições do sistema de codificação utilizado para codificar o fluxo de bits. As listas RPS 530 e 540 podem ser listas RPS convencionais, incluindo imagens que são usadas como referências para a decodificação de imagens dentro da mesma camada ou podem ser listas RPS entre camadas utilizadas para decodificar imagens em camadas diferentes.
[0141] Esquemas de codificação de vídeo multivista, como as extensões escalável e multivista para o esquema HEVC, expandem o uso de RPSs para incluir RPSs para predição entre camadas. Em algumas formas de realização, um RPS é definido para cada camada da corrente de bits, isto é, cada imagem mantém o seu próprio RPS. Além disso, RPSs adicionais podem ser fornecidos, os quais incluem listas de imagens usadas para predição entre camadas da imagem associada. O RPS entre camadas para cada imagem pode ser dividido em subconjuntos que correspondem às camadas do fluxo de bits. Por exemplo, em um fluxo de bits em duas camadas, o RPS entre camadas pode ser dividido em um subconjunto da camada zero e um subconjunto da camada um, que serão daqui em diante respectivamente referidos como entrecamada zero de RPS e entrecamada um de RPS.
[0142] Tal como descrito anteriormente, imagens podem ser descartadas (ou processadas incorretamente) a partir do fluxo de bits por várias razões, tais como os requisitos de largura de banda, ou as imagens podem ser perdidas na transmissão entre o codificador e o decodificador. Quando uma imagem de referência entre camadas candidata não está presente no fluxo de bits recebido por um decodificador, ou seja, uma imagem de referência identificada em um subconjunto entre camadas RPS não é recebida, uma entrada de “sem imagem de referência”, indicando que não existe nenhuma imagem de referência, deve ser inserida no subconjunto entre camadas RPS correspondente. O subconjunto apropriado pode ser determinado com base no identificador de vista (ID) da camada corrente, o ID de visualização da camada à qual pertence a imagem de referência entre camadas candidata, e o ID de visualização da camada de base. Aqui, o ID de visualização é análogo ao ID de camada e pode referir-se à vista da imagem dentro de um padrão de codificação multivista.
[0143] Nas extensões escalável e multivista atuais, a entrada “sem imagem de referência” só é inserida à entrecamada zero de RPS, mesmo se a imagem de referência entre camadas candidata, se tivesse sido recebida pelo decodificador, tivesse sido adicionada à entrecamada um de RPS. Este comportamento é indesejável, visto que a entrada “sem entrada de referência” deve ser indicada no local onde a imagem de referência entre camadas faltante teria sido inserida. Sem correção, este comportamento pode resultar em posicionamento relativo indesejado ou incorreto de imagens de referência entre camadas nos dois subconjuntos entre camadas de RPS, quando uma imagem de referência entre camadas está faltando. Além disso, este comportamento também poderia resultar nos tamanhos das listas contidas nos subconjuntos entre camadas de RPS sendo incorretos. Isso poderia potencialmente levar à referência incorreta das imagens de referência entre camadas ao decodificar o fluxo de bits. Por conseguinte, outro objetivo da presente descrição é corrigir este comportamento.
[0144] Em uma forma de realização, o ID de visualização da imagem corrente é usado para determinar a qual subconjunto entre camadas de RPS é inserida uma entrada “sem imagem de referência”. Por exemplo, quando uma imagem de referência entre camadas candidata não está presente para uma imagem, uma entrada “sem imagem de referência” está incluída no subconjunto entre camadas de RPS correspondente com base no ID de visualização da imagem de referência entre camadas faltante. Em outras formas de realização, o ID de visualização de outra camada também pode ser utilizado na determinação de qual subconjunto entre camadas de RPS correspondente à imagem de referência entre camadas candidata faltante. Por exemplo, o ID de visualização da imagem de referência entre camadas candidata, e o ID de visualização da camada de base podem ser utilizados na determinação. Assim, ao incluir a entrada “sem imagem de referência” ao subconjunto entre camadas de RPS correspondente, o posicionamento relativo das imagens de referência entre camadas nos subconjuntos entre camadas de RPS pode ser corrigido e os respectivos tamanhos dos subconjuntos entre camadas de RPS também podem ser corrigidos.
[0145] Outro aspecto da presente invenção pode tratar de uma inferência incorreta de uma perda na transmissão do fluxo de bits. As extensões escalável e multivista propõem a inclusão de um sinalizador descartável que indica se a imagem associada com o sinalizador descartável não é utilizada para predição entre camadas, nem para inter-predição por qualquer outra imagem. Em algumas formas de realização, este sinalizador é incluído no cabeçalho da fatia do fluxo de bits e tem o mesmo valor para todos os segmentos de fatia dentro da imagem associada. Nos esquemas de codificação multicamadaa convencionais, quando uma imagem tem um sinalizador descartável associado indicando que a imagem é descartável, não há nenhuma exigência de que a imagem descartável não esteja presente em qualquer RPSs temporais ou entre camadas. Além disso, os esquemas convencionais também não impedir uma imagem descartável de estar presente nas listas de imagens de referência, desde que nenhuma PU se refira a uma PU na imagem descartável. Assim, uma imagem descartável pode ser incluída em um RPS ou lista de imagem de referência, desde que não seja usado para referência.
[0146] Se uma imagem descartável está incluída em um RPS ou lista de imagens de referência, um decodificador pode incorretamente inferir uma perda e / ou pode introduzir ineficiências de largura de banda e decodificação devido à inclusão. Por exemplo, quando sob limitações da largura de banda, uma imagem descartável pode ser removida do fluxo de bits a fim de poupar largura de banda, uma vez que não será utilizada para referência quando decodificando outras imagens no fluxo de bits. Quando a imagem descartada é incluída em um RPS, o decodificador irá reconhecer que a imagem descartada pode ser usada para referência por outra imagem que ainda não tenha sido recebida pelo decodificador. Uma vez que o decodificador reconhece que a imagem descartada pode ser usada para referência, ele pode requerer uma retransmissão da imagem descartada a partir do codificador. Este comportamento irá reduzir as economias de largura de banda que foram inicialmente obtidas descartando a imagem descartável e levar a ineficiências no decodificador.
[0147] Assim, em pelo menos uma forma de realização, imagens que estão associadas com um indicador descartável que indica que a imagem é descartável, isto é, com um valor de um, são impedidas de serem incluídas em qualquer um dos RPSs entre camadas ou RPSs temporais.
[0148] Em outra forma de realização, um indicador usado-para-referência pode ser unicamente associado com uma imagem. O indicador usado-para-referência indica se a imagem associada está incluída em pelo menos um RPS. Nesta forma de realização, apenas imagens com um indicador usadas-para-referência com um valor de um são autorizadas a serem incluídas em um RPS.
FLUXOGRAMAS EXEMPLIFICATIVOS PARA CODIFICAÇÃO DE INFORMAÇÕES DE VÍDEO
[0149] Com referência à FIG. 6, será descrito um procedimento exemplificativo para codificação de informações de vídeo com base em uma unidade NAL EOB tendo um valor de identificação de camada com um valor de zero. A FIG. 6 é um fluxograma que ilustra um método 600 para codificação de informações de vídeo de acordo com uma forma de realização. As etapas ilustradas na FIG. 6 podem ser executadas por um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou o codificador de vídeo 23), um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 ou o decodificador de vídeo 33), ou qualquer outro componente. Por conveniência, o método 600 é descrito como realizado por um codificador de vídeo (também simplesmente referido como codificador), que pode ser o codificador de vídeo 20 ou 23, o decodificador de vídeo 30 ou 33, ou outro componente.
[0150] O método 600 começa no bloco 601. No bloco 605, o codificador determina se uma unidade de acesso incluída nas informações de vídeo inclui uma unidade NAL EOB. No bloco 610, o codificador define um valor de identificação de camada para a unidade NAL EOB a zero, de acordo com uma restrição. A informação vídeo a ser codificada inclui pelo menos uma unidade NAL EOB que inclui um valor de identificação de camada que identifica a camada à qual pertence a unidade NAL EOB. No bloco 615, o codificador codifica a informação de vídeo com base, pelo menos em parte, em um valor de zero para o valor de identificação de camada. O método termina em 620.
[0151] Com referência à FIG. 7, será descrito um procedimento exemplificativo para indicar que não existe imagem de referência em um subconjunto entre camadas de RPS para decodificação de vídeo. A FIG. 7 é um fluxograma que ilustra um processo 700 para decodificar informações de vídeo, de acordo com uma forma de realização. As etapas ilustradas na FIG. 7 podem ser executadas por um codificador de vídeo (por exemplo, o codificador de vídeo 20 ou o codificador de vídeo 23), um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 ou o decodificador de vídeo 33), ou qualquer outro componente. Por conveniência, o método 700 é descrito como realizado por um decodificador de vídeo (também simplesmente referido como decodificador), que pode ser o decodificador de vídeo 20 ou 23 ou o decodificador de vídeo 30 ou 33, ou outro componente.
[0152] O método 700 começa no bloco 701. No bloco 705, o decodificador determina se uma imagem de referência entre camadas candidata está presente na informação de vídeo. As imagens podem ser retiradas das informações de vídeo codificado em resposta a limites da largura de banda ou podem ser inesperadamente perdidas durante a transmissão a partir de um codificador. Assim, o decodificador pode determinar se a imagem de referência entre camadas candidata foi retirada da informação de vídeo determinando se a imagem de referência entre camadas candidata está presente.
[0153] O método continua no bloco 710, onde o decodificador determina um subconjunto entre camadas de RPS ao qual pertence a imagem de referência entre camadas candidata em resposta à determinação de que a imagem de referência entre camadas candidata não está presente. Por exemplo, esta determinação pode incluir a determinação de qual subconjunto da imagem de referência entre camadas candidata teria sido incluído, se estivesse presente nas informações de vídeo. Em algumas formas de realização, isto pode incluir a determinação do ID de visualização da camada corrente, o ID de visualização da imagem de referência entre camadas de candidata, e / ou o ID de visualização da camada de base.
[0154] Continuando no bloco 715, o decodificador indica que nenhuma imagem de referência está presente no subconjunto entre camadas de RPS ao qual pertence a imagem de referência entre camadas candidata. O método termina em 720.
[0155] Com referência à FIG. 8, será descrito um procedimento de exemplo para determinar quanto à inclusão de uma imagem em um RPS para codificação de vídeo. A FIG. 8 é um fluxograma que ilustra um método 800 para codificação de informações de vídeo, de acordo com uma forma de realização. As etapas ilustradas na FIG. 8 podem ser realizadas por um codificador (por exemplo, o codificador de vídeo 20 do codificador de vídeo 23), um decodificador de vídeo (por exemplo, o decodificador de vídeo 30 ou o decodificador de vídeo 33), ou qualquer outro componente. Por conveniência, o método 800 é descrito como realizado por um codificador de vídeo, que pode ser o codificador de vídeo 20 ou 23, o decodificador de vídeo 30 ou 33, ou outro componente.
[0156] O método 800 começa no bloco 801. No bloco 805, o codificador determina se uma imagem corrente de informações de vídeo é uma imagem descartável. Cada imagem pode, por exemplo, incluir um indicador descartável que indica se a imagem é uma imagem descartável. Em algumas formas de realização, uma imagem pode ser identificada como uma imagem descartável apenas quando ela não está incluída em qualquer RPS.
[0157] O método continua no bloco 810, onde o codificador evita incluir a imagem corrente em um RPS com base na determinação de que a imagem corrente é uma imagem descartável. O método termina em 815.
[0158] Nos métodos 600 a 800, um ou mais dos blocos mostrados nas FIGS. 6-8 podem ser removidos (por exemplo, não realizados) e / ou a ordem na qual os métodos são realizados pode ser alterada. Em algumas formas de realização, os blocos adicionais podem ser adicionados aos métodos 600 a 800. As formas de realização da presente invenção não são limitadas a ou pelos exemplos mostrados nas Figs. 6 a 8, e outras variações podem ser implementadas sem afastamento do espírito da presente invenção.
IMPLEMENTAÇÃO(ÕES) EXEMPLIFICATIVAS
[0159] Algumas formas de realização encontram-se resumidas e descritas a seguir. Quando certas partes da especificação HEVC são reproduzidas para ilustrar as adições e deleções que podem ser incorporadas para implementar um ou mais dos métodos aqui descritos, tais modificações são apresentados em itálico e tachadas, respectivamente.
ALTERAÇÕES RELACIONADAS COM A UNIDADE NAL EOB
[0160] Em algumas implementações da presente invenção, as unidades NAL EOB podem ser modificadas como descrito abaixo. Tabela 1 - Modificações da Semântica das Unidades NAL EoB
MUDANÇAS NO PROCESSO DE DECODIFICAÇÃO DE RPS INTER CAMADAS
[0161] Em algumas implementações da presente invenção, um RPS entre camadas pode ser modificado como descrito abaixo.TABELA 2 - MODIFICAÇÕES DA SEMÂNTICA DO RPS ENTRE CAMADAS
MUDANÇAS NO PROCESSO DE DECODIFICAÇÃO DE RPS
[0163] Em algumas implementações (por exemplo, SHVC, MV-HEVC, etc), o RPS pode ser modificado como descrito abaixo.TABELA 3 - MODIFICAÇÕES DA SEMÂNTICA DE RPS
OUTRAS CONSIDERAÇÕES
[0164] As informações e os sinais aqui descritos podem ser representados utilizando qualquer uma de uma variedade de tecnologias e técnicas diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos e chips que podem ser referenciados em toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, campos ou partículas magnéticas, campos ou partículas ópticas, ou qualquer combinação dos mesmos.
[0165] Os vários blocos lógicos, circuitos e etapas de algoritmo ilustrativos descritos em ligação com as formas de realização aqui descritas podem ser implementados como hardware eletrônico, software de computador ou combinações de ambos. Para ilustrar claramente esta permutabilidade de hardware e software, vários componentes, blocos, circuitos e etapas ilustrativos foram descritos acima, geralmente em termos de sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação e limitações de design específicas impostas ao sistema global. Os especialistas na técnica podem implementar a funcionalidade descrita de maneiras diferentes para cada aplicação em particular, mas tais decisões de implementação não devem ser interpretadas como causando um afastamento do âmbito da presente descrição.
[0166] As técnicas aqui descritas podem ser implementadas em hardware, software, firmware, ou qualquer combinação dos mesmos. Tais técnicas podem ser implementadas em qualquer de um variedade de dispositivos, tais como computadores para fim geral, aparelhos portáteis do dispositivo de comunicação sem fio, ou dispositivos de circuitos integrados que têm múltiplas utilizações, incluindo a aplicação em aparelhos de dispositivos de comunicação sem fios e outros dispositivos. Quaisquer recursos descritos como componentes podem ser implementados em conjunto em um dispositivo lógica integrado ou separadamente, como dispositivos lógicos discretos, mas interoperáveis. Se implementadas em software, as técnicas podem ser realizadas, pelo menos em parte, por um meio de armazenamento de dados de leitura por computador compreendendo código de programa incluindo instruções que, quando executadas, realizam um ou mais dos métodos descritos acima. O meio de armazenamento de dados de leitura por computador pode fazer parte de um produto de programa de computador, o qual pode incluir materiais de embalagem. O meio de leitura por computador pode compreender memória ou meios de armazenamento de dados, tal como memória de acesso aleatório (RAM), como memória de acesso aleatório dinâmica síncrona (SDRAM), memória somente de leitura (ROM), memória não volátil de acesso aleatório (NVRAM), memória EPROM apagável eletricamente (EEPROM), memória FLASH, meios de armazenamento de dados magnéticos ou ópticos, e similares. As técnicas adicionalmente, ou alternativamente, podem ser realizadas, pelo menos em parte, por um meio de comunicação de leitura por computador que transporta ou comunica código do programa sob a forma de instruções ou estruturas de dados e que pode ser acessado, lido e / ou executado por um computador , tais como sinais ou ondas propagadas.
[0167] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, tal como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), ou outro circuito lógico integrado ou discreto equivalente. Esse processador pode ser configurado para realizar qualquer uma das técnicas descritas nesta invenção. Um processador de uso geral pode ser um microprocessador; mas, em alternativa, o processador pode ser qualquer processador convencional, controlador, microcontrolador ou máquina de estados convencional. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outro tipo de configuração. Por conseguinte, o termo “processador” tal como aqui utilizado pode referir-se a qualquer estrutura acima mencionada, qualquer combinação da estrutura acima mencionada, ou qualquer outra estrutura ou aparelho adequado para execução das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de software ou hardware dedicado configurado para codificação e descodificação, ou incorporado em um codificador- descodificador de vídeo combinado (CODEC). Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0168] As técnicas da presente invenção podem ser implementadas em uma vasta variedade de dispositivos ou aparelhos, incluindo um aparelho portátil sem fios, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um chipset). Vários componentes ou unidades são descritos na presente descrição para enfatizar os aspectos funcionais de dispositivos configurados para executar as técnicas descritas, mas não precisam necessariamente de realização por diferentes unidades de hardware. Em vez disso, tal como descrito acima, várias unidades podem ser combinadas em uma unidade de hardware codec ou fornecidas por um conjunto de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com o software e / ou firmware adequado.
[0169] Diversas formas de realização da invenção foram descritas. Estas e outras formas de realização estão dentro do âmbito das reivindicações a seguir.

Claims (6)

1. Método para decodificar informações de vídeo de um fluxo de bits em múltiplas camadas, caracterizado pelo fato de compreende: determinar se uma imagem de referência entre camadas candidata está presente nas informações de vídeo, em que as informações de vídeo compreendem um conjunto de imagens de referência entre camadas, RPS, incluindo uma pluralidade de subconjuntos, a imagem de referência entre camadas candidata sendo uma imagem de referência entre camadas que ainda não tenha sido posicionada em um subconjunto de RPS; em resposta a determinar que a imagem de referência entre camadas candidata não está presente, determinar um subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence, a determinação do subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence sendo baseada, pelo menos em parte, em um identificador de visualização da imagem de referência entre camadas candidata; indicar que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence; e decodificar o fluxo de bits de vídeo com base, pelo menos em parte, na indicação de que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a determinação do subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence é baseada em: i) um identificador de visualização de uma camada atual, ii) o indicador de visualização da imagem de referência entre camadas candidata, e iii) um identificador de visualização de uma camada base.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a decodificação das informações de vídeo se baseia, pelo menos em parte, em um padrão de codificação de vídeo de múltiplas vistas.
4. Dispositivo para decodificar informações de vídeo de um fluxo de bits em múltiplas camadas, caracterizado pelo fato de que compreende: uma memória configurada para armazenar as informações de vídeo; e um processador em comunicação com a memória e configurado para: determinar se uma imagem de referência entre camadas candidata está presente nas informações de vídeo, em que as informações de vídeo compreendem um conjunto de imagens de referência entre camadas, RPS, incluindo uma pluralidade de subconjuntos, a imagem de referência entre camadas candidata sendo uma imagem de referência entre camadas que ainda não tenha sido posicionada em um subconjunto de RPS; em resposta a uma determinação de que a imagem de referência entre camadas candidata não está presente, determinar um subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence, uma determinação do subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence sendo baseada, pelo menos em parte, em um identificador de visualização da imagem de referência entre camadas candidata; indicar que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence; e decodificar o fluxo de bits de vídeo com base, pelo menos em parte, na indicação de que nenhuma imagem de referência está presente no subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence.
5. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que o processador é configurado adicionalmente para determinar o subconjunto de RPS entre camadas ao qual a imagem de referência entre camadas candidata pertence com base em: i) um identificador de visualização de uma camada atual, ii) no identificador de visualização da imagem de referência entre camadas candidata, e iii) um identificador de visualização de uma camada base.
6. Dispositivo, de acordo com a reivindicação 4, caracterizado pelo fato de que o processador é configurado adicionalmente para decodificar as informações de vídeo com base, pelo menos em parte, em um padrão de codificação de vídeo de múltiplas vistas.
BR112016015552-1A 2014-01-03 2014-12-30 Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits BR112016015552B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461923607P 2014-01-03 2014-01-03
US61/923,607 2014-01-03
US14/584,994 2014-12-29
US14/584,994 US9654794B2 (en) 2014-01-03 2014-12-29 Methods for coding an inter-layer reference picture set (RPS) and coding end of bitstream (EOB) network access layer (NAL) units in multi-layer coding
PCT/US2014/072717 WO2015103242A1 (en) 2014-01-03 2014-12-30 Methods for coding an inter-layer reference picture set (rps) and coding end of bitstream (eob) network access layer (nal) units in multi-layer coding

Publications (2)

Publication Number Publication Date
BR112016015552A2 BR112016015552A2 (pt) 2017-08-08
BR112016015552B1 true BR112016015552B1 (pt) 2023-11-14

Family

ID=52278863

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016015552-1A BR112016015552B1 (pt) 2014-01-03 2014-12-30 Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits

Country Status (9)

Country Link
US (1) US9654794B2 (pt)
EP (1) EP3090544B1 (pt)
JP (1) JP6312838B2 (pt)
KR (1) KR101864053B1 (pt)
CN (1) CN105830446B (pt)
BR (1) BR112016015552B1 (pt)
CA (1) CA2930336C (pt)
ES (1) ES2887369T3 (pt)
WO (1) WO2015103242A1 (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201500129UA (en) * 2012-07-09 2015-02-27 Vid Scale Inc Codec architecture for multiple layer video coding
WO2017051072A1 (en) * 2015-09-23 2017-03-30 Nokia Technologies Oy A method, an apparatus and a computer program product for coding a 360-degree panoramic video
WO2019147628A1 (en) * 2018-01-24 2019-08-01 Vid Scale, Inc. Generalized bi-prediction for video coding with reduced coding complexity
WO2021003446A1 (en) * 2019-07-03 2021-01-07 Futurewei Technologies, Inc. Types of reference pictures in reference picture lists
WO2021145687A1 (ko) 2020-01-14 2021-07-22 엘지전자 주식회사 서브 픽처 및 픽처 헤더에 관한 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11743503B2 (en) * 2020-05-14 2023-08-29 Qualcomm Incorporated Reference picture list constraints and signaling in video coding
WO2021246841A1 (ko) * 2020-06-06 2021-12-09 엘지전자 주식회사 레이어 정보 시그널링 기반 영상 코딩 장치 및 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063613A (ko) * 2004-12-06 2006-06-12 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
US7991236B2 (en) 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
US20130114743A1 (en) 2011-07-13 2013-05-09 Rickard Sjöberg Encoder, decoder and methods thereof for reference picture management
JP5830993B2 (ja) * 2011-07-14 2015-12-09 ソニー株式会社 画像処理装置及び画像処理方法
EP2822276B1 (en) * 2012-02-29 2018-11-07 LG Electronics Inc. Inter-layer prediction method and apparatus using same
US9762903B2 (en) * 2012-06-01 2017-09-12 Qualcomm Incorporated External pictures in video coding
AP3943A (en) * 2012-09-28 2016-12-16 Ericsson Telefon Ab L M Decoding and encoding of pictures of a video sequence
US20140161151A1 (en) * 2012-12-12 2014-06-12 John Proctor Line & pipe flexible temperature sensor assembly
US10057588B2 (en) * 2013-07-15 2018-08-21 Kt Corporation Scalable video signal encoding/decoding method and device
CN103402087A (zh) * 2013-07-23 2013-11-20 北京大学 一种基于可分级位流的视频编解码方法
MY178305A (en) * 2013-10-11 2020-10-07 Vid Scale Inc High level syntax for hevc extensions
US20150195564A1 (en) 2014-01-03 2015-07-09 Qualcomm Incorporated Method for coding a reference picture set (rps) in multi-layer coding

Also Published As

Publication number Publication date
WO2015103242A1 (en) 2015-07-09
CN105830446B (zh) 2019-03-29
JP2017507545A (ja) 2017-03-16
ES2887369T3 (es) 2021-12-22
KR101864053B1 (ko) 2018-06-01
US20150195563A1 (en) 2015-07-09
EP3090544B1 (en) 2021-08-25
US9654794B2 (en) 2017-05-16
CA2930336A1 (en) 2015-07-09
BR112016015552A2 (pt) 2017-08-08
KR20160105447A (ko) 2016-09-06
JP6312838B2 (ja) 2018-04-18
CN105830446A (zh) 2016-08-03
EP3090544A1 (en) 2016-11-09
CA2930336C (en) 2019-02-26

Similar Documents

Publication Publication Date Title
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
EP3132604B1 (en) Conformance window information in multi-layer coding
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
BR112016008225B1 (pt) Aparelhos e métodos para codificação e decodificação de informações de vídeo e memória legível por computador
BR112016015893B1 (pt) Método de decodificação de informações de vídeo, aparelho configurado para decodificar informações de vídeo e memória legível por computador
BR112016021489B1 (pt) Método e equipamento para codificação de informação de vídeo, e,memória legível por computador
EP3158760B1 (en) Full picture order count reset for multi-layer codecs
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
BR112016021473B1 (pt) Método e aparelho para codificar informação de vídeo usando extensão escalável para codificação de vídeo de alta eficiência, shvc, ou codificação de vídeo de alta eficiência de múltiplas vistas, mv-hevc, assim como memória legível por computador
BR112016030377B1 (pt) Método e aparelho para converter informações de vídeo em código em um fluxo de bits, assim como memória legível por computador
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
US9848199B2 (en) Device and method for scalable coding of video information
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
US20150195564A1 (en) Method for coding a reference picture set (rps) in multi-layer coding
BR112016015560B1 (pt) Método e aparelho para codificar informações de vídeo de um fluxo de bits de múltiplas camadas e memória legível por computador
BR112016015568B1 (pt) Método e aparelho para codificar ou decodificar dados de vídeo e memória legível por computador
BR112016015931B1 (pt) Suporte de camada-base de não hevc em extensões de muticamadas de hevc
BR112016022251B1 (pt) Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada
BR112016022253B1 (pt) Dispositivo para associar semânticas de informações de comunicação de vídeo, método para associar semânticas de informações de codificação de vídeo e memória
BR112016001121B1 (pt) Dispositivo e método para codificação escalável de informações de vídeo e memória legível por computador
BR112016015918B1 (pt) Suporte de camada base não-hevc em extensões de muticamada de hevc
BR112016030211B1 (pt) Restrições de conformidade de fluxo de bits em codificação de vídeo escalonável

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 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 30/12/2014, OBSERVADAS AS CONDICOES LEGAIS