BR112016022253B1 - 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 - Google Patents

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 Download PDF

Info

Publication number
BR112016022253B1
BR112016022253B1 BR112016022253-9A BR112016022253A BR112016022253B1 BR 112016022253 B1 BR112016022253 B1 BR 112016022253B1 BR 112016022253 A BR112016022253 A BR 112016022253A BR 112016022253 B1 BR112016022253 B1 BR 112016022253B1
Authority
BR
Brazil
Prior art keywords
sei message
video
layer
sei
figuration
Prior art date
Application number
BR112016022253-9A
Other languages
English (en)
Other versions
BR112016022253A2 (pt
BR112016022253A8 (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,699 external-priority patent/US10136152B2/en
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016022253A2 publication Critical patent/BR112016022253A2/pt
Publication of BR112016022253A8 publication Critical patent/BR112016022253A8/pt
Publication of BR112016022253B1 publication Critical patent/BR112016022253B1/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 aprimorar o uso de mensagens de informações de melhoria complementares (SEI) em codecs de multicamada para decodificar fluxos de dados de multicamada que contêm as informações de vídeo. Em um aspecto, um dispositivo pode incluir uma memória configurada para armazenar informações de vídeo associadas ao fluxo de bits de multicamada, sendo que as informações de vídeo armazenadas compreendem uma mensagem de SEI e um processador acoplado de modo operativo à memória. O processador é configurado para determinar se a mensagem de SEI pertence a uma primeira categoria de mensagem de SEI ou uma segunda categoria de mensagem de SEI com base em um identificador na mensagem de SEI. O processador é configurado adicionalmente para determinar se a mensagem de SEI se aplica aos pontos de operação ou às camadas, e, em resposta à mensagem de SEI ser da primeira categoria de mensagem de SEI e à aplicação aos pontos de operação, associar cada semântica da mensagem de SEI a cada ponto de operação dentre os pontos de operaçã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] Os recursos de vídeo digitais podem ser incorporados 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 de mesa, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de video game, consoles de video game, telefones de radiossatélite ou celulares, dispositivos de vídeo para teleconferência, e semelhantes. Os dispositivos de vídeo digital implantam técnicas de compactação de vídeo, como aquelas descritas nos padrões definidos por Grupo 2 de Especialistas de Figuração de Movimento (MPEG-2), MPEG-4, União Internacional de Telegrafia - Setor de Normatização de Telecomunicações (ITU-T) H.263, H.264 de ITU-T/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 através da implantação de 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, 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 associadas a um fluxo de bits de multicamada, sendo que as informações de vídeo armazenadas compreendem uma mensagem de SEI e um processador acoplado de modo operatório à memória. O processador é configurado para determinar a possibilidade da mensagem de SEI pertence a uma primeira categoria de mensagem de SEI ou uma segunda categoria de mensagem de SEI com base em um identificador na O processador é configurado adicionalmente para determinar a possibilidade de a mensagem de SEI se aplica aos pontos de operação ou às camadas e, em resposta à mensagem de SEI que é da primeira categoria de mensagem de SEI e a aplicação aos pontos de operação, associar cada semântica da mensagem de SEI a cada ponto de operação dentre os pontos de operação.
[0004] Em outro aspecto, um método para associar semânticas de informações de codificação de vídeo com camadas ou pontos de operação de um fluxo de bits de multicamada compreender armazenar informações de vídeo associadas ao fluxo de bits de multicamada, as informações de vídeo armazenadas que compreendem uma mensagem de SEI. O método compreende adicionalmente determinar a possibilidade da 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 mensagem de SEI e determinar a possibilidade de a mensagem de SEI se aplicar aos pontos de operação ou às camadas. O método compreende adicionalmente, em resposta à mensagem de SEI que é da primeira categoria de mensagem de SEI e aplicar aos pontos de operação independentemente, associar cada semântica da mensagem de SEI com cada ponto de operação dentre os pontos de operação.
[0005] Em outro aspecto, um dispositivo 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 compreende meios para armazenar informações de vídeo associadas ao fluxo de bits de multicamada, sendo que as informações de vídeo armazenadas compreende uma mensagem de SEI, meios para determinar que a possibilidade de a mensagem de SEI pertence a uma primeira categoria de mensagem de SEI ou a uma segunda categoria de mensagem de SEI com base em um identificador na mensagem de SEI, meios para determinar a possibilidade de a mensagem de SEI se aplicar aos pontos de operação ou às camadas, e meios para associar cada semântica da mensagem de SEI a cada ponto de operação dentre os pontos de operação em resposta à mensagem de SEI que é da primeira categoria de mensagem de SEI e aplicar aos pontos de operação.
[0006] Em um aspecto adicional, um meio de armazenamento legível por computador não transitório que armazenou no mesmo instruções que, quando executadas, levam um processador de um dispositivo a armazenar informações de vídeo associadas ao fluxo de bits de multicamada, sendo que as informações de vídeo armazenadas compreendem uma mensagem de SEI, determinar 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 mensagem de SEI, determinar a possibilidade de a mensagem de SEI se aplicar aos pontos de operação ou às camadas, e em resposta à mensagem de SEI que é da primeira categoria de mensagem de SEI e a aplicação dos pontos de operação, associar cada semântica da mensagem de SEI a cada ponto de operação dentre os pontos de operaçã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 destina a serem 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 exemplo de sistema de criptaçã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 exemplo de sistema de criptaçã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 as técnicas em conformidade com os aspectos descritos na presente revelação.
[0014] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar as técnicas em conformidade com os aspectos descritos na presente 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 para 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ões 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 uma 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 um 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 à 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 se 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" pode ser afrouxada 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 operatória 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 determinadas modalidades sejam descritas no presente documento no contexto dos padrões HEVC e/ou H.264, uma pessoa da habilidade comum na técnica pode observar que os sistemas e os 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) de Setor de Normatização de Telecomunicações (ITU-T) H.261, Organização Internacional para Normatização/Comissão Internacional de Eletrotécnica (ISO/IEC) Visual MPEG-1, ITU-T H.262 ou Visual ISO/IEC MPEG-2, ITU-T H.263, ISO/IEC Visual MPEG-4 e ITU-T H.264 (também chamado de ISO/IEC MPEG-4 AVC), incluindo suas extensões de escalonável e multivistas.
[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 é diferente das unidades de previsão (por exemplo, macroblocos) em determinados padrões de codificação de vídeo anteriores. De fato, o conceito de um macrobloco não existe em HEVC, conforme entendido em determinados padrões de codificação de vídeo anteriores. Um macrobloco é substituído por uma estrutura hierárquica com base em um esquema de árvore quadrática que pode fornecer alta flexibilidade, dentre outros possíveis benefícios. 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 macrobloco, 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] Para propósitos meramente ilustrativos, certas modalidades reveladas no presente documento são descritas com exemplos incluindo somente duas camadas (por exemplo, uma camada inferior tal como a camada de base, e uma camada superior tal como a camada de aperfeiçoamento) de dados de vídeo. Uma "camada" de dados de vídeo pode ser chamada de modo geral de 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 multivistas. Como outro exemplo, uma camada pode incluir dados de vídeo associados 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. Isto é, uma vista de dados de vídeo pode ser chamada de uma camada de dados de vídeo, e uma camada de dados de vídeo pode ser chamada de uma vista de dados de vídeo. Além disso, um codec de múltiplas camadas (também chamado de 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 chamadas, de modo geral, de codificação de vídeo. Deve-se entender que tais exemplos podem ser aplicáveis às configurações incluindo múltiplas camadas-base e/ou de aprimoramento. Além disso, a fim de facilitar a exemplificação, a revelação a seguir inclui os termos "quadros" ou "blocos" com referência a determinadas modalidades. No entanto, esses termos não devem ser limitativos. Por exemplo, as técnicas descritas abaixo podem ser usadas com quaisquer unidades de vídeo, tais como, blocos (por exemplo, CU, PU, TU, macroblocos, 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 compressão, uma vasta quantidade de informações a serem transportadas a partir de um codificador de imagem para um decodificador de imagem torna uma transmissão de imagem em temporização 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 Visual MPEG-1, ITU-T H.262 ou Visual ISO/IEC MPEG-2, ITU-T H.263, ISO/IEC Visual MPEG-4 e ITU-T H.264 (também chamado de ISO/IEC MPEG-4 AVC), incluindo suas extensões de escalonável e multivistas.
[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 MPEG de ISO/IEC. 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 multivistas para HEVC, a saber, MV-HEVC, e a extensão escalonável para HEVC, denominada de SHVC, também estão sendo desenvolvidas pela JCT-3V (Equipe Colaborativa Conjunta em Desenvolvimento de Extensão de Vídeo 3D da ITU-T/ISO/IEC - ITU-T/ISO/IEC Joint Collaborative Team on 3D Video Coding Extension Development) e pela JCT-VC, respectivamente.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0034] Vários aspectos dos sistemas, aparelhos e métodos inovadores são descritos mais plenamente mais adiante no presente documento com referência aos desenhos anexos. Esta revelação pode, entretanto, ser incorporada em muitas formas diferentes e não deveria ser interpretada como limitada a qualquer estrutura específica ou função apresentada ao longo de toda esta revelação. Em vez disso, esses aspectos são fornecidos de modo que esta revelação seja minuciosa e completa, e transmita plenamente o escopo da revelação para aqueles versados na técnica. Com base nos ensinamentos no presente documento, uma pessoa versada na técnica deve apreciar 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 de, ou combinados com qualquer outro aspecto da revelação. Por exemplo, um aparelho pode ser implantado ou um método pode ser praticado através do uso de qualquer quantidade dos aspectos apresentados 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 aspectos particulares no presente documento, muitas variações e permutações desses aspectos são abrangidos pelo 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. De preferência, 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, dentre os quais alguns 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 ao invés 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 semelhantes 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. De preferência, tais palavras ordinais são suadas apenas para diferenciar os elementos de tipos iguais ou semelhantes.
[0037] A Figura 1A é um diagrama de blocos que ilustra um sistema de codificação de vídeo exemplificativo que pode utilizar as técnicas em conformidade com os aspectos descritos na presente revelação. Conforme descrito no presente documento, o termo "codificador de vídeo" se refere, genericamente, tanto a codificadores de vídeo quanto a decodificadores de vídeo. Na presente revelação, os termos "codificação de vídeo" ou "codificação" podem se referir, genericamente, à codificação de vídeo e à decodificação de vídeo. Além de codificadores de vídeo e de decodificadores de vídeo, os aspectos descritos no presente pedido podem abranger outros dispositivos relacionados, tais como, transdutores (por exemplo, dispositivos que podem decodificar um fluxo de bits e recodificar outro fluxo de bits) e dispositivos Middlebox (por exemplo, dispositivos que pode 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 fonte 12 que gera dados de vídeo criptados para serem decodificados posteriormente por um dispositivo de destinação 14. No exemplo da Figura 1A, o dispositivo-fonte 12 e dispositivo de destinação 14 constituem dispositivos separados. Nota-se, entretanto, que o dispositivo de fonte e dispositivo de destinação 12 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ídia digital, consoles para jogo eletrônico, dispositivo de transmissão contínua de vídeo ou semelhantes. Em diversas modalidades, o dispositivo-fonte 12 e o dispositivo de destinação 14 podem ser equipados para comunicação sem fio.
[0040] O dispositivo de destinação 14 pode receber, através do enlace 16, os dados de vídeo criptados a serem decodificados. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo criptados do dispositivo de fonte 12 para o dispositivo de destinação 14. No exemplo da Figura 1A, o enlace 16 pode compreender um meio de comunicação para possibilitar que o dispositivo de fonte 12 transmita dados de vídeo criptados para o dispositivo de destinação 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 destinação 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, como um espectro de frequência de rádio (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. O meio de comunicação pode incluir roteadores, comutadores, estações-base, ou qualquer outro equipamento que possa ser útil que para facilitar a comunicação do dispositivo-fonte 12 com o dispositivo de destinação 14.
[0041] Alternativamente, os dados criptados podem ser emitidos a partir de uma interface de saída 22 para um dispositivo de armazenamento 31 (presente opcionalmente). De modo semelhante, dados codificados podem ser acessados a partir do dispositivo de armazenamento 31 por uma interface de entrada 28, por exemplo, do dispositivo de destinação 14. O dispositivo de armazenamento 31 pode incluir qualquer um dentre uma variedade de meios 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 qualquer outro meio de armazenamento digital adequado 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 criptado gerado pelo dispositivo de fonte 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 criptados e transmitir esses dados de vídeo criptados para o dispositivo de destinação 14. Os servidores de arquivos exemplificativos incluem servidores da web (por exemplo, para um site da web), um servidor de Protocolo de Transferência de Arquivo (FTP), dispositivos de armazenamento fixado à rede (NAS) e unidades de disco local. O dispositivo de destinação 14 pode acessar os dados de vídeo criptados através de qualquer conexão de dados padrão, incluindo uma conexão de 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 dos dois que seja adequada para cessar os dados de vídeo criptados armazenados em um servidor de arquivos. A transmissão de dados de vídeo criptados do dispositivo de armazenamento 31 pode ser uma transmissão de transmissão contínua, uma transmissão de download, ou uma combinação de ambos.
[0042] As técnicas desta revelação não são limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em suporte de qualquer dentre uma variedade de aplicativos de multimídia, tal como difusões sem fio para televisão, transmissões de televisão a cabo, transmissões de televisão via satélite, transmissões de vídeo em transmissão contínua, por exemplo, através da Internet (por exemplo, transmissão contínua adaptativa dinâmica por Protocolo de Transferência de Hipertexto (HTTP) etc.), criptação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema de codificação de vídeo 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional a fim de 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 a interface de emissão 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou a 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 provedor de conteúdo de vídeo, e/ou um sistema de gráficos de computador para gerar dados de gráficos de computador como a fonte vídeo, ou uma combinação de tais fontes. Como um exemplo, caso a fonte de vídeo 18 seja uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destinação 14 podem formar os chamados "telefones com câmera" ou "telefones para gravação de vídeo", conforme ilustrado no exemplo da Figura 1B. No entanto, 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 codificador de vídeo 20. Os dados de vídeo criptados podem ser transmitidos para o dispositivo de destinação 14 através da interface de emissão 22 do dispositivo de fonte 12. Os dados de vídeo criptados 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 codificador de vídeo 20 ilustrado nas Figuras 1A e 1B pode compreender o codificador de vídeo 20 ilustrado na Figura 2A, o encriptador de vídeo 23 ilustrado na Figura 2B, ou qualquer outro codificador de vídeo descrito no presente documento.
[0045] No exemplo da Figura 1A, o dispositivo de destinação 14 inclui a interface de inserção 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. Em alguns casos, a interface de inserção 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 criptados ao longo do enlace 16 e/ou a partir do dispositivo de armazenamento 31. Os dados de vídeo codificados comunicados através do enlace 16, ou fornecidos no dispositivo de armazenamento 31, pode incluir uma variedade de elementos de sintaxe gerados pelo codificador 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 ser incluídos com os dados de vídeo criptados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento, ou armazenados em um servidor de arquivos. O decodificador de vídeo 30, ilustrado na Figura 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 ao dispositivo de destinação 14, ou pode ser externo ao mesmo. Em alguns exemplos, o dispositivo de destinação 14 pode incluir um dispositivo de exibição integrado e pode ser configurado também para fazer interface com um dispositivo de exibição externo. Em alguns 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.
[0047] Em aspectos relacionados, a Figura 1B mostra um sistema de codificação de vídeo exemplificativo 10' em que o dispositivo-fonte 12 e o dispositivo de destinação 14 estão em ou são parte de um dispositivo 11. O dispositivo 11 pode ser um monofone, tal como um telefone “inteligente” ou similares. O dispositivo 11 pode incluir um dispositivo de controlador/processador 13 (opcionalmente presente) em comunicação operatória com o dispositivo-fonte 12 e o dispositivo de destinação 14. O sistema de codificação de vídeo 10' da Figura 1B e componentes do mesmo são, de outro modo, semelhantes ao sistema de codificação de vídeo 10 da Figura 1A, e aos componentes do mesmo.
[0048] O encriptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, tal como HEVC, e pode estar em conformidade com um Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, como o padrão ITU- T H.264, referido de modo alternativo como MPEG-4, Parte 10, AVC, ou extensões de tais padrões. Os conjuntos de procedimentos desta revelação, entretanto, não se limitam 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.
[0049] 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, cada, ser integrados com um encriptador e decodificador de áudio, e pode incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a criptação tanto do áudio quanto do vídeo em um fluxo de dados comum ou fluxos de dados separado. Caso 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).
[0050] Cada dentre o encriptador de vídeo 20 e o decodificador de vídeo 30 pode ser implantado como qualquer 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 um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta 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 em um respectivo dispositivo.
PROCESSO DE CODIFICAÇÃO DE VÍDEO
[0051] Conforme mencionado brevemente acima, o encriptador de vídeo 20 cripta dados de vídeo. Os dados de vídeo podem compreender uma ou mais figurações. Cada uma dentre as figurações é uma imagem estática que parte de um vídeo. Em alguns exemplos, uma figuração pode ser denominada de "quadro" de vídeo. Quando o encriptador de vídeo 20 cripta os dados de vídeo, o criptar de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma sequência de bits que formam uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir figurações codificadas e dados associados. Uma figuração codificada é uma representação codificada de uma figuração.
[0052] A fim de gerar o fluxo de bits, o codificador de vídeo 20 pode realizar a operação de codificação em cada figuração nos dados de vídeo. Quando o encriptador de vídeo 20 realiza operações de criptação nas figurações, o encriptador de vídeo 20 pode gerar uma série de figurações 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. Uma 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. Uma APS pode conter parâmetros aplicáveis a zero ou mais figurações. Os parâmetros em uma APS podem ser parâmetros que podem estar mais propensos a mudar do que os parâmetros na PPS.
[0053] A fim de gerar uma figuração codificada, o codificador de vídeo 20 pode particionar uma figuração em blocos de vídeo com tamanhos iguais. Um bloco de vídeo pode ser uma matriz bidimensional de amostras. Cada um dos blocos de vídeo é associado a um bloco em árvore. Em alguns casos, um bloco em árvore pode ser chamado de uma maior unidade de codificação (LCU). Os blocos em árvore de HEVC podem ser amplamente análogos para os macroblocos de padrões anteriores, tais como H.264/AVC. Entretanto, um bloco em árvore não é necessariamente limitado a um tamanho específico 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 em árvore em blocos de vídeo associados a CUs, por isso o nome "blocos em árvore".
[0054] Em alguns exemplos, o encriptador de vídeo 20 pode particionar uma figuração 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.
[0055] Como parte de realizar uma operação de criptação em uma figuração, o encriptador de vídeo 20 pode realizar operações de criptação em cada fatia da figuração. Quando o encriptador de vídeo 20 realiza uma operação de criptação em uma fatia, o encriptador de vídeo 20 pode gerar dados encriptador associados à fatia. Os dados criptados associados à fatia podem ser denominados “fatia codificada”.
[0056] A fim de gerar uma fatia codificada, o codificador de vídeo 20 pode realizar operações de codificação em cada bloco de árvore em uma fatia. Quando o codificador de vídeo 20 realiza uma operação de codificação em um bloco de árvore, o codificador de vídeo 20 pode gerar um bloco de árvore codificado. O bloco de árvore codificado pode compreender dados que representam uma versão codificada do bloco de árvore.
[0057] Quando o encriptador de vídeo 20 gera uma fatia codificada, o encriptador de vídeo 20 pode realizar operações de criptação em (por exemplo, criptar) os blocos em árvore na fatia de acordo com uma ordem de exame de varredura. Por exemplo, o encriptador de vídeo 20 pode criptar os blocos em árvore da fatia em uma ordem que prossegue da esquerda para a direita através de uma fileira mais de topo de blocos em árvore na fatia, então da esquerda para a direita através de uma próxima fileira inferior de blocos em árvore e assim por diante até que o encriptador de vídeo 20 tenha criptado cada um dos blocos em árvore na fatia.
[0058] Como um resultado da criptação dos blocos em árvore de acordo com a ordem de exame de varredura, os blocos em árvore acima e à esquerda de um dado bloco em árvore podem ter sido criptados, mas os blocos em árvore abaixo e à direita do dado bloco em árvore ainda não foram criptados. Consequentemente, o encriptador de vídeo 20 pode ter capacidade de acessar informações geradas através da criptação de blocos em árvore acima e à esquerda do dado bloco em árvore durante a criptação do dado bloco em árvore. Entretanto, o encriptador de vídeo 20 pode não ter capacidade de acessar informações geradas através da criptação de blocos em árvore abaixo e à direita do dado bloco em árvore durante a criptação do dado bloco em árvore.
[0059] Para gerar um bloco em árvore codificado, o encriptador de vídeo 20 pode realizar recursivamente o particionamento de QuadTree no bloco de vídeo do bloco em á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 criptação de vídeo 20 pode particionar o bloco de vídeo de um bloco em árvore em quatro sub-blocos igualmente dimensionados, particionar um ou mais dos sub-blocos em quatro sub-sub-blocos igualmente dimensionados e assim por diante. Uma CU particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associado a outras CUs. Uma CU não particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associado a outras CUs.
[0060] Um ou mais elementos de sintaxe no fluxo de bits pode indicar um número máximo de vezes que o codificador de vídeo 20 pode 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.
[0061] O encriptador de vídeo 20 pode realizar operações de criptação em (por exemplo, criptar) cada CU de um bloco em árvore de acordo com uma ordem de Z-scan. Em outras palavras, o encriptador de vídeo 20 pode criptar uma CU de topo à esquerda, uma CU de topo à direita, uma CU de fundo à esquerda, e então uma CU de fundo à direita, nessa ordem. Quando o encriptador de vídeo 20 realiza uma operação de criptação em uma CU particionada, o encriptador de vídeo 20 pode criptar CUs associadas a sub-blocos do bloco de vídeo da CU particionada de acordo com a ordem de Z-scan. Em outras palavras, o encriptador de vídeo 20 pode criptar uma CU associada a um sub-bloco de topo à esquerda, uma CU associada a um sub-bloco de topo à direita, uma CU associada a um sub-bloco de fundo à esquerda, e então uma CU associada a um sub-bloco de fundo à direita, nessa ordem.
[0062] Como um resultado da criptação das CUs de um bloco em árvore de acordo com uma ordem de Z-scan, as Cus acima, acima e à esquerda, acima e à direita, à esquerda, e abaixo e à esquerda de uma dada CU podem ter sido criptadas. As CUs abaixo e à direita da dada CU ainda não foi criptada. Consequentemente, o encriptador de vídeo 20 pode ter capacidade de acessar informações geradas através da criptação de algumas CUs que estão próximas à dada CU durante a criptação da dada CU. Entretanto, o encriptador de vídeo 20 pode não ter capacidade de acessar informações geradas através da criptação de outras CUs que estão próximas à dada CU durante a criptação da dada CU.
[0063] Quando o codificador de vídeo 20 codifica uma CU não particionada, o codificador 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 codificador de vídeo 20 pode gerar um bloco de vídeo previsto para cada PU da CU. O bloco de vídeo preditivo 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.
[0064] Quando o encriptador de vídeo 20 usa intraprevisão para gerar o bloco de vídeo previsto de uma PU, o encriptador de vídeo 20 pode gerar o bloco de vídeo previsto da PU com base em amostras decodificadas da figuração associada à PU. Caso o encriptador de vídeo 20 use intraprevisão para gerar blocos de vídeo previstos das PUs de uma CU, a CU é uma CU intraprevista. Quando o encriptador de vídeo 20 usa interprevisão para gerar o bloco de vídeo previsto da PU, o encriptador de vídeo 20 pode gerar o bloco de vídeo previsto da PU com base em amostras decodificadas de uma ou mais figurações diferentes da figuração associada à PU. Caso o encriptador de vídeo 20 use interprevisão para gerar blocos de vídeo previstos das PUs de uma CU, a CU é uma CU interprevista.
[0065] Adicionalmente, quando o codificador de vídeo 20 usa a interprevisão para gerar um bloco de vídeo previsto para um PU, o codificador 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 casos, um bloco de referência de uma PU pode também ser chamado de “amostra de referência” da PU. O codificador de vídeo 20 pode gerar o bloco de vídeo previsto para a PU com base nos blocos de referência da PU.
[0066] Após o codificador de vídeo 20 gerar os blocos de vídeo previstos para uma ou mais PUs de uma CU, o codificador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de vídeo 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.
[0067] 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.
[0068] O encriptador de vídeo 20 pode aplicar uma ou mais transformadas para blocos de vídeo residuais associados às TUs para gerar 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.
[0069] Após gerar um bloco de coeficiente de transformada, o codificador de vídeo 20 pode realizar um processo de quantização no bloco de coeficiente de transformada. A quantização geralmente se refere a um processo em que coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usados para representar os coeficientes de transformada, o que fornece uma compactação adicional. O processo de quantização pode reduzir a profundidade de bit associada a algum ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n-bit pode ser arredondado para um coeficiente de transformada de mbit durante a quantização, em que n é maior que m.
[0070] O encriptador de vídeo 20 pode associar cada CU com 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 blocos de coeficiente de transformada associados à CU. O codificador 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 associados à CU.
[0071] Após o codificador de vídeo 20 quantiza um bloco de coeficiente de transformada, o codificador 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 criptação por entropia, tal como operações de codificação aritmética binária adaptativa ao contexto (CABAC), para 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 partição de intervalo de probabilidade (PIPE) ou outra codificação aritmética binária também podem ser usadas.
[0072] 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.
[0073] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo codificador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo encriptador pelo encriptador de vídeo 20. Quando o decodificador de vídeo 30 recebe 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 realiza 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 figurações 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.
[0074] 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 a fim de reconstruir os blocos de vídeo residuais associados às TUs da CU. Após gerar os blocos de vídeo previstos e após 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 maneira, 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.
CODIFICADOR DE VÍDEO
[0075] 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 na presente revelação.
[0076] Para propósitos de explicação, esta revelação descreve o encriptador de vídeo 20 no contexto de codificação de HEVC. No entanto, 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 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.
[0077] O encriptador de vídeo 20 pode realizar intra e 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 tem base 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 vários 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 vários modos de codificação com base em temporização.
[0078] No exemplo da Figura 2A, o codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do 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 figuração decodificada 114 e uma unidade de codificação por entropia 116. A unidade de processamento de previsão 100 incluir uma unidade de interprevisão 121, uma unidade de estimativa 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, poucos ou diferentes componentes funcionais. Além disso, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem altamente integrada, porém, são representadas no exemplo da Figura 2A separadamente para propósitos explicativos.
[0079] O encriptador de vídeo 20 pode receber dados de vídeo. O codificador 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 figurações. A fim de codificar os dados de vídeo, o codificador de vídeo 20 pode realizar uma operação de codificação em cada uma das figurações. Como parte de realizar a operação de criptação em uma figuração, o encriptador de vídeo 20 pode realizar operações de criptação em cada fatia da figuração. Como parte de realizar uma operação de criptação em uma fatia, o encriptador de vídeo 20 pode realizar operações de criptação em blocos em árvore na fatia.
[0080] Como parte de realizar uma operação de criptação em um bloco em árvore, a unidade de processamento de previsão 100 pode realizar particionamento de QuadTree no bloco de vídeo do bloco em á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 com tamanhos iguais, particionar um ou mais dentre os sub-blocos em quatro sub- sub-blocos com tamanhos iguais, e assim por diante.
[0081] Os tamanhos dos blocos de vídeo associados às CUs podem estar em faixa a partir de amostras 8x8 até o tamanho do bloco de árvore com um máximo de amostras 64x64 ou maior. Na presente 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.
[0082] Além disso, como parte da realização da operação de codificaçã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, sendo que o nó 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.
[0083] 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 corresponde ao nó ser particionado (por exemplo, divido) em quatro sub- blocos. Os elementos de sintaxe para uma CU pode ser definido 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 corresponde a um nó-folha na estrutura de dados de árvore quadrática. Um bloco de árvore codificado pode incluir os dados com base na estrutura de dados de árvore quadrática para um bloco de árvore correspondente.
[0084] O codificador de vídeo 20 pode realizar as operações de codificaçã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.
[0085] Como parte de realizar 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 codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar vários tamanhos de PU. Presumindo-se 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 NxN e interprevisão em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, nLx2N, nRx2N ou similar. O encriptador de vídeo 20 e o decodificador de vídeo 30 também podem suportar particionamento assimétrico para 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.
[0086] A unidade de interprevisão 121 pode realizar a interprevisão em cada PU da CU. A interprevisão pode fornecer a compressão temporal. A fim de realizar a interprevisão em uma PU, a unidade de estimativa de movimento 122 pode gerar informações de movimento para a PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo 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). Na presente revelação, um bloco de vídeo previsto gerado pela unidade de compensação de movimento 124 pode ser denominado de um bloco de vídeo interprevisto.
[0087] As fatias podem ser fatias I, fatias P ou fatias B. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem realizar diferentes operações para uma PU de uma CU dependendo da possibilidade de a PU estar em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Desse modo, caso a PU esteja em uma fatia I, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 não realizam a interprevisão na PU.
[0088] 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 de "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 estimativa de movimento 122 realiza a operação de estimativa de movimento em relação a uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode 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 correspondem mais proximamente às amostras no bloco de vídeo da PU. A unidade de estimativa 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 estimativa 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 de diferença absoluta (SAD), soma de diferença quadrática (SSD) ou através de outras métricas de diferença.
[0089] Após identificar um bloco de referência de uma PU em uma fatia P, a unidade de estimativa de movimento 122 pode gerar um índice de referência que indica a 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 estimativa de movimento 122 pode gerar vetores de movimento para graus variantes de precisão. Por exemplo, a unidade de estimativa de movimento 122 pode gerar vetores de movimento em 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 da 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 estimativa de movimento 122 pode emitir o índice de 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.
[0090] Se a PU estiver em uma fatia B, a figuração que contém a PU pode estar associada a duas listas de figurações de referência, referidas como “lista 0” e “lista 1”. Em alguns exemplos, uma figuração 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.
[0091] Além disso, caso a PU esteja em uma fatia B, a unidade de estimativa de movimento 122 pode realizar previsão unidirecional ou a previsão bidirecional para a PU. Quando a unidade de estimativa de movimento 122 realiza a previsão unidirecional para a PU, a unidade de estimativa de movimento 122 pode buscar nas figurações de referência da lista 0 ou da lista 1 um bloco de referência para a PU. Em seguida, a unidade de estimativa de movimento 122 pode gerar um índice de referência que indica figuração 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 estimativa 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 figuração de referência na lista 0 ou na lista 1. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo previsto da PU com base no bloco de referência indicado pelas informações de movimento da PU.
[0092] Quando a unidade de estimativa de movimento 122 realiza a previsão bidirecional para uma PU, a unidade de estimativa de movimento 122 pode buscar nas figurações de referência da lista 0 um bloco de referência para a PU e pode também buscar nas figurações de referência da lista 1 outro bloco de referência para a PU. Em seguida, a unidade de estimativa de movimento 122 gerar índices de referência que indicam as figurações 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 estimativa 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 no bloco de referência indicado pelas informações de movimento da PU.
[0093] Em alguns casos, a unidade de estimação de movimento 122 não emite um conjunto completo de informações de movimento para uma PU para a unidade de criptação por entropia 116. Em vez 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 estimativa de movimento 122 pode determinar que as informações de movimento da PU são suficientemente similares às informações de movimento de uma PU vizinha. Nesse exemplo, a unidade de estimativa 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 estimativa 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 de sinalizar as informações de movimento da segunda PU com o uso de menos bits.
[0094] 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 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 intraprevisão em PUs em fatias I, fatias P e fatias B.
[0095] A fim de 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 vizinhas podem estar acima, acima e à direita, acima e à esquerda ou à esquerda da PU, assumindo uma ordem de criptação da esquerda para a direita, do topo para a base para PUs, CUs e blocos em árvore. A unidade de intraprevisão 126 pode usar vários números de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcional, dependendo do tamanho da PU.
[0096] A unidade de processamento de previsão 100 pode selecionar os dados de previsão para uma PU de 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 em métricas de taxa/distorção dos conjuntos de dados de previsão.
[0097] Caso a unidade de processamento de previsão 100 selecione 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ários modos. Por exemplo, pode ser provável que o modo de intraprevisão selecionado seja o mesmo que o modo de intraprevisão de uma PU vizinha. Em outras palavras, o modo de intraprevisão da PU vizinha pode ser o modo mais provável para a PU atual. Desse modo, a unidade de processamento de previsão 100 pode gerar um elemento de sintaxe para indicar que o modo de intraprevisão selecionado é o mesmo que o modo de intraprevisão da PU vizinha.
[0098] 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 de previsão intercamada. A unidade de previsão intercamada 128 utiliza 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.
[0099] 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, indicados 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 a diferentes componentes de amostra das amostras no bloco de vídeo da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que correspondem à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 das 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.
[0100] A unidade de processamento de previsão 100 pode realizar a partição de árvore quadrática a fim de 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 se basear nos tamanhos e nas posições dos 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.
[0101] 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 várias transformadas ao bloco de vídeo residual associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente semelhante ao bloco de vídeo residual associado a uma TU.
[0102] 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.
[0103] O encriptador de vídeo 20 pode associar um valor de QP a uma CU de vários modos. Por exemplo, o encriptador de vídeo 20 pode realizar uma análise de distorção de taxa em um bloco em árvore associado à CU. Na análise de distorção de taxa, o encriptador de vídeo 20 pode gerar múltiplas representações codificadas do bloco em árvore através da realização de uma operação de criptação múltiplas vezes no bloco em á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 criptadas do bloco em árvore. O encriptador de vídeo 20 pode sinalizar que um dado valor de QP é associado à CU quando o dado valor de QP é associado à CU em uma representação codificada do bloco em árvore que tem uma taxa de bits mais baixa e métrica de distorção.
[0104] A unidade de quantização inversa 108 e a unidade de transformada inversa 110 pode 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. Através da reconstrução de blocos de vídeo para cada TU de uma CU, desse modo, o encriptador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0105] 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 figuração decodificada 114. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem usar uma figuração de referência que contém o bloco de vídeo reconstruído para realizar a interprevisão em PUs de figurações subsequentes. Além disso, uma unidade de intraprevisão 126 pode usar blocos de vídeo reconstruídos no armazenamento temporário de figuração decodificada 114 para realizar intraprevisão em outras PUs na mesma figuração como da CU.
[0106] A unidade de criptação por entropia 116 pode receber dados de outros componentes funcionais do encriptador de vídeo 20. Por exemplo, a unidade de criptação por entropia 116 pode receber blocos de coeficiente de transformada da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de previsão 100. Quando a unidade de criptação por entropia 116 recebe os dados, a unidade de criptação por entropia 116 pode realizar uma ou mais operações de criptação por entropia para 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 codificação por entropia 116 pode emitir um fluxo de bits que inclui os dados codificados por entropia.
[0107] Com parte da realização de uma operação de codificação por entropia nos dados, a unidade de codificação por entropia 116 pode selecionar um modelo de contexto. Caso a unidade de codificação por entropia 116 esteja realizando 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.
[0108] Codificador de Vídeo Multicamadas
[0109] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um encriptador de vídeo de multicamada 23 (também chamado simplesmente de encriptador de vídeo 23) que pode implantar técnicas de acordo com aspectos descritos nesta 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. Adicionalmente, o encriptador de vídeo 23 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação.
[0110] O encriptador de vídeo 23 inclui um encriptador de vídeo 20A e um encriptador de vídeo 20B, em que cada um dos quais 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. Adicionalmente, conforme indicado pela reutilização de números de referência, os encriptadores de vídeo 20A e 20B podem incluir pelo menos alguns dos sistemas e subsistemas como o encriptador de vídeo 20. Embora o encriptador de vídeo 23 seja ilustrado como por incluir dois encriptadores de vídeo 20A e 20B, o encriptador de vídeo 23 não é limitado como tal e pode incluir qualquer número de camadas do encriptador de vídeo 20. Em algumas modalidades, o encriptador de vídeo 23 pode incluir um encriptador de vídeo 20 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 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 que quadros em uma unidade de acesso. Em alguns tais casos, algumas das camadas de encriptador de vídeo podem estar inativas durante o processamento de algumas unidades de acesso.
[0111] Em adição aos 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, realizar a superamostragem de uma camada de base de um quadro de vídeo recebido para, por exemplo, criar uma camada de aperfeiçoamento. A unidade de reamostragem 90 pode realizar a superamostragem de informações específicas associadas à camada de base recebida de um quadro, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode realizar a superamostragem do tamanho espacial ou número de pixels da camada de base, mas o número 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 superamostragem. Em algumas modalidades, a unidade de reamostragem 90 é configurada para realizar superamostragem 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 superamostragem de uma camada de base ou uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode realizar a subamostragem 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 ser subamostrado em vez de superamostrado.
[0112] 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 para realizar superamostragem da figuração (ou das informações de figuração recebidas). Essa figuração superamostrada 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 superior entre o encriptador de vídeo da camada 0 e o encriptador da camada 1 da Figura 2B.
[0113] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou ignorada. Em tais casos, a figuração do armazenamento temporário de figuração decodificada 114 do codificador 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 codificador de vídeo 20B. Por exemplo, caso os dados de vídeo fornecidos ao codificador de vídeo 20B e à figuração de referência do armazenamento temporário de figuração decodificada 114 do codificador de vídeo 20A tenham o mesmo tamanho ou resolução, a figuração de referência pode ser fornecida ao codificador de vídeo 20B sem qualquer reamostragem.
[0114] Em algumas modalidades, o codificador de vídeo 23 reduzir a resolução dos dados de vídeo a serem fornecidos ao codificador 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 codificador 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.
[0115] 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 combinado pode ser criado por pegar um fluxo de bits de cada um dos encriptadores de vídeo 20A e 20B e alternar qual fluxo de bits é emitido em um dado momento. Embora em alguns casos os bits dos dois (ou mais no caso de mais de 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 emissão pode ser criado por alternar o fluxo de bits selecionado um bloco por vez. Em outro exemplo, o fluxo de bits de emissão pode ser criado através da emissão de um não 1: 1 de blocos de cada um dos encriptadores de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos do encriptador de vídeo 20B para cada emissão de bloco do encriptador de vídeo 20A. Em algumas modalidades, a emissão fluxo do mux 98 pode ser pré-programada. 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 de um processador em um dispositivo de fonte incluindo o dispositivo de fonte 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 em comparação com uma assinatura gratuita), ou com base em qualquer outro fator para determinar uma emissão de resolução desejada do encriptador de vídeo 23.
[0116] DECODIFICADOR DE VÍDEO
[0117] A Figura 3A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar as técnicas em conformidade com os aspectos descritos na presente 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.
[0118] Para propósitos explicativos, a presente revelação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. No entanto, 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 de camada única. 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.
[0119] No exemplo da Figura 3A, o decodificador de vídeo 30 includes a 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 figuração 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 decodificador de vídeo 30 pode incluir mais, menos ou diferentes componentes funcionais.
[0120] O decodificador de vídeo 30 pode receber um fluxo de bits que compreende dados de vídeo criptados. O fluxo de bits pode incluir uma pluralidade de elementos de sintaxe. Quando o decodificador de vídeo 30 recebe o fluxo de bits, a unidade de decodificação 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 codificados 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.
[0121] 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 figuração, 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 figuração definições de parâmetro das unidades de NAL de definição de parâmetro de figuração, os dados de SEI das unidades de NAL de SEI, e assim por diante.
[0122] Além disso, as unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificada. 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.
[0123] Como parte da extração dos dados de fatia das unidades de NAL de fatia codificada, a unidade de decodificação por entropia 150 pode realizar as operações de análise que extraem os elementos de sintaxe das CUs codificadas nos dados de fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados aos blocos de coeficiente de transformada. Em seguida, a unidade de decodificação por entropia 150 pode realizar as operações de decodificação de CABAC em alguns dos elementos de sintaxe.
[0124] 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. Através da realização da 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 ao CU.
[0125] 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 semelhante aos processos de quantização inversa proposta 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, igualmente, um grau de quantização inversa para unidade de quantização inversa 154 para aplicar.
[0126] 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 uma transformada inversa para aplicar 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, moo de codificação, ou semelhantes. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformada inversa em cascata.
[0127] 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 da PU para calcular valores interpolados para amostras de números subinteiros 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 informações de sintaxe recebidas e usar os filtros de interpolação para produzir o bloco de vídeo previsto.
[0128] 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.
[0129] 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 atual PU. Por exemplo, é provável que o modo de intraprevisão da atual PU seja igual ao modo de intraprevisão de uma PU vizinha. Em outras palavras, o modo de intraprevisão da PU vizinha pode ser o modo mais provável para a atual PU. Consequentemente, 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 vizinha. Desse modo, a unidade de intraprevisão 164 pode usar o modo de intraprevisão para gerar os dados de previsão (por exemplo, amostras previstas) para o PU com base nos blocos de vídeo de PUs espacialmente vizinhas.
[0130] Conforme discutido acima, l 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 de previsão intercamada. A unidade de previsão intercamada 166 utiliza 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.
[0131] 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. Desse modo, 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.
[0132] 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 desblocagem para reduzir os artefatos de blocagem associados à CU. Após a unidade de filtro 159 realizar uma operação de desblocagem para reduzir artefatos de blocagem associados à CU, o decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU no 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 subsequente compensação de movimento, intraprevisão e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 da Figura 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.
[0133] Decodificador Multicamadas
[0134] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo de multicamada 33 (também chamado simplesmente de decodificador de vídeo 33) que pode implantar técnicas de acordo com aspectos descritos nesta revelação. O decodificador de vídeo 33 pode ser configurado para processar quadros de vídeo de múltipla camada, tais como para codificação de múltiplas visualizações e SHVC. Além disso, o decodificador de vídeo 33 pode ser configurado para realizar qualquer uma ou todas as técnicas desta revelação.
[0135] 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. Além disso, conforme indicado pela reutilização de numerais de referência, os decodificadores de vídeo 30A e 30B podem incluir pelo menos algum dentre os sistemas e subsistemas como o decodificador de vídeo 30. Embora o decodificador de vídeo 33 seja ilustrado como inclusivo de dois decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 não se limita a isso e pode incluir qualquer número 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 pode estar inativa quando o durante o processamento de algumas unidades de acesso.
[0136] 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 figuração de referência para o quadro ou unidade de acesso. Essa camada aprimorada pode ser armazenada no armazenamento temporário de figuração 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 superamostragem 92 é configurada para realizar superamostragem 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. Em alguns casos, a unidade de superamostragem 92 pode ser uma unidade de reamostragem configurada para realizar superamostragem e/ou subamostragem de uma camada de um quadro de vídeo recebido.
[0137] A unidade de superamostragem 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 realizar a superamostragem da figuração (ou as informações de figuração recebidas). Essa figuração superamostrada 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.
[0138] 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 fornecido diretamente, ou pelo menos sem ser fornecido à unidade de aumento de resolução 92, à unidade de processamento de previsão 152 do decodificador de vídeo 30B. Por exemplo, caso dados de vídeo fornecidos para o 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 para o decodificador de vídeo 30B sem superamostragem. Adicionalmente, em algumas modalidades, a unidade de superamostragem 92 pode ser uma unidade de reamostragem 90 configurada para realizar superamostragem e subamostragem de uma figuração de referência recebida a partir do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A.
[0139] 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 criptada em múltiplos fluxos de bits em que cada emissão de fluxo de bits pelo demux 99 é fornecida para um diferente decodificador de vídeo 30A e 30B. Os múltiplos fluxos de bits podem ser criados através do recebimento de 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 um outro exemplo, o fluxo de bits pode ser dividido por uma razão diferente de -1: 1:1 de blocos para a 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 destinação incluindo o dispositivo de destinação 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 subscrição associada a um usuário (por exemplo, uma subscrição paga versus uma subscrição livre) ou com base em qualquer outro fator para determinar uma resolução obtenível pelo decodificador de vídeo 33.
[0140] Figurações de Ponto de Acesso Intra- Aleatório (IRAP)
[0141] Alguns esquemas de codificação de vídeo podem fornecer vários pontos de acesso aleatório por todo o fluxo de bits de modo que o fluxo de bits possa ser decodificado iniciando a partir de qualquer um desses pontos de acesso aleatório sem precisar decodificar quaisquer figurações que precedem esses pontos de acesso aleatório 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 na ordem de decodificação, exceto as figurações de entrelinhamento ignorado de acesso aleatório (RASL), pode ser decodificado corretamente sem usar quaisquer figurações que precedem o ponto de acesso aleatório. Por exemplo, até mesmo caso uma porção do fluxo de bits seja perdida durante transmissão ou durante decodificação, um decodificador pode continuar a decodificação do fluxo de bits com o 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.
[0142] Em alguns esquemas de codificação, tais pontos de acesso aleatórios podem ser fornecidos pelas figurações que são denominadas de figurações intraponto de acesso aleatório (IRAP). Por exemplo, um ponto de acesso aleatório associado a uma camada de aperfeiçoamento de 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.
[0143] 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 referidas como figurações de RASL. Outro tipo de figuração pode seguir uma figuração IRAP em ordem de decodificação e preceder a figuração IRAP em ordem de saída é uma figuração esquerda passível de decodificação por acesso aleatório, que pode não conter referências a quaisquer figurações que precedem a figuração IRAP em ordem de decodificação. As figurações de 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 ao decodificador (por exemplo, devido ao fato de que dois fluxos de bits são unidos entre si e a figuração de BLA é uma 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.
[0144] Mensagens de SEI;
[0145] 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.
[0146] 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.
[0147] 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.
[0148] 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.
[0149] 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.
[0150] 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.
[0151] 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.
[0152] 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.
[0153] 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.
[0154] 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.
[0155] 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.
[0156] 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.
[0157] 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.
[0158] 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.
[0159] 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.
[0160] 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.
[0161] 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.
[0162] 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.
[0163] 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.
[0164] 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".
[0165] 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.
[0166] 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.
[0167] 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.
[0168] Conjuntos de Parâmetro de Sequência (SPS)
[0169] 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.
[0170] 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.
[0171] 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.
[0172] 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.
[0173] 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.
[0174] 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.
[0175] 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.
[0176] 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.
[0177] 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.
[0178] Mensagens de SEI de Ponto de Recuperação e Derivações de POC
[0179] 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.
[0180] 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.
[0181] 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.
[0182] 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.
[0183] 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.
[0184] 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.
[0185] 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.
[0186] 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.
[0187] 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.
[0188] 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.
[0189] 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.
[0190] Alternativamente, as seguintes limitações podem ser aplicadas: a. 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). b. 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). c. 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.
[0191] Mensagens de SEI de Informações de Atualização de Região
[0192] 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.
[0193] 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).
[0194] 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.
[0195] 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.
[0196] 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.
[0197] 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.
[0198] 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.
[0199] 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.
[0200] 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.
[0201] 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.
[0202] 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.
[0203] 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.
[0204] 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.
[0205] 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.
[0206] Mensagem de SEI de Orientação de Exibição
[0207] 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.
[0208] 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. Por exemplo, 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 a possibilidade ou não de a mensagem de SEI de orientação de exibição ser aplicada a picA.
[0209] 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.
[0210] Fluxogramas Exemplificativos
[0211] 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 processador/controlador 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 processador/controlador 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 processador/controlador 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 processador/controlador 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 processador/controlador 13 ou um processador mostrados agora podem compreender meios para associar.
[0212] A Figura 9 mostra um fluxograma de um método 900 para determinar a possibilidade para 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 processador/controlador 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 a 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 processador/controlador 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 processador/controlador 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 processador/controlador 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 processador/controlador 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.
[0213] Implantação(ões) exemplificativas
[0214] 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.
[0215] Alterar as seguintes definições na cláusula 3 conforme a seguir:
[0216] 3.X unidade de acesso; um conjunto de unidades de NAL que são associadas umas às outras de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades de NAL de VCL de todas as figurações codificadas associadas ao mesmo tempo de saída e suas unidades de NAL de não VCL associadas.
[0217] OBSERVAÇÕES - Figurações na mesma unidade de acesso são associadas à mesma contagem de ordem de figuração.
[0218] Adicionar as seguintes definições à cláusula 3:
[0219] 3.X partição de fluxo de bits de base: A partição de fluxo de bits que também é um fluxo de bits em conformidade com o mesmo.
[0220] 3.X partição de fluxo de bits: Uma sequência de bits, na forma de um fluxo de unidade de NAL ou um fluxo de byte, que é um subconjunto de um fluxo de bits de acordo com um particionamento.
[0221] 3.X camada de saída: Uma camada de um conjunto de camadas de saída que é emitida quando TargetOptLayerSetldx é igual ao índice do conjunto de camadas de saída.
[0222] 3.X conjunto de camadas de saída: Um conjunto de camadas que consiste nas camadas de uma dentre os conjuntos de camadas especificados, em que uma ou mais camadas no conjunto de camadas são indicadas como as camadas de saída.
[0223] 3.X ponto de operação de saída: Um fluxo de bits que é criado a partir de outro fluxo de bits pela operação do processo de extração de subfluxo de bits com o outro fluxo de bits, um Temporalld alvo mais alta e uma lista de identificador de camada de alvo como entradas, e que é associado a um conjunto de camadas de saída alvo.
[0224] 3.X unidade de figuração: Um conjunto de unidades de NAL que são associadas umas às outras de acordo com uma regra de classificação especificada, são consecutivas na ordem de decodificação, e contêm as unidades de NAL de VCL de figuração codificada e suas unidades de NAL de não VCL associadas.
[0225] 3.X camada de saída alvo: Uma camada que deve ser emitida e é uma dentre as camadas de saída do conjunto de camadas de saída com índice olsIdx de modo que TargetOptLayerSetldx seja igual a olsIdx.
[0226] 3X conjunto de camadas de saída alvo:Um conjunto de camadas de saída associado à TargetOptLayerSetldx variável que especifica uma lista de identificador de camada de um ponto de operação de saída em uso e um conjunto de camadas-alvo de saída.
[0227] Adicionar o seguinte à subcláusula D.3.1:
[0228] Nas subcláusulas a seguir deste anexo, quando uma mensagem de SEI particular se aplica a um conjunto de uma ou mais camadas (em vez de um conjunto de pontos de operação), isto é, quando o valor de payloadType não é igual a um de 0 (período de armazenamento temporário). 1 (temporização de figuração), e 130 (informações de unidade de decodificação), o seguinte se aplica:
[0229] - As semânticas se aplicam independentemente a cada camada particular com nuh_layer_id igual a targetLayerld das camadas que a mensagem de SEI particular se aplica.
[0230] - A mensagem de SEI atual se refere à mensagem de SEI particular.
[0231] - A unidade de acesso atual se refere à unidade de acesso que contém a mensagem de SEI atual.
[0232] - A camada atual se refere à camada com nuh_layer_id igual a targetLayerld.
[0233] - A figuração atual ou figuração decodificada atual se refere à figuração com nuh_layer_id igual a targetLayerld (isto é, na camada atual) na unidade de acesso atual.
[0234] - As camadas de referência direta e indireta da camada atual são chamadas de camadas de referência da camada atual.
[0235] Nas subcláusulas a seguir deste anexo, quando uma mensagem de SEI particular se aplica a um conjunto de um ou mais pontos de operação (em vez de um conjunto de uma ou mais camadas), isto é, quando o valor de payloadType é igual a 0 (período de armazenamento temporário). 1 (temporização de figuração), ou 130 (informações de unidade de decodificação), o seguinte se aplica:
[0236] - As semânticas se aplicam independentemente a cada ponto de operação particular do conjunto de pontos de operação que a mensagem de SEI particular se aplica.
[0237] - A mensagem de SEI atual se refere à mensagem de SEI particular.
[0238] - O ponto de operação atual se refere ao ponto de operação particular.
[0239] - Os termos "unidade de acesso" e "CVS" se aplicam ao fluxo de bits BitstreamToDecode que é o subfluxo de bits do ponto de operação particular.
[0240] Modificar a subcláusula D.3.2 conforme a seguir:
[0241] ...
[0242] A presença de mensagens de SEI de período de armazenamento temporário para um ponto de operação é especificado conforme a seguir:
[0243] - Se NalHrdBpPresentFlag for igual a 1 ou VclHrdBpPresentFlag for igual a 1, o seguinte se aplica para cada unidade de acesso na CVS:
[0244] - Se a unidade de acesso for uma unidade de acesso de IRAP, uma mensagem de SEI de período de armazenamento temporário aplicável ao ponto de operação deve ser associada à unidade de acesso.
[0245] - De outro modo, se ambas as seguintes condições se aplicarem, uma mensagem de SEI de período de armazenamento temporário aplicável ao ponto de operação pode ou não estar presente para a unidade de acesso:
[0246] - A unidade de acesso tem Temporalld igual a 0.
[0247] - A unidade de acesso tem pelo menos uma figuração que tem discardable_flag igual a 1, e e não é uma figuração RASL, RADL ou de não referência de subcamada.
[0248] - De outro modo, a unidade de acesso não deve ser associada a uma mensagem de SEI de período de armazenamento temporário aplicável ao ponto de operação.
[0249] - De outro modo (NalHrdBpPresentFlag e VclHrdBpPresentFlag são ambos iguais a 0), nenhuma unidade de acesso na CVS deve ser associada a uma mensagem de SEI de período de armazenamento temporário aplicável ao ponto de operação.
[0250] OBSERVAÇÃO 1 - Para algumas aplicações, a presença frequente de mensagens de SEI de período de armazenamento temporário podem ser desejáveis (por exemplo, para o acesso aleatório em uma figuração de IRAP ou uma figuração de não IRAP ou para junção de fluxo de bits).
[0251] Modificar a subcláusula D.3.4 conforme a seguir:
[0252] pan_scan_rect_cancel_flag igual a 1 indicar que uma mensagem de SEI cancela a persistência de qualquer mensagem de SEI de retângulo de tela cheia anterior na ordem de saída que se aplica à camada atual, pan_scan_rect_cancel_flag igual a 0 indicar que as informações de retângulo de tela cheia se seguem.
[0253] pan_scan_rect_persistence_flag especifica a persistência da mensagem de SEI de retângulo de tela cheia para a camada atual.
[0254] pan_scan_rect_persistence_flag igual a 0 especifica que as informações de retângulo de tela cheia se aplicam à figuração decodificada atual apenas.
[0255] Deixar picA ser a figuração atual. pan_scan_rect_persistence_flag igual a 1 especifica que as informações de retângulo de tela cheia persistem para a camada atual na ordem de saída até que quaisquer dentre as seguintes condições sejam verdadeiras
[0256] - Uma nova CVS começa.
[0257] - O fluxo de bits termina.
[0258] - Uma figuração picB na camada atual em uma unidade de acesso que contém uma mensagem de SEI de retângulo de tela cheia com o mesmo valor de pan_rect_id e aplicável à camada atual é emitido em que PicOrderCnt(picB) é maior que PicOrderCnt(picA), em que PicOrderCnt(picB) e PicOrderCnt(picA) são os calores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0259] Modificar a subcláusula D.3.8 conforme a seguir:
[0260] A mensagem de SEI de ponto de recuperação auxilia um decodificador a determinar quando o processo de decodificação irá produzir figurações aceitáveis na camada atual para a exibição após o decodificador iniciar o acesso aleatório ou mover para cima camada, ou após o encriptador indicar um enlace interrompido.
[0261] Quando a mensagem de SEI de ponto de recuperação se aplica à camada atual e a todas as camadas de referência da camada atual, a figuração atual que está presente na unidade de acesso que contém a mensagem de SEI de ponto de recuperação é indicada como uma figuração de acesso aleatório de camada. Quando a mensagem de SEI de ponto de recuperação se aplica à camada atual, porém, nem todas as camadas de referência da camada atual, a figuração atual que está presente na unidade de acesso que contém a mensagem de SEI de ponto de recuperação é indicada como uma figuração de movimentação para cima de camada.
[0262] As figurações decodificadas na camada atual produzidas pelo acesso aleatório ou ligação de camada em ou antes da unidade de acesso atual não precisam ser corrigidas no conteúdo até que o ponto de recuperação indicado, e a operação do processo de decodificação que começa na unidade de acesso atual possa conter referências às figurações indisponíveis na memória temporária de figuração decodificada.
[0263] Além disso, pelo uso da broken_link_flag, uma mensagem de SEI de ponto de recuperação pode indicar para o decodificador a localização de algumas figurações na camada atual no fluxo de bits que podem resultar em artefatos visuais graves quando exibidos, mesmo quando o processo de decodificação tiver começado na localização de uma unidade de acesso de IRAP anterior na ordem de decodificação que contém figurações de IRAP em todas as camadas.
[0264] OBSERVAÇÃO 2 - A broken_link_flag pode ser usada por encriptadores que indicam a localização de um ponto após o qual o processo de decodificação para a decodificação de algumas figurações na camada atual pode causar referências às figurações que, embora disponíveis para o uso no processo de decodificação, não são as figurações que foram usadas para referência quando o fluxo de bits foi criptado originalmente (por exemplo, devido a uma operação de junção realizada durante a geração do fluxo de bits).
[0265] As seguintes condições devem ser satisfeitas para um ponto de recuperação que é aplicável à camada atual:
[0266] - Quando uma camada layerA tiver pelo menos uma camada de referência, e as figurações que pertencem a layerA e todas as sias camadas de referência em uma unidade de acesso particular tiverem poc_msb_val_present_flag igual a 0 e poc_reset_idc igual a 0, a unidade de acesso não deve conter uma unidade de NAL de SEI que contém uma mensagem de SEI de ponto de recuperação que se aplica ao conjunto de camadas que contém apenas layerA e todas as suas camadas de referência.
[0267] - Quando uma camada layerA tiver nuh_layer_id maior que 0, e uma figuração de layerA em uma unidade de acesso particular tiver poc_msb_val present_flag igual a 0 e poc_reset_idc igual a 0, a unidade de acesso não deve conter uma unidade de NAL de SEI que contém uma mensagem de SEI de ponto de recuperação que se aplica apenas a layerA.
[0268] - Quando uma figuração picA pertencer à camada com nuh_layer_id igual a 0 e qualquer figuração que suceder, na ordem de decodificação, a figuração picA e preceder, na ordem de decodificação, a próxima figuração de IRAP com NoRaslOutputFlag igual a 1 e nuh_layer_id igual a 0, incluindo picA e a próxima figuração de IRAP, tiver 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, tal unidade de acesso que contém picA não deve conter uma unidade de NAL de SEI que contém uma mensagem de SEI de ponto de recuperação que se aplica apenas à camada com nuh_layer_id igual a 0.
[0269] Alternativamente, as seguintes condições são adicionadas.
[0270] - Se a mensagem de SEI de ponto de recuperação for agrupada e se aplica a mais que uma camada, então, todas as figurações das camadas que a mensagem de SEI de ponto de recuperação se aplica na unidade de acesso atual devem ter poc_msb_val_present_flag igual a 1 ou ter poc_reset_idc maior que 0.
[0271] - 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 nuh_layer_id maior que 0, então, a figuração da camada que pertence à unidade de acesso atual deve ter poc_msb_val_present_flag igual a 1 ou ter poc_reset_idc maior que 0.
[0272] - De outro modo (a mensagem de SEI de ponto de recuperação se aplica apenas à camada com nuh_layer_id igual a 0), quando houver pelo menos uma figuração que sucede, na ordem de decodificação, a figuração atual e prece, 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 da elemento de sintaxe slice_segment_header_extension_length maior que 0, a figuração atual da camada que pertence à unidade de acesso atual deve ter poc_msb_val_present_flag igual a 1 ou ter poc_reset_idc maior que 0.
[0273] Alternativamente, as seguintes limitações são adicionadas.
[0274] - Se houver qualquer figuração em qualquer uma dentre as camadas a mensagem de SEI atual se aplica a uma unidade de acesso que se segue, na ordem de decodificação, a unidade de acesso atual tem poc_msb_val_present_flag presente, cada figuração em qualquer uma dentre as camadas das mensagens de SEI atuais se aplica deve ter poc_msb_val_present_flag igual a 1 ou poc_reset_idc maior que 0. recovery_poc_cnt especifica o ponto de recuperação de figurações decodificadas na camada atual na ordem de saída. Se houver uma figuração picB na camada atual que segue a figuração atual picA, porém, precede uma unidade de acesso que contém uma figuração de IRAP na camada atual na ordem de decodificação e PicOrderCnt(picB) é igual a PicOrderCnt(picA) mais o valor de recovery_poc_cnt, em que PicOrderCnt(picA) e PicOrderCnt(picB) são os valores de PicOrderCntVal de picA e picB, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB, a figuração picB é chamada de figuração de ponto de recuperação. De outro modo, a primeira figuração picC na camada atual na ordem de saída para a qual a PicOrderCnt (picC) é maior que PicOrderCnt (picA) mais o valor de recovery_poc_cnt é chamada de figuração de ponto de recuperação, em que PicOrderCnt (picA) e PicOrderCnt (picC) são valores da PicOrderCntVal de picA e picC, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picC. A figuração de ponto de recuperação não deve preceder a figuração atual na ordem de decodificação. Todas as figurações decodificadas na camada atual na ordem de saída são indicadas como corretas ou aproximadamente corretas no conteúdo que começa na posição de ordem de saída da figuração de ponto de recuperação. O valor de recovery_poc_cnt deve estar na faixa de - MaxPicOrderCntLsb / 2 a MaxPicOrderCntLsb / 2 - 1, inclusive.
[0275] exact_match_flag indicar a possibilidade de as figurações decodificadas na camada atual em e subsequentes ao ponto de recuperação especificado na ordem de saída derivado pelo início do processo de decodificação na unidade de acesso que contém a mensagem de SEI de ponto de recuperação terá uma compatibilidade exata com as figurações na camada atual que seriam produzidas através da iniciação do processo de decodificação na localização de uma unidade de acesso anterior em que a figuração da camada na camada atual e as figurações de todas as camadas de referência direta e indireta são figurações de IRAP, se houver, no fluxo de bits. O valor 0 indica que a compatibilidade pode não ser exata e o valor 1 indica que a compatibilidade será exata. Quando exact_match_flag for igual a 1, é uma exigência do de conformidade de fluxo de bits que as figurações decodificadas na camada atual em e subsequentes ao ponto de recuperação especificado na ordem de saída derivado pelo início do processo de decodificação na unidade de acesso que contém a mensagem de SEI de ponto de recuperação terá uma compatibilidade exata com as figurações na camada atual que seriam produzidas através da iniciação do processo de decodificação na localização de uma unidade de acesso anterior em que a figuração da camada na camada atual e as figurações de todas as camadas de referência direta e indireta são figurações de IRAP, se houver, no fluxo de bits.
[0276] broken_link_flag indica a presença ou ausência de um enlace interrompido na camada na camada atual na localização da mensagem de SEI de ponto de recuperação e é atribuída com semânticas adicionais conforme a seguir:
[0277] - Se broken_link_flag for igual a 1, as figurações na camada atual produzidas através da início do processo de decodificação na localização de uma unidade de acesso anterior em que a figuração da camada na camada atual e as figurações de todas as camadas de referência direta e indireta são figurações de IRAP podem conter artefatos visuais indesejáveis na medida em que as figurações decodificadas na camada atual em e subsequente à unidade de acesso que contém a mensagem de SEI de ponto de recuperação na ordem de decodificação não devem ser exibidas até o ponto de recuperação especificado na ordem de saída.
[0278] - De outro modo (broken_link_flag é igual a 0), nenhuma indicação é dada em relação a qualquer presença potencial de artefatos visuais.
[0279] Quando a figuração atual for uma figuração de BLA, o valor de broken_link_flag deve ser igual a 1.
[0280] Independentemente do valor da broken_link_flag, as figurações na camada atual subsequente para o ponto de recuperação especificado na ordem de saída são especificados para serem corretos ou aproximadamente corretos em conteúdo.
[0281] Modificar a subcláusula D.3.11 conforme a seguir:
[0282] A mensagem de SEI de início de segmento de refinamento progressivo especifica o começa de um conjunto de figurações codificadas consecutivas na camada atual na ordem de decodificação que consiste na figuração atual e uma sequência de uma ou mais figurações subsequentes na camada atual que refinam a qualidade da figuração atual, em vez de uma representação de uma situação de movimento continuamente.
[0283] Permitir que picA seja a figuração atual. O conjunto etiquetado de figurações codificadas consecutivas refinementPicSet na camada atual começa a partir da próxima figuração na camada atual após a figuração atual na ordem de decodificação e continua até uma dentre as seguintes condições ser verdadeira:
[0284] - Uma nova CVS começa.
[0285] - O fluxo de bits termina.
[0286] - pic_order_cnt_delta é maior que 0 e a PicOrderCntVal da próxima fatia, que pertence à figuração picB na camada atual, a ser decodificada, isto é, PicOrderCnt(picB), é maior que PicOrderCnt(picA) mais pic_order_cnt_delta, em que PicOrderCnt(picB) e PicOrderCnt(picA) são os valores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0287] - Uma mensagem de SEI de fim de segmento de refinamento progressivo que tem a mesma progressive_refinement_id que aquela nessa mensagem de SEI e que também se aplica à camada atual é decodificada.
[0288] A ordem de decodificação de figurações dentro de refinementPicSet deve ser a mesma que suas ordens de saída.
[0289] pic_order_cnt_delta especifica a última figuração em refinementPicSet na ordem de decodificação conforme a seguir:
[0290] - Se pic_order_cnt_delta for igual a 0, a última figuração em refinementPicSet na ordem de decodificação é a seguinte figuração:
[0291] - Se a CVS conter uma ou mais figurações na camada atual que seguem a figuração atual na ordem de decodificação e são associados com uma mensagem de SEI de fim de segmento de refinamento progressivo que tem a mesma progressive_refinement_id e também se aplica à camada atual, a última figuração no refinementPicSet é a primeira dessas figurações na ordem de decodificação.
[0292] - De outro modo, a última figuração na refinementPicSet é a última figuração na camada atual dentro da CVS na ordem de decodificação.
[0293] - De outro modo, a última figuração em refinementPicSet na ordem de decodificação é a seguinte figuração:
[0294] - Se a CVS conter uma ou mais figurações na camada atual que seguem a figuração atual na ordem de decodificação, são associadas a uma mensagem de SEI de fim de segmento de refinamento progressivo com a mesma progressive_refinement_id e aplicável à camada atual, e precede qualquer figuração picC na camada atual na CVS para o qual PicOrderCnt(picC) é maior que PicOrderCnt(picA) mais pic_order_cnt_delta, em que PicOrderCnt(picC) e PicOrderCnt(picA) são os valores de PicOrderCntVal de picC e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picC, a última figuração no refinementPicSet na ordem de decodificação é a primeira dentre essas figurações na ordem de decodificação.
[0295] - De outro modo, se a CVS conter uma ou mais figurações picD na camada atual que seguem a figuração atual na ordem de decodificação para a qual PicOrderCnt(picD) é maior que PicOrderCnt(picA) mais pic_order_cnt_delta, em que PicOrderCnt(picD) e PicOrderCnt(picA) são os valores de PicOrderCntVal de picD e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picD, a última figuração em refinementPicSet na ordem de decodificação é a última figuração na camada atual que precede a primeira dessas figurações na ordem de decodificação.
[0296] - De outro modo, a última figuração na refinementPicSet na ordem de decodificação é a última figuração na camada atual dentro da CVS na ordem de decodificação.
[0297] O valor de pic_order_cnt_delta deve estar na faixa de 0 a 256, inclusive.
[0298] Modificar a subcláusula D.3.13 conforme a seguir:
[0299] film_grain_characteristics_cancel_flag igual a 1 indica que a mensagem de SEI cancela a persistência de qualquer mensagem de SEI de características de grão de filme anterior na ordem de saída que se aplica à camada atual, film_grain_characteristics_cancel_flag igual a 0 indica que as informações de modelagem de grão de filme se seguem.
[0300] ...
[0301] film_grain_characteristics_persistence_ flag especifica a persistência da mensagem de SEI de características de grão de filme para a camada atual.
[0302] film_grain_characteristics_persistence_ flag igual a 0 especifica que a mensagem de SEI de características de grão de filme se aplica à figuração decodificada atual apenas.
[0303] Deixar picA ser a figuração atual. film_grain_characteristics_persistence_flag igual a 1 especifica que uma mensagem de SEI de características de grão de filme persiste para a camada atual na ordem de saída até que qualquer uma dentre as seguintes condições seja verdadeira:
[0304] - Uma nova CVS começa.
[0305] - O fluxo de bits termina.
[0306] - Uma figuração picB na camada atual em uma unidade de acesso que contém uma mensagem de SEI de características de grão de filme que é aplicável à camada atual é emitida em que PicOrderCnt(picB) é maior que PicOrderCnt(picA), em que PicOrderCnt(picB) e PicOrderCnt(picA) são os valores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0307] Modificar a subcláusula D.3.15 conforme a seguir:
[0308] tone_map_cancel_flag igual a 1 indica que uma mensagem de SEI de informações de mapeamento de tom cancela a persistência de qualquer mensagem de SEI de informações de mapeamento de tom anterior na ordem de saída que se aplica à camada atual, tone_map_cancel_flag igual a 0 indica que informações de mapeamento de tom se seguem.
[0309] tone_map_persistence_flag especifica a persistência da mensagem de SEI de informações de mapeamento de tom para a camada atual.
[0310] tone_map_persistence_flag igual a 0 especifica que as informações de mapeamento de tom se aplicam à figuração decodificada atual apenas.
[0311] Deixar picA ser a figuração atual. tone_map_persistence_flag igual a 1 especifica que as informações de mapeamento de tom persistem para a camada atual na ordem de saída até que quaisquer dentre as seguintes condições sejam verdadeiras
[0312] - Uma nova CVS começa.
[0313] - Uma figuração picB na camada atual em uma unidade de acesso que contém uma mensagem de SEI de informações de mapeamento de tom com o mesmo valor de tone_map_id e aplicável à camada atual é emitido em que PicOrderCnt(picB) é maior que PicOrderCnt(picA), em que PicOrderCnt(picB) e PicOrderCnt(picA) são os calores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0314] Modificar a subcláusula D.3.16 conforme a seguir:
[0315] frame_packing_arrangement_cancel_flag igual a 1 indica que a mensagem de SEI de disposição de compactação de quadro cancela a persistência de qualquer mensagem de SEI de disposição de compactação de quadro anteriores na ordem de saída que se aplicam à camada atual. frame_packing_arrangement_cancel_flag igual a 0 indica que as informações de disposição de compactação de quadro se seguem.
[0316] ...
[0317] frame_packing_arrangement_persistence_f lag especifica a persistência da mensagem de SEI de disposição de compactação de quadro para a camada atual.
[0318] frame_packing_arrangement_persistence_f lag igual a 0 especifica que a mensagem de SEI de disposição de compactação de quadro se aplica ao quadro decodificado atual apenas.
[0319] Deixar picA ser a figuração atual. frame_packing_arrangement_persistence_flag igual a 1 especifica que a mensagem de SEI de disposição de compactação de quadro persiste para a camada atual na ordem de saída até que qualquer uma dentre as seguintes condições seja verdadeira:
[0320] - Uma nova CVS começa.
[0321] - O fluxo de bits termina.
[0322] - Um quadro picB na camada atual em uma unidade de acesso que contém uma mensagem de SEI de disposição de compactação de quadro com o mesmo valor de frame_packing_arrangement_id e aplicável à camada atual é emitido em que PicOrderCnt(picB) é maior que PicOrderCnt(picA), em que PicOrderCnt(picB) e PicOrderCnt(picA) são os calores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0323] Modificar a subcláusula D.3.17 conforme a seguir:
[0324] Quando a camada atual não for indicada como uma camada de saída em qualquer conjunto de camadas de saída, não haverá nenhuma mensagem de SEI de orientação de exibição aplicável à camada atual.
[0325] OBSERVAÇÃO 1 - 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.
[0326] ...
[0327] display_orientation_persistence_flag especifica a persistência da mensagem de SEI de orientação de exibição para a camada atual.
[0328] display_orientation_persistence_flag igual a 0 especifica que a mensagem de SEI de orientação de exibição se aplica à figuração decodificada atual apenas.
[0329] Deixar picA ser a figuração atual. display_orientation_persistence_flag igual a 1 especifica que a mensagem de SEI de orientação de exibição persiste para a camada atual na ordem de saída até que uma ou mais dentre as seguintes condições sejam verdadeiras:
[0330] - Uma nova CVS começa.
[0331] - O fluxo de bits termina.
[0332] - Uma figuração picB na camada atual em uma unidade de acesso que contém uma mensagem de SEI de orientação de exibição que é aplicável à camada atual é emitida em que PicOrderCnt(picB) é maior que PicOrderCnt(picA), em que PicOrderCnt(picB) e PicOrderCnt(picA) são os valores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB.
[0333] Modificar a subcláusula D.3.18 conforme a seguir:
[0334] A estrutura de mensagem de informações de figurações de SEI fornece informações para uma lista de inserções, em que parte dessas corresponde a uma série de figurações na ordem de decodificação na camada atual na CVS.
[0335] A primeira inserção na estrutura de mensagem de informações de figurações de SEI corresponde à figuração atual. Quando houver uma figuração na camada atual que tem PicOrderCntVal igual à entryPicOrderCnt[i] variável, conforme especificado abaixo, a inserção i corresponde à figuração. A ordem de decodificação das figurações na camada atual na CVS que corresponde às inserções na estrutura de mensagem de informações de figurações de SEI corresponde aos valores de aumento de i na lista de inserções.
[0336] Qualquer figuração na camada atual na CVS que tem PicOrderCntVal igual a entryPicOrderCnt[i] para qualquer i na faixa de 0 a num_entries_in_sop_minus l, inclusive, deve corresponder a uma inserção na lista de inserções.
[0337] A estrutura de mensagem de informações de figurações de SEI não deve estar presente em uma CVS e ser aplicável para uma camada para a qual o SPS ativo tem long_term_ref_pics_present_flag igual a 1 ou num_short_term_ref_pic_sets igual a 0.
[0338] A estrutura de mensagem de informações de figurações de SEI não deve estar presente em qualquer unidade de acesso que tenha Temporalld maior que 0 ou contenha uma figuração de RASL, RADL ou não referência de subcamada na camada atual. Qualquer figuração na camada atual na CVS que corresponde a uma inserção diferente da primeira inserção descrita na estrutura de mensagem de informações de figurações de SEI não deve ser uma figuração de IRAP.
[0339] Modificar a subcláusula D.3.19 conforme a seguir:
[0340] Essa mensagem fornece um hash para cada componente de cor da figuração decodificada atual.
[0341] OBSERVAÇÃO 1 - A mensagem de SEI de hash de figuração decodificada é uma mensagem de SEI de sufixo e não pode ser contida em uma mensagem de SEI de agrupamento escalonável.
[0342] Modificar a subcláusula D.2.20 conforme a seguir:
[0343]
[0344] num_sps_ids_minus1 mais 1 indica e deve ser igual ao número de SPSs que são referidos pelas unidades de NAL de VCL da unidade de acesso associada a uma mensagem de SEI de conjuntos de parâmetros ativos. Os valores de num_sps_ids_minus1 devem estar na faixa de 0 a 15, inclusive.
[0345] active_seq_parameter_set_id[i] indica e deve ser igual ao valor da sps_seq_parameter_set_id do SPS que é referido pelas unidades de NAL de VCL com nuh_layer_id na faixa de target_nuh_layer_id[i + 1] a target_nuh_layer_idf [i + 1]- 1, inclusive, da unidade de acesso associada à mensagem de SEI. O valor de active_seq_parameter_set_id[i] deve estar na faixa de 0 a 15, inclusive.
[0346] target_nuh_layer_idf[i] especifica a targetLayerld associada active_seq_parameter_set_id[i + 1]. O valor de target_nuh_layer_id[i + 1] est[a na faixa de 0 a 62, inclusive, para i na faixa de 0 a num_sps_ids_minus1, inclusive. O valor da active_seq_parameter_set_id[i + 1] é definido para ser igual a 63.
[0347] Quando essa mensagem de SEI estiver presente, as seguintes condições de fluxo de bits devem se aplicar:
[0348] - o valor de target_nuh_layer_id[0] deve ser 0.
[0349] - o valor de target_nuh_layer_id[j] e target_nuh_layer_id[k] em que j não é igual k não deve ser o mesmo.
[0350] - o valor de target_nuh_layer_id[j] deve ser menor que o valor de target_nuh_layer_id[k] em que j é menor que k.
[0351] - quando target_nuh_layer_id[i] - target_nuh_layer_id[i- 1] for maior que 1, for i na faixa de 1 para num_sps_ids_minus1, inclusive, o SPS ativo para qualquer camada com nuh_layer_id na faixa de target_nuh_layer_id[i - 1] e target_nuh_layer_id[i] - 1, inclusive, é inferida como igual àquela indicada por active_seq_parameter_set_id[i - 1].
[0352] Modificar a subcláusula D.3.22 conforme a seguir:
[0353] A mensagem de SEI de índice zero de subcamada temporal fornece informações que podem auxiliar o decodificador a detectar figurações codificadas ausentes que têm Temporalld e discardable_flag ambos iguais a 0 e não são figurações de RASL, figurações de RADL ou figurações de não referência de subcamada.
[0354] Quando uma mensagem de SEI de índice zero de subcamada temporal estiver presente na unidade de acesso atual e se aplicar à camada atual e a figuração atual não for uma figuração de IRAP, uma mensagem de SEI de índice zero de subcamada temporal que se aplica à camada atual também deve estar presente na unidade de acesso precedente na ordem de decodificação com Temporalld igual a 0 e que contém uma figuração na camada atual.
[0355] temporal_sub_layer_zero_idx indica um índice zero de subcamada temporal conforme a seguir:
[0356] - Se a Temporalld da figuração atual for igual a 0, temporal_sub_layer_zero_idx indica o índice zero de subcamada temporal para a figuração atual.
[0357] - De outro modo, temporal_sub_layer_zero_idx indica o índice zero de subcamada temporal da figuração precedente na camada atual na ordem de decodificação com Temporalld igual a 0.
[0358] Quando o fluxo de bits contém uma unidade de acesso precedente na ordem de decodificação que tem Temporalld igual a 0 e a figuração contida na camada atual tem discardable_flag igual a 0 e não é uma figuração de RASL, uma figuração de RADL ou uma figuração de não referência de subcamada, e que a unidade de acesso precedente contém uma mensagem de SEI de índice zero de subcamada temporal que se aplica à camada atual, a prevTslOIdx variável é definida igual ao valor de temporal_sub_layer_zero_idx de tal mensagem de SEI.
[0359] As seguintes limitações se aplicam ao valor de temporal_sub_layer_zero_idx:
[0360] - Se a figuração atual está em uma figuração de IRAP, temporal_sub_layer_zero_idx deve ser igual a 0.
[0361] - De outro modo, o seguinte se aplica:
[0362] - Se a figuração atual tiver Temporalld e discardable_flag ambas iguais a 0 e não for uma figuração de RASL, uma figuração de RADL ou uma figuração de não referência de subcamada, temporal_sub_layer_zero_idx deve ser igual a (prevTslOIdx + 1) % 256.
[0363] - De outro modo, temporal_sub_layer_zero_idx deve ser igual a prevTslOIdx.
[0364] irap_pic_id é um identificador de figuração de IRAP para a camada atual. Quando a figuração atual não for a primeira figuração na camada atual no fluxo de bits na ordem de decodificação e na figuração de IRAP precedente na camada atual na ordem de decodificação tiver uma mensagem de SEI de índice zero de subcamada temporal associada, as seguintes limitações se aplicam ao valor de irap_pic_id:
[0365] - Se a figuração atual for uma figuração de IRAP, irap_pic_id deve diferir em valor do valor de irap_pic_id da mensagem de SEI de índice zero de subcamada temporal associada à figuração de IRAP precedente na camada atual na ordem de decodificação.
[0366] OBSERVAÇÃO - Sugere-se o que valor de irap_pic_id seja definido para um valor aleatório (sujeito às limitações especificadas no presente documento), para minimizar a probabilidade de valores duplicados aparecerem na camada no fluxo de bits devido às operações de perda ou de junção de figuração.
[0367] - De outro modo, irap_pic_id deve ser igual ao valor de irap_pic_id da mensagem de SEI de índice zero de subcamada temporal associado à figuração de IRAP precedente na camada atual na ordem de decodificação.
[0368] Modificar a subcláusula D.3.24 conforme a seguir:
[0369] A mensagem de SEI de informações de atualização de região indica a possibilidade de os segmentos de fatia que uma mensagem de SEI atual se aplicam pertencerem a uma região atualizada da figuração atual.
[0370] A targetLayerldList variável é derivada conforme a seguir:
[0371] - Se a mensagem de SEI de informações de atualização de região se aplicar à camada atual e a todas as camadas de referência, targetLayerldList contém a nuh_layer_id da camada atual e de todas as camadas de referência.
[0372] - De outro modo, targetLayerldList contém a nuh_layer_id da camada atual.
[0373] A mensagem de SEI de atualização de região é associada a uma mensagem de SEI de ponto de recuperação que se aplica à targetLayerldList.
[0374] Alternativamente, a mensagem de SEI de atualização de região é associada a uma mensagem de SEI de ponto de recuperação que se aplica à targetLayerldList e que não se aplica a qualquer outra camada.
[0375] Alternativamente, a mensagem de SEI de atualização de região pode ser associada a qualquer uma mensagem de SEI de ponto de recuperação que se aplica à targetLayerldList.
[0376] Uma figuração que pertence a uma camada com nuh_layer_id maior que 0 ou uma figuração que não é uma figuração de IRAP e pertence à camada com nuh_layer_id igual a 0, que é contida em uma unidade de acesso que contém uma mensagem de SEI de ponto de recuperação em que uma mensagem de SEI de ponto de recuperação se aplica a tal camada é chamada de uma figuração de atualização de decodificação gradual (GDR), e a unidade de acesso que contém a figuração é chamada de uma unidade de acesso de GDR. A unidade de acesso correspondente à figuração de ponto de recuperação indicada é chamada de unidade de acesso de ponto de recuperação.
[0377] Se houver uma figuração picB na camada atual que segue a figuração de GDR picA na camada atual na ordem de decodificação na CVS e PicOrderCnt(picB) for igual a PicOrderCnt(picA) mais o valor de recovery_poc_cnt em uma mensagem de SEI de ponto de recuperação, em que PicOrderCnt(picA) e PicOrderCnt(picB) são os valores de PicOrderCntVal valores de picA e picB, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordem de figuração para picB, deixar a lastPicInSet variável ser a figuração de ponto de recuperação. De outro modo, deixar lastPicInSet ser a figuração em targetLayerldList que precede imediatamente a figuração de ponto de recuperação na ordem de saída. A figuração lastPicInSet não deve preceder a unidade de acesso de GDR na ordem de decodificação.
[0378] Deixar gdrPicSet ser o conjunto de figurações em targetLayerldList que se inicia a partir de uma unidade de acesso de GDR para a unidade de acesso que contém lastPicInSet, inclusive, na ordem de saída. Quando o processo de decodificação para a camada atual for iniciado a partir de uma unidade de acesso de GDR, a região atualizada em cada figuração da gdrPicSet será indicada como a região da figuração que é correta ou aproximadamente correta em conteúdo, e, quando lastPicInSet for contido na unidade de acesso de ponto de recuperação, a região atualizada em lastPicInSet cobrira a figuração inteira.
[0379] Os segmentos de fatia da figuração atual que uma mensagem de SEI de informações de atualização de região se aplica consiste em todos os segmentos de fatia dentro da figuração que segue a unidade de NAL de SEI que contém uma mensagem de SEI de informações de atualização de região e precede a próxima unidade de NAL de SEI, na ordem de decodificação, que contém uma mensagem de SEI de informações de atualização de região (se houver) que tem a mesma targetLayerldList que a mensagem de SEI atual. Esses segmentos de fatia são chamados de segmentos de fatia associados a uma mensagem de SEI de informações de atualização de região.
[0380] As mensagens de SEI de informações de atualização de região não devem ser apresentadas em uma unidade de acesso salvo caso a unidade de acesso seja incluída em uma gdrAuSet associada a uma mensagem de SEI de ponto de recuperação. Quando qualquer figuração que é incluída em uma gdrPicSet for associada a uma ou mais mensagens de SEI de informações de atualização de região, todas as figurações na gdrPicSet deverão ser associadas a uma ou mais mensagens de SEI de informações de atualização de região.
[0381] Quando uma ou mais mensagens de SEI de informações de atualização de região forem associadas a uma figuração que pertence a gdrPicSet e o primeiro segmento de fatia da figuração na ordem de decodificação não ter uma mensagem de SEI de informações de atualização de região associada, o valor de refreshed_region_flag para os segmentos de fatia da figuração que precedem a primeira mensagem de SEI de informações de atualização de região é inferido como igual a 0.
[0382] Quando lastPicInSet for a figuração de ponto de recuperação, e qualquer mensagem de SEI de atualização de região for associada com a unidade de acesso de ponto de recuperação, o primeiro segmento de fatia da figuração na ordem de decodificação deve ter uma mensagem de SEI de atualização de região associada, e o valor de refreshed_region_flag deve ser igual a 1 em todas as mensagens de SEI de atualização de região associadas à figuração.
[0383] Quando uma ou mais mensagens de SEI de informações de atualização de região forem associadas a uma figuração, a região atualizada na figuração é especificada como o conjunto de CTUs em todos os segmentos de fatia da figuração que são associados às mensagens de SEI de informações de atualização de região que têm refreshed_region_flag igual a 1. Outros segmentos de fatia pertencem à região não atualizada da figuração.
[0384] Deixar gdrRefreshedSliceSegmentSet ser o conjunto de todos os segmentos de fatia que pertencem às regiões atualizadas na gdrPicSet. A variável upSwitchingRefreshedSliceSegmentSet é derivada conforme a seguir:
[0385] - Se targetLayerldList conter apenas um nuh_layer_id não zero, upSwitchingRefreshedSliceSegmentSet é definida como o conjunto, inclusive, do a seguir:
[0386] - todos os segmentos de fatia de todas as figurações das camadas de referência que precedem, na ordem de decodificação, a figuração atual e que podem ser usados para referência pela figuração atual ou figurações subsequentes das camadas de referência.
[0387] - todos os segmentos de fatia de todas as figurações das camadas de referência que sucedem, na ordem de decodificação, a figuração atual e que pertencem a gdrAuSet.
[0388] - De outro modo. upSwitchingRefreshedSliceSegmentSet é definido como um conjunto vazio.
[0389] Quando uma gdrPicSet conter uma ou mais figurações associadas às mensagens de SEI de informações de atualização de região, é uma exigência de conformidade de fluxo de bits que as seguintes limitações sejam todas aplicadas:
[0390] - Para cada camada em targetLaverldList, a região atualizada na primeira figuração, na ordem de decodificação, que pertence à camada e que é incluída em gdrPicSet que contém qualquer região atualizada deve conter apenas unidades de codificação que são codificadas em um modo de intracodificação ou previsão de intercamada a partir de segmentos de fatia que pertencem à união de gdrRefreshedSliceSegmentSet e upSwitchingRefreshedSliceSegmentSet.
[0391] - Para cada figuração incluída na gdrPicSet, os elementos de sintaxe em gdrRefreshedSliceSegmentSet devem ser delimitados de modo que nenhuma amostra ou valores de vetor de movimento fora da união de gdrRefreshedSliceSegmentSet e upSwitchingRefreshedSliceSegmentSet sejam usados para a interprevisão ou previsão de intercamada no processo de decodificação de quaisquer amostras dentro do gdrRefreshedSlice SegmentSet.
[0392] - Para qualquer figuração que segue a figuração lastPicInSet na ordem de saída, os elementos de sintaxe nos segmentos de fatia da figuração devem ser delimitados de modo que nenhuma amostra ou valores de vetor de movimento fora da união de gdrRefreshedSliceSegmentSet e upSwitchingRefreshedSliceSegmentSet sejam usados para interprevisão ou previsão de intercamada no processo de decodificação da figuração diferente daqueles das outras figurações que seguem a figuração lastPicInSet na ordem de saída.
[0393] F.3 Definições
[0394] Para propósitos deste anexo, as seguintes definições se aplicam, além das definições na cláusula 3. Essas definições estão presentes na cláusula 3 ou substituem as definições na cláusula 3.
[0395] F.3.3 camada de saída alternativa: Uma camada que é uma camada de referência direta ou uma camada de referência indireta de uma camada de saída e que pode incluir uma figuração que pode ser emitida quando nenhuma figuração da camada de saída está presente na unidade de acesso que contém a figuração.
[0396] F.7.4.3.1 Semânticas de RBSP de conjunto de vídeo de parâmetros
[0397] As especificações na subcláusula 7.4.3.1 se aplicam com as seguintes modificações e adições:
[0398] - layerSetLayerldList é substituído por LayerSetLayerldList.
[0399] - numLayersInldList é substituído por NumLayersInldList.
[0400] - Substituir "Cada ponto de operação é identificado pela lista de identificador de camada associado, chamado de OpLayerldList, que consiste na lista de valores de nuh_layer_id de todas as unidades de NAL incluídas no ponto de operação, em ordem crescente de valores de nuh_layer_id, e uma OpTid variável, que é igual à Temporalld mais alta de todas as unidades de NAL incluídas no ponto de operação." por "Cada ponto de operação é identificado pela lista de identificador de camada associada, chamado de OpLayerldList, que consiste na lista de valores de nuh_layer_id de todas as unidades de NAL incluídas no ponto de operação, na ordem crescente de valores de nuh_layer_id, e uma OpTid variável, que é igual ao Temporalld mais alto de todas as unidades de NAL incluídas no ponto de operação. Cada ponto de operação de saída é associado a um ponto de operação e identificado pela lista de valores de nuh_layer_id de todas as figurações que devem ser a saída, na ordem crescente de valores de nuh_layer_id, chamada de OptLayerldList, e a OpTid do ponto de operação associado. A OpLayerldList do ponto de operação associado a um ponto de operação de saída também é chamado de OpLayerldList do ponto de operação de saída.
[0401] TABELA 1 - Modificações de MV-HEVC para Padrões Textuais
[0402] OUTRAS CONSIDERAÇÕES
[0403] 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 conjunto de procedimentos 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.
[0404] Os vários blocos lógicos ilustrativos e etapas de algoritmos 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 da funcionalidade dos mesmos. A possibilidade de tal funcionalidade ser implantada como hardware ou software depende das restrições de projeto e de aplicação particular impostas no sistema geral. Versados na técnica podem implementar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implementação não deveriam ser interpretadas como que por se afastar do escopo da presente revelação.
[0405] 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, tal como, computadores de propósito geral, aparelhos de telefone de dispositivos de comunicação sem fio, ou dispositivos de circuitos integrados que têm múltiplos usos incluindo a aplicação em aparelhos de telefone de dispositivos 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 distinta, porém, interoperável. Caso sejam implantadas em software, as técnicas podem ser concretizadas pelo menos parcialmente por um meio de armazenamento de dados legível por computador que compreende código de programa incluindo instruções que, quando executadas, realizam um ou mais entre os métodos descritos acima. O meio de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de empacotamento. O meio legível por computador pode compreender meios 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, meios de armazenamento de dados magnéticos ou ópticos e semelhantes. As técnicas, adicional ou alternativamente, podem ser realizadas, pelo menos em parte, por um meio 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, tal como ondas ou sinais propagados.
[0406] 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, microcontrolador ou máquina de estado convencional. Um processador pode também 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 conjunto com um DSP núcleo 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.
[0407] Os conjuntos de procedimentos desta revelação podem ser implantados em uma ampla variedade de dispositivos ou aparelhos, incluindo um monofone, 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 dos dispositivos configurados para realizar os conjuntos de procedimentos reveladas, mas não exigem necessariamente a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, que incluem um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0408] Embora o supracitado tenha sido descrito em conexão às diversas modalidades, recursos ou elementos diferentes de uma modalidade podem ser combinados com outras modalidades sem se afastar 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.
[0409] Várias modalidades da revelação foram descritas. Essas e outras modalidades estão dentro do escopo das reivindicações a seguir.

Claims (15)

1. Dispositivo para associar semânticas de informações de codificação de vídeo associadas a uma unidade de acesso com um conjunto de camadas ou um conjunto de pontos de operação de um fluxo de bits de multicamada caracterizado por compreender: meios para armazenar informações de vídeo associadas ao fluxo de bits de multicamada, em que as informações de vídeo armazenadas compreendem uma mensagem de informações de melhoria complementares (SEI); e meios para determinar, com base em um identificador na mensagem de SEI, a possibilidade de a mensagem de SEI pertencer a uma dentre uma primeira categoria de mensagem de SEI que inclui mensagens de SEI de período de armazenamento temporário, mensagens de SEI de temporização de figuração ou mensagens de SEI de informações de unidade codificadora e uma segunda categoria de mensagem de SEI que inclui mensagens de SEI diferentes de mensagens de SEI de período de armazenamento temporário, mensagens de SEI de temporização de figuração e mensagens de SEI de informações de unidade codificadora; meios para determinar quando a mensagem de SEI se aplica ao conjunto de pontos de operação e quando a mensagem de SEI se aplica ao conjunto de camadas; meios para aplicar cada semântica da mensagem de SEI independentemente a cada ponto de operação do conjunto de pontos de operação em resposta à mensagem de SEI que pertence à primeira categoria de mensagem de SEI e aplicar ao conjunto de pontos de operação ao qual a mensagem de SEI se aplica; meios para aplicar cada semântica da mensagem de SEI ao conjunto de camadas de acordo com um ou mais indicadores da mensagem de SEI em resposta à mensagem de SEI que pertence à primeira categoria de mensagem de SEI, que está alojada, e aplicar ao conjunto de camadas; e meios para aplicar cada semântica da mensagem de SEI independentemente a cada camada do conjunto de camadas ao qual a mensagem de SEI se aplica em resposta à mensagem de SEI que pertence a uma segunda categoria de mensagem de SEI e aplicar ao conjunto de camadas.
2. Dispositivo, de acordo com a reivindicação 1, caracterizado por cada ponto de operação dentre o conjunto de pontos de operação estar associado a uma unidade de acesso que compreende um subconjunto de fluxos de dados do fluxo de bits de multicamada, em que o subconjunto de fluxos de dados compreende pelo menos uma dentre as camadas conforme indicado por cada ponto de operação.
3. Dispositivo, de acordo com a reivindicação 1, caracterizado pela outra mensagem de SEI compreender uma mensagem de SEI de índice zero de subcamada temporal, sendo que a mensagem de SEI de índice zero de subcamada temporal é configurada para considerar a possibilidade de uma figuração ser descartável ao determinar se uma figuração está ausente.
4. Dispositivo, de acordo com a reivindicação 1, caracterizada pela outra mensagem de SEI ser configurada para compreender mais de um conjunto de parâmetro de sequência (SPS).
5. Dispositivo, de acordo com a reivindicação 1, caracterizado por cada ponto de operação dentre o conjunto de pontos de operação estar associado a uma sequência de vídeo codificado (CVS) que compreende uma ou mais unidades de acesso, sendo que a uma ou mais unidades de acesso compreendem um subconjunto de fluxos de dados do fluxo de bits de multicamada, e em que o subconjunto de fluxos de dados compreende pelo menos uma dentre as camadas conforme indicado pela CVS.
6. Dispositivo, de acordo com a reivindicação 1, caracterizado por ser configurado adicionalmente para codificar as informações de codificação de vídeo do conjunto de pontos de operação ou do conjunto de camadas com base, pelo menos em parte, no identificador da mensagem de SEI.
7. Dispositivo, de acordo com a reivindicação 1, caracterizado pela mensagem de SEI que pertence à primeira categoria de mensagem de SEI incluir a mensagem de SEI de período de armazenamento temporário se pelo menos uma figuração da unidade de acesso à qual a mensagem de SEI se aplica não puder ser descartada intencionalmente sem afetar uma capacidade para codificar de outra figuração.
8. Dispositivo, de acordo com a reivindicação 1, caracterizado pela mensagem de SEI que pertence à segunda categoria de mensagem de SEI fornecer informações para auxiliar um codificador a detectar figurações codificadas ausentes, em que um valor de uma sintaxe da mensagem de SEI é aumentado apenas quando uma figuração associada à mensagem de SEI é uma figuração âncora que não pode ser descartada intencionalmente sem afetar uma capacidade para codificar de outra figuração.
9. Dispositivo, de acordo com a reivindicação 1, caracterizado pela segunda categoria de mensagem de SEI incluir mensagens de SEI de retângulo de tela cheia, mensagens de SEI de início de segmento de refinamento progressivo, mensagens de SEI de características de grão de filme, mensagens de SEI de informações de mapeamento de tom, mensagens de SEI de disposição de compactação de quadro e mensagens de SEI de orientação de exibição.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelas semânticas de persistência da mensagem de SEI que pertence à segunda categoria de mensagem de SEI estarem associadas a uma camada à qual a mensagem de SEI da segunda categoria de mensagem de SEI se aplica.
11. Dispositivo, de acordo com a reivindicação 4, caracterizado por cada SPS dentre os mais que um SPS estar associado a pelo menos uma dentre o conjunto de camadas, em que a mensagem de SEI que pertence à segunda categoria de mensagem de SEI é preferencialmente uma mensagem de SEI de conjuntos de parâmetros ativos, sendo que a mensagem de SEI de conjunto de parâmetro ativo compreende um mecanismo para mapear cada SPS dos mais que um SPS para pelo menos uma dentre o conjunto de camadas e em que a mensagem de SEI de conjuntos de parâmetro ativo compreende preferencial adicionalmente uma semântica que especifica uma camada dentre o conjunto de camadas associadas ao SPS.
12. Dispositivo, de acordo com a reivindicação 1, caracterizado pelo dispositivo ser um dispositivo de comunicação sem fio que compreende adicionalmente um receptor configurado para receber dados de vídeo codificado, sendo que os dados de vídeo codificado compreendem a unidade de acesso do fluxo de bits de multicamada, sendo que o dispositivo é preferencialmente um telefone celular e o vídeo codificado é recebido pelo receptor e modulado de acordo com um padrão de comunicação celular.
13. Método para associar semânticas de informações de codificação de vídeo associadas a uma unidade de acesso com um conjunto de camadas ou um conjunto de pontos de operação de um fluxo de bits de multicamada caracterizado por compreender: armazenar informações de vídeo associadas ao fluxo de bits de multicamada, sendo que as informações de vídeo armazenadas compreendem uma mensagem de informações de melhoria complementares (SEI); determinar, com base em um identificador na mensagem de SEI, a possibilidade de a mensagem de SEI pertencer a uma dentre uma primeira categoria de mensagem de SEI que inclui mensagens de SEI de período de armazenamento temporário, mensagens de SEI de temporização de figuração ou mensagens de SEI de informações de unidade codificadora e uma segunda categoria de mensagem de SEI que inclui mensagem de SEI diferente de mensagens de SEI de período de armazenamento temporário, mensagens de SEI de temporização de figuração ou mensagens de SEI de informações de unidade codificadora; determinar quando a mensagem de SEI se aplica ao conjunto de pontos de operação e quando a mensagem de SEI se aplica ao conjunto de camadas; em resposta à mensagem de SEI que pertence à primeira categoria de mensagem de SEI, que está alojada, e à aplicação ao conjunto de pontos de operação, aplicar cada semântica da mensagem de SEI independentemente a cada ponto de operação do conjunto de pontos de operação ao qual a mensagem de SEI se aplica; em resposta à mensagem de SEI que pertence à primeira categoria de mensagem de SEI, que está alojada, e à aplicação ao conjunto de camadas, aplicar as semânticas da mensagem de SEI ao conjunto de camadas de acordo com um ou mais indicadores das mensagens de SEI; e em resposta à mensagem de SEI que pertence a uma segunda categoria de mensagem de SEI e à aplicação ao conjunto de camadas, aplicar cada semântica da mensagem de SEI independentemente a cada camada do conjunto de camadas ao qual a mensagem de SEI se aplica.
14. Método, de acordo com a reivindicação 13, caracterizado por compreender adicionalmente associar cada ponto de operação do conjunto de pontos de operação com: uma unidade de acesso que compreende um subconjunto de fluxos de dados do fluxo de bits de multicamada, sendo que o subconjunto de fluxos de dados compreende pelo menos uma dentre as camadas conforme indicado por cada ponto de operação; ou uma sequência de vídeo codificado (CVS) que compreende uma ou mais unidade de acesso, sendo que a uma ou mais unidades de acesso compreendem um subconjunto de fluxo de bits do fluxo de bits de multicamada, e em que o subconjunto de fluxo de bits compreende pelo menos uma dentre as camadas conforme indicado pela CVS.
15. Memória legível por computador caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um processador de um dispositivo realize o método conforme definido na reivindicação 13 ou 14.
BR112016022253-9A 2014-03-24 2015-03-23 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 BR112016022253B1 (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,699 2015-03-20
US14/664,699 US10136152B2 (en) 2014-03-24 2015-03-20 Use of specific HEVC SEI messages for multi-layer video codecs
PCT/US2015/022005 WO2015148374A1 (en) 2014-03-24 2015-03-23 Use of specific hevc sei messages for multi-layer video codecs

Publications (3)

Publication Number Publication Date
BR112016022253A2 BR112016022253A2 (pt) 2017-08-15
BR112016022253A8 BR112016022253A8 (pt) 2021-07-13
BR112016022253B1 true BR112016022253B1 (pt) 2023-09-19

Family

ID=

Similar Documents

Publication Publication Date Title
US10136152B2 (en) Use of specific HEVC SEI messages for multi-layer video codecs
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
KR102296654B1 (ko) 다계층 코딩에서 복구 포인트 보충 향상 정보 (sei) 메시지들 및 영역 리프레쉬 정보 sei 메시지들을 코딩하는 방법
CA2930331C (en) Support of base layer of a different codec in multi-layer video coding
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
BR112016021489B1 (pt) Método e equipamento para codificação de informação de vídeo, e,memória legível por computador
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
BR112015006440B1 (pt) Indicação e ativação de conjuntos de parâmetros para codificação de vídeo
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
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
BR112016000870B1 (pt) Operações de buffer de imagem decodificada para codificação de vídeo
BR112016021473B1 (pt) Método e aparelho para codificar informação de vídeo usando extensão escalável para codificação de vídeo de alta eficiência, shvc, ou codificação de vídeo de alta eficiência de múltiplas vistas, mv-hevc, assim como memória legível por computador
BR112016030377B1 (pt) Método e aparelho para converter informações de vídeo em código em um fluxo de bits, assim como memória legível por computador
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
US9848199B2 (en) Device and method for scalable coding of video information
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
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
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
BR112016022251B1 (pt) Uso de mensagens de sei de hevc específicas para codecs de vídeo de multicamada
BR112016015931B1 (pt) Suporte de camada-base de não hevc em extensões de muticamadas de hevc
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
BR112016030211B1 (pt) Restrições de conformidade de fluxo de bits em codificação de vídeo escalonável
BR112016015560A2 (pt) Método para codificar um conjunto de imagem de referência (rps) em codificação multicamada
BR112016015918B1 (pt) Suporte de camada base não-hevc em extensões de muticamada de hevc