BR112016022251B1 - Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada - Google Patents

Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada Download PDF

Info

Publication number
BR112016022251B1
BR112016022251B1 BR112016022251-2A BR112016022251A BR112016022251B1 BR 112016022251 B1 BR112016022251 B1 BR 112016022251B1 BR 112016022251 A BR112016022251 A BR 112016022251A BR 112016022251 B1 BR112016022251 B1 BR 112016022251B1
Authority
BR
Brazil
Prior art keywords
sei message
video
recovery point
layer
semantics
Prior art date
Application number
BR112016022251-2A
Other languages
English (en)
Other versions
BR112016022251A2 (pt
BR112016022251A8 (pt
Inventor
Fnu HENDRY
Ye-Kui Wang
Adarsh Krishnan Ramasubramonian
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/664,702 external-priority patent/US10880565B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016022251A2 publication Critical patent/BR112016022251A2/pt
Publication of BR112016022251A8 publication Critical patent/BR112016022251A8/pt
Publication of BR112016022251B1 publication Critical patent/BR112016022251B1/pt

Links

Abstract

USO DE MENSAGENS DE SEI DE HEVC ESPECÍFICAS PARA CODECS DE VÍDEO DE MULTICAMADA. Trata-se de dispositivos e métodos para determinar a possibilidade de iniciar o acesso aleatório durante a decodificação das informações de vídeo. Em um aspecto, um dispositivo pode incluir uma memória configurada para armazenar informações de vídeo que incluem pelo menos uma mensagem de informações de melhoria complementar (SEI) de ponto de recuperação e um processador acoplado à memória. O processador é configurado para determinar a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de contagem de ordem de figuração (POC), O processador é configurado adicionalmente para identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação, e determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação.

Description

CAMPO DA TÉCNICA
[0001] Esta revelação refere-se ao campo de codificação e compressão de vídeo, e, particularmente a mensagens de informações de melhoria complementares (SEI) para codificação de multicamada.
ANTECEDENTES DESCRIÇÃO DA TÉCNICA RELACIONADA
[0002] As capacidades de vídeo digital podem ser incorporadas em uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores do tipo laptop ou desktop (de mesa), câmeras digitais, dispositivos de gravação digitais, reprodutores de mídias digitais, dispositivos de video game, consoles de video game, telefones celulares ou de radiossatélite, dispositivos de teleconferência por vídeo e similares. Os dispositivos de vídeo digitais implantam técnicas de compactação de vídeo, tais como as descritas nos padrões definido por Grupo 2 de Especialistas de Imagem com Movimento (MPEG-2), MPEG-4, União Telegráfica Internacional-Setor de Normalização das Telecomunicações (ITU-T) H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, criptar, decodificar e/ou armazenar informações de vídeo digitais mais eficientemente implantando-se tais técnicas de codificação de vídeo.
SUMÁRIO DA INVENÇÃO
[0003] Os sistemas, métodos e dispositivos desta revelação têm, cada um, diversos aspectos inovadores, sendo que nenhum dos quais é unicamente responsável pelos atributos desejáveis revelados no presente documento. Em um aspecto, um dispositivo pode incluir uma memória configurada para armazenar informações de vídeo que incluem pelo menos uma mensagem de SEI de ponto de recuperação e um processador acoplado à memória. O processador é configurado para determinar a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de contagem de ordem de figuração (POC), O processador é configurado adicionalmente para identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação para um conjunto de camadas. O processador também é configurado para determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação.
[0004] Em outro aspecto, um método para determinar a possibilidade de iniciar o acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada, as informações armazenadas de vídeo que compreendem pelo menos uma mensagem de SEI de ponto de recuperação é revelado. O método compreende determinar a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de POC. O método compreende adicionalmente identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação para um conjunto de camadas. O método também compreende determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação.
[0005] Em outro aspecto, o dispositivo para determinar a possibilidade de iniciar o acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada compreende meios para armazenar informações de vídeo que incluem pelo menos uma mensagem de SEI de ponto de recuperação, meios para determinar a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de POC, meios para identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação a um conjunto de camadas, e meios para determinar a possibilidade de iniciar o acesso aleatório e a decodificação a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação.
[0006] Em um aspecto adicional, uma mídia de armazenamento legível por computador não transitória que tem armazenadas na mesma instruções que, quando executadas, levam um processador de um dispositivo a armazenar informações de vídeo que incluem pelo menos uma mensagem de SEI de ponto de recuperação, determine a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação que compreende uma indicação para redefinir um valor de semântica de POC, identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação para um conjunto de camadas, e determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação.
BREVE DESCRIÇÃO DOS DESENHOS
[0007] Os aspectos mencionados acima, bem como outros recursos, aspectos e vantajosos da presente tecnologia será descrito agora em conexão às diversas modalidades, com referência aos desenhos anexos. As modalidades ilustradas, no entanto, são meramente exemplos e não se destinam a ser limitantes.
[0008] Ao longo dos desenhos, símbolos semelhantes identificam tipicamente componentes semelhantes, salvo caso o contexto indique o contrário.
[0009] A Figura 1A é um diagrama de blocos que ilustra um sistema exemplificativo de encriptação e decodificação de vídeo que pode utilizar técnicas de acordo com aspectos descritos nesta revelação.
[0010] A Figura 1B é um diagrama de blocos que ilustra outro sistema exemplificativo de encriptação e decodificação de vídeo que pode realizar técnicas de acordo com aspectos descritos nesta revelação.
[0011] A Figura 2A é um diagrama de blocos que ilustra um exemplo de um encriptador de vídeo que pode implantar técnicas de acordo com aspectos descritos nesta revelação.
[0012] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um encriptador de vídeo que pode implantar técnicas de acordo com aspectos descritos nesta revelação.
[0013] A Figura 3A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nesta revelação.
[0014] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nesta revelação.
[0015] A Figura 4A é um fluxograma que ilustra a associação de semânticas de uma mensagem de SEI a cada ponto de operação dentre os pontos de operação ou cada camada dentre as camadas.
[0016] A Figura 4B é um diagrama de blocos que ilustra a associação entre uma mensagem de SEI que se aplica a pontos de operação de acordo com uma modalidade da presente revelação.
[0017] A Figura 4C é um diagrama de blocos que ilustra a associação entre a mensagem de SEI que se aplica a camadas e a uma pluralidade de figurações de acordo com uma modalidade da presente revelação.
[0018] A Figura 5 mostra sintaxe que pode ser usada para comunicar semânticas de mensagem de SEI de conjuntos de parâmetros ativos.
[0019] A Figura 6 é um diagrama de blocos que ilustra a associação entre uma ou mais mensagens de SEI de atualização de região e uma ou mais figurações de um fluxo de bits de multicamada de acordo com uma modalidade da presente revelação.
[0020] A Figura 7 mostra sintaxe que pode ser usada para comunicar semânticas de mensagem de SEI de informações de atualização de região.
[0021] A Figura 8 mostra um fluxograma de um método para associar semânticas de informações de codificação de vídeo a camadas ou pontos de operação de um fluxo de bits de multicamada que compreendem armazenar informações de vídeo associadas ao fluxo de bits de multicamada.
[0022] A Figura 9 mostra um fluxograma de um método para determinar a possibilidade de iniciar o acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada.
DESCRIÇÃO DETALHADA
[0023] De modo geral, esta revelação se refere a mensagens de SEI, conjuntos de parâmetro de sequência (SPS), mensagens de SEI de ponto de recuperação e mensagens de SEI de informações de atualização para codificação de vídeo de multicamada no contexto de codecs de vídeo avançados, tais como HEVC. Mais especificamente, a presente revelação se refere a sistemas e métodos para maior clareza do escopo de mensagens de SEI e associação de SPS sinalizado na mensagem de SEI de conjuntos de parâmetros ativos às camadas que os mesmos se referem em extensão de multivistas e escalonável de HEVC, a saber MV-HEVC (multivistas) e SHVC (escalonável). A presente revelação também se refere a sistema e métodos para maior clareza no estabelecimento de semânticas de contagem de ordem de figuração a mensagens de SEI de ponto de recuperação e relações entre informações de atualização de região e restrições de interprevisão nas extensões de multivistas e escalonável de HEVC, a saber MV-HEVC e SHVC.
[0024] Na descrição abaixo, as técnicas de H.264/AVC relacionadas a determinadas modalidades são descritas; também são discutidos o padrão HEVC e as técnicas relacionadas. Em particular, alguns esquemas de codificação de vídeo incluem uma mensagem de SEI que pode fornecer diversas semânticas que se aplicam a um dentre unidades de acesso, pontos de operação, camadas ou figurações para o uso quando forem decodificados pelo decodificador. Em esquemas de codificação de camada única convencionais (por exemplo, HEVC), cada mensagem de SEI pode ser aplicada apenas a uma única camada, e, desse modo, uma única unidade de acesso que contém unicamente uma única figuração em um determinado tempo. Consequentemente, as semânticas da mensagem de SEI nesses esquemas convencionais estavam claras quanto ao que as mesmas se aplicaram, fosse uma camada, uma unidade de acesso, uma figuração ou um ponto de operação. No entanto, conforme discutido abaixo em maiores detalhes, em fluxos de dados de multicamada, uma mensagem de SEI pode se aplicar a uma ou mais figurações, camadas, pontos de operação ou unidades de acesso em um determinado tempo devido ao fato de o fluxo de bits conter múltiplas camadas em qualquer tempo determinado. Desse modo, esquemas de codificação de camada única convencionais não têm as semânticas exigidas para definir o escopo de mensagens de SEI para o comportamento preciso e consistente de encriptadores/decodificadores de vídeo que se conformam aos esquemas de codificação de multicamada.
[0025] Esta revelação também se refere a sinalização de múltiplos SPS por uma única mensagem de SEI de conjunto de parâmetros ativos e solução de ambiguidades que cada uma das camadas dos conjuntos de parâmetro de sequência aplica quando há números diferentes de camadas e SPS. Em algumas implantações, limitações na restrição do número de SPS para "1" podem ser afrouxadas para permitir que a mensagem de SEI de conjunto de parâmetros ativos introduza múltiplos SPS e para fornecer um mecanismo para associar um ou mais SPS a uma ou mais camadas do fluxo de bits de multicamada. Semânticas adicionais na mensagem de SEI de conjunto de parâmetros ativos ou em mensagem de SEI alternativa permitem a codificação de um fluxo de bits de multicamada para associar inequivocamente mais que um SPS a uma ou mais camadas específicas. A operação de encriptadores de vídeo/decodificadores de vídeo que está em conformidade (isto é, operam de acordo com ou são configurados de acordo com) com esta revelação tem consistência operacional aprimorada ao longo dos esquemas de codificação convencionais.
[0026] Esta revelação se refere adicionalmente a calcular ou derivar um POC de modo a evitar valores de POC incorretos ou não claros para uma ou mais figurações do fluxo de bits de multicamada. Em um fluxo de bits de multicamada, após um evento de acesso aleatório, quando a decodificação começar a partir de uma unidade de acesso que contém uma mensagem de SEI de ponto de recuperação, um ou mais semânticas da mensagem de SEI de ponto de recuperação redefine um ou mais valores que identificam campos de POC para a figuração atual em zero. Isso pode criar um problema quando houver uma figuração picA na mesma camada como a figuração associada à mensagem de SEI de ponto de recuperação (e que tem os valores de POC redefinidos em zero) quando a picA seguir a figuração atual na ordem de decodificação e tiver um valor relacionado POC sinalizado. Desse modo, esquemas de codificação de camada única convencionais não têm as semânticas exigidas para definir como as mensagens de SEI de ponto de recuperação são manipuladas para o comportamento preciso e consistente de encriptadores/decodificadores de vídeo que se conformam aos esquemas de codificação de multicamada. São propostas modificações à mensagem de SEI de ponto de recuperação para permitir a derivação do valor de POC de uma figuração que é associada a uma mensagem de SEI de ponto de recuperação como oposta à redefinição do valor de POC ao decodificar após um acesso aleatório com uma mensagem de ponto de recuperação. Adicionalmente, as limitações para governar a presença de mensagens de SEI de ponto de recuperação em uma unidade de acesso ou a associação das mensagens de SEI de ponto de recuperação a uma figuração são reveladas no presente documento.
[0027] Esta revelação se refere adicionalmente às semânticas para esquemas de codificação de multicamada que solucionam qualquer ambiguidade associada às mensagens de SEI de informações de atualização de região. Em algumas implantações, uma mensagem de SEI de informações de atualização de região indica que uma região de uma figuração de uma camada de referência (ou melhoria) está atualizada. Em fluxos de dados de multicamadas, tal mensagem de SEI de informações de atualização de região pode ser configurada para considerar as restrições de previsão de intercamada, de modo que quando uma primeira figuração depender de outra figuração para ser atualizada antes de a primeira figuração ser completamente atualizada, tal dependência (ou correspondência) é considerada nas previsões de atualização de região de intercamada.
[0028] Embora certas modalidades sejam descritas no presente documento no contexto dos padrões HEVC e/ou H.264, uma pessoa de habilidade comum na técnica pode observar que os sistemas e métodos revelados no presente documento podem ser aplicáveis a qualquer padrão de codificação de vídeo adequado. Por exemplo, as modalidades reveladas no presente documento podem ser aplicáveis a um ou mais dentre os seguintes padrões: União Internacional de Telecomunicações (ITU), Setor de Normalização de Telecomunicações (ITU-T) H.261, Organização Internacional para Normalização/Comissão Internacional de Eletrotécnica (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 extensões escalonáveis e de múltiplas vistas.
[0029] A HEVC segue, geralmente, o enquadramento de padrões de codificação de vídeo anteriores em muitos aspectos. A unidade de previsão em HEVC e diferente das unidades de previsão (por exemplo, macro bloco) em certos padrões de codificação de vídeo anteriores. De fato, o conceito de macro bloco não existe em HEVC, conforme compreendido em certos padrões de codificação de vídeo anteriores. O macro bloco é substituído por uma estrutura hierárquica com base em um esquema de árvore quadrática que pode fornecer alta flexibilidade, dentre outros benefícios possíveis. Por exemplo, dentro do esquema de HEVC, são definidos três tipos de blocos, a Unidade de Codificação (CU), a Unidade de Previsão (PU) e a Unidade de Transformada (TU). A CU pode se referir à unidade básica de divisão de região. A CU pode ser considerada análoga ao conceito de macro bloco, porém, a HEVC não restringe o tamanho máximo das CUs e pode permitir a divisão recursiva em quatro CUs de tamanho igual a fim de melhorar a capacidade de adaptação ao conteúdo. A PU pode ser considerada a unidade básica de inter/intraprevisão, e uma única PU pode conter múltiplas partições de formato arbitrário para codificar padrões de imagem irregulares de maneira eficaz. A TU pode ser considerada a unidade básica de transformada. A TU pode ser definida independentemente da PU; no entanto, o tamanho de uma TU pode se limitar ao tamanho da CU à qual a TU pertence. Essa separação da estrutura de bloco em três conceitos diferentes pode permitir que cada unidade seja otimizada de acordo com a função respectiva da unidade, o que pode resultar em eficiência de codificação aprimorada.
[0030] Apenas para propósitos de ilustração,determinadas modalidades reveladas no presente documento são descritas com exemplos que incluem apenas duas camadas (por exemplo, uma camada inferior, tal como a camada-base,e uma camada superior, tal como a camada de aprimoramento) de dados de vídeo. Uma “camada” de dados de vídeo pode, geralmente, se referir a uma sequência de figurações que tem pelo menos uma característica comum, tal como uma vista, uma taxa de quadro, uma resolução ou similares. Por exemplo, uma camada pode incluir dados de vídeo associados a uma vista particular (por exemplo, perspectiva) de dados de vídeo de múltiplas vistas. Como outro exemplo, uma camada pode incluir dados de vídeo associada a uma camada particular de dados de vídeo escalonáveis. Desse modo, esta revelação pode se referir de modo intercambiável a uma camada e uma vista de dados de vídeo. Ou seja, 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 de múltiplas camadas (também denominado como codificador de vídeo de múltiplas camadas ou encriptador e decodificador de múltiplas camadas) pode se referir conjuntamente a um codec de múltiplas vistas ou um codec escalonável (por exemplo, um codec configurado para criptar e/ou decodificar dados de vídeo que usam MV-HEVC, 3D-HEVC, SHVC, ou outra técnica de codificação de múltiplas camadas). Tanto a criptação de vídeo quanto a decodificação de vídeo podem ser denominadas, em geral, como codificação de vídeo. Deve- se compreender que tais exemplos podem ser aplicáveis às configurações que incluem múltiplas camadas-base e/ou camadas de aprimoramento. Além disso, a fim de facilitar a explicação, a revelação a seguir inclui os termos “quadros” ou “blocos” com referência a certas modalidades. Entretanto, esses termos não se destinam a 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, macro blocos, etc.), fatias, quadros, etc.
PADRÕES DE CODIFICAÇÃO DE VÍDEO
[0031] Uma imagem digital, tal 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 em amostras dispostos em linhas horizontais e verticais. O número de pixels em uma única imagem é tipicamente de dezenas de milhares. Cada pixel contém tipicamente informações de luminância e de crominância. Sem compactação, a quantidade absoluta de informações a serem transmitidas de um encriptador de imagem para um decodificador de imagem tornaria a transmissão de imagem em tempo real impossível. A fim de reduzir a quantidade de informações a serem transmitidas, foram desenvolvidos vários métodos de compressão diferentes, tais como os padrões JPEG, MPEG e H.263.
[0032] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo as extensões escalonáveis e de múltiplas vistas.
[0033] Além disso, um padrão de codificação de vídeo, a saber, HEVC, foi desenvolvido pela Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas de Codificação de Vídeo de ITU-T (VCEG) e ISO/IEC MPEG. A citação completa para o Rascunho de HEVC 10 é o documento JCTVC-L1003, Bross et al, "High Efficiency Video Coding (HEVC) Text Specification Draft 10", JCT-VC da ITU-T SGI 6 WP3 e ISO/IEC JTC1/SC29/WG11, 12a reunião: Genebra, Suíça, 14 de janeiro de 2013 a 23 de janeiro de 2013. A extensão com múltiplas vistas para HEVC, a saber, MV-HEVC, e a extensão escalonável para HEVC, denominada de SHVC, também estão em desenvolvimento pela JCT-3V (Equipe Colaborativa Conjunta em Desenvolvimento de Extensão de Vídeo 3D da ITU-T/ISO/IEC - Equipe Colaborativa Conjunta em ITU-T/ISO/IEC de Desenvolvimento da Extensão de Codificação de Vídeo 3D) e pela JCT-VC, respectivamente.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0034] Diversos aspectos dos sistemas, aparelhos e métodos inovadores são descritos mais completamente a partir deste ponto no presente documento com referência aos desenhos anexos. Entretanto, a presente revelação pode ser incorporada de várias maneiras diferentes e não deve ser interpretada como limitada a qualquer estrutura ou função específica apresentada ao longo de toda a presente revelação. Em vez disso, esses aspectos são fornecidos de modo que a presente revelação seja minuciosa e completa, e transmita plenamente o escopo da revelação para as pessoas versadas na técnica. Com base nos ensinamentos no presente documento, uma pessoa versada na técnica deve observar que o escopo da revelação está destinado a cobrir qualquer aspecto dos sistemas, aparelhos e métodos inovadores revelados no presente documento, sejam os mesmos implantados independentemente ou em combinação com qualquer outro aspecto da revelação. Por exemplo, um aparelho pode ser implantado ou um método pode ser praticado com o uso de qualquer quantidade dos aspectos estabelecidos no presente documento. Além disso, o escopo da presente revelação está destinado a cobrir tal aparelho ou método que é praticado com o uso de outra estrutura, funcionalidade ou estrutura e funcionalidade adicionalmente, ou que não sejam os vários aspectos da presente revelação estabelecidos no presente documento. Deve ser entendido que qualquer aspecto revelado no presente documento pode ser incorporado por um ou mais elementos de uma reivindicação.
[0035] Embora sejam descritos os aspectos particulares no presente documento, muitas variações e permutações desses aspectos estão dentro do escopo da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais sejam mencionados, o escopo da revelação não está destinado a ser limitado a benefícios, usos ou objetivos particulares. Em vez disso, os aspectos da revelação destinam-se a ser amplamente aplicáveis a diferentes tecnologias sem fio, configurações de 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 preferenciais. A descrição detalhada e desenhos são meramente ilustrativos da revelação em vez de limitantes, sendo que o escopo da revelação é definido pelas reivindicações anexas e equivalentes das mesmas.
[0036] Os desenhos anexos ilustram exemplos. Os elementos indicados por numerais de referência nos desenhos anexos correspondem aos elementos indicados por numerais de referência similares na descrição a seguir. Na presente revelação, os elementos que têm nomes que começam com palavras ordinais (por exemplo, "primeiro(a)", "segundo(a)", "terceiro(a)" e assim por diante) não implicam necessariamente que os elementos têm uma ordem particular. Em vez disso, tais palavras ordinais são meramente usadas para se referir a elementos diferentes de um tipo igual ou similar.
[0037] A Figura 1A é um diagrama de blocos que ilustra um sistema de codificação de vídeo 10 exemplificativo que pode utilizar as técnicas de acordo com os aspectos descritos nesta revelação. Conforme usado descrito no presente documento, o termo “codificador de vídeo” se refere, de modo geral, tanto a encriptadores de vídeo quanto a decodificadores de vídeo. Nesta revelação, os termos “codificação de vídeo” ou “codificação” podem se referir, de modo geral, à encriptação de vídeo e à decodificação de vídeo. Além de encriptadores de vídeo e decodificadores de vídeo, os aspectos descritos no presente pedido podem se estender a outros dispositivos relacionados, tais como transcodificadores (por exemplo, dispositivos que podem decodificar um fluxo de bits e recriptar outro fluxo de bits) e Middleboxes (por exemplo, dispositivos que podem modificar, transformar e/ou, de outro modo, manipular um fluxo de bits).
[0038] Conforme mostrado na Figura 1A, o sistema de codificação de vídeo 10 inclui um dispositivo de origem 12 que gera dados de vídeo criptados a serem decodificados posteriormente por um dispositivo de destinação 14. No exemplo da Figura 1A, o dispositivo de origem 12 e o dispositivo de destinação 14 constituem dispositivos separados. Entretanto, é observado que o dispositivo de fonte 12 e o dispositivo de destino 14 podem estar ou fazer parte do mesmo dispositivo, conforme mostrado no exemplo da Figura 1B.
[0039] Com referência, mais uma vez, à Figura 1A, o dispositivo de fonte 12 e o dispositivo de destinação 14 podem compreender, respectivamente, qualquer dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone tal como os chamados telefones "inteligentes", chamados computadores do tipo pad "inteligente", televisões, câmeras, dispositivos de exibição, reprodutores de mídias digitais, consoles para jogo eletrônico, dispositivo de transmissão contínua de vídeo ou semelhantes. Em várias modalidades, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0040] O dispositivo de destino 14 pode receber, através de enlace 16, os dados de vídeo criptados a serem decodificados. O enlace 16 pode compreender qualquer tipo de mídia ou dispositivo com capacidade para mover os dados de vídeo criptados do dispositivo de fonte 12 para o dispositivo de destino 14. No exemplo da Figura 1A, o enlace 16 pode compreender uma mídia de comunicação para permitir que o dispositivo de origem 12 transmita dados de vídeo criptados ao dispositivo de destino 14 em tempo real. Os dados de vídeo criptados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitido para o dispositivo de destino 14. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio ou com fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode formar parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de longa distância ou uma rede global, tal como a Internet. A mídia 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 fonte 12 com o dispositivo de destino 14.
[0041] Alternativamente, os dados criptados podem ser emitidos de uma interface de saída 22 a um dispositivo de armazenamento 31 (opcionalmente presente). De modo similar, dados criptados 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 um dentre uma variedade de mídias de armazenamento de dados distribuídos ou localmente acessados, tais como um disco rígido, memória flash, memória volátil ou não volátil ou quaisquer outras mídias de armazenamento digitais adequadas para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento 31 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode manter o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destinação 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destinação 14. Os servidores de arquivo exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor de Protocolo de Transferência de Arquivos (FTP), dispositivos de armazenamento anexado à rede (NAS) ou uma unidade de disco local. O dispositivo de destinação 14 pode acessar os dados de vídeo codificado através de qualquer conexão de dados padrão, incluindo uma conexão à Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão de rede de área local sem fio (WLAN)), uma conexão cabeada (por exemplo, uma linha de assinatura digital (DSL), um modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do dispositivo 31 de armazenamento pode ser uma transmissão contínua, uma transmissão de transferência por download ou uma combinação das mesmas.
[0042] As técnicas da presente revelação não estão necessariamente limitadas a aplicações ou definições sem fio. As técnicas podem ser aplicadas à codificação de vídeo em apoio a qualquer uma dentre uma variedade de aplicações de multimídia, tais como difusões de televisão remotas, transmissões de televisão a cabo, transmissões de televisão a satélite, transmissões contínuas de vídeo, por exemplo, por meio da Internet (por exemplo, transmissão contínua adaptativa dinâmica através de Protocolo de Transferência de Hipertexto (HTTP), etc.), codificação de vídeo digital para armazenamento em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenada em um mídia 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 aplicações, tais como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou videotelefonia.
[0043] No exemplo da Figura 1A, o dispositivo de fonte 12 inclui uma fonte de vídeo 18, um encriptador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de fonte 12, a fonte de vídeo 18 pode incluir uma fonte tal como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente capturado, uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo e/ou um sistema de gráficos de computador para gerar dados de gráficos de computador como o vídeo de fonte, ou uma combinação de tais fontes. Como um exemplo, caso a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formar os assim chamados “telefones com câmera” ou “videofones”, conforme ilustrado no exemplo da Figura 1B. Entretanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas às aplicações com fio e/ou sem fio.
[0044] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo encriptador de vídeo 20. Os dados de vídeo codificados podem ser transmitidos para o dispositivo de destinação 14 através da interface de emissão 22 do dispositivo de origem 12. Os dados de vídeo codificados também podem (ou, alternativamente) ser armazenados no dispositivo de armazenamento 31 para acesso posterior pelo dispositivo de destinação 14 ou outros dispositivos, para decodificação e/ou reprodução. O encriptador de vídeo 20 ilustrado nas Figuras 1A e 1B pode compreender o encriptador de vídeo 20 ilustrado na Figura 2A, o encriptador de vídeo 23 ilustrado na Figura 2B, ou qualquer outro encriptador de vídeo descrito no presente documento.
[0045] No exemplo da Figura 1A, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destinação 14 pode receber os dados de vídeo codificados pelo enlace 16 e/ou a partir do dispositivo de armazenamento 31. Os dados de vídeo criptados comunicados através do enlace 16, ou fornecidos no dispositivo de armazenamento 31, podem incluir uma variedade de elementos de sintaxe gerados pelo encriptador de vídeo 20 para uso através de um decodificador de vídeo, tal como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem estar incluídos com os dados de vídeo criptados transmitidos em uma mídia de comunicação, armazenados em uma mídia de armazenamento ou armazenados em um servidor de arquivo. O decodificador de vídeo 30 ilustrado nas Figuras 1A e 1B pode compreender o decodificador de vídeo 30 ilustrada na Figura 3A, o decodificador de vídeo 33, ilustrado na Figura 3B, ou qualquer outro decodificador de vídeo descrito no presente documento.
[0046] O dispositivo de exibição 32 pode ser integrado ou externo ao dispositivo de destinação 14. Em alguns exemplos, o dispositivo de destinação 14 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destinação 14 pode ser um dispositivo de exibição. Em general, o dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário e pode compreende qualquer um dentre uma variedade de dispositivos de exibição, tais como um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo de emissão de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.Em aspectos relacionados, a Figura 1B mostra um sistema de codificação de vídeo 10' exemplificador em que o dispositivo de origem 12 e o dispositivo de destino 14 estão em ou são parte de um dispositivo 11. O dispositivo 11 pode ser um aparelho de telefone, tal como um telefone "inteligente" ou semelhante. O dispositivo 11 pode incluir um dispositivo controlador/processador 13 (opcionalmente presente) em comunicação operacional com o dispositivo de fonte 12 e o dispositivo de destino 14. O sistema de codificação de vídeo 10' da Figura 1B e componentes do mesmo são, de outro modo, similares ao sistema de codificação de vídeo 10 da Figura 1A, e aos componentes do mesmo.
[0047] O encriptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como HEVC, e podem se conformar a um Modelo de Teste de HEVC (HM). Alternativamente, o encriptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, tais como o padrão ITU-T H.264, denominado, alternativamente, como MPEG-4, Parte 10, AVC ou extensões de tais padrões. As técnicas desta revelação, entretanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compactação de vídeo incluem MPEG-2 e ITU-T H.263.
[0048] Embora não mostrado nos exemplos das Figuras 1A e 1B, o encriptador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados a um encriptador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para gerenciar a criptação tanto do áudio quanto do vídeo em um fluxo de dados comum ou fluxos de dados separado. Caso seja aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos como o protocolo de datagrama de usuário (UDP).
[0049] Cada dentre o encriptador de vídeo 20 e o decodificador de vídeo 30 pode ser implantado como qualquer um dentre uma variedade de conjuntos de circuitos de encriptador adequado, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos para aplicação (ASICs), matrizes de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia legível por computador não transitório adequada e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Cada dentre o encriptador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais encriptadores ou decodificadores, em que qualquer um dos quais pode ser integrado como parte de um encriptador/decodificador combinado (CODEC) em um respectivo dispositivo.
PROCESSO DE CODIFICAÇÃO DE VÍDEO
[0050] Conforme mencionado brevemente acima, o encriptador de vídeo 20 cripta os dados de vídeo. Os dados de vídeo podem compreender uma ou mais imagens. Cada uma das imagens é uma imagem estática que faz parte de um vídeo. Em alguns exemplos, uma imagem pode ser denominada de "quadro" de vídeo. Quando o encriptador de vídeo 20 criptar os dados de vídeo, o encriptador de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma sequência de bits que forma 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.
[0051] Para gerar o fluxo de bits, o encriptador de vídeo 20 pode realizar operações de encriptação em cada imagem nos dados de vídeo. Quando o encriptador de vídeo 20 realizar as operações de encriptação nas imagens, o encriptador de vídeo 20 pode gerar uma série de imagens codificadas e dados associados. Os dados associados podem incluir definições de parâmetro de vídeo (VPS), SPSs, figuração definições de parâmetro (PPSs), definições de parâmetro de adaptação (APSs) e outras estruturas de sintaxe. Um SPS pode conter parâmetros aplicáveis a zero ou mais sequências de figurações. Uma PPS pode conter parâmetros aplicáveis a zero ou mais figurações. Um APS pode conter parâmetros aplicáveis a zero ou mais figurações. Os parâmetros em um APS podem ser parâmetros que podem estar mais propensos a mudar do que os parâmetros na PPS.
[0052] Para gerar uma imagem codificada, o encriptador de vídeo 20 pode particionar uma imagem em blocos de vídeo igualmente dimensionados. Um bloco de vídeo pode ser um arranjo bidimensional de amostras. Cada um dos blocos de vídeo está associado a um bloco de árvore. Em alguns exemplos, um bloco de árvore pode ser denominado de unidade de codificação maior (LCU). Os blocos de árvores de HEVC podem ser amplamente análogos aos macro blocos de padrões anteriores, tais como H.264/AVC. Entretanto, um bloco de árvore não se limita necessariamente a um tamanho particular, e pode incluir uma ou mais unidades de codificação (CUs). O encriptador de vídeo 20 pode usar particionamento de QuadTree para particionar os blocos de vídeo de blocos de árvore em blocos de vídeo associados a CUs, por isso o nome "blocos de árvore".
[0053] Em alguns exemplos, o encriptador de vídeo 20 pode particionar uma imagem em uma pluralidade de fatias. Cada uma das fatias pode incluir um número inteiro de CUs. Em alguns exemplos, uma fatia compreende um número inteiro de blocos de árvores. Em outros exemplos, um limite de uma fatia pode estar dentro de um bloco de árvore.
[0054] Como parte da realização de uma operação de codificação em uma imagem, o encriptador de vídeo 20 pode realizar as operações de codificação em cada fatia da imagem. Quando o encriptador de vídeo 20 realizar uma operação de encriptação em uma fatia, o encriptador de vídeo 20 pode gerar dados criptados associados com a fatia.Os dados criptados associados à fatia podem ser denominados “fatia codificada”.
[0055] A fim de gerar uma fatia codificada, o encriptador de vídeo 20 pode realizar operações de encriptação em cada bloco de árvore em uma fatia. Quando o encriptador de vídeo 20 realizar uma operação de codificação em um bloco de árvore, o encriptador de vídeo 20 pode gerar um bloco de árvore codificado. O bloco de árvore codificado pode compreender dados que representam uma versão criptada do bloco de árvore.
[0056] Quando o encriptador de vídeo 20 geraruma fatia codificada, o encriptador de vídeo 20 pode realizar as operações de encriptação (por exemplo, criptar) nos blocos de árvores na fatia, de acordo com uma ordem de varredura por rastreio. Por exemplo, o encriptador de video 20 pode codificar os blocos de árvores da fatia em que uma ordem que procede da esquerda para a direita ao longo de uma fileira mais superior de blocos de árvores na fatia, em seguida, da esquerda para a direita ao longo de uma próxima fileira inferior de blocos de árvores, e assim por diante até que o encriptador de vídeo 20 tenha codificado cada um dos blocos de árvores na fatia.
[0057] Como resultado da encriptação dos blocos de árvores de acordo com a ordem de varredura por rastreio, os blocos de árvores acima e à esquerda de um determinado bloco de árvore podem ter sido criptados, porém, os blocos de árvores abaixo e à direita do determinado bloco de árvore ainda não foram criptados. Consequentemente, o encriptador de vídeo 20 pode ter capacidade para acessar informações geradas codificando-se os blocos de árvores acima e à esquerda do determinado bloco de árvore durante a codificação do determinado bloco de árvore. Entretanto, o encriptador de vídeo 20 pode não ter capacidade para acessar as informações geradas codificando-se blocos de árvores abaixo e à direita do determinado bloco de árvore durante a codificação do determinado bloco de árvore.
[0058] A fim de gerar um bloco de árvore codificado, o encriptador de vídeo 20 pode realizar recursivamente a partição de árvore quadrática no bloco de vídeo do bloco de árvore 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 a uma CU diferente. Por exemplo, o encriptador de vídeo 20 pode particionar o bloco de vídeo de um bloco de árvore em quatro sub-blocos com tamanhos iguais, particionar um ou mais dentre os sub-blocos em quatro sub-blocos com tamanhos iguais, e assim por diante. Uma CU particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associados a outras CUs. Uma CU não particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associados a outras CUs.
[0059] Um ou mais elementos de sintaxe no fluxo de bits pode indicar um número máximo de vezes que o encriptador de vídeo 20 pode particionar o bloco de vídeo de um bloco de árvore. Um bloco de vídeo de um CU pode ter o formato quadrado. O tamanho do bloco de vídeo de uma CU (por exemplo, o tamanho da CU) pode estar em uma faixa de pixels 8x8 até o tamanho de um bloco de vídeo de um bloco de árvore (por exemplo, o tamanho do bloco de árvore) com um máximo de pixels 64x64 ou mais.
[0060] O encriptador de vídeo 20 pode realizar as operações de codificação (por exemplo, codificar) em cada CU de um bloco de árvore, de acordo com uma ordem de varredura-z. Em outras palavras, o encriptador de vídeo 20 pode codificar uma CU superior à esquerda, uma CU superior à direita, uma CU de fundo à esquerda e, em seguida, uma CU de fundo à direita, nessa ordem. Quando o encriptador de vídeo 20 realizar uma operação de codificação em uma CU particionada, o encriptador de vídeo 20 pode codificar CUs associadas aos sub-blocos do bloco de vídeo da CU particionada de acordo com a ordem de varredura-z. Em outras palavras, o encriptador de vídeo 20 pode codificar uma CU associado a um sub-bloco superior à esquerda, uma CU associada a um sub-bloco superior à direita, um CU associada a um sub-bloco de fundo à esquerda e, em seguida, uma CU associada a um sub-bloco de fundo à direita, nessa ordem.
[0061] Como resultado da codificação das CUs de um bloco de árvore de acordo com uma ordem de varredura- z, as CUs acima, acima e à esquerda, acima e à direita, esquerda e abaixo e à esquerda de uma determinada CU podem ter sido codificadas. As CUs abaixo e à direita da determinada CU ainda não foram codificadas. Consequentemente, o encriptador de vídeo 20 pode ter capacidade para acessar as informações gerada codificando- se algumas CUs que circundam a determinada CU durante a codificação da determinada CU. Entretanto, o encriptador de vídeo 20 pode não ter capacidade para acessar as informações gerada codificando-se outras CUs que circundam a determinada CU durante a codificação da determinada CU.
[0062] Quando o encriptador de vídeo 20 codificar uma CU não particionada, o encriptador de vídeo 20 pode gerar um ou mais unidades de previsão (PUs) para a CU. Cada uma das PUs da CU pode ser associada a um bloco de vídeo diferente dentro do bloco de vídeo da CU. O encriptador de vídeo 20 pode gerar um bloco de vídeo previsto para cada PU da CU. O bloco de vídeo previsto de uma PU pode ser um bloco de amostras. O encriptador de vídeo 20 pode usar intraprevisão ou interprevisão para gerar o bloco de vídeo previsto para uma PU.
[0063] Quando o encriptador de vídeo 20 usar a intraprevisão para gerar o bloco previsto de uma PU, o encriptador de vídeo 20 pode gerar o bloco previsto da PU com base nas amostras decodificadas da imagem associada à PU. Caso o encriptador de vídeo 20 use intraprevisão para gerar os blocos de vídeo previstos das PUs de uma CU, a CU é uma CU intraprevista. Quando o encriptador de vídeo 20 usar a interprevisão para gerar o bloco previsto da PU, o encriptador de vídeo 20 pode gerar o bloco previsto da PU com base nas amostras decodificadas da imagem associada à PU com base em amostras decodificadas de uma ou mais imagens diferentes da imagem associada à PU. Caso o encriptador de vídeo 20 use interprevisão para gerar os blocos de vídeo previstos das PUs de uma CU, a CU é uma CU interprevista.
[0064] Adicionalmente, quando o encriptador de vídeo 20 usar interprevisão para gerar um bloco de vídeo previsto para um PU, o encriptador de vídeo 20 pode gerar informações de movimento para a PU. As informações de movimento para uma 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 figuração de referência. A figuração de referência pode ser uma figuração diferente da figuração associada à PU. Em alguns exemplos, um bloco de referência de uma PU também pode ser denominado de "amostra de referência" da PU. O encriptador de vídeo 20 pode gerar o bloco de vídeo previsto para a PU com base nos blocos de referência da PU.
[0065] Após o encriptador de vídeo 20 gerar os blocos de vídeo previstos para uma ou mais PUs de uma CU, o encriptador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de vídeo previstos para os PUs da CU. Os dados residuais para a CU podem indicar diferenças entre amostras nos blocos de vídeo previstos para as PUs da CU e para o bloco de vídeo original da CU.
[0066] Adicionalmente, como parte da realização de uma operação de codificação em uma CU não particionada, o codificador de vídeo 20 pode realizar a partição de árvore quadrática recursiva nos dados residuais da CU a fim de particionar os dados residuais da CU em um ou mais blocos de dados residuais (por exemplo, blocos de vídeo residuais) associados às TUs da CU. Cada TU de uma CU pode ser associada a um bloco de vídeo residual diferente.
[0067] O encriptador de vídeo 20 pode aplicar uma ou mais transformadas aos blocos de vídeo residuais associados às TUs para gerar os blocos de coeficiente de transformada (por exemplo, blocos de coeficientes de transformada) associados às TUs. Conceitualmente, um bloco de coeficiente de transformada pode ser uma matriz bidimensional (2D) de coeficientes de transformada.
[0068] Após gerar um bloco de coeficiente de transformada, o encriptador de vídeo 20 pode realizar um processo de quantização no bloco de coeficiente de transformada. A quantização geralmente se refere a um processo no qual coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usada para representar os coeficientes de transformada, o que fornece uma compactação adicional. O processo de quantização pode reduzir a profundidade de bits associada a 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 a quantização, em que n é maior que m.
[0069] O encriptador de vídeo 20 pode associar cada CU a um valor de parâmetro de quantização (QP). O valor de QP associado a uma CU pode determinar como o encriptador de vídeo 20 quantiza os blocos de coeficiente de transformada associados à CU. O encriptador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficiente de transformada associados a uma CU ajustando- se o valor de QP associado à CU.
[0070] Após o encriptador de vídeo 20 quantizar um bloco de coeficiente de transformada, o encriptador de vídeo 20 pode gerar definições de elementos de sintaxe que representam os coeficientes de transformada no bloco de coeficiente de transformada quantizado. O encriptador de vídeo 20 pode aplicar operações de encriptação por entropia, tais 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 por entropia, tais como codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra codificação aritmética binária também podem ser usadas.
[0071] O fluxo de bits gerado pelo encriptador de vídeo 20 pode incluir uma série de unidades de Camada de Abstração de Rede (NAL). Cada uma das unidades de NAL pode ser uma estrutura de sintaxe que contém uma indicação de um tipo de dados na unidade de NAL e bytes que contêm os dados. Por exemplo, uma unidade de 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 figuração, uma fatia codificada, SEI, um delimitador de unidade de acesso, dados de enchimento ou outro tipo de dados. Os dados em uma unidade de NAL podem incluir várias estruturas de sintaxe.
[0072] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo encriptador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo codificados pelo encriptador de vídeo 20. Quando o decodificador de vídeo 30 receber o fluxo de bits, o decodificador de vídeo 30 pode realizar uma operação de análise no fluxo de bits. Quando o decodificador de vídeo 30 realizar 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 pode ser geralmente recíproco ao processo realizado pelo encriptador de vídeo 20 para gerar os elementos de sintaxe.
[0073] Após o decodificador de vídeo 30 extrair os elementos de sintaxe associados a uma CU, o decodificador de vídeo 30 pode gerar os blocos de vídeo previstos para as PUs da CU com base nos elementos de sintaxe. Além disso, o decodificador de vídeo 30 pode quantizar inversamente os blocos de coeficiente de transformada associados às TUs da CU. O decodificador de vídeo 30 pode realizar as transformadas inversas nos blocos de coeficiente de transformada para reconstruir os blocos de vídeo residuais associados às TUs da CU. Após gerar os blocos de vídeo previstos 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 previstos e nos blocos de vídeo residuais. Dessa forma, o decodificador de vídeo 30 pode reconstruir os blocos de vídeo das CUs com base nos elementos de sintaxe no fluxo de bits.
ENCRIPTADOR DE VÍDEO
[0074] A Figura 2A é um diagrama de blocos que ilustra um exemplo do encriptador de vídeo 20 que pode implantar técnicas de acordo com aspectos descritos nesta revelação. O encriptador de vídeo 20 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como para HEVC. Adicionalmente, o encriptador de vídeo 20 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas dentre os vários componentes do encriptador de vídeo 20. Em alguns exemplos, adicional ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer ou todas as técnicas descritas nesta revelação.
[0075] Para propósitos de explicação, esta revelação descreve o encriptador de vídeo 20 no contexto de codificação de HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo retratado na Figura 2A é para um codec com uma camada. No entanto, conforme será descrito adicionalmente em referência à Figura 2B, alguns ou todos os codificadores de vídeo 20 podem ser duplicados para o processamento de um codec com múltiplas camadas.
[0076] O encriptador de vídeo 20 pode realizar a intracodificação e a intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação tem base na previsão espacial para reduzir ou remover a redundância espacial no vídeo dentro de um dado quadro ou imagem de vídeo. A intercodificação se baseia na previsão temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre diversos modos de codificação com base em espaço. Os intermodos, tais como a previsão unidirecional (modo P) ou a previsão bidirecional (modo B), podem se referir a qualquer um dentre os diversos modos de codificação com base em tempo.
[0077] No exemplo da Figura 2A, o encriptador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais de encriptador de vídeo 20 incluem uma unidade de processamento de previsã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 armazenamento temporário de imagem decodificada 114 e uma unidade de encriptação por entropia 116. A unidade de processamento de previsão 100 incluir uma unidade de interprevisão 121, uma unidade de estimação de movimento 122, uma unidade de compensação de movimento 124, uma unidade de intraprevisão 126 e uma unidade de previsão intercamada 128. Em outros exemplos, o encriptador de vídeo 20 pode incluir mais componentes funcionais, menos componentes funcionais ou componentes funcionais diferentes. Além disso, a unidade de estimação de movimento 122 e a unidade de compensação de movimento 124 podem ser altamente integradas, porém, são representadas no exemplo da Figura 2A separadamente para propósitos explicativos.
[0078] O encriptador de vídeo 20 pode receber os dados de vídeo. O encriptador de vídeo 20 pode receber os dados de vídeo de várias fontes. Por exemplo, o encriptador de vídeo 20 pode receber os dados de vídeo da fonte de vídeo 18 (por exemplo, mostrado na Figura 1A ou 1B) ou outra fonte. Os dados de vídeo podem representa uma série de imagens. A fim de codificar os dados de vídeo, o encriptador de vídeo 20 pode realizar 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 encriptador de vídeo 20 pode realizar as 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 encriptador de vídeo 20 pode realizar as operações de codificação em blocos de árvores na fatia.
[0079] Como parte da realização de uma operação de codificação em um bloco de árvore, a unidade de processamento de previsão 100 pode realizar a partição de árvore quadrática no bloco de vídeo do bloco de árvore 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 a uma CU diferente. Por exemplo, a unidade de processamento de previsão 100 pode particionar um bloco de vídeo de um bloco de árvore em quatro sub- blocos igualmente dimensionados, particionar um ou mais dentre os sub-blocos em quatro sub-sub-blocos igualmente dimensionados, e assim por diante.
[0080] Os tamanhos dos blocos de vídeo associados às CUs podem variar de amostras 8x8 até o tamanho do bloco de árvore com um máximo de amostras 64x64 ou maior. Nesta revelação, “NxN” e “N por N” podem ser usados de modo intercambiável para se referir às dimensões de amostras de um bloco de vídeo em termos de dimensões horizontal e vertical, por exemplo, amostras 16x16 ou amostras 16 por 16. Em geral, um bloco de vídeo 16x16 tem dezesseis amostras em uma direção vertical (y = 16) e dezesseis amostras em uma direção horizontal (x = 16). De modo semelhante, um bloco NxN tem, em geral, N amostras em uma direção vertical e N amostras em uma direção horizontal, em que N representa um valor de número inteiro não negativo.
[0081] Além disso, como parte da realização da operação de criptação em um bloco de árvore, a unidade de processamento de previsão 100 pode gerar uma estrutura de dados de árvore quadrática hierárquica para o bloco de árvore. Por exemplo, um bloco de árvore pode corresponder a um nó-raiz da estrutura de dados de árvore quadrática. Caso a unidade de processamento de previsão 100 particione o bloco de vídeo do bloco de árvore em quatro sub-blocos, o nó-raiz tem quatro nós-filho na estrutura de dados de árvore quadrática. Cada um dos nós-filho corresponde a uma CU associada a um dentre os sub-blocos. Caso a unidade de processamento de previsão 100 particione um dentre os sub- blocos em quatro sub-blocos, o nó que corresponde à CU associada ao sub-bloco pode ter quatro nós-filho, em que cada um corresponde a uma CU associada a um dentre os sub- sub-blocos.
[0082] Cada nó da estrutura de dados de árvore quadrática pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o bloco de árvore ou CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador de divisão que indica a possibilidade de o bloco de vídeo da CU correspondente ao nó ser particionado (por exemplo, divido) em quatro sub- blocos. Os elementos de sintaxe para uma CU podem ser definidos recursivamente, e podem depender da possibilidade de o bloco de vídeo da CU ser divido em sub-blocos. Uma CU cujo bloco de vídeo não é particionado pode corresponder a um nó-folha na estrutura de dados de árvore quadrática. Um bloco de árvore codificado pode incluir dados com base na estrutura de dados de árvore quadrática para um bloco de árvore correspondente.
[0083] O codificador de vídeo 20 pode realizar as operações de criptação em cada CU não particionada de um bloco de árvore. Quando o encriptador de vídeo 20 realiza uma operação de criptação em uma CU não particionada, o encriptador de vídeo 20 gera dados que representam uma representação criptada da CU não particionada.
[0084] Como parte da realização de uma operação de criptação em uma CU, a unidade de processamento de previsão 100 pode particionar o bloco de vídeo da CU dentre uma ou mais PUs da CU. O encriptador de vídeo 20 e o decodificador de vídeo 30 podem suportar vários tamanhos de PU. Supondo que o tamanho de uma CU particular é 2Nx2N, o encriptador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou xN e interprevisão em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N ou semelhantes. O encriptador de vídeo 20 e o decodificador de vídeo 30 também podem suportar partição assimétrica para os tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Em alguns exemplos, a unidade de processamento de previsão 100 pode realizar a partição geométrico de modo a particionar o bloco de vídeo de uma CU dentre as PUs da CU ao longo de um limite que não se encontra com os lados do bloco de vídeo da CU em ângulos retos.
[0085] A unidade de interprevisão 121 pode realizar a interprevisão em cada PU da CU. A interprevisão pode fornecer compactação temporal. Para realizar a interprevisão em uma PU, a unidade de estimação 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 previsto para a PU com base nas informações de movimento e nas amostras decodificadas de figurações diferentes da figuração associada à CU (por exemplo, figurações de referência). Nesta revelação, um bloco de vídeo previsto gerado pela unidade de compensação de movimento 124 pode ser denominado como um bloco de vídeo interprevisto.
[0086] As fatias podem ser fatias I, fatias P ou fatias B. A unidade de estimação de movimento 122 e a unidade de compensação de movimento 124 podem realizar operações diferentes para uma PU de uma CU dependendo de se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Portanto, caso a PU esteja em uma fatia I, a unidade de estimação de movimento 122 e a unidade de compensação de movimento 124 não realizam a interprevisão na PU.
[0087] Caso a PU esteja em uma fatia P, a figuração que contém a PU está associada a uma lista de figurações de referência denominada como “lista 0”. Cada uma das figurações de referência na lista 0 contém amostras que podem ser usadas para a interprevisão de outras figurações. Quando a unidade de estimação de movimento 122 realiza a operação de estimativa de movimento em relação a uma PU em uma fatia P, a unidade de estimação de movimento 122 pode buscar nas figurações de referência da lista 0 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 corresponde de modo mais aproximado às amostras no bloco de vídeo da PU. A unidade de estimação de movimento 122 pode usar uma variedade de métricas para determinar o quão próximo um conjunto de amostras em uma figuração de referência corresponde às amostras no bloco de vídeo de uma PU. Por exemplo, a unidade de estimação de movimento 122 pode determinar o quão próximo um conjunto de amostras em uma figuração de referência corresponde às amostras no bloco de vídeo de uma PU através da soma da diferença absoluta (SAD), soma da diferença quadrática (SSD) ou através de outras métricas de diferença.
[0088] Após identificar um bloco de referência de uma PU em uma fatia P, a unidade de estimação de movimento 122 pode gerar um índice de referência que indica a figuração de referência na lista 0 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. Em vários exemplos, a unidade de estimação de movimento 122 pode gerar vetores de movimento para graus variáveis de precisão. Por exemplo, a unidade de estimação de movimento 122 pode gerar vetores de movimento com precisão de amostra de um quarto, precisão de amostra de um oitavo ou outra precisão de amostra fracionária. No caso de precisão de amostra fracionária, os valores de bloco de referência podem ser interpolados a partir de valores de amostra de posição de número inteiro na figuração de referência. A unidade de estimação de movimento 122 pode emitir o índicede referência e o vetor de movimento como as informações de movimento da PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo previsto da PU com base no bloco de referência identificado pelas informações de movimento da PU.
[0089] Caso a PU esteja em uma fatia B, a imagem que contém a PU pode ser associada a duas listas de imagens de referência, denominada de "lista 0" e "lista 1". Em alguns exemplos, uma imagem que contém uma fatia B pode ser associada a uma combinação de listas que é uma combinação da lista 0 com a lista 1.
[0090] Além disso, caso a PU esteja em uma fatia B, a unidade de estimação de movimento 122 pode realizar previsão unidirecional ou a previsão bidirecional para a PU. Quando a unidade de estimação de movimento 122 realiza a previsão unidirecional para a PU, a unidade de estimação de movimento 122 pode buscar nas imagens de referência da lista 0 ou da lista 1 um bloco de referência para a PU. Em seguida, a unidade de estimação de movimento 122 pode gerar um índice de referência que indica imagem de referência na lista 0 ou na 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 estimação de movimento 122 pode emitir o índice de referência, um indicador de direção de previsão e o vetor de movimento como as informações de movimento da PU. O indicador de direção de previsão pode indicar se o índice de referência indica uma imagem de referência na lista 0 ou na lista 1. A unidade de compensação de movimento 124 pode gerar os blocos de vídeo previsto da PU com base nos blocos de referência indicados pelas informações de movimento da PU.
[0091] Quando a unidade de estimação de movimento 122 realiza a previsão bidirecional para uma PU, a unidade de estimação de movimento 122 pode buscar nas imagens de referência da lista 0 um bloco de referência para a PU, e pode também buscar nas imagens de referência da lista 1 outro bloco de referência para a PU. Em seguida, a unidade de estimação de movimento 122 pode gerar índices de referência que indicam as imagens de referência na lista 0 e na lista 1 que contêm os blocos de referência e os vetores de movimento que indicam deslocamentos espaciais entre os blocos de referência e a PU. A unidade de estimação de movimento 122 pode emitir os índices de referência e os vetores de movimento da PU com as informações de movimento da PU. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo previsto da PU com base nos blocos de referência indicados pelas informações de movimento da PU.
[0092] Em alguns exemplos, a unidade de estimação de movimento 122 não emite um conjunto completo de informações de movimento para uma PU à unidade de encriptação por entropia 116. Ao invés disso, a unidade de estimação de movimento 122 pode sinalizar as informações de movimento de uma PU com referência às informações de movimento de outra PU. Por exemplo, a unidade de estimação de movimento 122 pode determinar que as informações de movimento da PU são suficientemente semelhantes às informações de movimento de uma PU vizinha. Nesse exemplo, a unidade de estimação de movimento 122 pode indicar, em uma estrutura de sintaxe associada à PU, um valor que indica para o decodificador de vídeo 30 que a PU tem as mesmas informações de movimento da PU vizinha. Em outro exemplo, a unidade de estimação de movimento 122 pode identificar, em uma estrutura de sintaxe associada à PU, uma PU vizinha e uma diferença de vetor de movimento (MVD). A diferença de 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 usar o vetor de movimento da PU vizinha indicada e a diferença de vetor de movimento para determinar o vetor de movimento da PU. Referindo-se às informações de movimento de uma primeira PU, durante a sinalização das informações de movimento de uma segunda PU, o encriptador de vídeo 20 pode ter capacidade para sinalizar as informações de movimento da segunda PU como uso de menos bits.
[0093] Como parte de realizar uma operação de criptação em uma CU, a unidade de intraprevisão 126 pode realizar intraprevisão em PUs da CU. A intraprevisão pode fornecer compactação espacial. Quando a unidade de intraprevisão 126 realiza a intraprevisão em uma PU, a unidade de intraprevisão 126 pode gerar dados de previsão para a PU com base em amostras decodificadas de outras PUs na mesma figuração. Os dados de previsão para a PU podem incluir um bloco de vídeo previsto e vários elementos de sintaxe. A unidade de intraprevisão 126 pode realizar a intraprevisão em PUs em fatias I, fatias P e fatias B.
[0094] Para realizar a intraprevisão em uma PU, a unidade de intraprevisão 126 pode usar múltiplos modos de intraprevisão para gerar múltiplos conjuntos de dados de previsão para a PU. Quando a unidade de intraprevisão 126 usa um modo de intraprevisão para gerar um conjunto de dados de previsão para a PU, a unidade de intraprevisão 126 pode estender as amostras dos blocos de vídeo de PUs vizinhas através do bloco de vídeo da PU em uma direção e/ou um gradiente associados ao modo de intraprevisão. As PUs próximas podem estar acima, acima e à direita, acima e à esquerda ou à esquerda da PU, assumindo uma ordem de criptação do fundo para o topo e da esquerda para direita para PUs, CUs e blocos de árvore. A unidade de intraprevisão 126 pode usar várias quantidades de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcional, dependendo do tamanho da PU.
[0095] A unidade de processamento de previsão 100 pode selecionar os dados de previsão para uma PU dentre os dados de previsão gerados pela unidade de compensação de movimento 124 para a PU ou os dados de previsão gerados pela unidade de intraprevisão 126 para a PU. Em alguns exemplos, a unidade de processamento de previsão 100 seleciona os dados de previsão para a PU com base nas métricas de taxa/distorção dos conjuntos de dados de previsão.
[0096] Caso a unidade de processamento de previsão 100 selecione os dados de previsão gerados pela unidade de intraprevisão 126, a unidade de processamento de previsão 100 pode sinalizar o modo de intraprevisão que foi usado para gerar os dados de previsão para as PUs, por exemplo, o modo de intraprevisão selecionado. A unidade de processamento de previsão 100 pode sinalizar o modo de intraprevisão selecionado de várias formas. Por exemplo, pode ser provável que o modo de intraprevisão selecionado seja igual ao modo de intraprevisão de uma PU próxima. Em outras palavras, o modo de intraprevisão da PU próxima pode ser o modo mais provável para a PU atual. Assim, a unidade de processamento de previsão 100 pode gerar um elemento de sintaxe a fim de indicar que o modo de intraprevisão selecionado é igual ao modo de intraprevisão da PU próxima.
[0097] Conforme discutido acima, o encriptador de vídeo 20 pode incluir a unidade de previsão intercamada 128. A unidade de previsão intercamada 128 é configurada para prever um bloco atual (por exemplo, um bloco atual na EL) com o uso de uma ou mais camadas diferentes que são disponíveis na SHVC (por exemplo, uma camada-base ou de referência/melhoria). Tal previsão pode ser denominada como previsão intercamada. A unidade de previsão intercamada 128 utiliza os métodos de previsão para reduzir a redundância intercamada, desse modo, aprimorando a eficiência de codificação e reduzindo as exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão intercamada, previsão de moção intercamada e previsão residual intercamada. A intraprevisão intercamada usa a reconstrução de blocos localizados simultaneamente na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de moção intercamada usa as informações de movimento da camada-base para prever o movimento na camada de aprimoramento. A previsão residual intercamada usa o resíduo da camada-base para prever o resíduo da camada de aprimoramento.
[0098] Após a unidade de processamento de previsão 100 selecionar os dados de previsão para as PUs de uma CU, a unidade de geração residual 102 pode gerar dados residuais para a CU subtraindo-se (por exemplo, indicado pelo sinal de menos) os blocos de vídeo previstos das PUs da CU do bloco de vídeo da CU. Os dados residuais de uma CU podem incluir blocos de vídeo residuais 2D que correspondem aos componentes de amostra diferentes das amostras no bloco de vídeo da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que corresponde às diferenças entre componentes de luminância de amostras nos blocos de vídeo previstos das PUs da CU e os componentes de luminância das 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 componentes de crominância de amostras nos blocos de vídeo previstos das PUs da CU e os componentes de crominância das amostras no bloco de vídeo original da CU.
[0099] A unidade de processamento de previsão 100 pode realizar o particionamento de árvore quadrática para particionar os blocos de vídeo residuais da CU em sub- blocos. Cada bloco de vídeo residual não dividido pode ser associado a uma TU diferente da CU. Os tamanhos e posições dos blocos de vídeo residuais associados às TUs de uma CU podem ou não ser baseados nos tamanhos e nas posições de blocos de vídeo associados às PUs da CU. Uma estrutura de árvore quadrática conhecido como uma "árvore quadrática residual" (RQT) pode incluir nós associados a cada um dos blocos de vídeo residuais. As TUs de uma CU podem corresponder aos nós-folha da RQT.
[0100] A unidade de processamento de transformada 104 pode gerar um ou mais blocos de coeficiente de transformada para cada TU de uma CU aplicando-se uma ou mais transformadas a um bloco de vídeo residual associado à TU. Cada um dos blocos de coeficiente de transformada pode ser uma matriz 2D de coeficientes de transformada. A unidade de processamento de transformada 104 pode aplicar diversas transformadas ao bloco de vídeo residual associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente semelhante ao bloco de vídeo residual associado a uma TU.
[0101] Após a unidade de processamento de transformada 104 gerar um bloco de coeficiente de transformada associado a uma TU, a unidade de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficiente de transformada. A unidade de quantização 106 pode quantizar um bloco de coeficiente de transformada associado a uma TU de uma CU com base em um valor de QP associado à CU.
[0102] O encriptador de vídeo 20 pode associar um valor de QP a uma CU de várias maneiras. Por exemplo, o encriptador de vídeo 20 pode realizar uma análise de taxa de distorção em um bloco de árvore associado à CU. Na análise de taxa de distorção, o encriptador de vídeo 20 pode gerar múltiplas representações codificadas do bloco de árvore realizando-se uma operação de codificação múltiplas vezes no bloco de árvore. O encriptador de vídeo 20 pode associar diferentes valores de QP à CU quando o encriptador de vídeo 20 gera diferentes representações codificadas do bloco de árvore. O encriptador de vídeo 20 pode sinalizar que um determinado valor de QP está associado à CU quando o determinado valor de QP estiver associado à CU em uma representação criptada do bloco de árvore que tem uma métrica de taxa de bits e de distorção mais inferior.
[0103] A unidade de quantização inversa 108 e a unidade de transformada inversa 110 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 coeficiente de transformada. A unidade de reconstrução 112 pode adicionar o bloco de vídeo residual reconstruído às amostras correspondentes a partir de um ou mais blocos de vídeo previstos de amostra gerados pela unidade de processamento de previsão 100 para produzir um bloco de vídeo reconstruído associado a uma TU. Reconstruindo-se os blocos de vídeo para cada TU de uma CU, dessa maneira, o encriptador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0104] Após a unidade de reconstrução 112 reconstruir o bloco de vídeo de uma CU, a unidade de filtro 113 pode realizar uma operação de desblocagem a fim reduzir artefatos de blocagem no bloco de vídeo associado à CU. Após a realização das uma ou mais operações de desblocagem, a unidade de filtro 113 pode armazenar o bloco de vídeo reconstruído da CU no armazenamento temporário de imagem decodificada 114. A unidade de estimação 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 realizar a interprevisão em PUs de imagens subsequentes. Além disso, uma unidade de intraprevisão 126 pode usar blocos de vídeo reconstruídos no armazenamento temporário de imagem decodificada 114 para realizar intraprevisão em outras PUs na mesma imagem como da CU.
[0105] A unidade de encriptação por entropia 116 pode receber dados provenientes de outros componentes funcionais de encriptador de vídeo 20. Por exemplo, a unidade de encriptação por entropia 116 pode receber blocos de coeficiente de transformada a partir da unidade de quantização 106 e pode receber elementos de sintaxe a partir da unidade de processamento de previsão 100. Quando a unidade de encriptação por entropia 116 recebe os dados, a unidade de encriptação por entropia 116 pode realizar um ou mais operações de encriptação por entropia de modo a gerar dados criptados por entropia. Por exemplo, o encriptador de vídeo 20 pode realizar uma operação de CAVLC, uma operação de CABAC, uma operação de codificação de comprimento de variável a variável (V2V), uma operação de codificação aritmética binária adaptativa ao contexto com base em sintaxe (SBAC), uma operação de codificação de PIPE ou outro tipo de operação de codificação por entropia nos dados. A unidade de encriptação por entropia 116 pode emitir um fluxo de bits que inclui os dados criptados por entropia.
[0106] Como parte da realização de uma operação de encriptação por entropia nos dados, a unidade de encriptação por entropia 116 pode selecionar um modelo de contexto. Caso a unidade de encriptação por entropia 116 realize uma operação de CABAC, o modelo de contexto pode indicar estimativas de probabilidades de compartimentos particulares que valores particulares. No contexto de CABAC, o termo "compartimento" é usado para se referir a um bit de uma versão binarizada de um elemento de sintaxe.
[0107] Encriptador de Vídeo com Múltiplas Camadas
[0108] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um encriptador de vídeo com múltiplas camadas 23 (também referido simplesmente como encriptador de vídeo com múltiplas camadas que 23) que pode implantar as técnicas em conformidade com os aspectos descritos na presente revelação. O encriptador de vídeo 23 pode ser configurado para processar quadros de vídeo multicamada, tal como para codificação de SHVC e MV-HEVC. Além disso, o encriptador de vídeo 23 pode ser configurado para realizar qualquer ou todas as técnicas da presente revelação.
[0109] O encriptador de vídeo 23 inclui um encriptador de vídeo 20A e um encriptador de vídeo 20B, em que cada um pode ser configurado como o encriptador de vídeo 20 e pode realizar as funções descritas acima em relação ao encriptador de vídeo 20. Além disso, conforme indicado pela reutilização de numerais de referência, os encriptadores de vídeo 20A e 20B podem incluir pelo menos algum dentre os sistemas e subsistemas como o encriptador de vídeo 20. Embora o encriptador de vídeo 23 seja ilustrado como incluindo dois encriptadores de vídeo 20A e 20B, o encriptador de vídeo 23 não se limita a isso e pode incluir qualquer número de camadas de encriptador de vídeo 20. Em algumas modalidades, o encriptador de vídeo 23 pode incluir um encriptador 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 criptada por um encriptador de vídeo que inclui cinco camadas de encriptador. Em algumas modalidades, o encriptador de vídeo 23 pode incluir mais camadas de encriptador do que quadros em uma unidade de acesso. Em alguns casos, algumas dentre as camadas de encriptador de vídeo pode ser inativa quando o durante o processamento de algumas unidades de acesso.
[0110] Além dos encriptadores de vídeo 20A e 20B, o encriptador 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-base de um quadro de vídeo recebido para, por exemplo, criar uma camada de aprimoramento. A unidade de reamostragem 90 pode aumentar a resolução informações particulares associadas à camada-base recebida de um quadro, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode aumentar a resolução o tamanho espacial ou quantidade de pixels da camada-base, mas a quantidade de fatias ou a contagem de ordem de figuração pode permanecer constante. Em alguns casos, a unidade de reamostragem 90 pode não processar o vídeo recebido e/ou pode ser opcional. Por exemplo, em alguns casos, a unidade de processamento de previsão 100 pode realizar um aumento de resolução. Em algumas modalidades, a unidade de reamostragem 90 é configurada para realizar um aumento de resolução de uma camada e reorganizar, redefinir, modificar ou ajustar uma ou mais fatias para estarem em conformidade com um conjunto de regras de limite de fatia e/ou regras de exame de varredura. Embora primariamente descrita como aumento de 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 realizar uma redução de resolução de uma camada. Por exemplo, caso durante a transmissão contínua de um vídeo a largura de banda seja reduzida, um quadro pode ter uma resolução diminuída, em vez de ter uma resolução aumentada.
[0111] A unidade de reamostragem 90 pode ser configurada para receber uma figuração ou quadro (ou informações de figuração associadas à figuração) do armazenamento temporário de figuração decodificada 114 do encriptador de camada inferior (por exemplo, o encriptador de vídeo 20A) e aumentar a resolução da figuração (ou as informações de figuração recebidas). Essa figuração com resolução aumentada pode, então, ser fornecida para a unidade de processamento de previsão 100 de um encriptador de camada superior (por exemplo, o encriptador de vídeo 20B) configurado para criptar uma figuração na mesma unidade de acesso que o encriptador de camada inferior. Em alguns casos, o encriptador de camada superior é uma camada removida do encriptador de camada inferior. Em outros casos, pode haver um ou mais encriptadores de camada superiores entre o encriptador de vídeo de camada 0 e o encriptador de camada 1 da Figura. 2B.
[0112] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou ignorada. Em tais casos, a imagem do armazenamento temporário de imagem decodificada 114 do encriptador de vídeo 20A pode ser fornecido diretamente, ou pelo menos sem ser fornecido à unidade de reamostragem 90, à unidade de processamento de previsão 100 do encriptador de vídeo 20B. Por exemplo, caso os dados de vídeo fornecidos ao encriptador de vídeo 20B e à imagem de referência do armazenamento temporário de imagem decodificada 114 do encriptador de vídeo 20A tenham o mesmo tamanho ou resolução, a imagem de referência pode ser fornecida ao encriptador de vídeo 20B sem qualquer reamostragem.
[0113] Em algumas modalidades, o encriptador de vídeo 23 reduz a resolução dos dados de vídeo a serem fornecidos ao encriptador de camada inferior com o uso da unidade de redução de resolução 94 antes que os dados de vídeo sejam fornecidos ao encriptador de vídeo 20A. Alternativamente, a unidade de redução de resolução 94 pode ser uma unidade de reamostragem 90 com capacidade para aumentar ou reduzir a resolução dos dados de vídeo. Ainda em outras modalidades, a unidade de redução de resolução 94 pode ser omitida.
[0114] Conforme ilustrado na Figura 2B, o encriptador de vídeo 23 pode incluir adicionalmente um multiplexador (ou mux) 98. O mux 98 pode emitir um fluxo de bits combinado do encriptador de vídeo 23. O fluxo de bits combinados pode ser criado tomando-se o fluxo de bits de cada um dentre os encriptadores de vídeo 20A e 20B e alternando-se qual fluxo de bits é emitido em um determinado momento. Embora em alguns casos os bits dos dois (ou mais no caso de mais que duas camadas de encriptador de vídeo) fluxos de bits possam ser alternados um bit por vez, em muitos casos, os fluxos de bits são combinados diferentemente. Por exemplo, o fluxo de bits de saída pode ser criado alternando-se o fluxo de bits selecionado um bloco por vez. Em outro exemplo, o fluxo de bits de saída pode ser criado emitindo-se uma razão diferente de 1: 1 de blocos de cada um dos encriptadores de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos a partir do encriptador de vídeo 20B para cada bloco emitido do encriptador de vídeo 20A. Em algumas modalidades, o fluxo de saída do mux 98 pode ser programado. Em outras modalidades, o mux 98 pode combinar os fluxos de bits dos encriptadores de vídeo 20A, 20B com base em um sinal de controle recebido de um sistema externo ao encriptador de vídeo 23, tal como a partir de um processador em um dispositivo de origem que inclui o módulo de origem 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo da fonte de vídeo 18, com base em uma largura de banda do enlace 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 saída de resolução desejada do encriptador de vídeo 23.
[0115] Decodificador de Vídeo
[0116] A Figura 3 A é um diagrama de blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implantar técnicas de acordo com aspectos descritos nesta revelação. O decodificador de vídeo 30 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como para HEVC. Além disso, o decodificador de vídeo 30 pode ser configurado para realizar qualquer ou todas as técnicas da presente revelação. Em alguns exemplos, as técnicas descritas na presente revelação podem ser compartilhadas entre os vários componentes de decodificador de vídeo 30. Em alguns exemplos, adicional ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer ou todas as técnicas descritas na presente revelação.
[0117] Para propósitos explicativos, a presente revelação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. Entretanto, as técnicas da presente revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo retratado na Figura 3A é para um codec com uma camada. No entanto, conforme será descrito adicionalmente em referência à Figura 3B, alguns ou todos os decodificadores de vídeo 30 podem ser duplicados para o processamento de um codec com múltiplas camadas.
[0118] No exemplo da Figura 3A, o decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 incluem uma unidade de decodificação por entropia 150, uma unidade de processamento de previsã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 armazenamento temporário de imagem decodificada 160. A unidade de processamento de previsão 152 inclui uma unidade de compensação de movimento 162, uma unidade de intraprevisão 164 e uma unidade de previsão intercamada 166. Em alguns exemplos, o decodificador de vídeo 30 pode realizar uma passagem de decodificação geralmente recíproca à passagem de criptação descrita em relação ao encriptador de vídeo 20 da Figura 2A. Em outros exemplos, o encriptador de vídeo 30 pode incluir mais componentes funcionais, poucos componentes funcionais ou componentes funcionais diferentes.
[0119] 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 receber o fluxo de bits, a unidade de decodificação por entropia 150 pode realizar uma operação de análise no fluxo de bits. Como resultado da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode extrair os elementos de sintaxe do fluxo de bits. Como parte da realização da operação de análise, a unidade de decodificação por entropia 150 pode decodificar por entropia os elementos de sintaxe criptados por entropia no fluxo de bits. A unidade de processamento de previsão 152, a unidade de quantização inversa 154, a unidade de transformada inversa 156, a unidade de reconstrução 158 e a unidade de filtro 159 podem realizar 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.
[0120] Conforme discutido acima, o fluxo de bits pode compreender uma série de unidades de NAL. As unidades de NAL do fluxo de bits podem incluir unidades de NAL de definição de parâmetro de vídeo, unidades de NAL de definição de parâmetro de sequência, unidades de NAL de definição de parâmetro de imagem, unidades de NAL de SEI, e assim por diante. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem e decodificam por entropia as definições de parâmetro de sequência das unidades de NAL de definição de parâmetro de sequência, a imagem definições de parâmetro das unidades de NAL de definição de parâmetro de imagem, os dados de SEI das unidades de NAL de SEI, e assim por diante.
[0121] Além disso, as unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificadas. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode realizar as operações de análise que extraem e decodificam por entropia as fatias codificadas das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetros de figuração associado a uma figuração que contém a fatia. A unidade de decodificação por entropia 150 pode realizar operações de decodificação por entropia, tais como operações de decodificação de CABAC, em elementos de sintaxe no cabeçalho de fatia codificado para recuperar o cabeçalho de fatia.
[0122] Como parte da extração dos dados de fatia de unidades de NAL de fatia codificada, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem elementos de sintaxe de CUs codificadas nos dados de fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados aos blocos de coeficiente de transformada. A unidade de decodificação por entropia 150 pode, então, realizar operações de decodificação de CABAC em alguns dos elementos de sintaxe.
[0123] Após a unidade de decodificação por entropia 150 realizar uma operação de análise em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução na CU não particionada. Para realizar a operação de reconstrução em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Realizando-se 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.
[0124] Como parte da realização de uma operação de reconstrução em uma TU, a unidade de quantização inversa 154 pode quantizar inversamente, por exemplo, desquantizar, um bloco de coeficiente de transformada associado à TU. A unidade de quantização inversa 154 pode quantizar inversamente o bloco de coeficiente de transformada de maneira similar aos processos de quantização inversa propostos para HEVC ou definidos pelo padrão de decodificação H.264. A unidade de quantização inversa 154 pode usar um parâmetro de quantização QP calculado pelo encriptador de vídeo 20 para uma CU do bloco de coeficiente de transformada para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa a ser aplicado pela unidade de quantização inversa 154.
[0125] Após a unidade de quantização inversa 154 quantizar inversamente um bloco de coeficiente de transformada, a unidade de transformada inversa 156 pode gerar um bloco de vídeo residual para a TU associada ao bloco de coeficiente 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 de número inteiro inversa, uma transformada de Karhunen-Loeve inversa (KLT), uma transformada rotacional 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 que uma transformada inversa se aplique ao bloco de coeficiente de transformada com base na sinalização do encriptador 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 uma árvore quadrática para um bloco de árvore associado ao bloco de coeficiente 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, tais como tamanho de bloco, modo de codificação ou semelhantes. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformada inversa em cascata.
[0126] Em alguns exemplos, a unidade de compensação de movimento 162 pode refinar o bloco de vídeo previsto de uma PU realizando-se interpolação com base em filtros de interpolação. Os identificadores para filtros de interpolação a serem usados para a compensação de movimento com precisão de subamostra podem estar incluídos nos elementos de sintaxe. A unidade de compensação de movimento 162 pode usar os mesmos filtros de interpolação usados pelo encriptador de vídeo 20 durante a geração do bloco de vídeo previsto do PU a fim de calcular os valores interpolados para amostras de número abaixo de número inteiro de um bloco de referência. A unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo encriptador de vídeo 20 de acordo com as informações de sintaxe recebidas e pode usar os filtros de interpolação de modo a produzir o bloco de vídeo previsto.
[0127] Caso uma PU seja criptada com o uso de intraprevisão, a unidade de intraprevisão 164 pode realizar intraprevisão para gerar um bloco de vídeo previsto para a PU. Por exemplo, a unidade de intraprevisão 164 pode determinar um modo de intraprevisã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 intraprevisão 164 pode usar para determinar o modo de intraprevisão da PU.
[0128] Em alguns exemplos, os elementos de sintaxe podem indicar que a unidade de intraprevisão 164 deve usar o modo de intraprevisão de outra PU para determinar o modo de intraprevisão da PU atual. Por exemplo, é provável que o modo de intraprevisão da PU atual seja igual ao modo de intraprevisão de uma PU próxima. Em outras palavras, o modo de intraprevisão da PU próxima pode ser o modo mais provável para a PU atual. Portanto, nesse exemplo, o fluxo de bits pode incluir um elemento de sintaxe pequeno que indica que o modo de intraprevisão da PU é igual ao modo de intraprevisão da PU próxima. A unidade de intraprevisão 164 pode, então, usar o modo de intraprevisão para gerar dados de previsão (por exemplo, amostras previstas) para a PU com base nos blocos de vídeo de PUs espacialmente próximas.
[0129] Conforme discutido acima, o decodificador de vídeo 30 também pode incluir a unidade de previsão intercamada 166. A unidade de previsão intercamada 166 é configurada para prever um bloco atual (por exemplo, um bloco atual na camada melhorada) com o uso de uma ou mais camadas diferentes que são disponíveis na SVC (por exemplo, uma camada-base ou de referência). Tal previsão pode ser denominada como previsão intercamada. A unidade de previsão intercamada 166 utiliza os métodos de previsão para reduzir a redundância intercamada, desse modo, aprimorando a eficiência de codificação e reduzindo as exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão intercamada, previsão de moção intercamada e previsão residual intercamada. A intraprevisão intercamada usa a reconstrução de blocos localizados simultaneamente na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de moção intercamada usa as informações de movimento da camada-base para prever o movimento na camada de aprimoramento. A previsão residual intercamada usa o resíduo da camada-base para prever o resíduo da camada de aprimoramento. Cada um dentre os esquemas de previsão intercamada é discutido abaixo mais detalhadamente.
[0130] A unidade de reconstrução 158 pode usar os blocos de vídeo residuais associados às TUs de uma CU e os blocos de vídeo previstos das PUs da CU, por exemplo, tanto dados de intraprevisão quanto dados de interprevisão, conforme aplicável, para reconstruir o bloco de vídeo da CU. Assim, o decodificador de vídeo 30 pode gerar um bloco de vídeo previsto 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 previsto e no bloco de vídeo residual.
[0131] Após a unidade de reconstrução 158 reconstruir o bloco de vídeo da CU, a unidade de filtro 159 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados à CU. Após a unidade de filtro 159 realizar uma operação de desbloqueio para reduzir artefatos de bloqueio associados à CU, o decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU em armazenamento temporário de figuração decodificada 160. O armazenamento temporário de figuração decodificada 160 pode fornecer figurações de referência para compensação de movimento subsequente, intraprevisão e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 das Figuras 1A ou 1B. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de vídeo no armazenamento temporário de figuração decodificada 160, operações de intraprevisão ou interprevisão em PUs de outras CUs.
[0132] Decodificador com Múltiplas Camadas
[0133] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo com múltiplas camadas 33 (também referido simplesmente como decodificador de vídeo com múltiplas camadas que 33) que pode implantar as técnicas em conformidade com os aspectos descritos na presente revelação. O decodificador de vídeo 33 pode ser configurado para processar quadros de vídeo com múltiplas camadas, tais como para a codificação com múltiplas visualizações e SHVC. Além disso, o decodificador de vídeo 33 pode ser configurado para realizar qualquer parte ou todas as técnicas da presente revelação.
[0134] O decodificador de vídeo 33 inclui um decodificador de vídeo 30A e um decodificador de vídeo 30B, em que cada um pode ser configurado como o decodificador de vídeo 30 e pode realizar as funções descritas acima em relação ao decodificador de vídeo 30. Adicionalmente, conforme indicado pela reutilização de numerais 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 como tal e pode incluir qualquer quantidade de camadas de decodificador de vídeo 30. Em algumas modalidades, o decodificador de vídeo 33 pode incluir um decodificador de vídeo 30 para cada figuração ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco figurações pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas modalidades, o decodificador de vídeo 33 pode incluir mais camadas de decodificador do que quadros em uma unidade de acesso. Em alguns casos, algumas dentre as camadas de decodificador de vídeo podem estar inativas quando se processa algumas unidades de acesso.
[0135] Além dos decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 pode incluir uma unidade de aumento de resolução 92. Em algumas modalidades, a unidade de aumento de resolução 92 pode aumentar a resolução de uma camada-base de um quadro de vídeo recebido para criar uma camada aprimorada a ser adicionada à lista de imagem de referência para o quadro ou unidade de acesso.Essa camada aprimorada pode ser armazenada no armazenamento temporário de imagem decodificada 160. Em algumas modalidades, a unidade de aumento de resolução 92 pode incluir algumas ou todas as modalidades descritas em relação à unidade de reamostragem 90 da Figura. 2A. Em algumas modalidades, a unidade de aumento de resolução 92 é configurada para aumentar a resolução de uma camada e reorganizar, redefinir, modificar ou ajustar uma ou mais fatias para estarem em conformidade com um conjunto de regras de limite de fatia e/ou regras de realização de varredura. Em alguns casos, a unidade de aumento de resolução 92 pode ser uma unidade de reamostragem configurada para aumentar a resolução e/ou diminuir a resolução de uma camada de um quadro de vídeo recebido.
[0136] A unidade de aumento de resolução 92 pode ser configurada para receber uma figuração ou quadro (ou informações de figuração associadas à figuração) do armazenamento temporário de figuração decodificada 160 do decodificador de camada inferior (por exemplo, o decodificador de vídeo 30A) e para aumentar a resolução da figuração (ou as informações de figuração recebidas). Essa figuração com resolução aumentada pode, então, ser fornecida para a unidade de processamento de previsão 152 de um decodificador de camada superior (por exemplo, o decodificador de vídeo 30B) configurado para decodificar uma figuração 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 camada superior entre o decodificador de camada 0 e o decodificador de camada 1 da Figura 3B.
[0137] Em alguns casos, a unidade de aumento de resolução 92 pode ser omitida ou ignorada. Em tais casos, a figuração do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A pode ser fornecida diretamente, ou pelo menos sem ser fornecida à unidade de aumento de resolução 92, para a unidade de processamento de previsão 152 do decodificador de vídeo 30B. Por exemplo, caso os dados de vídeo fornecidos ao decodificador de vídeo 30B e a figuração de referência do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A sejam do mesmo tamanho ou resolução, a figuração de referência pode ser fornecida ao decodificador de vídeo 30B sem aumento de resolução. Adicionalmente, em algumas modalidades, a unidade de aumento de resolução 92 pode ser uma unidade de reamostragem 90 configurada para aumentar a resolução ou diminuir a resolução de uma figuração de referência recebida do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A.
[0138] Conforme ilustrado na Figura 3B, o decodificador de vídeo 33 pode incluir adicionalmente um demultiplexador (ou demux) 99. O demux 99 pode dividir um fluxo de bits de vídeo criptado em múltiplos fluxos de bits em que cada saída de fluxo de bits pelo demux 99 é fornecida para um decodificador de vídeo diferente 30A e 30B. Os múltiplos fluxos de bits podem ser criados recebendo-se um fluxo de bits e cada um dos decodificadores de vídeo 30A e 30B recebe uma porção do fluxo de bits em um dado momento. Embora em alguns casos os bits do fluxo de bits recebido no demux 99 possam ser alternados um bit por vez entre cada um dos decodificadores de vídeo (por exemplo, decodificadores de vídeo 30A e 30B no exemplo da Figura 3B), em muitos casos o fluxo de bits é dividido diferentemente. Por exemplo, o fluxo de bits pode ser dividido alternando-se qual decodificador de vídeo recebe o fluxo de bits um bloco por vez. Em outro exemplo, o fluxo de bits pode ser divido por uma razão diferente de 1: 1 de blocos para qual cada um dentre os decodificadores 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 modalidades, a divisão do fluxo de bits pelo demux 99 pode ser programada. Em outras modalidades, o demux 99 pode dividir o fluxo de bits com base em um sinal de controle recebido de um sistema externo ao decodificador de vídeo 33, tal como de um processador em 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 do enlace 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 obtenível pelo decodificador de vídeo 33.
[0139] Figurações de Ponto de Acesso Intra- Aleatório (IRAP)
[0140] Alguns esquemas de codificação de vídeo podem fornecer vários pontos de acesso aleatório ao longo de todo o fluxo de bits de modo que o fluxo de bits possa ser decodificado a partir de qualquer um desses pontos de acesso aleatórios sem precisar decodificar quaisquer figurações que precedam esses pontos de acesso aleatórios no fluxo de bits. Em tais esquemas de codificação de vídeo, todas as figurações que seguem um ponto de acesso aleatório em ordem de decodificação, exceto figurações precedentes ignoradas de acesso aleatório (RASL), podem ser decodificadas corretamente sem usar quaisquer figurações que precedam o ponto de acesso aleatório. Por exemplo, até mesmo caso uma porção do fluxo de bits seja perdida durante a transmissão ou durante a decodificação, um decodificador pode reiniciar a decodificação do fluxo de bits com início a partir do próximo ponto de acesso aleatório. O suporte para o acesso aleatório pode facilitar, por exemplo, serviços de transmissão contínua dinâmica, operações de busca, comutação de canal, etc.
[0141] Em alguns esquemas de codificação, tais pontos de acesso aleatórios podem ser fornecidos pelas figurações que são denominadas como figurações intraponto de acesso aleatório (IRAP). Por exemplo, um ponto de acesso aleatório associado a uma camada de aperfeiçoamento figuração de IRAP) em uma camada de aperfeiçoamento ("layerA") que é contida em uma unidade de acesso ("auA") pode fornecer um acesso aleatório em camada específica de tal modo que para cada camada de referência/melhoramento ("layerB") da layerA (por exemplo, em que uma camada de referência é uma camada que é usada para prever layerA) que tenha um ponto de acesso aleatório associado a uma figuração contida em uma unidade de acesso ("auB") que está na layerB e prossegue a auA em ordem de decodificação (ou um ponto de acesso aleatório contido na auA), as figurações na layerA que seguem a auA em ordem de decodificação (incluindo aquelas figurações localizadas em auA), sejam corretamente decodificáveis sem precisar decodificar quaisquer figurações na layerA que precedam a auA.
[0142] As figurações de IRAP podem ser codificadas com uso de intraprevisão (por exemplo, codificadas sem se referir a outras figurações) e/ou previsão intercamada e podem incluir, por exemplo, figurações de atualização de decodificador instantânea (IDR), figurações de acesso aleatório limpo (CRA) e figurações de acesso de enlace desfeito (BLA). Quando há uma figuração de IDR no fluxo de bits, todas as figurações que precedem a figuração de IDR na ordem de decodificação não são usadas para previsão por figurações que seguem a figuração de IDR. Quando há uma figuração de CRA no fluxo de bits, as figurações que seguem a figuração de CRA podem ou não podem usar figurações que precedem a figuração de CRA na ordem de decodificação para previsão. Essas figurações que seguem as figurações de CRA na ordem de decodificação, mas usam figurações que precedem a figuração de CRA na ordem de decodificação, podem ser denominadas como figurações RASL. Outro tipo de figuração que pode seguir uma figuração de IRAP em ordem de decodificação e preceder a figuração de IRAP em ordem de saída é uma figuração precedente descodificável de acesso aleatório (RADL) que pode não conter referências a quaisquer figurações que precedam a figuração de IRAP em ordem de decodificação. As figurações RASL podem ser descartadas pelo decodificador caso as figurações que precedem a figuração de CRA não estejam disponíveis. Uma figuração de BLA indica para o decodificador que as figurações que precedem a figuração de BLA podem não estar disponíveis para o decodificador (por exemplo, devido ao fato de que dois fluxos de bits são unidos e a figuração de BLA é a primeira figuração do segundo fluxo de bits em ordem de decodificação). Uma unidade de acesso (por exemplo, um grupo de figurações que consiste em todas as figurações codificadas associadas ao mesmo tempo de saída ao longo das múltiplas camadas) que contém uma figura de camada de base (por exemplo, que tem um identificador de valor de camada (ID) de "0") que é uma figura de IRAP pode ser denominada como uma unidade de acesso de IRAP.
[0143] Mensagens de SEI;
[0144] Alguns esquemas de codificação de vídeo podem incluir mensagens de SEI. Uma mensagem de SEI pode compreender informações extras que podem ser inseridas no fluxo de bits para melhorar os dados ou o uso de figurações codificadas dentro do fluxo de bits. No entanto, visto que a mensagem de SEI é ideal, a mensagem de SEI não contém quaisquer informações que sejam necessárias para decodificar as figurações codificadas do fluxo de bits. Por exemplo, a mensagem de SEI pode compreender metadados, informações que podem auxiliar na decodificação, ou dicas de como mais bem exibir os dados no fluxo de bits. As mensagens de SEI podem ser mensagens do tipo prefixo ou sufixo.
[0145] Em esquemas de codificação de camada única convencionais (por exemplo, HEVC), cada unidade de acesso contém unicamente uma única figuração para a única camada. Visto que cada unidade de acesso dos esquemas de codificação de camada única contém uma única figuração, os termos "unidade de acesso" e "figuração" puderam ser usados de modo intercambiável no contexto de esquemas de codificação de camada única. Por exemplo, com relação à utilização e à aplicação de mensagens de SEI, tornou-se claro que uma mensagem de SEI associada a uma unidade de acesso também foi associada à figuração contida na unidade de acesso.
[0146] No entanto, as unidades de acesso de esquemas de codificação de multicamada (por exemplo, SHVC/MV-HEVC) podem incluir uma figuração separada para cada camada do fluxo de bits. Em outras palavras, em um fluxo de bits de multicamada, uma única unidade de acesso pode conter (isto é, incluir ou compreender) uma pluralidade de figurações que pode ter o mesmo valor de POC. Visto que nos esquemas de codificação de camada única convencionais as mensagens de SEI são associadas à única figuração da unidade de acesso, esses esquemas de codificação de camada única podem não ter as semânticas exigidas para definir como uma mensagem de SEI se aplica precisamente a mais que um ponto de operação ou camada de um esquema de codificação de multicamada. Essa ambiguidade relacionada às mensagens de SEI nos esquemas de codificação de multicamada permite implantações de encriptadores ou decodificadores de vídeo para associar as mensagens de SEI às figurações dentre a pluralidade possível de figurações dentro de uma unidade de acesso de um esquema de codificação de multicamada sem restrição. Consequentemente, as associações das mensagens de SEI às figurações, aos pontos de operação ou às camadas nos esquemas de codificação de multicamada não podem sempre estar corretas ou adequadas. Consequentemente, o comportamento desses encriptadores e decodificadores de vídeo com relação às mensagens de SEI que se aplicam a mais que um ponto de operação, camada e/ou figuração não é previsível e pode variar entre implantações diferentes de modo que essas implantações diferentes não possam criptar/decodificar uma sequência de vídeo de modo consistente. Por exemplo, em alguns casos pode não estar clara a possibilidade de a mensagem de SEI dever ser associada a uma figuração, a um subconjunto de figurações ou a todas as figurações da unidade de acesso correspondente e a mensagem de SEI manipulada sem semânticas adequadas poder ser associada impropriamente.
[0147] Alternativa ou adicionalmente, as mensagens de SEI que não são agrupadas podem ser aplicadas ao ponto de operação que tem a ID temporal (Tid) que é a Tid máxima para o fluxo de bits e contém todas as camadas do fluxo de bits.
[0148] Consequentemente, um objetivo da presente revelação é esclarecer as semânticas das mensagens de SEI de modo que um escopo da mensagem de SEI possa ser associado inequivocamente a uma ou mais figurações de uma unidade de acesso dentro de um esquema de codificação de multicamada quando a mensagem de SEI se aplica a mais que um ponto de operação ou camada. Adicionalmente, um objetivo da presente revelação é esclarecer os escopos de persistência das mensagens de SEI, visto que os escopos de persistência das mensagens de SEI que usam as semânticas das mensagens de SEI de esquemas de codificação de camada única podem não ser especificados claramente quanto qual a figuração ou as figurações da pluralidade possível de figurações dentro da unidade de acesso um escopo de persistência particular se aplica.
[0149] De acordo com a presente revelação, a mensagem de SEI implantada em um esquema de codificação de multicamada pode ser associada a e/ou se aplicar a uma ou mais figurações de uma unidade de acesso, um ou mais pontos de operação e/ou uma ou mais camadas. Quando a mensagem de SEI se aplicar a mais que um ponto de operação ou camada, as semânticas das mensagens de SEI podem ser modificadas ou esclarecidas de modo que as mensagens de SEI possam ser associadas inequivocamente a uma figuração específica ou figurações específicas de uma unidade de acesso, ponto de operação ou pontos de operação e/ou camada ou camadas dentro do esquema de codificação de multicamada. Esclarecendo-se as semânticas de acordo com a presente revelação, o comportamento de encriptadores/decodificadores de vídeo é mais previsível, e, desse modo, o tratamento de mensagens de SEI entre implantações diferentes desses encriptadores/decodificadores de vídeo é mais consistente que nos esquemas de codificação de multicamada que usam semânticas de esquemas de codificação de camada única. Os conjuntos de procedimentos/esquemas da presente revelação podem ser compatíveis com "versões anteriores" ou compatíveis com "versões inferiores" de modo que conjuntos de procedimentos/esquemas da presente revelação possam ser empregados pelos dispositivos herdados que empregam esquemas de codificação de vídeo de camada única. Ademais, os conjuntos de procedimentos/esquemas da presente revelação podem ser utilizados com diversas mensagens de SEI que podem ser aplicadas as uma ou mais figurações, um ou mais pontos de operação e/ou uma ou mais camadas dentro da unidade de acesso de multicamada.
[0150] As mensagens de SEI nos esquemas de codificação de multicamada podem se aplicar a unidades de acesso diferentemente, dependendo do tipo de mensagem de SEI e à qual mensagem de SEI se aplica. Por exemplo, as mensagens de SEI podem ser configuradas para se aplicarem a uma camada de um conjunto de camadas ou um ponto de operação de um conjunto de pontos de operação. Um ponto de operação pode compreender uma lista de camadas em uma faixa de uma ou mais IDs temporais específicas para tais camadas. Por exemplo, o ponto de operação pode compreender uma lista de três camadas (camadas 0, 1 e 2) em uma faixa de 2 IDs temporais (IDs de 0 e 1), e cada uma das três camadas será considerada (codificada) em cada uma das IDs temporais 0 e 1. Consequentemente, o ponto de operação pode compreender um subconjunto de fluxos de dados do fluxo de bits inteiro de informações de vídeo a ser decodificado/criptado.
[0151] Por exemplo, quando a mensagem de SEI para uma unidade de acesso de um fluxo de bits de multicamada for uma dentre uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração e uma mensagem de SEI de informações de unidade de decodificação e a mensagem de SEI se aplicar a um conjunto de pontos de operação (por exemplo, quando a mensagem de SEI se aplicar a um conjunto de pontos de operação em vez de um conjunto de camadas), então, as semânticas da mensagem de SEI podem ser aplicadas independentemente a cada ponto de operação do conjunto de pontos de operação que a mensagem de SEI se aplica. Isso significa que cada uma das semânticas da mensagem de SEI pode ser aplicada a cada um dos pontos de operação do conjunto de pontos de operação independentemente, e não pode ser dividida entre um subconjunto de pontos de operação do conjunto de pontos de operação. Desse modo, as semânticas de um dentre as mensagens de SEI de período de armazenamento temporário, de temporização de figuração, e de informações de unidade de decodificação podem cada uma se aplicar independentemente a cada uma dentre as camadas da lista de camadas até a ID temporal máxima para cada um dos pontos de operação que a mensagem de SEI se aplica. Por exemplo, se uma primeira mensagem de SEI se aplicar a um conjunto de pontos de operação e tiver um valor de payloadType igual a 0, 1 ou 130, então, as semânticas da primeira mensagem de SEI se aplicam independentemente a cada ponto de operação do conjunto de pontos de operação indicado na primeira mensagem de SEI. Adicionalmente, um ou mais semânticas da mensagem de SEI podem ser redefinidas para se aplicarem a um fluxo de bits adequado de cada ponto de operação do conjunto de pontos de operação.
[0152] Aplicando-se independentemente a mensagem de SEI aos pontos de operação com os quais a mensagem de SEI é associada significa que se a mensagem de SEI se aplicar a três pontos de operação 0, 1 e 2 (OP 0, 1 e 2), as semânticas da mensagem de SEI se aplicam a cada um dentre OP 0, OP 1 e OP 2 independentemente. Modificando-se ou esclarecendo-se as semânticas de mensagens de SEI conforme revelado no presente documento, as referências no padrão SHVC/MV-HEVC podem ser modificados e/ou esclarecidos de modo semelhante. Por exemplo, quando a mensagem de SEI se aplica independentemente a cada ponto de operação no conjunto de pontos de operação, conforme descrito acima, a frase "a mensagem de SEI atual" no padrão SHVC/MV-HEVC deve ser lida como uma dentre as mensagens de SEI disponíveis de modo que qualquer coisa que se aplica a tal mensagem de SEI se aplique à mensagem de SEI atual. De modo semelhante, a frase "ponto de operação atual" no MV-HEVC pode ser lida como significando um dentre os pontos de operação disponíveis e qualquer coisa que se aplique a tal um ponto de operação dentre os pontos de operação disponíveis que se aplica ao ponto de operação atual. Os termos "unidade de acesso" e "sequência de vídeo codificado (CVS)" podem se aplicar à unidade de acesso conforme definido pelo ponto de operação atual (isto é, o BitstreamToDecode). Por exemplo, se um fluxo de bits tem quatro camadas (camadas 0, 1, 2 e 3) porém, o ponto de operação atual contém apenas três camadas (camadas 0, 1 e 3), então, a "unidade de acesso" se refere à unidade de acesso que contém as figurações do ponto de operação atual, em outras palavras, as figurações das camadas 0, 1 e 3. Isso se deve ao fato de que quando a decodificação é feita em uma operação particular, as camadas que não são incluídas no conjunto de camadas de tal ponto de operação não serão incluídas no BitstreamToDecode.
[0153] A Figura 4A é um fluxograma 400 que ilustra um método para associar semânticas de uma mensagem de SEI independentemente a cada ponto de operação de um conjunto de pontos de operação ou cada camada de um conjunto de camadas, de acordo com uma modalidade exemplificativa. As etapas ou blocos do fluxograma 400 podem ser realizados por qualquer um dentre os controladores, processadores ou outros componentes dos sistemas de codificação e decodificação descritos acima com relação às Figuras 1 a 3B.
[0154] No bloco 410, o método começa determinando-se a possibilidade de uma mensagem de SEI atual ser uma mensagem de SEI não agrupada que tem um tipo de carga de 0, 1 ou 130 (que indica que a mensagem de SEI não agrupada é mensagem de SEI de período de armazenamento temporário, de temporização de figuração ou de informações de unidade de decodificação, respectivamente). Se a mensagem de SEI for uma mensagem de SEI não agrupada que tem o tipo de carga de 0, 1 ou 130 (por exemplo, se a mensagem de SEI for uma mensagem de SEI de informações de período de armazenamento temporário, de temporização de figuração ou de unidade de decodificação não agrupadas), então, o método progride para o bloco 412. No entanto, se a mensagem de SEI não for uma mensagem de SEI não agrupada que tem um tipo de carga de 0, 1 ou 130 (por exemplo, não for uma mensagem de SEI de período de armazenamento temporário, temporização de figuração, ou de informações de unidade de decodificação não agrupadas), então, o método progride para o bloco 414. No bloco 412, o método aplica semânticas da mensagem de SEI ao ponto de operação que tem a Tid que é uma Tid máxima para o fluxo de bits e contém todas as camadas do fluxo de bits.
[0155] No bloco 414, o método determina a possibilidade de a mensagem de SEI ser uma dentre uma mensagem de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração ou uma mensagem de SEI de informações de unidade de decodificação.Essa determinação é feita identificando-se o valor de um campo (ou semântica) da mensagem de SEI. Em algumas modalidades, esse campo pode ser o campo de payloadType. Em algumas modalidades, o campo de payloadType pode ser um campo inteiro ou outro tipo de tipo de dados, em que o valor armazenado no campo indica o tipo de mensagem de SEI. Por exemplo, quando o valor do campo de payloadType da mensagem de SEI for igual a 0, 1 ou 130, então, a mensagem de SEI pode ser a mensagens de SEI de informações de período de armazenamento temporário, de temporização de figuração ou de unidade de decodificação, respectivamente. Em algumas modalidades, as mensagens de SEI de período de armazenamento temporário, de temporização de figuração e de unidade de decodificação podem se aplicar a um conjunto de pontos de operação, o conjunto compreende um ou mais pontos de operação. Se o campo de payloadType tiver um valor igual a qualquer um exceto {0, 1, 130}, então, a mensagem de SEI pode se aplicar a um ou mais pontos de operação ou camadas e não pode ser uma dentre uma mensagem de SEI de informações de período de armazenamento temporário, de temporização de figuração e de unidade de decodificação. Consequentemente, no bloco 414, se o payloadType da mensagem de SEI for igual a um dentre {0, 1, 130}, então, o método prossegue para o bloco 418. Se o payloadType não for igual a um dentre {0, 1, 130}, então, o método prossegue para o bloco 416. No bloco 416, as semânticas da mensagem de SEI não tiverem um payloadType de um dentre {0, 1, 130} são, cada uma, aplicadas independentemente a cada camada de um conjunto de camadas que a mensagem de SEI se aplica.
[0156] No bloco 418, o método determina a possibilidade de a mensagem de SEI se aplicar a pontos de operação ou camadas. Se a mensagem de SEI se aplicar a pontos de operação, então, o método prossegue para o bloco 420; se a mensagem de SEI se aplicar às camadas, então, o método prossegue para o bloco 422. No bloco 420, as semânticas de mensagem de SEI são aplicadas independentemente a todos os pontos de operação que a mensagem de SEI se aplica. Desse modo, se a mensagem de SEI for identificada como se aplicando a dois pontos de operação, então, cada uma das semânticas da mensagem de SEI se aplica independentemente a cada um dentre dois pontos de operação (e as camadas correspondentes). No bloco 422, quando a mensagem de SEI se aplica às camadas (por exemplo, a um único ponto de operação), as semânticas de mensagem de SEI podem se aplicar ao conjunto de camadas juntos de acordo com a mensagem de SEI e/ou com as semânticas. Por exemplo, cada mensagem de SEI pode compreender um campo (ou semântica) que indica qual camada ou quais camadas da mensagem de SEI se aplicam. As semânticas de mensagem de SEI pode se aplicar de acordo com aquelas indicações.
[0157] Em algumas modalidades, a presença e a associação de mensagens de SEI particulares podem ser dependentes de diversas condições. Por exemplo, conforme descrito acima, em algumas modalidades, a sintaxe e as semânticas de uma mensagem de SEI podem determinar as associações de uma ou mais mensagens de SEI. Em algumas modalidades, as informações encontradas em um cabeçalho de fatia podem modificar ou esclarecer a presença de mensagens de SEI. Por exemplo, a presença da mensagem de SEI de período de armazenamento temporário para um ponto de operação pode ser dependente da unidade de acesso que a mensagem de SEI de período de armazenamento temporário se aplica. Se a unidade de acesso tiver pelo menos uma figuração que não pode ser descartada intencionalmente sem afetar a habilidade para decodificar uma ou mais outras figurações, então, a unidade de acesso pode ter uma mensagem de SEI de período de armazenamento temporário associada a essa. Em tal exemplo, o campo discardable_flag (um campo no cabeçalho de fatia) que indica a habilidade para descartar da figuração associada pode ser igual a "1", que indica que a figuração associada não é descartável sem afetar a capacidade para decodificar a outra figuração. Alternativamente, quando o campo discardable_flag contém um valor de "0", a figuração associada pode ser descartada sem afetar a habilidade para decodificar a outra figuração. Outras mensagens de SEI podem ter condições semelhantes ou diferentes colocadas na presença da mensagem de SEI em associação a uma determinada unidade de acesso, figuração, ponto de operação ou camada.
[0158] A Figura 4B é um diagrama de blocos que ilustra a associação entre uma mensagem de SEI que se aplica a pontos de operação de acordo com uma modalidade da presente revelação. O fluxo de bits de multicamada 450 (também chamado simplesmente de fluxo de bits 450) da Figura 4B inclui uma camada-base 470A (BL 470A que tem um identificador "ID" igual a "0"), uma primeira camada de melhoria 470B (EL 470B que tem um identificador "ID" igual a "1") e uma segunda camada de melhoria 470C (EL 470C que tem um identificador "ID" igual a "2"). Embora o fluxo de bits 450 da Figura 4B seja ilustrado como contendo a camada-base BL 470A e as camadas de melhoria EL 470B e 470C, o fluxo de bits 450 pode incluir mais ou menos camadas de melhoria. Em algumas modalidades, as camadas de melhoria podem ser codificadas com base na codificação da camada-base 470A. Em algumas modalidades, as camadas de melhoria podem compreender vistas diferentes que a camada-base 470A. Um exemplo de um fluxo de bits de multivistas é um fluxo de bits de vídeo tridimensional (3D) que inclui uma camada de vista de olho esquerda e uma camada de vista de olho direito.
[0159] Novamente em referência à Figura 4B, o fluxo de bits 450 inclui uma pluralidade de pontos de operação (OPs) 452 a 460. Cada ponto de operação corresponde a um momento temporal (que tem uma ID temporal) para as camadas BL 470A e EL 470B e 470C. Em algumas modalidades, um ou mais dentre os pontos de operação retratados podem corresponde a uma faixa de momentos temporais, por exemplo, ponto de operação 454 que compreende IDs temporais 0 e 1. Em algumas modalidades, cada uma das camadas pode compreender uma ou mais figurações na determinada ID temporal do ponto de operação correspondente. Em algumas modalidades, um ponto de operação pode compreender mais que uma ID temporal, tal como uma faixa de pontos temporais, embora não seja mostrado nessa Figura. Na modalidade da Figura 4B, uma mensagem de SEI 451 representa uma mensagem de SEI que se aplica a um conjunto de um ou mais pontos de operação (por exemplo, quando a mensagem de SEI compreende uma dentre as mensagens de SEI de informações de período de armazenamento temporário, de temporização de figuração e de unidade de decodificação). Conforme mostrado pela hachura da mensagem de SEI 451 em conjunto com a descrição acima, as semânticas da mensagem de SEI 451 podem ser aplicadas independentemente a cada ponto de operação do conjunto de pontos de operação que a mensagem de SEI 451 se aplica, isto é, pontos de operação OP 452 e OP 454. Desse modo, conforme mostrado pela Figura 4B, a mensagem de SEI 451 se aplica independentemente a cada um dentre o ponto de operação OP 452, conforme indicado pela seta 461, e o ponto de operação OP 454, conforme indicado pela seta 462.
[0160] Conforme descrito acima, a mensagem de SEI pode se aplicar como uma ou mais camadas de um conjunto de camadas (por exemplo, em vez de a um ou mais pontos de operação de um conjunto de um ou mais pontos de operação). Consequentemente, as semânticas da mensagem de SEI podem se aplicar a cada camada do conjunto de camadas que tem um identificador que corresponde a um valor de um campo-alvo da mensagem de SEI. Por exemplo, se uma segunda mensagem de SEI se aplicar a um conjunto de uma ou mais camadas, então, as semânticas da segunda mensagem de SEI pode se aplicar independentemente a cada camada que tem um valor de identificador igual ao valor do campo-alvo da segunda mensagem de SEI, em que cada camada pertence ao conjunto de uma ou mais camadas.
[0161] A Figura 4C é um diagrama de blocos que ilustra a associação entre a mensagem de SEI que se aplica a camadas e a uma pluralidade de figurações de acordo com uma modalidade da presente revelação. O fluxo de bits de multicamada 480 (também chamado simplesmente de fluxo de bits 480) da Figura 4C é semelhante aquele da Figura 4B exceto pelo fato de que a Figura 4C compreende figurações e unidades de acesso em vez de pontos de operação associados a cada camada, enquanto que a Figura 4B compreende identificadores temporais associados a cada camada. Consequentemente, cada AU 482 a 488 inclui uma figuração a partir de cada camada. Por exemplo, AU 482 inclui a figuração 472A de BL 470A, figuração 472B de EL 470B e figuração 472C de EL 470C.
[0162] Também mostrado na Figura 4C duas mensagens de SEI. As duas mensagens de SEI podem ser mensagens de SEI de ponto de recuperação, e, desse modo, podem ter um valor de payloadType de "6". Desse modo, as duas mensagens de SEI de ponto de recuperação podem se aplicar a pelo menos uma camada de um conjunto de camadas, e as duas mensagens de SEI de ponto de recuperação podem, cada uma, incluir uma semântica de targetLayerld que compreende valores de "1" e "2" respectivamente. Desse modo, as mensagens de SEI de ponto de recuperação podem, cada uma, se aplicar respectivamente às camadas particulares que tem o valor de nuh_layer_id de "1" e "2". Na modalidade ilustrada pela Figura 4C, a figuração 472C pode ser indicada como a figuração de ponto de recuperação da mensagem de SEI de ponto de recuperação que tem o valor de targetLayerld de "2", enquanto a figuração 476B pode ser indicada como a figuração de ponto de recuperação da mensagem de SEI de ponto de recuperação que tem o valor de targetLayerld de "1".
[0163] Em algumas modalidades, quando a mensagem de SEI for um dentre um retângulo de tela cheia, um início de segmento de refinamento progressivo, uma característica de grão de filme, informações de mapeamento de tom, uma disposição de compactação de quadro e uma mensagem de SEI de orientação de exibição, as semânticas da mensagem de SEI relacionadas ao escopo de persistência podem ser esclarecidas para serem específicas para camada. Por exemplo, as mensagens de SEI listadas acima podem incluir sintaxe que especifica a persistência para a camada atual. A sintaxe para cada mensagem de SEI listada pode incluir um valor de persistence_flag (isto é, um film_grain_characteristics_persistence_flag ou um tone_map_persistence_flag). A sintaxe de sinalizador de persistência pode indicar a persistência para a camada atual até que uma nova CVS comece, até que o fluxo de bits atual termine, ou até que outra figuração na camada atual que tenha outra mensagem de SEI do mesmo tipo que se aplica à camada atual comece a ser decodificado. Consequentemente, as semânticas da mensagem de SEI correspondente podem se aplicar apenas para a camada atual ou uma camada específica ou camadas específicas, conforme indicado pela mensagem de SEI. Por exemplo, com referência às mensagens de SEI discutidas acima, quando uma dentre as mensagens de SEI é indicada como aplicada à segunda camada (por exemplo, o valor do targetLayerld é 2), então, as semânticas de tal mensagem de SEI (por exemplo, uma film_grain_characteristics_cancel_flag e film_grain_characteristics_persistence_flag de uma mensagem de SEI de características de grão de filme da mensagem de SEI de características de grão de filme) podem se aplicar à segunda camada, e, desse modo, podem especificar que as semânticas relacionadas a persistência associadas se aplicam a tal camada (isto é, camada 2). Essas semânticas relacionadas a persistência podem se aplicar até que uma nova CVS comece, o fluxo de bits termine ou outra figuração na camada 2 tenha mensagem de SEI de características de grão de filme aplicável a camada 2 e tendo um valor de POC maior que começa a ser decodificado.
[0164] Em algumas modalidades, uma mensagem de SEI de índice zero de subcamada temporal pode fornecer informações que podem ser usadas para auxiliar um decodificador a detectar figurações codificadas ausentes. As SEI de índice zero de subcamada temporal podem fornecer um índice para uma figuração com Tid igual a 0 de modo que o decodificador possa estar ciente se o mesmo ver uma figuração com Tid igual a 0, porém, seu índice tem uma lacuna de uma figuração anterior que tem Tid igual a 0. A lacuna normalmente ocorre se houver figuração perdida. Desse modo, essas SEI terão a capacidade para ajudar a decodificador para entender que há uma figuração perdida. No entanto, pode haver um problema quando uma figuração com Tid igual a 0 também for uma figuração descartável (isto é, sua discardable_flag é igual a 0). Quando a figuração descartável tiver Tid igual a 0 e for descartada (removida) do fluxo de bits (por uma entidade - por exemplo, roteador inteligente) antes de alcançar o decodificador, o decodificador pode erroneamente pensar que há uma figuração perdida em que na verdade não houve perda, porém, em vez disso, foi removida intencionalmente.
[0165] A mensagem de SEI de índice zero de subcamada temporal pode incluir um syntax_element_temporal_sub_layer_zero_idx que indica o índice zero de subcamada temporal para a figuração atual quando a figuração atual tiver uma ID temporal (Tid) igual a zero. Alternativamente, o elemento de sintaxe temporal_sub_layer_zero_idx pode indicar o índice zero de subcamada temporal para a figuração precedente na camada atual na ordem de decodificação com um Tid igual a 0. Em algumas modalidades, as semânticas da mensagem de SEI de índice zero de subcamada temporal podem ser esclarecidas para considerar um valor de um elemento discardable_flag do cabeçalho de fatia, por exemplo, de uma figuração. Por exemplo, o elemento temporal_sub_layer_zero_idx pode ser delimitado de modo que o valor do elemento é aumentado apenas quando a figuração atual é uma figuração-âncora que não pode ser descartada intencionalmente sem afetar a habilidade para decodificar outra figuração. Por exemplo, se a figuração atual tiver um Tid maior que 0 ou o valor discardable_flag da figuração atual for 0, que indica que a figuração atual é descartável, então, o valor temporal_sub_layer_zero_idx não será incrementado. Consequentemente, quando se modifica ou atribui um valor ao elemento temporal_sub_layer_zero_idx, as semânticas da mensagem de SEI de índice zero de subcamada temporal são modificadas para considerar o valor do elemento discardable_flag do cabeçalho de fatia para figurações associadas.
[0166] Conjuntos de Parâmetro de Sequência (SPS)
[0167] Alguns esquemas de codificação de vídeo podem incluir adicionalmente conjuntos de parâmetros tais como SPS. Um conjunto de parâmetros pode transportar determinados parâmetros de controle comuns para o decodificador visto que os mesmos pertencem a uma ou mais fatias codificadas. Com os parâmetros contidos dentro do conjunto de parâmetros transmitidos independentemente das fatias codificadas pode-se aprimorar a eficácia, visto que as informações que se aplicam a múltiplas fatias codificadas podem ser enviadas uma única vez, em oposição a serem enviadas individualmente para cada fatia codificada. Em algumas modalidades, o SPS pode compreender um ou mais parâmetros que são comuns para uma sequência de vídeo. Por exemplo, o SPS pode compreender informações com relação ao tamanho de um quadro de vídeo ou limitações de decodificador, tal como o número máximo de quadros de referência. Adicionalmente, cada SPS pode compreender um identificador único identificado dentro do SPS. O SPS pode permanecer "inativo" até ser ativado por um PPS que é ativado, eficazmente, por uma unidade de acesso de atualização de decodificador instantânea (IDR). O SPS pode permanecer ativo até o processamento da sequência de vídeo codificado que o SPS se aplica ser completado.
[0168] Em esquemas de codificação de camada única convencionais (por exemplo, HEVC), uma sequência de vídeo contém uma sequência de unidades de acesso em que cada uma contém unicamente uma única figuração. Visto que cada unidade de acesso da sequência de vídeo contém uma única figuração, o SPS associado à sequência de vídeo é conhecido por ser associado às figurações únicas dentro das unidades de acesso. Por exemplo, um SPSO é enviado no começo de uma sequência de vídeo. A sequência de vídeo pode compreender um IDRO que ativa SPSO, seguido por múltiplas fatias. O decodificador pode usar os parâmetros de SPSO até um IDR1 subsequente ativar um SPS1 comunicado de modo subsequente. Desse modo, o decodificador usa os parâmetros de SPSO para decodificar para múltiplas fatias entre o IDRO e o IDR1. Adicionalmente, em esquemas de camada única convencionais, apenas um SPS pode ser sinalizado em um conjunto de parâmetros ativado.
[0169] No entanto, conforme discutido acima, as unidades de acesso de esquemas de codificação de multicamada podem incluir uma figuração separada para cada camada do fluxo de bits. Em outras palavras, conforme também discutido acima, em um fluxo de bits de multicamada, uma única unidade de acesso pode conter (isto é, incluir ou compreender) uma pluralidade de figurações em uma pluralidade de camadas. Visto que em esquemas de codificação de camada única convencionais os SPS são associados à única camada que tem a única figuração, esses esquemas de codificação de camada única podem não ter as semânticas exigidas para definir como um ou mais SPS se relacionam precisamente como uma ou mais camadas dentre a pluralidade possível de camadas dentro de um esquema de codificação de multicamada. Desse modo, um problema ou uma ambiguidade pode se desenvolver quando o número de SPS for menor que o número de camadas no fluxo de bits ou quando o número de SPS for maior que o número de camadas no fluxo de bits, visto que a associação de SPS às camadas pode não ser clara.
[0170] Essa ambiguidade relacionada aos SPS nos esquemas convencionais permite implantações de encriptadores ou decodificadores de vídeo para associar os múltiplos SPS a uma camada dentre a pluralidade possível de camadas dentro de uma unidade de acesso de um esquema de codificação de multicamada sem restrição. Consequentemente, o comportamento desses encriptadores e decodificadores de vídeo com relação aos múltiplos SPS não é previsível e pode variar entre implantações diferentes de modo que essas implantações diferentes não possam criptar/decodificar uma sequência de vídeo consistentemente. Desse modo, um outro objetivo da presente revelação é introduzir um mecanismo para mapear ou sinalizar como múltiplos SPS devem ser associados inequivocamente a múltiplas camadas em uma mensagem de SEI de conjuntos de parâmetros ativos dentro um esquema de codificação de multicamada. Adicionalmente, as limitações no número de SPS que podem ser sinalizadas em uma mensagem de SEI de conjunto de parâmetros ativos pode ser afrouxado para permitir mais que um SPS seja sinalizado em uma única mensagem de SEI de conjuntos de parâmetros ativos.
[0171] O mecanismo para sinalizar a maneira que os múltiplos SPS devem ser associados inequivocamente a múltiplas camadas por uma mensagem de SEI de conjuntos de parâmetros ativos pode indicar a camada que cada SPS deve ser aplicado. O mecanismo pode atribuir uma camada específica para cada SPS específico de modo que o SPS seja entendido como associado à camada específica. Em algumas modalidades, o mecanismo pode atribuir um SPS específico a cada camada específica de modo que a camada seja entendida como associada ao SPS específico. Dentro do mecanismo, ou além do mecanismo, as limitações existentes que limitam o número de SPS sinalizado em uma mensagem de SEI de conjunto de parâmetros ativos podem ser removidas de modo a permitir que múltiplos SPS sejam sinalizados por uma única mensagem de SEI de conjunto de parâmetros ativos.
[0172] Em algumas modalidades, o mecanismo pode compreender instituir uma associação em laço de modo que para cada SPS específico, uma camada particular seja atribuída ao SPS. Por exemplo, na mensagem de SEI de conjuntos de parâmetros ativos discutidos acima, uma nova semântica poder ser adicionada que representa um campo que inclui um valor que indica a camada que um SPS particular se aplica. Dentro da mensagem de SEI de conjuntos de parâmetros ativos, um primeiro SPS que tem um identificador será atribuído para uma camada específica conforme indicado na nova semântica (isto é, target_nuh_layer_id[i]). Desse modo, para cada SPS identificado pela mensagem de SEI de conjuntos de parâmetros ativos, uma camada particular será atribuída como a camada associada, de maneira de associação em laço, até que cada SPS tenha uma camada atribuída a essa. Alternativa ou adicionalmente, a mensagem de SEI de conjuntos de parâmetros ativos (ou uma mensagem de SEI definida recentemente ou outra mensagem) pode associar cada camada de uma pluralidade de camadas a um ou mais SPS. Semelhante ao descrito acima, um laço de associação pode atribuir um ou mais SPS específico a cada camada com maneira de associação em laço até cada camada ter um ou mais SPS atribuídos a mesma.
[0173] A Figura 5 mostra uma sintaxe 500 que pode ser usada para comunicar semânticas de mensagem de SEI de conjuntos de parâmetros ativos. Essa sintaxe 500 pode ser comunicada na mensagem de SEI de uma unidade de acesso ou figuração e pode ser destinada a fornecer informações necessárias em relação ao tipo de mensagem de SEI, ao tamanho da mensagem de SEI, e diversos outros aspectos das semânticas de mensagem de SEI. Embora a Figura atual 5 retrate diversos elementos da mensagem de SEI de conjuntos de parâmetros ativos, a sintaxe 500 pode incluir mais ou menos componentes que os ilustrados na Figura 5. Adicional ou alternativamente, as mesmas sintaxes ou sintaxes semelhantes à sintaxe 500 podem ser usadas para comunicar semânticas de mensagem de SEI para outros tipos de mensagens de SEI (por exemplo, mensagens de SEI de temporização de figuração, informações de unidade de decodificação, característica de grão de filme, instantâneo de figurações e informações situação, entre outros). Consequentemente, nem todas as semânticas (ou campos) da sintaxe 500 podem ser definidos no presente documento. Tal falta de definição não pode ser interpretada como representativa de importância de função. Conforme mostrado, a sintaxe 500 inclui uma amostragem de campos (ou semânticas) úteis para descrever recursos proeminentes de implantações dentro do escopo das reivindicações e pode incluir um ou mais campos adicionais que não são mostrados ou pode incluir um ou mais campos que podem não ser utilizados em todas as modalidades.
[0174] A sintaxe 500 pode incluir as semânticas payloadType 502 e payloadSize 504, assim como pode incluir todas as outras sintaxes de mensagens de SEI. PayloadType 502 tem um comprimento de um byte, e pode incluir valores que indicam o tipo de mensagem de SEI que a sintaxe 500 está associada. Por exemplo, a payloadType 502 pode incluir um valor de 0 ou 1 que indica um período de armazenamento temporário ou uma mensagem de SEI de temporização de figuração. Com um tamanho de um byte, a payloadType 502 pode indicar uma dentre 256 mensagens de SEI diferentes. A sintaxe 500 inclui adicionalmente uma semântica de tamanho de carga 504. A payloadSize 504 pode ser de tamanho variável especificado em bytes e pode ser igual ao número de bytes de carga de sequência de byte brutos na carga de mensagem de SEI.
[0175] A sintaxe 500 inclui adicionalmente uma semântica active_video_parameter_set_id 506 que tem um comprimento de quatro bits. A active_video_parameter_set_id 506 pode indicar um valor de identificação de um conjunto de parâmetros de vídeo (VPS) que é referido pelas unidades associadas a uma mensagem de SEI. Em algumas modalidades, o valor de active_video_parameter_set_id 506 pode estar na faixa de 0 a 15, inclusive. A sintaxe 500 inclui adicionalmente uma semântica self_contained_cvs_flag 508 que tem um comprimento de um bit e uma no_parameter_set_update_flag 510 que tem um comprimento de um bit. A self_contained_cvs_flag 508 indica que cada conjunto de parâmetros referido por uma unidade precede qualquer unidade que se refere ao conjunto de parâmetros, enquanto que a no_parameter_set_update_flag 510 indica que nenhum conjunto de parâmetros precisa ser atualizado. A sintaxe 500 inclui adicionalmente uma semântica num_sps_ids_minus1 512 que tem um comprimento de um tipo de dados variável e que indica o número de SPSs que são referidos pelas unidades da unidade de acesso associadas a uma mensagem de SEI de conjuntos de parâmetros ativos. Adicionalmente, uma semântica active_seq_parameter_set_id[i] 514 é incluída na sintaxe 500. A active_seq_parameter_set__id[i] 514 pode indicar o valor que identifica o SPS que é referido pelas unidades que tem uma nuh_layer_id na faixa de target_nuh_layer_id[i] da unidade de acesso associada a uma mensagem de SEI. Finalmente, a sintaxe 500 conforme mostrado pode incluir uma semântica target_nuh_layer_id[i] 516 que pode ser configurada para especificar a targetLayerld associada à active_seq_parameter_set__id[i]. O mecanismo referido acima pode fazer uso particular da active_seq_parameter_set_id[i] e target_nuh_layer_id[i] no laço de associação.
[0176] Mensagens de SEI de Ponto de Recuperação e Derivações de POC
[0177] Em alguns esquemas de codificação de vídeo, pode ser possível iniciar a decodificação do fluxo de bits entre figurações de FRAP. Isso pode permitir um retorno mais rápido a um fluxo de vídeo decodificado adequadamente quando, por exemplo, uma porção do fluxo de bits é perdida durante a transmissão ou durante a decodificação, ou para a iniciação mais rápida da decodificação de um vídeo de transmissão ao vivo. No entanto, quando a iniciação da decodificação de um fluxo de vídeo em um ponto de acesso aleatório entre as figurações de FRAP, o fluxo de vídeo decodificado pode não ter uma qualidade aceitável para exibição devido à confiança do processo de decodificação em figurações que precedem o ponto de acesso aleatório uma ordem de decodificação.
[0178] Conforme mencionado anteriormente, alguns esquemas de codificação de vídeo inclui uma mensagem de SEI de ponto de recuperação que pode auxiliar um decodificador na determinação de quando o processo de decodificação produzirá figurações aceitáveis para a exibição. Quando o decodificador iniciar um acesso aleatório ou reiniciar a decodificação após um enlace interrompido, o decodificador pode ter a capacidade para determinar quando as figurações decodificadas são aceitáveis para a exibição com base em uma mensagem de SEI de ponto de recuperação incluída no fluxo de bits. A mensagem de SEI de ponto de recuperação especifica um ponto de recuperação na ordem de saída de figuração decodificada que indica quando os processos de decodificação são iniciados a partir da unidade de acesso que contém uma mensagem de SEI de ponto de recuperação, todas as figurações decodificadas em ou subsequentes ao ponto de recuperação na ordem de saída podem ser corretas ou aproximadamente corretas no conteúdo. Tais mensagens de SEI de ponto de recuperação do não exigem que as figurações decodificadas produzidas com base na decodificação do fluxo de bits após um acesso aleatório e/ou antes da figuração associada ao ponto de recuperação estão na ordem correta para as figurações decodificadas após o ponto de recuperação para ter conteúdo decodificado correto ou aproximadamente correto. Ademais, as mensagens de SEI de ponto de recuperação podem não exigir que as figurações que são referidas pela decodificação do fluxo de bits após um acesso aleatório e/ou antes da figuração associada ao ponto de recuperação estejam disponíveis.
[0179] Em esquemas de codificação de camada única convencionais (por exemplo, HEVC), cada unidade de acesso contém unicamente uma única figuração. Visto que cada unidade de acesso contém uma única figuração, os termos "unidade de acesso" e "figuração" tiveram a capacidade para serem usados de modo intercambiável no contexto de esquemas de codificação de camada única, por exemplo, com relação à utilização de mensagens de SEI de ponto de recuperação. No entanto, as unidades de acesso de esquemas de codificação de multicamada podem incluir uma figuração separada para cada camada do fluxo de bits. Em outras palavras, em um fluxo de bits de multicamada, uma única unidade de acesso pode conter (isto é, incluir ou compreender) uma pluralidade de figurações. Visto que em esquemas de codificação de camada única convencionais as mensagens de SEI de ponto de recuperação são associadas a uma unidade de acesso, esses esquemas de codificação de camada única podem não ter as semânticas exigidas para definir como uma mensagem de SEI de ponto de recuperação se relaciona precisamente como uma ou mais figurações dentre uma pluralidade possível de figurações dentro de uma unidade de acesso de um esquema de codificação de multicamada. Essa ambiguidade relacionada às mensagens de SEI de ponto de recuperação em esquemas convencionais permite implantações de encriptadores ou decodificadores de vídeo para associar as mensagens de SEI de ponto de recuperação às figurações dentre a pluralidade possível de figurações dentro de uma unidade de acesso de um esquema de codificação de multicamada sem restrição. Consequentemente, o comportamento desses encriptadores e decodificadores de vídeo com relação às mensagens de SEI de ponto de recuperação não é previsível e pode variar entre implantações diferentes de modo que essas implantações diferentes não possam criptar/decodificar uma sequência de vídeo consistentemente.
[0180] Adicionalmente, em esquemas de codificação de camada única, uma unidade de acesso que compreende uma mensagem de SEI de ponto de recuperação pode redefinir o valor do POC para zero em uma mensagem de SEI de ponto de recuperação. Adicionalmente, outros valores da figuração ou decodificador podem ser redefinidos ou sinalizados para serem definido para um valor especificado com base em uma mensagem de SEI de ponto de recuperação. Por exemplo, um valor de uma contagem de ordem de figuração anterior pode ser redefinido para 0 ou uma semântica poc_msb (bit mais significativo da contagem de ordem de figuração) também pode ser definida para 0 em uma mensagem de SEI de ponto de recuperação.
[0181] Em SHVC/MV-HEVC, o POC para uma figuração atual que tem uma mensagem de SEI de ponto de recuperação pode ser calculado com base na poc_msb sinalizada no cabeçalho de fatia para a figuração atual. De modo geral, quando não for definido pela mensagem de SEI de ponto de recuperação, o valor de poc_msb para a figuração atual pode ser com base na poc_msb da figuração anterior. Desse modo, quando a poc_msb for sinalizada no cabeçalho de fatia da figuração atual, a poc_msb da figuração atual pode ser definida para a poc_msb sinalizada. No entanto, visto que a poc_msb da figuração associada à mensagem de SEI de ponto de recuperação é definida para zero, quando a poc_msb da figuração atual (isto é, que segue a figuração, na ordem de decodificação, associada a uma mensagem de SEI de ponto de recuperação que teve a poc_msb definida para zero) deve ser definida de acordo com o valor sinalizado, há um problema devido ao fato de que o valor sinalizado e o valor derivado podem não ser compatíveis.
[0182] Em esquemas de codificação de multicamada, há um mecanismo para sinalizar o valor de poc_msb. Os valores de poc_msb das figurações pode ser sinalizado em cabeçalhos de fatia. Em algumas modalidades, sob tal mecanismo, quando a decodificação de uma figuração atual que tem um valor sinalizado de poc_msb no cabeçalho de fatia, o valor de poc_msb para a figuração atual não deve ser calculado com base em semânticas de figuração anteriores, porém, em vez disso, o valor na poc_msb sinalizada no cabeçalho de fatia deve ser usada apenas como o valor de poc_msb para a figuração atual. Um problema ocorre devido ao fato de que, sob o esquema de codificação de camada única, um acesso aleatório a uma figuração que tem uma mensagem de SEI de ponto de recuperação redefine a poc_msb (define a poc_msb para 0) e o POC. No entanto, nos esquemas de codificação de multicamada, se a poc_msb para a figuração atual for definida simplesmente para zero conforme designado pelos esquemas de codificação existentes, porém, a figuração subsequente tem um valor de poc_msb sinalizada (como um valor diferente de 0) no cabeçalho de fatia, é gerado um conflito, devido ao fato de que as figurações subsequentes não podem derivar corretamente o valor de poc_msb devido ao valor sinalizado de poc_msb e ao valor de zero anterior. Por exemplo, uma figuração, picA, está na mesma camada que a figuração associada à mensagem de SEI de ponto de recuperação e segue a figuração associada à mensagem de SEI de ponto de recuperação na ordem de decodificação. A picA tem um valor de derivação de contagem de ordem de figuração sinalizado (por exemplo poc_msb_val). Consequentemente, A derivação do POC da picA pode não ser clara ou incorreta.
[0183] Desse modo, ao decodificar uma figuração que tem uma mensagem de SEI de ponto de recuperação, as semânticas de POC não devem ser simplesmente redefinidas para 0 ou sinalizadas para outro valor. Em vez disso, as semânticas da mensagem de SEI de ponto de recuperação devem ser modificadas para fornecer uma derivação de um valor do POC da figuração que é associado a uma mensagem de SEI de ponto de recuperação quando o processo de decodificação começa a partir de uma camada que é associada a uma mensagem de SEI de ponto de recuperação. Em algumas modalidades, isso pode envolver inferir um ou mais valores de semânticas de POC. Adicionalmente, as semânticas da mensagem de SEI de ponto de recuperação podem ser modificadas para introduzir limitações que governam a presença de mensagens de SEI de ponto de recuperação em uma unidade de acesso ou a associação de uma mensagem de SEI de ponto de recuperação a uma figuração. Consequentemente, em esquemas de codificação de multicamada, quando um acesso aleatório é realizado e a decodificação começa a partir a partir da unidade de acesso que contém uma mensagem de SEI de ponto de recuperação, o valor de poc_msb pode não ser definido para zero, porém, em vez disso o valor de poc_msb pode ser recalculado com base no mecanismo definido no padrão para calcular a poc_msb. Desse modo, quando acesso aleatório é realizado e decodificação começa a partir da unidade de acesso que contém a mensagem de SEI de ponto de recuperação, o decodificador pode operar como se a unidade de acesso associada fosse a primeira unidade de acesso no fluxo de bits na ordem de decodificação. Adicionalmente, se a semântica que indica que o valor de poc_msb está presente para a figuração atual for igual a 1 (poc_msb_val_present_flag da figuração atual = 1), então, a PicOrderCntMsb variável pode ser calculada para ser poc_msb_val * MaxPicOrderCntLsb. Se a poc_msb_val_present_flag = 0, então, a PrevPicOrderCnt[nuh_layer_id] é definida para 0.
[0184] Alternativa ou adicionalmente, diversas limitações podem ser colocadas no lugar para governar a presença de uma mensagem de SEI de ponto de recuperação em uma unidade de acesso ou a associação de uma mensagem de SEI de ponto de recuperação a uma figuração. Por exemplo, em algumas modalidades, pode ser exigido que as seguintes condições sejam cumpridas para que uma mensagem de SEI de ponto de recuperação para se aplique a uma camada atual:a. Quando uma camada, layerA, tiver pelo menos uma camada de referência e uma ou mais figurações que pertencem a layerA e sua pelo menos uma camada de referência em uma unidade de acesso particular tiver semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 0 (por exemplo, poc_msb_val_present_flag igual a 0) e tiver uma semântica que indica que a indicador de redefinição de POC for igual a 0 (por exemplo, poc_reset_idc igual a 0), então, tal unidade de acesso particular pode não conter uma mensagem de SEI de ponto de recuperação que se aplica a um conjunto de camadas que contém apenas a layerA e suas camadas de referência.b. Alternativa ou adicionalmente, quando a camada, layerA, tiver uma semântica de id de semântica maior que zero (por exemplo, nuh_layer_id > 0) e a figuração de layerA em uma unidade de acesso particular tiver uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 0 (por exemplo, poc_msb_val_present_flag igual a 0) e tiver uma semântica que indica que o indicador de redefinição de POC é igual a 0 (por exemplo, poc_reset_idc igual a 0), então, tal unidade de acesso pode não conter uma mensagem de SEI de ponto de recuperação que se aplica apenas a layerA.c. Alternativa ou adicionalmente, quando uma figuração, picA, que pertence a uma camada que tem uma semântica de id de semântica igual a 0 (por exemplo, nuh_layer_id = 0) e qualquer figuração que suceda, na ordem de decodificação, a figuração picA e preceda, na ordem de decodificação, a próxima figuração de FRAP com NoRaslOutputFlag igual a 1 e id de camada igual a 0, que inclui picA e a próxima figuração de IRAP, tem uma slice_segment_header_extension_length maior que 0, poc_msb_val_present_flag igual a 0 e poc_reset_idc igual a 0, então, a unidade de acesso que contém picA pode não conter uma mensagem de SEI de ponto de recuperação que se aplica apenas à camada que id de camada igual a 0.
[0185] Alternativamente, as seguintes condições podem ser adicionadas:a. Se a mensagem de SEI de ponto de recuperação for agrupada e se aplicar a mais que uma camada, então, todas as figurações das camadas que uma mensagem de SEI de ponto de recuperação se aplica na unidade de acesso atual pode ter uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1) ou ter uma semântica que indica que o indicador de redefinição de POC é igual a 0 (por exemplo, poc_reset_idc igual a 0).b. De outro modo, se a mensagem de SEI de ponto de recuperação (agrupada ou não agrupada) se aplicar apenas a uma camada que tem id de camada maior que 0 (nuh_layer_id > 0), então, a figuração da camada que pertence à unidade de acesso atual pode ter uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1) ou pode ter uma semântica que indica que o indicador de redefinição de POC é igual a 0 (por exemplo, poc_reset_idc igual a 0).c. De outro modo (a mensagem de SEI de ponto de recuperação se aplica apenas à camada com id de camada igual a 0 (nuh_layer_id = 0)), quando houver pelo menos uma figuração que sucede, na ordem de decodificação, a figuração atual e precede, na ordem de decodificação, a próxima figuração de IRAP com NoRaslOutputFlag igual a 1, que inclui a figuração atual e a próxima figuração de IRAP, com o valor do elemento de sintaxe slice_segment_header_extension_length maior que 0, a figuração atual da camada que pertence à unidade de acesso atual pode ter uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1) ou pode ter uma semântica que indica que o indicador de redefinição de POC é igual a 0 (por exemplo, poc_reset_idc igual a 0.
[0186] Alternativamente, as seguintes limitações podem ser adicionadas:a. Se houver qualquer figuração em qualquer um dentre as camadas que a mensagem de SEI atual se aplica em uma unidade de acesso que segue, na ordem de decodificação, a unidade de acesso atual tiver poc_msb_val_present_flag presente, cada figuração em qualquer uma dentre as camadas que as mensagens de SEI atuais se aplicam que pode uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1) ou pode ter uma semântica que indica que o indicador de redefinição de POC é igual a 0 (por exemplo, poc_reset_idc igual a 0.
[0187] Alternativamente, as seguintes limitações podem ser aplicadas:a. Se houver qualquer figuração em qualquer uma dentre as camadas que uma mensagem de SEI atual se aplica em uma unidade de acesso que segue a unidade de acesso atual na ordem de decodificação tem poc_msb_val_present_flag presente, cada figuração em qualquer uma dentre as camadas que as mensagens de SEI atuais se aplicam pode ter poc_msb_val_present_flag igual a 1.
[0188] Alternativamente, as seguintes limitações podem ser aplicadas:b. Se as SEI atuais se aplicarem a apenas uma camada com id de camada maior que 0 (nuh_layer_id > 0), a figuração atual pode ter uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1).c. Além disso, se as SEI atuais se aplicarem a mais que uma camada, que inclui a camada-base, todas as figurações na unidade de acesso atual em todas as camadas que o ponto de recuperação SEI se aplica podem ter uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI igual a 1 (por exemplo, poc_msb_val_present_flag igual a 1).d. Além disso, se slice_segment_header_extension_length for maior que 0 e uma semântica que indica que o valor de poc_msb está presente no cabeçalho de SEI for igual a 0 (por exemplo, poc_msb_val_present_flag igual a 0) para a figuração atual, a mensagem de SEI de ponto de recuperação pode não estar presente.
[0189] Mensagens de SEI de Informações de Atualização de Região
[0190] Alguns esquemas de codificação de vídeo incluem adicionalmente mensagens de SEI de informações de atualização de região (também chamadas de mensagens de SEI de atualização de região). A mensagem de SEI de atualização de região, que é associada a uma mensagem de SEI de ponto de recuperação, indica a possibilidade de as regiões (por exemplo, segmentos de fatia) de uma figuração atual, que a mensagem de SEI de atualização de região atual se aplica/corresponde, pertencer a uma região atualizada (ou a região não atualizada) da figuração atual. Em outras palavras, SEI de atualização de região incluem informações que indicam a possibilidade de as fatias individuais de uma figuração correspondente estarem corretas ou aproximadamente corretes no conteúdo após a decodificação. A mensagem de SEI de atualização de região é usada em combinação com uma mensagem de SEI de ponto de recuperação. As mensagens de SEI de atualização de região estabelecem que se começando-se a decodificação a partir da figuração que tem uma mensagem de SEI de ponto de recuperação, começando a partir da próxima figuração após a figuração que tem a mensagem de SEI de ponto de recuperação até a figuração de ponto de recuperação, o número de regiões que são decodificados corretamente para cada figuração entre a mensagem de SEI de ponto de recuperação figuração e a figuração de ponto de recuperação será alterado até que tudo seja decodificado corretamente (ou decodificado de modo substancial ou aproximadamente correto) na figuração de ponto de recuperação.
[0191] Conforme descrito acima, em esquemas de codificação de vídeo convencionais uma unidade de acesso é associada unicamente a uma figuração. Desse modo, nesses esquemas convencionais, as mensagens de SEI de informações de atualização de região são associadas a uma unidade de acesso, e, desse modo, associadas unicamente a uma figuração. Adicionalmente, em esquemas de codificação convencionais, limitações de intercamada e/ou previsões podem não ser uma preocupação devido ao fato de que pode não haver figurações em outras camadas a serem associadas. No entanto, em esquemas de codificação de multicamada uma unidade de acesso pode conter mais que uma figuração. Adicionalmente, a mensagem de SEI de atualização de região associada a uma mensagem de SEI de ponto de recuperação e limitações de previsão usadas para definir semânticas da mensagem de SEI de atualização de região podem não considerar as restrições de previsão de intercamada. Isso pode causar um problema em HEVC de multicamada (por exemplo, SHVC/MV-HEVC).
[0192] Quando decodificar camadas que não são a camada-base, a previsão de intercamada pode ser considera, que significa que uma figuração que está em uma camada diferente da camada-base pode depender de uma figuração correspondente, e que a dependência pode ser considerada para determinar se a região está atualizada.Por exemplo, uma região de uma determinada figuração em uma camada de referência pode ser atualizada quando a determinada figuração depende de uma figuração correspondente na camada-base e tanto a figuração correspondente (ou pelo menos a região correspondente da figuração correspondente) na camada-base quanto a determinada figuração foram atualizadas. Desse modo, qualquer figuração ou região referenciada por outra figuração ou região que é considerada como atualizada também pode ter sido atualizada.
[0193] As semânticas de esquemas de codificação de vídeo convencionais não consideram necessariamente tais dependências de intercamada ou limitações de previsão. Consequentemente, outro objetivo da presente revelação é esclarecer as semânticas de mensagens de SEI de informações de atualização de região de modo que dependências de intercamada e/ou limitações de previsão sejam consideradas ao identificar regiões atualizadas.
[0194] Em esquemas de codificação de multicamada, mensagens de SEI de informações de atualização de região (associadas a uma mensagem de SEI de ponto de recuperação) que fornecem informações de atualização de região para figurações em camadas de referência podem considerar limitações de previsão de intercamada e de intracamada. Por exemplo, em algumas modalidades, se uma região de uma figuração for declarada atualizada, tal região pode ser intraprevista, que significa que a mesma foi decodificada sem dependência de outras regiões, ou a mesma é interprevista, que significa que a mesma foi decodificada pela dependência de outras regiões que já foram atualizadas.
[0195] Por exemplo, a decodificação de uma primeira figuração em uma camada de referência (ou qualquer camada) pode depender de informações de uma ou mais segundas figurações em uma camada-base. Em algumas modalidades, a segunda figuração que a primeira figuração depende está na mesma unidade de acesso ou em uma unidade de acesso diferente que a primeira figuração. Desse modo, quando uma mensagem de SEI de atualização de região indicar a possibilidade de uma ou mais regiões da primeira figuração serem atualizadas, a mensagem de SEI de atualização de região deve considerar o fato de que a primeira figuração depende das informações de uma ou mais segundas figurações. Se as uma ou mais regiões da primeira figuração indicadas pela mensagem de SEI de atualização de região como atualizadas dependerem de uma ou mais outras regiões da segunda figuração ou segundas figurações que não foram atualizadas, então, as informações de atualização de região da primeira figuração podem não ser precisas. Isso se deve ao fato de que se as informações que a primeira figuração depende não forem atualizadas, então, a primeira figuração pode não ser considerada atualizada adequadamente.
[0196] Em algumas modalidades, a mensagem de SEI de atualização de região pode ser configurada para considerar quaisquer previsões ou limitações de intercamada de figurações que a mesma se aplica. Por exemplo, a mensagem de SEI de atualização de região pode identificar uma lista de camadas-alvo (por exemplo, uma lista das camadas que a mensagem de SEI de atualização de região se aplica) e pode especificar quaisquer relações (ou associações) entre a mensagem de SEI de atualização de região e a mensagem de SEI de ponto de recuperação. Em algumas modalidades, a mensagem de SEI de atualização de região também pode definir algumas limitações de conformidade em relação ao uso de previsão de intercamada para as figurações que são associadas à mensagem de SEI de atualização de região. Em algumas modalidades, a mensagem de SEI de atualização de região pode ser associada ou relacionada a uma mensagem de SEI de ponto de recuperação que se aplica a uma camada que está incluída na lista de camadas-alvo da mensagem de SEI de região de atualização. A mensagem de SEI de atualização de região pode, alternativamente, ser associada a uma mensagem de SEI de ponto de recuperação que se aplica à lista de camadas-alvo e que não se aplica a qualquer outra camada ou a mensagem de SEI de atualização de região pode ser associada a qualquer mensagem de SEI de ponto de recuperação que se aplica às camadas-alvo.
[0197] Em algumas modalidades, a lista de camadas-alvo descrita acima pode ser derivada conforme a seguir: se a mensagem de SEI de informações de atualização de região se aplicar à camada atual e à todas as camadas de referência, então, a lista de camadas-alvo pode conter a id de camada (nuh_layer_id) da camada atual e todas as camadas de referência. De outro modo, a lista de camadas-alvo pode conter a id de camada (nuh_layer_id) da camada atual.
[0198] A Figura 6 é um diagrama de blocos que ilustra a associação entre uma ou mais mensagens de SEI de atualização de região e uma ou mais figurações de um fluxo de bits de multicamada de acordo com uma modalidade da presente revelação. A Figura 6 inclui um fluxo de bits de multicamada 600 (também chamado simplesmente de fluxo de bits 600) que é semelhante ao fluxo de bits 480 em conexão à Figura 4C. É mostrado na Figura 6 é uma primeira mensagem de SEI de ponto de recuperação associada ao BL 472A e o ponto de recuperação correspondente é associado ao BL 480A. Na Figura 6, a hachura transversal é destinada a indicar que as figurações correspondentes para cada um dentre as mensagens de SEI de ponto de recuperação é associada às mensagens de SEI de ponto de recuperação respectivas e uma ou mais mensagens de SEI de atualização de região respectivas. Uma pluralidade de figurações que seguem e em uma mesma camada como uma figuração associada a uma mensagem de SEI de ponto de recuperação podem ser chamadas, de modo geral, de figurações de atualização de decodificação gradual. Uma figuração de GDR pode ser associada a um conjunto de figuração de GDR que inclui figurações que começam a partir da figuração associada à mensagem de SEI de ponto de recuperação para a última figuração no conjunto de figuração de GDR na ordem de saída. O conjunto de figuração de GDR é associado a uma mensagem de SEI correspondente de ponto de recuperação. Ademais, a mensagem de SEI de atualização de região pode ser associada a uma figuração de GDR. Na Figura 6, cada uma das figurações de BL 472A a 480A na camada-base 470A é ilustrada como incluindo três fatias separadas de conteúdo, enquanto cada uma das figurações de EL 472B a 480B na camada melhorada 470B também é ilustrada como incluindo três fatias separadas de conteúdo. No entanto, em outras modalidades, as figurações da camada-base BL 470A e/ou camada melhorada de BL 470B, respectivamente, podem ser divididas em mais ou menos fatias que as mostradas na Figura 6. Em algumas implantações da presente revelação, a mensagem de SEI de atualização de região é associada apenas a uma figuração quando a figuração é incluída em um conjunto de figuração de GDR. As fatias das figurações de BL 472A a 480A na camada-base 470A e nas figurações de EL 472B a 480B na camada melhorada 470B serão chamadas de fatias de topo, intermediárias e de fundo no presente documento para se referirem às fatias correspondentes com base em suas orientações na Figura.
[0199] A mensagem de SEI de atualização de região de figuração de BL 474A da Figura 6 indica que a fatia de fundo da figuração de BL 474A estará correta ou aproximadamente correta no conteúdo decodificado pela figuração de BL 474A conforme ilustrado pela hachura pontilhada. De modo semelhante, a mensagem de SEI de atualização de região da figuração de BL 476A indica que a fatia intermediária correspondente (isto é, a fatia intermediária da figuração de BL 476A) estará correta ou aproximadamente correta no conteúdo pela figuração de BL 476A. De modo semelhante, a mensagem de SEI de atualização de região da figuração de BL 480A indica que a fatia de topo da figuração de BL 480B) estará correta ou aproximadamente correta no conteúdo pela figuração de BL 480A. Desse modo, as mensagens de SEI de informações de atualização de região incluem informações que definem adicionalmente quando cada uma dentre as fatias na figuração associada estará correta ou aproximadamente correta no conteúdo decodificado quando o acesso aleatório começar em ou antes de uma figuração associada a uma mensagem de SEI correspondente de ponto de recuperação (por exemplo, a figuração associada à mensagem de SEI de ponto de recuperação que é associada ao conjunto de figuração de GDR). Adicionalmente, visto que as figurações 474A a 480A são figurações na camada-base de BL 470A, as informações de atualização de região das mensagens de SEI podem não precisar considerar quaisquer restrições de previsão de intercamada ou quaisquer dependências dessas figurações em outras figurações. Desse modo, as informações de recuperação de região das mensagens de SEI de recuperação de região podem não ser aceitas como corretas e precisas.
[0200] No entanto, a mensagem de SEI de informações de atualização de região de figuração de EL 476B que indica que a fatia de fundo estará correta ou aproximadamente correta no conteúdo pela figuração de EL 476B pode precisar considerar as restrições de previsão de intercamada devido ao fato de que a fatia de fundo de figuração de EL 476B pode ser atualizada apenas quando a região correspondente da figuração correspondente da camada-base BL 476A é atualizada. Desse modo, conforme mostrado na Figura 6, visto que a fatia de fundo correspondente da figuração correspondente BL 476A é atualizada, a mensagem de SEI de informações de atualização de região da figuração de EL 476B pode ser considerada como correta. No entanto, a mensagem de SEI de informações de atualização de região da figuração de EL 474B que indica que a fatia de topo estará correta ou aproximadamente correta no conteúdo pela figuração de EL 474B pode ser considerada como incorreta, visto que a fatia de topo correspondente da figuração correspondente BL 474A não é indicada como atualizada pela mensagem de SEI correspondente de informações de atualização de região da figuração de BL 474A. Desse modo, a fatia de topo de figuração de EL 474B não pode ser correta ou aproximadamente correta no conteúdo pela EL 474B.
[0201] A Figura 7 mostra uma sintaxe 700 que pode ser usada para comunicar semânticas de mensagem de SEI de informações de atualização de região. Essa sintaxe 700 pode ser comunicada na mensagem de SEI de uma unidade de acesso ou figuração e pode ser destinada a fornecer informações necessárias em relação ao tipo de mensagem de SEI, ao tamanho da mensagem de SEI, e diversos outros aspectos das semânticas de mensagem de SEI. Embora a Figura atual 7 retrate diversos elementos da mensagem de SEI de informações de atualização de região, a sintaxe 700 pode incluir mais ou menos componentes que os ilustrados na Figura 7. Adicional ou alternativamente, as mesmas sintaxes ou sintaxes semelhantes à sintaxe 700 podem ser usadas para comunicar semânticas de mensagem de SEI para outros tipos de mensagens de SEI (por exemplo, mensagens de SEI de temporização de figuração, informações de unidade de decodificação, característica de grão de filme, instantâneo de figurações e informações situação, entre outros). Consequentemente, nem todas as semânticas (ou campos) da sintaxe 700 podem ser definidos no presente documento. Tal falta de definição não pode ser interpretada como representativa de importância de função. Conforme mostrado, a sintaxe 700 inclui uma amostragem de campos (ou semânticas) úteis para descrever recursos proeminentes de implantações dentro do escopo das reivindicações e pode incluir um ou mais campos adicionais que não são mostrados ou pode incluir um ou mais campos que podem não ser utilizados em todas as modalidades.
[0202] A sintaxe 700 pode incluir as semânticas payloadType 702 e payloadSize 704, assim como pode incluir todas as outras sintaxes de mensagens de SEI, conforme descrito acima. PayloadType 702 tem um comprimento de um byte, e pode incluir valores que indicam o tipo de mensagem de SEI que a sintaxe 700 está associada. Por exemplo, a payloadType 702 pode incluir um valor de 0 ou 1 que indica um período de armazenamento temporário ou uma mensagem de SEI de temporização de figuração, respectivamente. Com um tamanho de um byte, a payloadType 702 pode indicar uma dentre 256 mensagens de SEI diferentes. A sintaxe 700 inclui adicionalmente uma semântica de tamanho de carga 704. A payloadSize 704 pode ser de tamanho variável especificado em bytes e pode ser igual ao número de bytes de carga de sequência de byte brutos na carga de mensagem de SEI.
[0203] A sintaxe 700 inclui adicionalmente uma semântica refreshed_region_flag 706 que tem um comprimento de um bit. A refreshed_region_flag 706 pode indicar que a fatia associada a uma mensagem de SEI atual pertence à região atualizada na figuração atual (isto é, que a fatia está atualizada). Um valor de 0 pode indicar que a fatia não está atualizada, enquanto um valor de 1 pode indicar que a fatia está atualizada. A sintaxe 700 inclui adicionalmente uma semântica targetLayerldList 708 que tem um comprimento de um byte. A targetLayerldList 708 pode conter uma lista de todas as ids de camada (nuh_layer_id) para todas as camadas que as informações de atualização de região das informações de atualização de região SEI se aplicam. Adicionalmente, a mensagem de SEI de atualização de região pode ser associada a uma mensagem de SEI de ponto de recuperação que se aplica às camadas que têm valores de nuh_layer_id iguais àqueles na targetLayerldList.
[0204] Mensagem de SEI de Orientação de Exibição
[0205] Em fluxos de dados de camada única de HEVC convencional, pode haver apenas uma camada e tal camada pode ser considerada uma camada de saída. No entanto, em fluxos de dados de multicamada de SHVC/MV-HEVC, pode haver um conjunto de camadas de saída que descrevem quais camadas devem ser camadas de saída e quais camadas não devem ser camadas de saída. Visto que uma ou mais camadas podem ser uma camada de saída não alvo de qualquer conjunto de camadas de saída, quando uma camada não for uma camada-alvo de saída, pode não haver uma mensagem de SEI de orientação de exibição associada às figurações em tal camada. Tal delimitação está ausente das semânticas de HEVC convencionais.
[0206] Atualmente, os fluxos de dados de multicamada de SHVC/MV-HEVC suportam um recurso de processo de saída alternativo. De acordo com o recurso, quando uma figuração de uma camada de saída não estiver presente em uma unidade de acesso particular, uma figuração de uma camada de não saída na unidade de acesso particular, em que a camada de não saída é mais inferior que a camada de saída (por exemplo, tem um valor de ID de figuração inferior ou é referida pela camada de saída), pode ser usada como figuração alternativa para a saída na camada de saída. Porexemplo, a figuração picA pertence a uma camada de não saída layerA, e a figuração picB, que pode ou não estar presente, pertence a uma camada de saída layerB. O valor de nuh_layer_id de layerB é maior que o valor de nuh_layer_id de layerA. Tanto picA quanto picB, se estiverem presentes, são contidas na mesma unidade de acesso. Os seguintes problemas podem estar presentes quando o processo de saída alternativo for permitido:i. Se duas mensagens de SEI de orientação de exibição estiverem presentes e cada mensagem de SEI de orientação de exibição se aplicar a layerA e layerB, respectivamente, as duas mensagens de SEI de orientação de exibição não são idênticas, e picB não está presente, quando o processo de saída alternativo for invocado e picA for a saída em vez de picB, pode haver ambiguidade em relação a qual dentre as duas mensagens de SEI de orientação de exibição será aplicada à picB.ii. Alternativa ou adicionalmente, se houver apenas uma mensagem de SEI de orientação de exibição e a mesma se aplicara a layerB e picB não estiver presente, quando o processo de saída alternativo for invocado e picA for a saída em vez de picB, pode haver ambiguidade em relação à possibilidade ou não de a mensagem de SEI de orientação de exibição ser aplicada a picA.
[0207] Para abordar tais problemas nos fluxos de dados de multicamada, uma delimitação pode ser adicionada para a mensagem de SEI de orientação de exibição de modo que quando uma camada não for indicada como uma camada-alvo de saída em qualquer conjunto de camadas de saída, não haverá mensagem de SEI de orientação de exibição associada às figurações em tal camada.i. Consequentemente, quando uma figuração picA que não está na camada atual for usada como saída alternativa para uma figuração na camada atual, a mensagem de SEI de orientação de exibição que se aplica à camada atual, se houver, será aplicada à saída picA.ii. Alternativa ou adicionalmente, uma delimitação pode ser especificada de modo que quando o processo de saída alternativo for permitido para a camada atual, nenhuma mensagem de SEI de orientação de exibição será associada às figurações na camada atual. iii. Alternativa ou adicionalmente, uma delimitação pode ser especificada de modo que quando o processo de saída alternativo for permitido e uma figuração picA de uma camada de não saída for a saída como substituto de uma figuração não presente em uma camada de saída, a orientação de exibição da figuração de saída deve ser de acordo com a mensagem de SEI de orientação de exibição, se estiver presente, que se aplica à camada de saída.
[0208] Fluxogramas Exemplificativos
[0209] A Figura 8 mostra um fluxograma de um método 800 para associar semânticas de informações de codificação de vídeo a camadas ou pontos de operação de um fluxo de bits de multicamada que compreendem armazenar informações de vídeo associadas ao fluxo de bits de multicamada. O método 800 da Figura 8 pode ser realizado por um ou mais dentre os componentes das Figuras 1A a 3B, por exemplo, um decodificador de vídeo 30. O método 800 começa no bloco 805, que compreende armazenar informações de vídeo associadas ao fluxo de bits de multicamada, as informações de vídeo armazenadas que compreende uma mensagem de SEI. Por exemplo, as informações de vídeo podem ser armazenadas em uma memória, tal como dispositivo de armazenamento 31 da Figura 1A, ou em meios semelhantes. Uma vez que as informações de vídeo sejam armazenadas, o método prossegue para o bloco 810. No bloco 810, o método é mostrado em que determina a possibilidade de a mensagem de SEI pertencer a uma primeira categoria de mensagem de SEI ou a uma segunda categoria de mensagem de SEI com base em um identificador na Em algumas modalidades, a determinação pode ser feita por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Uma vez que a categoria de mensagem de SEI seja determinada no bloco 810, o método 800 progride para o bloco 815, em que o método determina a possibilidade de a mensagem de SEI se aplicar aos pontos de operação ou às camadas. Essa determinação pode ser feita por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Em algumas modalidades, o dispositivo de controlador/processador 13 ou um processador mostrados agora podem compreender meios para determinar. O método 800 então, prossegue para o bloco 820, em que o método é mostrado, em resposta à mensagem de SEI que é da primeira categoria de mensagem de SEI e a aplicação aos pontos de operação, associa cada semântica da mensagem de SEI a cada ponto de operação dentre os pontos de operação. Essa associação pode ser realizada por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Em algumas modalidades, o dispositivo de controlador/processador 13 ou um processador mostrados agora podem compreender meios para associar.
[0210] A Figura 9 mostra um fluxograma de um método 900 para determinar a possibilidade de iniciar o acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada. O método 900 da Figura 9 pode ser realizado por um ou mais dentre os componentes das Figuras 1A a 3B, por exemplo, um decodificador de vídeo 30. O método 900 começa no bloco 905, que compreende armazenar informações de vídeo que incluem pelo menos uma mensagem de SEI de ponto de recuperação. Por exemplo, as informações de vídeo podem ser armazenadas em uma memória, tal como dispositivo de armazenamento 31 da Figura 1A, ou em meios semelhantes. Uma vez que as informações de vídeo sejam armazenadas, o método 900 prossegue para bloco 910. No bloco 910, o método é mostrado determinando a possibilidade de a pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de POC. Em algumas modalidades, a determinação pode ser feita por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Uma vez que a pelo menos uma mensagem de SEI de ponto de recuperação seja determinada por compreender uma indicação para redefinir o valor de POC no bloco 910, o método 900 progride para o bloco 915, em que o método identifica pelo menos um dentre um primeiro delimitação em relação à possibilidade de a mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, um segundo delimitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou um terceiro delimitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação a um conjunto de camadas. Essa identificação pode ser feita por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Em algumas modalidades, o dispositivo de controlador/processador 13 ou um processador mostrados agora podem compreender meios para determinar. O método 900 então, prossegue para o bloco 920, em que o método é mostrado determinando a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos um dentre a primeira delimitação ou a segunda delimitação. Essa determinação pode ser realizada por um processador ou controlador, tal como dispositivo de controlador/processador 13 da Figura 1B ou um ou mais componentes do decodificador de vídeo 30 ou um processador não mostrado nas Figuras 3A ou 3B. Em algumas modalidades, o dispositivo de controlador/processador 13 ou um processador mostrado agora podem compreender um ou mais de um meio para determinar, meios para identificar, meios para associar, meios para derivar e meios para codificar.
[0211] Implantação(ões) Exemplificativa(s)
[0212] Algumas modalidades da presente revelação são sumarizadas e descritas abaixo. Quando determinadas porções da especificação de SHVC/MV-HEVC são reproduzidas a fim de ilustrar as adições e os apagamentos que podem ser incorporados para implantar um ou mais dentre os métodos descritos no presente documento, tais adições são mostradas sublinhadas e as eliminações são mostradas riscadas. . . . . . TABELA 1 - MODIFICAÇÕES DE MV-HEVC PARA PADRÕES TEXTUAIS
OUTRAS CONSIDERAÇÕES
[0212] As informações e os sinais revelados no presente documento podem ser representados com o uso de qualquer um dentre uma variedade de tecnologias e técnicas diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos e circuitos integrados que podem ser referenciados por toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, partículas ou campos magnéticos,partículas ou campos ópticos ou qualquer combinação dos mesmos.
[0213] Os vários blocos lógicos ilustrativos e etapas de algoritmo descritos em conexão com as modalidades reveladas no presente documento podem ser implantados como hardware eletrônico, software de computador ou combinações de ambos. A fim de ilustrar claramente essa intercambialidade de hardware e software, vários componentes, blocos, e etapas ilustrativos foram descritos acima geralmente em termos de sua funcionalidade. O fato de tal funcionalidade ser implantada como hardware ou software, depende das restrições de projeto e de aplicação particulares impostas no sistema geral. As pessoas versadas na técnica podem implantar a funcionalidade descrita de formar variáveis para cada aplicação particular, porém tais decisões de implantação não devem ser interpretadas como causadoras de um afastamento do escopo da presente revelação.
[0214] As técnicas descritas no presente documento podem ser implantadas em hardware, software, firmware ou em qualquer combinação dos mesmos. Tais técnicas podem ser implantadas em qualquer um dentre uma variedade de dispositivos, tais como computadores de propósito geral, aparelhos de telefone de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos incluindo a aplicação em aparelhos de telefone de dispositivo de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como dispositivos ou componentes podem ser implantados juntos em um dispositivo de lógica integrada ou separadamente como dispositivos de lógica discreta, porém, interoperativo. Caso sejam implantadas em software, as técnicas podem ser realizadas pelo menos em parte por uma mídia de armazenamento de dados legível por computador que compreende código de programa incluindo instruções que, quando executadas, realizam um ou mais dos métodos descritos acima. A mídia de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de empacotamento. A mídia legível por computador pode compreender mídias de armazenamento de dados ou memória, tais como memória de acesso aleatório (RAM), tal como memória de acesso aleatório dinâmico sincronizado (SDRAM), memória somente de leitura (ROM), memória de acesso aleatório não volátil (NVRAM), memória somente de leitura programável eletricamente apagável (EEPROM), memória flash, mídias de armazenamento de dados magnéticos ou ópticos e semelhantes. As técnicas, adicional ou alternativamente, podem ser realizadas, pelo menos em parte, por uma mídia de comunicação legível por computador que transporta ou comunica o código de programa na forma de instruções ou estruturas de dados e que podem ser acessadas, lidas e/ou executadas por um computador, tais como ondas ou sinais propagados.
[0215] O código de programa pode ser executado por um processador, que pode incluir um ou mais DSPs, microprocessadores para propósitos gerais, ASICs, FPGAs ou outro conjunto de circuitos lógicos equivalentes integrados ou distintos. Tal processador pode ser configurado para realizar qualquer uma dentre as técnicas descritas na presente revelação. Um processador de propósito geral pode ser um microprocessador, porém alternativamente, o processador pode ser qualquer processador, controlador, micro controlador ou máquina de estado convencional. Um processador também pode ser implantado 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 combinação com um núcleo de DSP ou qualquer outra tal configuração). Correspondentemente, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma dentre as estruturas supracitadas, qualquer combinação das estruturas supracitadas, ou qualquer outra estrutura ou aparelho adequado para a implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de software ou hardware dedicados configurados para criptar e decodificar ou incorporados em um decodificador-encriptador de vídeo combinado (CODEC). Além disso, as técnicas podem ser totalmente implantadas em um ou mais circuitos ou elementos lógicos.
[0216] As técnicas desta revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho de telefone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não exigem necessariamente a realização por unidades de hardware diferentes. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, que incluem um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0217] Embora o supracitado tenha sido descrito em conexão com várias modalidades diferentes, recursos ou elementos de uma modalidade podem ser combinados com outras modalidades sem se desviar dos ensinamentos desta revelação. Por exemplo, uma mensagem de SEI de agrupamento escalonável de ponto de recuperação pode ser associada a uma pluralidade de figurações em uma unidade de acesso e uma única mensagem de SEI de ponto de recuperação pode, adicionalmente, ser associada a uma dentre as figurações da mesma unidade de acesso. A única mensagem de SEI de ponto de recuperação pode ser associada a uma dentre as mesmas figurações que é associada à mensagem de SEI de agrupamento escalonável de ponto de recuperação ou uma figuração não associada diferente. Combinações semelhantes de recursos também são contempladas como inclui a adição de uma mensagem de SEI de informações de atualização de região com uma figuração associada a uma mensagem de SEI de ponto de recuperação; no entanto, as combinações de recursos entre as modalidades respectivas não são limitadas necessariamente aos mesmos.
[0218] Várias modalidades da revelação foram descritos. Essas e outras modalidades estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Método para determinar a possibilidade de iniciar acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada, que compreende: armazenar informações de vídeo que incluem pelo menos uma mensagem de informações de melhoria complementar, SEI, de ponto de recuperação; determinar a possibilidade da pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de contagem de ordem de figuração, POC; identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade da mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação a um conjunto de camadas; o método caracterizado pelo fato de que compreende adicionalmente: determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação, e com base em identificar uma mensagem de SEI de informações de atualização de região associada com a mensagem de SEI de ponto de recuperação, a mensagem de SEI de informações de atualização de região compreendendo uma semântica configurada para indicar um identificador de uma região atualizada e identificadores para camadas nas quais a região atualizada depende.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: derivar um valor de uma semântica associada ao valor de semântica de POC da pelo menos uma mensagem de SEI de ponto de recuperação ao determinar iniciar o acesso aleatório e começar a decodificação; associar a pelo menos uma mensagem de SEI de ponto de recuperação à figuração, a uma camada do conjunto de camadas, ou à unidade de acesso quando a mensagem de SEI de ponto de recuperação for identificada como se aplicando à figuração; e codificar as informações de vídeo com base, pelo menos em parte, na associação da pelo menos uma mensagem de SEI de ponto de recuperação à figuração, à camada do conjunto de camadas ou à unidade de acesso.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que derivar um valor da semântica associada ao valor de semântica de POC compreende determinar que a unidade de acesso compreende a mensagem de SEI de ponto de recuperação é uma primeira unidade de acesso no fluxo de bits de multicamada na ordem de decodificação.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente determinar se a semântica associada à semântica de POC da mensagem de SEI de ponto de recuperação está presente em um cabeçalho de fatia de uma figuração associada à mensagem de SEI de ponto de recuperação e calcular o valor da semântica associada à semântica de POC com base em uma presença de um valor de bit mais significativo de POC.
5. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente determinar se a semântica associada à semântica de POC da mensagem de SEI de ponto de recuperação não está presente em um cabeçalho de fatia de uma figuração associada à mensagem de SEI de ponto de recuperação e estabelecer um valor de uma POC anterior para uma camada específica como zero.
6. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que compreende adicionalmente determinar que figurações aceitáveis serão decodificadas na camada atual após pelo menos um dentre o decodificador iniciar acesso aleatório, a camada se mover para cima, e após um codificador indicar um enlace interrompido.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente identificar a mensagem de SEI de informações de atualização de região para indicar a possibilidade de uma ou mais regiões às quais a mensagem de SEI de informações de atualização de região se aplica estarem atualizadas, em que a região atualizada indica que a uma ou mais regiões estão codificadas correta e adequadamente.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a mensagem de SEI de informações de atualização de região que indica que a uma ou mais regiões estão atualizadas indica que as regiões atualizadas foram atualizadas independentemente de quaisquer outras camadas ou segmentos, e não dependem das outras camadas ou segmentos, ou que todas as outras camadas ou segmentos dos quais as regiões atualizadas dependem estão atualizados.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a mensagem de SEI de informações de atualização de região compreende uma semântica configurada para indicar um identificador apenas da região atualizada e da camada atual quando a região atualizada é atualizada independentemente das outras camadas.
10. Dispositivo para determinar a possibilidade de iniciar acesso aleatório durante a decodificação de informações de vídeo de um fluxo de bits de multicamada, que compreende: meios para armazenar informações de vídeo que incluem pelo menos uma mensagem de informações de melhoria complementar, SEI, de ponto de recuperação; meios para determinar a possibilidade da pelo menos uma mensagem de SEI de ponto de recuperação compreender uma indicação para redefinir um valor de semântica de contagem de ordem de figuração, POC; meios para identificar pelo menos uma dentre uma primeira limitação em relação à possibilidade da mensagem de SEI de ponto de recuperação estar presente em uma unidade de acesso, uma segunda limitação em relação a uma associação da mensagem de SEI de ponto de recuperação a uma figuração, ou uma terceira limitação em relação a uma aplicação da mensagem de SEI de ponto de recuperação a um conjunto de camadas; o dispositivo caracterizado pelo fato de que compreende adicionalmente: meios para determinar a possibilidade de iniciar o acesso aleatório e decodificar a partir da unidade de acesso com base em pelo menos uma dentre a primeira limitação ou a segunda limitação, e com base em meios para identificar uma mensagem de SEI de informações de atualização de região associada com a mensagem de SEI de ponto de recuperação, a mensagem de SEI de informações de atualização de região compreendendo uma semântica configurada para indicar um identificador de uma região atualizada e identificadores para camadas nas quais a região atualizada depende.
11. Dispositivo, de acordo com a reivindicação 10, caracterizado pelo fato de que compreende adicionalmente: meios para derivar um valor de uma semântica associada ao valor de semântica de POC da pelo menos uma mensagem de SEI de ponto de recuperação quando os meios para determinar a possibilidade de iniciar o acesso aleatório e a decodificação determinam iniciar o acesso aleatório e começar a decodificação; meios para associar a pelo menos uma mensagem de SEI de ponto de recuperação à figuração, a uma camada do conjunto de camadas, ou à unidade de acesso quando a mensagem de SEI de ponto de recuperação for identificada como se aplicando à figuração; e meios para codificar as informações de vídeo com base, pelo menos em parte, na associação da pelo menos uma mensagem de SEI de ponto de recuperação à figuração, à camada do conjunto de camadas ou à unidade de acesso.
12. Dispositivo, de acordo com a reivindicação 11, caracterizado pelo fato de que os meios para derivar um valor da semântica associada ao valor de semântica de POC compreendem meios para determinar que a unidade de acesso que compreende a mensagem de SEI de ponto de recuperação é uma primeira unidade de acesso no fluxo de bits de multicamada na ordem de decodificação.
13. Dispositivo, de acordo com a reivindicação 12, caracterizado pelo fato de que compreende adicionalmente meios para determinar se a semântica associada ao valor de semântica de POC da mensagem de SEI de ponto de recuperação está presente em um cabeçalho de fatia de uma figuração associada à mensagem de SEI de ponto de recuperação e meios para calcular o valor da semântica associada ao valor de semântica de POC com base em uma presença de um valor de bit mais significativo de POC e/ou compreende adicionalmente meios para determinar se a semântica associada à semântica de POC da mensagem de SEI de ponto de recuperação não está presente em um cabeçalho de fatia de uma figuração associada à mensagem de SEI de ponto de recuperação e meios para estabelecer um valor de uma POC anterior para uma camada específica como zero.
14. Dispositivo, de acordo com a reivindicação 10, caracterizado pelo fato de que é configurado adicionalmente para determinar que figurações aceitáveis serão decodificadas na camada atual após pelo menos um dentre o decodificador iniciar acesso aleatório, a camada se mover para cima, e após um codificador indicar um enlace interrompido, e/ou em que o processador é configurado adicionalmente para identificar uma mensagem de SEI de informações de atualização de região configurada para indicar a possibilidade de uma ou mais regiões para as quais a mensagem de SEI de informações de atualização de informação se aplicam estarem atualizadas, em que a região atualizada indica que a uma ou mais regiões estão codificadas correta e adequadamente, e/ou em que a mensagem de SEI de informações de atualização de região que indica que a uma ou mais regiões estão atualizadas indica que as regiões atualizadas foram atualizadas independentemente de quaisquer outras camadas ou segmentos, e não dependem das outras camadas ou segmentos, ou que todas as outras camadas ou segmentos dos quais as regiões atualizadas dependem estão atualizados, e/ou em que a mensagem de SEI de informações de atualização de região compreende uma semântica configurada para indicar um identificador da região atualizada e identificadores para as camadas ou segmentos nos quais a região atualizada depende quando a região atualizada depender de outras camadas ou segmentos e preferivelmente em que a mensagem de SEI de informação de atualização de região compreende uma semântica configurada para indicar um identificador apenas da região atualizada e da camada atual quando a região atualizada é atualizada independentemente das outras camadas.
15. Memória caracterizada pelo fato de que compreende instruções armazenadas na mesma, as instruções sendo executadas por um computador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 9.
BR112016022251-2A 2014-03-24 2015-03-23 Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada BR112016022251B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461969798P 2014-03-24 2014-03-24
US61/969,798 2014-03-24
US14/664,702 2015-03-20
US14/664,702 US10880565B2 (en) 2014-03-24 2015-03-20 Use of specific HEVC SEI messages for multi-layer video codecs
PCT/US2015/022012 WO2015148380A2 (en) 2014-03-24 2015-03-23 Use of specific hevc sei messages for multi-layer video codecs

Publications (3)

Publication Number Publication Date
BR112016022251A2 BR112016022251A2 (pt) 2017-08-15
BR112016022251A8 BR112016022251A8 (pt) 2021-07-13
BR112016022251B1 true BR112016022251B1 (pt) 2023-09-12

Family

ID=

Similar Documents

Publication Publication Date Title
KR101969631B1 (ko) 다중-계층 비디오 코덱들에 대한 특정 hevc sei 메시지들의 이용
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
BR112016008237B1 (pt) Aparelho e método para codificar informações de vídeo, aparelho 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
KR102296654B1 (ko) 다계층 코딩에서 복구 포인트 보충 향상 정보 (sei) 메시지들 및 영역 리프레쉬 정보 sei 메시지들을 코딩하는 방법
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
BR112016029751B1 (pt) Método e dispositivo para codificar um fluxo de bits de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc, e método e dispositivo para decodificar dados de vídeo de acordo com hevc escalonável, uma extensão 3d de hevc ou uma extensão de múltiplas vistas de hevc
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
BR112015007763B1 (pt) Método de decodificação e codificação de dados de vídeo, dispositivo de decodificação e codificação 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
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
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
BR112016029611B1 (pt) Aparelho e método para codificar informações de vídeo em codificação de vídeo de alta eficiência, e, memória legível por computador
BR112016015453B1 (pt) Suporte de camada base de codec diferente em codificação de vídeo de várias camadas
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
BR112015023800B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112016000865B1 (pt) Aparelho e método para codificar informações de vídeo multicamadas, aparelho e método para decodificar informações de vídeo multicamadas, e memória legível por computador
BR112016021475B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
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
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
BR112016015568B1 (pt) Método e aparelho para codificar ou decodificar dados de vídeo e memória legível por computador
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
BR112016015931B1 (pt) Suporte de camada-base de não hevc em extensões de muticamadas de hevc