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

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

Info

Publication number
BR112016030377B1
BR112016030377B1 BR112016030377-6A BR112016030377A BR112016030377B1 BR 112016030377 B1 BR112016030377 B1 BR 112016030377B1 BR 112016030377 A BR112016030377 A BR 112016030377A BR 112016030377 B1 BR112016030377 B1 BR 112016030377B1
Authority
BR
Brazil
Prior art keywords
video
figuration
layer
bitstream
picture
Prior art date
Application number
BR112016030377-6A
Other languages
English (en)
Other versions
BR112016030377A2 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016030377A2 publication Critical patent/BR112016030377A2/pt
Publication of BR112016030377B1 publication Critical patent/BR112016030377B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding

Abstract

restrições de conformidade de fluxo de bits em codificação de vídeo escalonável trata-se de um aparelho configurado para codificar informações de vídeo em um fluxo de bits inclui uma memória e um processador em comunicação com a memória. a memória é configurada para armazenar informações de vídeo associadas a uma primeira camada que inclui uma primeira figuração e uma segunda camada que inclui uma segunda figuração, sendo que a primeira figuração é associada a uma unidade de acesso atual (au). o processador é configurado para determinar a possibilidade de a au atual satisfazer uma primeira condição associada à primeira camada, e com base em uma determinação de que a au atual não satisfaz a primeira condição associada à primeira camada, determinar a possibilidade de uma diferença entre uma contagem de ordem de figuração (poc) mais alta e uma poc mais baixa de uma pluralidade de figurações em um armazenamento temporário de figuração decodificada (dpb) ser menor que um valor de limiar. o processador pode criptar ou decodificar as informações de vídeo no fluxo de bits.

Description

CAMPO DA TÉCNICA
[0001] Esta revelação refere-se ao campo de codificação e compressão de vídeo, particularmente, a codificação de vídeo escalonável, codificação de vídeo de múltiplas vistas, ou codificação de vídeo tridimensional (3D).
ANTECEDENTES
[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 desktop, câmeras digitais, dispositivos de gravação digital, reprodutores de mídia digital, dispositivos de video game, consoles de video game, radiotetelefone celular ou a satélite, dispositivos de videoconferência, e semelhantes. Os dispositivos de vídeo digitais implantam técnicas de compactação de vídeo, tais como as descritas nos padrões definidos por Grupo 2 de Especialistas de Figuração com Movimento (MPEG-2), MPEG-4, União Telegráfica Internacional-Setor de Normalização das Telecomunicações (ITU-T) H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, criptar, decodificar e/ou armazenar informações de vídeo digitais mais eficientemente implantando-se tais técnicas de codificação de vídeo.
[0003] As técnicas de compactação de vídeo realizam previsão espacial (intrafiguração) e/ou previsão temporal (interfiguração) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo, uma porção de um quadro de vídeo, etc.) pode ser particionada em blocos de vídeo, que também podem ser referidos como blocos em árvore, unidades de criptação (CUs) e/ou nós de criptação. Os blocos de vídeo em uma fatia intracodificada (I) de uma figuração são criptados com o uso de previsão espacial em relação às amostras de referência em blocos vizinhos na mesma figuração. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma figuração podem usar previsão espacial em relação às amostras de referência em blocos vizinhos na mesma figuração ou previsão temporal em relação às amostras de referência em outras figurações de referência. As figurações podem ser referidas como quadros e as figurações de referência podem ser referidas como quadros de referência.
SUMÁRIO
[0004] Os sistemas, métodos e dispositivos desta revelação têm, cada um, diversos aspectos inovadores, nenhum dos quais é responsável exclusivamente pelos atributos desejáveis revelados no presente documento.
[0005] Em um aspecto, um aparelho configurado para codificar (por exemplo, criptar ou decodificar) informações de vídeo em um fluxo de bits inclui uma memória e um processador em comunicação com a memória. A memória é configurada para armazenar informações de vídeo associadas com uma pluralidade de camadas de vídeo no fluxo de bits, a pluralidade de camadas de vídeo no fluxo de bits dividido em uma pluralidade de partições de fluxo de bits, em que cada partição de fluxo de bits contém pelo menos uma dentre a pluralidade de camadas de vídeo. O processador é configurado para processar um parâmetro de conformidade de fluxo de bits associado a uma primeira partição de fluxo de bits da pluralidade de partições de fluxo de bits, em que o parâmetro de conformidade de fluxo de bits é aplicável à primeira partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela primeira partição de fluxo de bits.
[0006] Em outro aspecto, um método para codificar informações de vídeo em um fluxo de bits inclui processar um parâmetro de conformidade de fluxo de bits associado a uma primeira partição de fluxo de bits de uma pluralidade de partições de fluxo de bits, em que cada partição de fluxo de bits contém pelo menos uma dentre uma pluralidade de camadas de vídeo no fluxo de bits, em que o parâmetro de conformidade de fluxo de bits é aplicável à primeira partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela primeira partição de fluxo de bits; e
[0007] Em outro aspecto, a meio legível por computador não transitório contém código que, quando executado, faz com que um aparelho: armazene informações de vídeo associadas a uma pluralidade de camadas de vídeo no fluxo de bits, sendo que uma pluralidade de camadas de vídeo no fluxo de bits dividido em uma pluralidade de partições de fluxo de bits, em que cada partição de fluxo de bits contém pelo menos uma dentre uma pluralidade de camadas de vídeo; e processe um parâmetro de conformidade de fluxo de bits associado a uma primeira partição de fluxo de bits da pluralidade de partições de fluxo de bits, sendo que o parâmetro de conformidade de fluxo de bits é aplicável à primeira partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela primeira partição de fluxo de bits.
[0008] Em outro aspecto, um dispositivo de codificação de vídeo configurado para codificar informações de vídeo em um fluxo de bits inclui: meios para armazenar informações de vídeo associadas a uma pluralidade de camadas de vídeo no fluxo de bits, sendo que a pluralidade de camadas de vídeo no fluxo de bits dividido em uma pluralidade de partições de fluxo de bits, sendo que cada partição de fluxo de bits contém pelo menos uma dentre uma pluralidade de camadas de vídeo; e meios para processar um parâmetro de conformidade de fluxo de bits associado a uma primeira partição de fluxo de bits da pluralidade de partições de fluxo de bits, sendo que o parâmetro de conformidade de fluxo de bits é aplicável à primeira partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela primeira partição de fluxo de bits.
BREVE DESCRIÇÃO DOS DESENHOS
[0009] A Figura 1A é um diagrama de blocos que ilustra um sistema exemplificativo 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 sistema exemplificativo 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 técnicas de acordo com aspectos descritos nesta revelação.
[0014] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos nesta revelação.
[0015] A Figura 4 é um diagrama de blocos que ilustra uma configuração exemplificativa de figurações em partições de fluxo de bits diferentes.
[0016] A Figura 5 é um fluxograma que ilustra um método para processar um parâmetro associado a uma partição de fluxo de bits.
[0017] A Figura 6 é um fluxograma que ilustra um método para determinar a possibilidade de uma restrição de conformidade de fluxo de bits ser satisfeita.
[0018] A Figura 7 é um diagrama de blocos que ilustra uma configuração exemplificativa de figurações ao longo de um ponto de junção em camadas diferentes.
[0019] A Figura 8 é um diagrama de blocos que ilustra uma configuração exemplificativa de figurações em camadas diferentes.
[0020] A Figura 9 é uma tabela que ilustra valores de contagem de ordem de figuração de figurações em camadas diferentes.
[0021] A Figura 10 é um diagrama de blocos que ilustra uma configuração exemplificativa de figurações em camadas diferentes.
[0022] A Figura 11 é uma tabela que ilustra valores de POC de figurações em camadas diferentes.
DESCRIÇÃO DETALHADA
[0023] Em algumas implantações, vários parâmetros relacionados à conformidade de fluxo de bits são sinalizados no fluxo de bits, em que determinadas restrições de conformidade de fluxo de bits podem restringir os valores especificados por tais parâmetros. Por exemplo, tais parâmetros podem especificar informações temporização associadas às figurações codificadas no fluxo de bits ou outras características do fluxo de bits ou uma porção dessas (por exemplo, unidades de codificação, figurações, camadas de vídeo, etc.). Em implantações existentes, esses parâmetros são frequentemente associados ao fluxo de bits inteiro ou à unidade de acesso inteira (por exemplo, todas figurações no fluxo de bits que corresponde à mesma ocorrência de tempo de saída).
[0024] Em algumas situações, pode ser desejável transportar ou processar o fluxo de bits (ou as unidades de acesso) em unidades menores. No entanto, ter parâmetros de conformidade de fluxo de bits e restrições que são aplicáveis ao fluxo de bits inteiro (por exemplo, todas as camadas no fluxo de bits) ou unidades de acesso inteiras (por exemplo, todas as figurações na unidade de acesso) pode complicar o processo para particionar o fluxo de bits e processar parte ou todas as partições independentemente.
[0025] Desse modo, um método aprimorado para definir e processar vários parâmetros de conformidade de fluxo de bits em um fluxo de bits é desejado.
[0026] Na presente revelação, várias técnicas para definir e processar parâmetros de conformidade de fluxo de bits que são inferidos ou sinalizados no fluxo de bits são descritas. Em algumas modalidades da presente revelação, o codificador processa um parâmetro de conformidade de fluxo de bits associado a uma partição de fluxo de bits que inclui um subconjunto de uma pluralidade de camadas de vídeo no fluxo de bits. Em tais modalidades, o parâmetro de conformidade de fluxo de bits pode ser aplicável à partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela partição de fluxo de bits. Processando- se o parâmetro de conformidade de fluxo de bits associado à uma partição de fluxo de bits e não ao fluxo de bits inteiro, uma maior flexibilidade no transporte e processamento do fluxo de bits podem ser alcançados.
[0027] Na descrição abaixo, as técnicas de H.264/Codificação de Vídeo Avançada (AVC) relacionadas a certas modalidades são descritas; o padrão de HEVC e as técnicas relacionadas também são discutidos. 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 verificaria 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), Setor de Normalização de Telecomunicações (ITU-T) H.261, Organização Internacional para Normalização/Comissão Internacional de Eletrotécnica (ISO/IEC) MPEG-1 Visual, ITU- T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG- 4 Visual e ITU-T H.264 (também conhecida como ISO/IEC MPEG- 4 AVC), incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Vistas (MVC).
[0028] A HEVC segue, geralmente, o enquadramento de padrões de codificação de vídeo anteriores em muitos aspectos. A unidade de previsão em HEVC e diferente das unidades de previsão (por exemplo, macrobloco) em certos padrões de codificação de vídeo anteriores. De fato, o conceito de macrobloco não existe em HEVC, conforme compreendido em certos padrões de codificação de vídeo anteriores. O macrobloco é substituído por uma estrutura hierárquica com base em um esquema de árvore quadrática que pode fornecer alta flexibilidade, dentre outros benefícios possíveis. Por exemplo, dentro do esquema de HEVC, são definidos três tipos de blocos, a Unidade de Codificação (CU), a Unidade de Previsão (PU) e a Unidade de Transformada (TU). A CU pode se referir à unidade básica de divisão de região. A CU pode ser considerada análoga ao conceito de 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.
[0029] 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 BL, e uma camada superior tal como a EL) de dados de vídeo. Uma “camada” de dados de vídeo pode se referir, de modo geral, a uma sequência de figurações que têm pelo menos uma característica comum, como uma vista, uma taxa de quadro, uma resolução, ou similares. Por exemplo, uma camada pode incluir dados de vídeo associados a uma vista particular (por exemplo, perspectiva) de dados de vídeo de múltiplas vistas. Como outro exemplo, uma camada pode incluir dados de vídeo associada a uma camada particular de dados de vídeo escalonáveis. Desse modo, esta revelação pode se referir de modo intercambiável a uma camada e uma vista de dados de vídeo. Por exemplo, uma vista de dados de vídeo pode ser referida como uma camada de dados de vídeo, e uma camada de dados de vídeo pode ser referida como uma vista de dados de vídeo. Além disso, um codec com múltiplas camadas (também referido como um encriptador de vídeo com múltiplas camadas ou encriptador e decodificador com múltiplas camadas) pode se referir, de modo conjunto, a um codec com 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 com múltiplas camadas). A criptação de vídeo e a decodificação de vídeo podem ser referidas, ambas, de modo geral, como codificação de vídeo. Deve-se entender que tais exemplos podem ser aplicáveis às configurações que incluem múltiplas BLs e/ou ELs. 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. Entretanto, 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
[0030] 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 incluir 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 culminância e de prominência. Sem compactação, a quantidade pura de informações a serem transmitidas de um encriptador de imagem para um decodificador de imagem tornaria a transmissão de imagem em tempo real impraticável. Para reduzir a quantidade de informações a serem transmitidas, diversos métodos de compactação diferentes, tais como JPEG, MPEG e padrões H.263, foram desenvolvidos.
[0031] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), e HEVC, incluindo suas extensões de Codificação de Vídeo Escalonável (SVC) e de Codificação de Vídeo de Múltiplas Vistas (MVC).
[0032] 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 VCEG de ITU-T 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," Equipe Colaborativa Conjunta em Codificação de Vídeo (JCT-VC - Joint Collaborative Team on Video Coding) da ITU-T SG16 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 de múltiplas vistas 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
[0033] Diversos aspectos dos sistemas, aparelhos e métodos inovadores são descritos mais completamente a partir deste ponto no presente documento com referência aos desenhos anexos. Entretanto, a presente revelação pode ser incorporada de várias maneiras diferentes e não deve ser interpretada como limitada a qualquer estrutura ou função específica apresentada ao longo de toda a presente revelação. Em vez disso, esses aspectos são fornecidos de modo que a presente revelação seja minuciosa e completa, e transmita plenamente o escopo da revelação para as pessoas versadas na técnica. Com base nos ensinamentos no presente documento, uma pessoa versada na técnica deve observar que o escopo da revelação está destinado a cobrir qualquer aspecto dos sistemas, aparelhos e métodos inovadores revelados no presente documento, sejam os mesmos implantados independentemente ou em combinação com qualquer outro aspecto da revelação. Por exemplo, um aparelho pode ser implantado ou um método pode ser praticado com o uso de qualquer quantidade dos aspectos estabelecidos no presente documento. Além disso, o escopo da presente revelação está destinado a cobrir tal aparelho ou método que é praticado com o uso de outra estrutura, funcionalidade ou estrutura e funcionalidade adicionalmente, ou que não sejam os vários aspectos da presente revelação estabelecidos no presente documento. Deve ser entendido que qualquer aspecto revelado no presente documento pode ser incorporado por um ou mais elementos de uma reivindicação.
[0034] Embora sejam descritos os aspectos particulares no presente documento, muitas variações e permutações desses aspectos estão dentro do escopo da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais sejam mencionados, o escopo da revelação não está destinado a ser limitado a benefícios, usos ou objetivos particulares. Em vez disso, os aspectos da revelação destinam-se a ser amplamente aplicáveis a diferentes tecnologias sem fio, configurações de sistema, redes e protocolos de transmissão, alguns dos quais são ilustrados a título de exemplo nas Figuras e na descrição a seguir dos aspectos preferenciais. A descrição detalhada e desenhos são meramente ilustrativos da revelação em vez de limitantes, sendo que o escopo da revelação é definido pelas reivindicações anexas e equivalentes das mesmas.
[0035] Os desenhos anexos ilustram exemplos. Os elementos indicados por numerais de referência nos desenhos anexos correspondem aos elementos indicados por numerais de referência similares na descrição a seguir. Na presente revelação, os elementos que têm nomes que começam com palavras ordinais (por exemplo, "primeiro(a)", "segundo(a)", "terceiro(a)" e assim por diante) não implicam necessariamente que os elementos têm uma ordem particular. Em vez disso, tais palavras ordinais são meramente usadas para se referir a elementos diferentes de um tipo igual ou similar.
[0036] A Figura 1A é um diagrama de blocos que ilustra um sistema de codificação de vídeo 10 exemplificativo que pode utilizar as técnicas de acordo com os aspectos descritos nesta revelação. Conforme usado descrito no presente documento, o termo "codificador de vídeo"ou "codificador" se refere genericamente tanto a encriptadores de vídeo quanto a decodificadores de vídeo. Nesta revelação, os termos “criptação de Vídeo” ou “criptação” podem se referir genericamente a criptação de vídeo e decodificação de vídeo. Além de encriptadores de vídeo e decodificadores de vídeo, os aspectos descritos no presente pedido podem se estender a outros dispositivos relacionados tal como transcodificadores (por exemplo, dispositivos que podem decodificar um fluxo de bits e recriptar outro fluxo de bits) e Middleboxes (por exemplo, dispositivos que podem modificar, transformar e/ou, de outro modo, manipular um fluxo de bits).
[0037] Conforme mostrado na Figura 1A, o sistema de codificação de vídeo 10 inclui um dispositivo de origem 12 que gera dados de vídeo criptados a serem decodificados posteriormente por um dispositivo de destinação 14. No exemplo da Figura 1A, o dispositivo de origem 12 e o dispositivo de destinação 14 constituem dispositivos separados. Entretanto, é observado que o dispositivo de fonte 12 e o dispositivo de destino 14 podem estar ou fazer parte do mesmo dispositivo, conforme mostrado no exemplo da Figura 1B
[0038] Novamente com referência à Figura 1A, o dispositivo de fonte 12 e o dispositivo de destinação 14 podem compreender, respectivamente, qualquer dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone tal como os chamados telefones "inteligentes", chamados computadores do tipo pad "inteligente", televisões, câmeras, dispositivos de exibição, reprodutores de mídias digitais, consoles para jogo eletrônico, dispositivo de transmissão contínua de vídeo ou semelhantes. Em várias modalidades, o dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0039] O dispositivo de destino 14 pode receber, através de enlace 16, os dados de vídeo criptados a serem decodificados. O enlace 16 pode compreender qualquer tipo de mídia ou dispositivo com capacidade para mover os dados de vídeo criptados do dispositivo de fonte 12 para o dispositivo de destino 14. No exemplo da Figura 1A, o enlace 16 pode compreender um meio de comunicação para possibilitar que o dispositivo de origem 12 transmita os dados de vídeo criptado ao 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, como um protocolo de comunicação sem fio, e transmitidos 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 radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, como uma rede de área local, uma rede de área ampla ou uma rede global, como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações- base, ou qualquer outro equipamento que possa ser útil que para facilitar a comunicação do dispositivo de origem 12 com o dispositivo de destinação 14.
[0040] Alternativamente, os dados criptados podem ser emitidos de uma interface de saída 22 a um dispositivo de armazenamento 31 (opcionalmente presente). De modo similar, dados criptados podem ser acessados a partir do dispositivo de armazenamento 31 por uma interface de entrada 28, por exemplo, do dispositivo de destino 14. O dispositivo de armazenamento 31 pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados de modo localizado como um disco rígido, memória flash, memória volátil ou não volátil ou quaisquer outros meios de armazenamento digital adequados para armazenar dados de vídeo criptados. 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 origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento através 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 destino 14. Os servidores de arquivos exemplificativos incluem um servidor 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) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo criptados através de qualquer conexão de dados padrão, que inclui uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão de rede de área local sem fio (WLAN)), uma conexão com fio (por exemplo, uma linha de assinante digital (DSL), um modem a cabo, etc.), ou uma combinação de ambos que seja adequada para acessar dados de vídeo criptados armazenados em um servidor de arquivo. A transmissão de dados de vídeo criptados do dispositivo de armazenamento 31 pode ser uma transmissão contínua, uma transmissão de transferência por download ou uma combinação de ambas.
[0041] As técnicas desta revelação não são limitadas a aplicações ou definições sem fio. As técnicas podem ser aplicadas à codificação de vídeo em apoio a qualquer uma dentre uma variedade de aplicações de multimídia, tais como, difusões de televisão remotas, transmissões de televisão a cabo, transmissões de televisão a satélite, transmissões contínuas de vídeo, por exemplo, por meio da Internet (por exemplo, transmissão contínua adaptativa dinâmica através de Protocolo de Transferência de Hipertexto (HTTP), etc.), criptação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenada 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.
[0042] No exemplo da Figura 1A, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um encriptador de vídeo 20 e a interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou a transmissor. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte, tal como, um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo e/ou um sistema de computação gráfica para gerar dados de computação gráfica, como o vídeo de origem, ou uma combinação de tais fontes. Como um exemplo, 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 Entretanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas às aplicações sem fio e/ou com fio.
[0043] O vídeo capturado, pré-capturado ou gerado por computador pode ser criptado pelo encriptador 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 origem 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 encriptador de vídeo 20 ilustrado nas Figuras 1A e 1B podem compreender o encriptador de vídeo 20 ilustrado na Figura 2, ou qualquer outro encriptador de vídeo descrito no presente documento.
[0044] No exemplo da Figura 1A, o dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo de destinação 14 pode receber os dados de vídeo criptados pelo enlace 16 e/ou a partir do dispositivo de armazenamento 31. Os dados de vídeo criptados comunicados pelo enlace 16, ou fornecidos no dispositivo de armazenamento 31, podem incluir uma variedade de elementos de sintaxe gerados pelo encriptador de vídeo 20 para uso por um decodificador de vídeo, como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem estar incluídos com os dados de vídeo criptados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento ou armazenados em um servidor de arquivos. O decodificador de vídeo 30 ilustrado nas Figuras 1A e 1B pode compreender o decodificador de vídeo 30 ilustrada na Figura 3A, o decodificador de vídeo 33, ilustrado na Figura 3B, ou qualquer outro decodificador de vídeo descrito no presente documento.
[0045] O dispositivo de exibição 32 pode ser integrado ou externo ao dispositivo de destinação 14. Em alguns exemplos, o dispositivo de destinação 14 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destinação 14 pode ser um dispositivo de exibição. Em general, o dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário e pode compreende qualquer um dentre uma variedade de dispositivos de exibição, tais como, um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo de emissão de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0046] Em aspectos relacionados, a Figura 1B mostra um sistema de codificação de vídeo exemplificativo 10' em que o dispositivo de fonte 12 e o dispositivo de destino 14 estão em, ou são parte de um dispositivo 11. O dispositivo 11 pode ser um aparelho de telefone, tal como, um telefone "inteligente" ou semelhante. O dispositivo 11 pode incluir um dispositivo de controlador/processador 13 (opcionalmente presente) em comunicação operativa com o dispositivo de origem 12 e o dispositivo de destino 14. O sistema de codificação de vídeo 10' da Figura 1B, e os componentes do mesmo, são, de outro modo, similares ao sistema de codificação de vídeo 10 da Figura 1A, e aos componentes do mesmo.
[0047] O encriptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de compactação de vídeo, tal como HEVC, e podem se conformar a um Modelo de Teste de HEVC (HM). Alternativamente, o encriptador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, tais como o padrão ITU-T H.264, denominado, alternativamente, como MPEG-4, Parte 10, AVC ou extensões de tais padrões. As técnicas desta revelação, entretanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compactação de vídeo incluem MPEG-2 e ITU-T H.263.
[0048] Embora não mostrado nos exemplos das Figuras 1, em alguns aspectos, o encriptador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados a um encriptador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a criptação tanto de áudio quanto de vídeo em uma corrente de dados comum ou correntes de dados separadas. Caso aplicável, em alguns exemplos, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos como protocolo de datagrama de usuário (UDP).
[0049] Cada um dentre o encriptador de vídeo 20 e o decodificador de vídeo 30 pode ser implantado como qualquer um dentre uma variedade de conjuntos de circuitos de encriptador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas forem 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 um 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, sendo 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
[0050] Conforme mencionado brevemente acima, o encriptador de vídeo 20 cripta os dados de vídeo. Os dados de vídeo podem compreender uma ou mais figurações. Cada uma das figurações é uma imagem estática que faz 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 criptar os dados de vídeo, o encriptador de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma sequência de bits que forma uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir figurações codificadas e dados associados. Uma figuração codificada é uma representação codificada de uma figuração.
[0051] Para gerar o fluxo de bits, o encriptador de vídeo 20 pode realizar operações de criptação em cada figuração nos dados de vídeo. Quando o encriptador de vídeo 20 realizar as 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 conjuntos de parâmetros de vídeo (VPS), conjuntos de parâmetros de sequência (SPSs), conjuntos de parâmetros de figuração (PPSs), conjuntos de parâmetros de adaptação (APSs) e outras estruturas de sintaxe. Um SPS pode conter parâmetros aplicáveis a zero ou mais sequências de figurações. Um PPS pode conter parâmetros aplicáveis a zero ou mais figurações. Um APS pode conter parâmetros aplicáveis a zero ou mais figurações. Os parâmetros em uma APS podem ser parâmetros que podem estar mais propensos a mudar do que os parâmetros em uma PPS.
[0052] Para gerar uma figuração codificada, o encriptador de vídeo 20 pode particionar uma figuração em blocos de vídeo igualmente dimensionados. Um bloco de vídeo pode ser um arranjo bidimensional de amostras. Cada um dos blocos de vídeo está associado a um bloco de árvore. Em alguns exemplos, um bloco de árvore pode ser denominado de unidade de codificação maior (LCU). Os blocos de árvores de HEVC podem ser amplamente análogos aos macroblocos de padrões anteriores, tais como, H.264/AVC. Entretanto, um bloco de árvore não se limita necessariamente a um tamanho particular, e pode incluir uma ou mais unidades de codificação (CUs). O encriptador de vídeo 20 pode usar particionamento de QuadTree para particionar os blocos de vídeo de blocos de árvore em blocos de vídeo associados a CUs, por isso o nome "blocos de árvore".
[0053] Em alguns exemplos, o encriptador de vídeo 20 pode particionar uma 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.
[0054] Como parte da realização de uma operação de codificação em uma figuração, o encriptador de vídeo 20 pode realizar as operações de encriptação em cada fatia da figuração. Quando o encriptador de vídeo 20 realizar uma operação de criptação em uma fatia, o encriptador de vídeo 20 pode gerar dados criptados associados com a fatia. Os dados criptados associados à fatia podem ser denominados “fatia codificada”.
[0055] A fim de gerar uma fatia codificada, o encriptador de vídeo 20 pode realizar operações de criptação em cada bloco de árvore em uma fatia. Quando o encriptador de vídeo 20 realizar uma operação de criptação em um bloco de árvore, o encriptador de vídeo 20 pode gerar um bloco de árvore codificado. O bloco de árvore codificado pode compreender dados que representam uma versão criptada do bloco de árvore.
[0056] Quando o encriptador de vídeo 20 gerar uma fatia codificada, o encriptador de vídeo 20 pode realizar as operações de criptação (por exemplo, criptar) nos blocos de árvores na fatia, de acordo com uma ordem de varredura por rastreio. Por exemplo, o encriptador de vídeo 20 pode codificar os blocos de árvores da fatia em que uma ordem que procede da esquerda para a direita ao longo de uma fileira mais superior de blocos de árvores na fatia, em seguida, da esquerda para a direita ao longo de uma próxima fileira inferior de blocos de árvores, e assim por diante até que o encriptador de vídeo 20 tenha codificado cada um dos blocos de árvores na fatia.
[0057] Como resultado da criptação dos blocos de árvores de acordo com a ordem de varredura por rastreio, os blocos de árvores acima e à esquerda de um determinado bloco de árvore podem ter sido criptados, porém, os blocos de árvores abaixo e à direita do determinado bloco de árvore ainda não foram criptados. Consequentemente, o encriptador de vídeo 20 pode ter capacidade para acessar informações geradas codificando-se os blocos de árvores acima e à esquerda do determinado bloco de árvore durante a codificação do determinado bloco de árvore. Entretanto, o encriptador de vídeo 20 pode não ter capacidade para acessar as informações geradas codificando-se blocos de árvores abaixo e à direita do determinado bloco de árvore durante a codificação do determinado bloco de árvore.
[0058] A fim de gerar um bloco de árvore codificado, o encriptador de vídeo 20 pode realizar recursivamente a partição de árvore quadrática no bloco de vídeo do bloco de árvore para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode estar associado a uma CU diferente. Por exemplo, o encriptador de vídeo 20 pode particionar o bloco de vídeo de um bloco de árvore em quatro sub-blocos com tamanhos iguais, particionar um ou mais dentre os sub- blocos em quatro sub-blocos com tamanhos iguais, e assim por diante. Uma CU particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associados a outras CUs. Uma CU não particionada pode ser uma CU cujo bloco de vídeo é particionado em blocos de vídeo associados a outras CUs.
[0059] Um ou mais elementos de sintaxe no fluxo de bits pode indicar um número máximo de vezes que o encriptador de vídeo 20 pode particionar o bloco de vídeo de um bloco de árvore. Um bloco de vídeo de um CU pode ter o formato quadrado. O tamanho do bloco de vídeo de uma CU (por exemplo, o tamanho da CU) pode estar em uma faixa de pixels 8x8 até o tamanho de um bloco de vídeo de um bloco de árvore (por exemplo, o tamanho do bloco de árvore) com um máximo de pixels 64x64 ou mais.
[0060] O encriptador de vídeo 20 pode realizar as operações de criptação (por exemplo, criptar) em cada CU de um bloco de árvore, de acordo com uma ordem de varredura- z. Em outras palavras, o encriptador de vídeo 20 pode criptar uma CU superior à esquerda, uma CU superior à direita, uma CU de fundo à esquerda e, em seguida, uma CU de fundo à direita, nessa ordem. Quando o encriptador de vídeo 20 realizar uma operação de criptação em uma CU particionada, o encriptador de vídeo 20 pode criptar CUs associadas aos sub-blocos do bloco de vídeo da CU particionada de acordo com a ordem de varredura-z. Em outras palavras, o encriptador de vídeo 20 pode criptar uma CU associado a um sub-bloco superior à esquerda, uma CU associada a um sub-bloco superior à direita, um CU associada a um sub-bloco de fundo à esquerda e, em seguida, uma CU associada a um sub-bloco de fundo à direita, nessa ordem.
[0061] Como resultado da criptação das CUs de um bloco de árvore de acordo com uma ordem de varredura-z, as CUs acima, acima e à esquerda, acima e à direita, esquerda e abaixo e à esquerda de uma determinada CU podem ter sido criptadas. As CUs abaixo e à direita da determinada CU ainda não foram criptadas. Consequentemente, o encriptador de vídeo 20 pode ter capacidade para acessar as informações gerada criptando-se algumas CUs que circundam a determinada CU durante a criptação da determinada CU. Entretanto, o encriptador de vídeo 20 pode não ter capacidade para acessar as informações gerada criptando-se outras CUs que circundam a determinada CU durante a criptação da determinada CU.
[0062] Quando o encriptador de vídeo 20 criptar uma CU não particionada, o encriptador de vídeo 20 pode gerar um ou mais unidades de previsão (PUs) para a CU. Cada uma das PUs da CU pode ser associada a um bloco de vídeo diferente dentro do bloco de vídeo da CU. O encriptador de vídeo 20 pode gerar um bloco de vídeo previsto para cada PU da CU. O bloco de vídeo previsto de uma PU pode ser um bloco de amostras. O encriptador de vídeo 20 pode usar intraprevisão ou interprevisão para gerar o bloco de vídeo previsto para uma PU.
[0063] Quando o encriptador de vídeo 20 usar a intraprevisão para gerar o bloco previsto de uma PU, o encriptador de vídeo 20 pode gerar o bloco previsto da PU com base nas amostras decodificadas da figuração associada à PU. Caso o encriptador de vídeo 20 use intraprevisão para gerar os blocos de vídeo previstos das PUs de uma CU, a CU é uma CU intraprevista. Quando o encriptador de vídeo 20 usar a interprevisão para gerar o bloco previsto da PU, o encriptador de vídeo 20 pode gerar o bloco previsto da PU com base nas amostras decodificadas da figuração associada à 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 os blocos de vídeo previstos das PUs de uma CU, a CU é uma CU interprevista.
[0064] Adicionalmente, quando o encriptador de vídeo 20 usar interprevisão para gerar um bloco de vídeo previsto para um PU, o encriptador de vídeo 20 pode gerar informações de movimento para a PU. As informações de movimento para uma PU podem indicar um ou mais blocos de referência da PU. Cada bloco de referência da PU pode ser um bloco de vídeo dentro de uma figuração de referência. A figuração de referência pode ser uma figuração diferente da figuração associada à PU. Em alguns exemplos, um bloco de referência de uma PU também pode ser denominado de "amostra de referência"da PU. O encriptador de vídeo 20 pode gerar o bloco de vídeo previsto para a PU com base nos blocos de referência da PU.
[0065] Após o encriptador de vídeo 20 gerar os blocos de vídeo previstos para uma ou mais PUs de uma CU, o encriptador de vídeo 20 pode gerar dados residuais para a CU com base nos blocos de vídeo previstos para os PUs da CU. Os dados residuais para a CU podem indicar diferenças entre amostras nos blocos de vídeo previstos para as PUs da CU e para o bloco de vídeo original da CU.
[0066] Adicionalmente, como parte da realização de uma operação de encriptação em uma CU não particionada, o encriptador 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 unidades de transformada (TUs) da CU. Cada TU de uma CU pode ser associada a um bloco de vídeo residual diferente.
[0067] O encriptador de vídeo 20 pode aplicar uma ou mais transformadas aos blocos de vídeo residuais associados às TUs para gerar os blocos de coeficiente de transformada (por exemplo, blocos de coeficientes de transformada) associados às TUs. Conceitualmente, um bloco de coeficiente de transformada pode ser uma matriz bidimensional (2D) de coeficientes de transformada.
[0068] Após gerar um bloco de coeficiente de transformada, o encriptador de vídeo 20 pode realizar um processo de quantização no bloco de coeficiente de transformada. A quantização geralmente se refere a um processo no qual coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados usada para representar os coeficientes de transformada, o que fornece uma compactação adicional. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de n-bits pode ser arredondado para baixo para um coeficiente de transformada de m-bits durante a quantização, em que n é maior que m.
[0069] O encriptador de vídeo 20 pode associar cada CU a um valor de parâmetro de quantização (QP). O valor de QP associado a uma CU pode determinar como o encriptador de vídeo 20 quantiza os blocos de coeficiente de transformada associados à CU. O encriptador de vídeo 20 pode ajustar o grau de quantização aplicado aos blocos de coeficiente de transformada associados a uma CU ajustando-se o valor de QP associados à CU.
[0070] Após o encriptador de vídeo 20 quantiza um bloco de coeficiente de transformada, o encriptador de vídeo 20 pode gerar definições de elementos de sintaxe que representam os coeficientes de transformada no bloco de coeficiente de transformada quantizado. O encriptador de vídeo 20 pode aplicar operações de criptação por entropia, tais como, operações de Codificação Aritmética Binária Adaptativa Ao Contexto (CABAC), a alguns desses elementos de sintaxe. Outras técnicas de codificação por entropia, tais como, codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação por entropia de particionamento de intervalo de probabilidade (PIPE) ou outra codificação aritmética binária também podem ser usadas.
[0071] O fluxo de bits gerado pelo encriptador de vídeo 20 pode incluir uma série de unidades de Camada de Abstração de Rede (NAL). Cada uma das unidades de NAL pode ser uma estrutura de sintaxe que contém uma indicação de um tipo de dados na unidade de NAL e bytes que contêm os dados. Por exemplo, uma unidade de NAL pode conter dados que representam um conjunto de parâmetros de vídeo, um conjunto de parâmetros de sequência, um conjunto de parâmetros de figuração, uma fatia codificada, SEI, um delimitador de unidade de acesso, dados de enchimento ou outro tipo de dados. Os dados em uma unidade de NAL podem incluir várias estruturas de sintaxe.
[0072] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo encriptador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo criptados pelo encriptador de vídeo 20. Quando o decodificador de vídeo 30 receber o fluxo de bits, o decodificador de vídeo 30 pode realizar uma operação de análise no fluxo de bits. Quando o decodificador de vídeo 30 realizar a operação de análise, o decodificador de vídeo 30 pode extrair elementos de sintaxe do fluxo de bits. O decodificador de vídeo 30 pode reconstruir as 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.
[0073] Após o decodificador de vídeo 30 extrair os elementos de sintaxe associados a uma CU, o decodificador de vídeo 30 pode gerar os blocos de vídeo previstos para as PUs da CU com base nos elementos de sintaxe. Além disso, o decodificador de vídeo 30 pode quantizar inversamente os blocos de coeficiente de transformada associados às TUs da CU. O decodificador de vídeo 30 pode realizar as transformadas inversas nos blocos de coeficiente de transformada para reconstruir os blocos de vídeo residuais associados às TUs da CU. Após gerar os blocos de vídeo previstos e reconstruir os blocos de vídeo residuais, o decodificador de vídeo 30 pode reconstruir o bloco de vídeo da CU com base nos blocos de vídeo previstos e nos blocos de vídeo residuais. Dessa forma, o decodificador de vídeo 30 pode reconstruir os blocos de vídeo das CUs com base nos elementos de sintaxe no fluxo de bits.
ENCRIPTADOR DE VÍDEO
[0074] A Figura 2A é um diagrama de blocos que ilustra um exemplo do encriptador de vídeo 20 que pode implantar técnicas de acordo com aspectos descritos nesta revelação. O encriptador de vídeo 20 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como, para HEVC. Adicionalmente, o encriptador de vídeo 20 pode ser configurado para realizar qualquer ou todas as técnicas desta revelação. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas dentre os vários componentes do encriptador de vídeo 20. Em alguns exemplos, adicional ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer ou todas as técnicas descritas nesta revelação.
[0075] Para propósitos de explicação, esta revelação descreve o encriptador de vídeo 20 no contexto de codificação de HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo retratado na Figura 2A é para um codec com uma camada. No entanto, conforme será descrito adicionalmente em referência à Figura 2B, uma parte ou todo o encriptador de vídeo 20 pode ser duplicado para o processamento de um codec com múltiplas camadas.
[0076] O encriptador de vídeo 20 pode realizar a intracodificação e a intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação tem base na previsão espacial para reduzir ou remover a redundância espacial no vídeo dentro de um dado quadro ou figuração de vídeo. A intercodificação se baseia na previsão temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou figurações adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre diversos modos de codificação com base em espaço. Os intermodos, tais como a previsão unidirecional (modo P) ou a previsão bidirecional (modo B), podem se referir a qualquer um dentre os diversos modos de codificação com base em tempo.
[0077] No exemplo da Figura 2A, o encriptador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais de encriptador de vídeo 20 incluem uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de transformada inversa 110, uma unidade de reconstrução 112, uma unidade de filtro 113, um armazenamento temporário de figuração decodificada 114 e uma unidade de criptação por entropia 116. A unidade de processamento de previsão 100 inclui 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 componentes funcionais, poucos componentes funcionais ou componentes funcionais diferentes. Além disso, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem ser altamente integradas, porém, são representadas no exemplo da Figura 2A separadamente para propósitos explicativos.
[0078] O encriptador de vídeo 20 pode receber os dados de vídeo. O encriptador de vídeo 20 pode receber os dados de vídeo de várias fontes. Por exemplo, o encriptador de vídeo 20 pode receber os dados de vídeo da fonte de vídeo 18 (por exemplo, mostrado na Figura 1A ou 1B) ou outra fonte. Os dados de vídeo podem representa uma série de figurações. A fim de criptar os dados de vídeo, o encriptador de vídeo 20 pode realizar uma operação de criptação em cada uma das figurações. Como parte da realização da operação de criptação em uma figuração, o encriptador de vídeo 20 pode realizar as operações de criptação em cada fatia da figuração. Como parte da realização de uma operação de codificação em uma fatia, o encriptador de vídeo 20 pode realizar as operações de codificação em blocos de árvores na fatia.
[0079] Como parte da realização de uma operação de criptação em um bloco de árvore, a unidade de processamento de previsão 100 pode realizar a partição de árvore quadrática no bloco de vídeo do bloco de árvore para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode ser associado a uma CU diferente. Por exemplo, a unidade de processamento de previsão 100 pode particionar um bloco de vídeo de um bloco de árvore em quatro sub-blocos igualmente dimensionados, particionar um ou mais dentre os sub-blocos em quatro sub-sub-blocos igualmente dimensionados, e assim por diante.
[0080] Os tamanhos dos blocos de vídeo associados às CUs podem variar de amostras 8x8 até o tamanho do bloco de árvore com um máximo de amostras 64x64 ou maior. Nesta revelação, “NxN” e “N por N” podem ser usados de modo intercambiável para se referir às dimensões de amostras de um bloco de vídeo em termos de dimensões horizontal e vertical, por exemplo, amostras 16x16 ou amostras 16 por 16. Em geral, um bloco de vídeo 16x16 tem dezesseis amostras em uma direção vertical (y = 16) e dezesseis amostras em uma direção horizontal (x = 16). De modo semelhante, um bloco NxN tem, em geral, N amostras em uma direção vertical e N amostras em uma direção horizontal, em que N representa um valor de número inteiro não negativo.
[0081] Além disso, como parte da realização da operação de criptação em um bloco de árvore, a unidade de processamento de previsão 100 pode gerar uma estrutura de dados de árvore quadrática hierárquica para o bloco de árvore. Por exemplo, um bloco de árvore pode corresponder a um nó-raiz da estrutura de dados de árvore quadrática. Caso a unidade de processamento de previsão 100 particione o bloco de vídeo do bloco de árvore em quatro sub-blocos, o nó-raiz tem quatro nós-filho na estrutura de dados de árvore quadrática. Cada um dos nós-filho corresponde a uma CU associada a um dentre os sub-blocos. Caso a unidade de processamento de previsão 100 particione um dentre os sub- blocos em quatro sub-blocos, sendo que o nó corresponde à CU associada ao sub-bloco pode ter quatro nós-filho, cada um corresponde a uma CU associada a um dentre os sub-sub-blocos.
[0082] Cada nó da estrutura de dados de árvore quadrática pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o bloco de árvore ou CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador de divisão que indica a possibilidade de o bloco de vídeo da CU correspondente ao nó ser particionado (por exemplo, divido) em quatro sub-blocos. Os elementos de sintaxe para uma CU podem ser definidos recursivamente, e podem depender da possibilidade de o bloco de vídeo da CU ser divido em sub-blocos. Uma CU cujo bloco de vídeo não é particionado pode corresponder a um nó-folha na estrutura de dados de árvore quadrática. Um bloco de árvore codificado pode incluir dados com base na estrutura de dados de árvore quadrática para um bloco de árvore correspondente.
[0083] O encriptador de vídeo 20 pode realizar as operações de criptação em cada CU não particionada de um bloco de árvore. Quando o encriptador de vídeo 20 realiza uma operação de criptação em uma CU não particionada, o encriptador de vídeo 20 gera dados que representam uma representação criptada da CU não particionada.
[0084] Como parte da realização de uma operação de criptação em uma CU, a unidade de processamento de previsão 100 pode particionar o bloco de vídeo da CU dentre uma ou mais PUs da CU. O encriptador de vídeo 20 e o decodificador de vídeo 30 podem suportar vários tamanhos de PU. 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 interprediçã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 partição assimétrica para os tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Em alguns exemplos, a unidade de processamento de previsão 100 pode realizar a partição geométrico de modo a particionar o bloco de vídeo de uma CU dentre as PUs da CU ao longo de um limite que não se encontra com os lados do bloco de vídeo da CU em ângulos retos.
[0085] A unidade de interprevisão 121 pode realizar a interprevisão em cada PU da CU. A interprevisão pode fornecer a compactação temporal. Para 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). Nesta revelação, um bloco de vídeo previsto gerado pela unidade de compensação de movimento 124 pode ser denominado como um bloco de vídeo interprevisto.
[0086] As fatias podem ser fatias I, fatias P ou fatias B. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 podem realizar operações diferentes para uma PU de uma CU dependendo de se a PU está em uma fatia I, uma fatia P ou uma fatia B. Em uma fatia I, todas as PUs são intraprevistas. Portanto, caso a PU esteja em uma fatia I, a unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 não realizam a interprevisão na PU.
[0087] Caso a PU esteja em uma fatia P, a figuração que contém a PU está associada a uma lista de figurações de referência denominada como “lista 0”. Cada uma das figurações de referência na lista 0 contém amostras que podem ser usadas para a interprevisão de outras figurações. Quando a unidade de 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 pesquisar as figurações de referência na lista 0, por 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.
[0088] 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 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.
[0089] Caso a PU esteja em uma fatia B, a figuração que contém a PU pode ser associada a duas listas de figurações de referência, denominada de "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.
[0090] 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 os blocos de vídeo previsto da PU com base nos blocos de referência indicados pelas informações de movimento da PU.
[0091] Quando a unidade de 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 pode 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 os blocos de vídeo previsto da PU com base nos blocos de referência indicados pelas informações de movimento da PU.
[0092] Em alguns exemplos, a unidade de estimativa de movimento 122 não emite um conjunto completo de informações de movimento para uma PU à unidade de criptação por entropia 116. Ao invés disso, a unidade de estimativa 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 semelhantes à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 para sinalizar as informações de movimento da segunda PU como uso de menos bits.
[0093] Como parte de realizar uma operação de criptação em uma CU, a unidade de intraprevisão 126 pode realizar intraprevisão em PUs da CU. A intraprevisão pode fornecer compactação espacial. Quando a unidade de intraprevisão 126 realiza a intraprevisão em uma PU, a unidade de intraprevisão 126 pode gerar dados de previsão para a PU com base em amostras decodificadas de outras PUs na mesma figuração. Os dados de previsão para a PU podem incluir um bloco de vídeo previsto e vários elementos de sintaxe. A unidade de intraprevisão 126 pode realizar a intraprevisão em PUs em fatias I, fatias P e fatias B.
[0094] Para realizar a intraprevisão em uma PU, a unidade de intraprevisão 126 pode usar múltiplos modos de intraprevisão para gerar múltiplos conjuntos de dados de previsão para a PU. Quando a unidade de intraprevisão 126 usa um modo de intraprevisão para gerar um conjunto de dados de previsão para a PU, a unidade de intraprevisão 126 pode estender as amostras dos blocos de vídeo de PUs próximas através do bloco de vídeo da PU em uma direção e/ou um gradiente associados ao modo de intraprevisão. As PUs próximas podem estar acima, acima e à direita, acima e à esquerda ou à esquerda da PU, assumindo uma ordem de criptação do fundo para o topo e da esquerda para direita para PUs, CUs e blocos de árvore. A unidade de intraprevisão 126 pode usar várias quantidades de modos de intraprevisão, por exemplo, 33 modos de intraprevisão direcional, dependendo do tamanho da PU.
[0095] A unidade de processamento de previsão 100 pode selecionar os dados de previsão para uma PU dentre os dados de previsão gerados pela unidade de compensação de movimento 124 para a PU ou os dados de previsão gerados pela unidade de intraprevisão 126 para a PU. Em alguns exemplos, a unidade de processamento de previsão 100 seleciona os dados de previsão para a PU com base nas métricas de taxa/distorção dos conjuntos de dados de previsão.
[0096] Caso a unidade de processamento de previsão 100 selecione os dados de previsão gerados pela unidade de intraprevisão 126, a unidade de processamento de previsão 100 pode sinalizar o modo de intraprevisão que foi usado para gerar os dados de previsão para as PUs, por exemplo, o modo de intraprevisão selecionado. A unidade de processamento de previsão 100 pode sinalizar o modo de intraprevisão selecionado de várias formas. Por exemplo, pode ser provável que o modo de intraprevisão selecionado seja igual ao modo de intraprevisão de uma PU próxima. Em outras palavras, o modo de intraprevisão da PU próxima pode ser o modo mais provável para a PU atual. Assim, a unidade de processamento de previsão 100 pode gerar um elemento de sintaxe a fim de indicar que o modo de intraprevisão selecionado é igual ao modo de intraprevisão da PU próxima.
[0097] Conforme discutido acima, o encriptador de vídeo 20 pode incluir a unidade de previsão intercamada 128. A unidade de previsão intercamada 128 é configurada para prever um bloco atual (por exemplo, um bloco atual na EL) com o uso de uma ou mais camadas diferentes que estão disponíveis em SHVC (por exemplo, uma camada-base ou de referência). Tal previsão pode ser denominada como previsão intercamada. A unidade de previsão intercamada 128 utiliza os métodos de previsão para reduzir a redundância intercamada, desse modo, aprimorando a eficiência de codificação e reduzindo as exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão intercamada, previsão de moção intercamada e previsão residual intercamada. A intraprevisão intercamada usa a reconstrução de blocos localizados simultaneamente na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de moção intercamada usa as informações de movimento da camada-base para prever o movimento na camada de aprimoramento. A previsão residual intercamada usa o resíduo da camada-base para prever o resíduo da camada de aprimoramento.
[0098] Após a unidade de processamento de previsão 100 selecionar os dados de previsão para as PUs de uma CU, a unidade de geração residual 102 pode gerar dados residuais para a CU subtraindo-se (por exemplo, indicado pelo sinal de menos) os blocos de vídeo previstos das PUs da CU do bloco de vídeo da CU. Os dados residuais de uma CU podem incluir blocos de vídeo residuais 2D que correspondem aos componentes de amostra diferentes das amostras no bloco de vídeo da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que corresponde às diferenças entre componentes de culminância de amostras nos blocos de vídeo previstos das PUs da CU e os componentes de culminâ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 prominência de amostras nos blocos de vídeo previstos das PUs da CU e os componentes de prominência das amostras no bloco de vídeo original da CU.
[0099] A unidade de processamento de previsão 100 pode realizar o particionamento de árvore quadrática para particionar os blocos de vídeo residuais da CU em sub- blocos. Cada bloco de vídeo residual não dividido pode ser associado a uma TU diferente da CU. Os tamanhos e posições dos blocos de vídeo residuais associados às TUs de uma CU podem ou não ser baseados nos tamanhos e nas posições de blocos de vídeo associados às PUs da CU. Uma estrutura de árvore quadrática conhecida como uma “árvore quadrática residual” (RQT) pode incluir nós associados a cada um dos blocos de vídeo residuais. As TUs de uma CU podem corresponder aos nós-folha da RQT.
[0100] A unidade de processamento de transformada 104 pode gerar um ou mais blocos de coeficiente de transformada para cada TU de uma CU aplicando-se uma ou mais transformadas a um bloco de vídeo residual associado à TU. Cada um dos blocos de coeficiente de transformada pode ser uma matriz 2D de coeficientes de transformada. A unidade de processamento de transformada 104 pode aplicar diversas transformadas ao bloco de vídeo residual associado a uma TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada de cosseno discreta (DCT), uma transformada direcional, ou uma transformada conceitualmente semelhante ao bloco de vídeo residual associado a uma TU.
[0101] Após a unidade de processamento de transformada 104 gerar um bloco de coeficiente de transformada associado a uma TU, a unidade de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficiente de transformada. A unidade de quantização 106 pode quantizar um bloco de coeficiente de transformada associado a uma TU de uma CU com base em um valor de QP associado à CU.
[0102] O encriptador de vídeo 20 pode associar um valor de QP a uma CU de várias maneiras. Por exemplo, o encriptador de vídeo 20 pode realizar uma análise de taxa de distorção em um bloco de árvore associado à CU. Na análise de taxa de distorção, o encriptador de vídeo 20 pode gerar múltiplas representações codificadas do bloco de árvore realizando-se uma operação de criptação múltiplas vezes no bloco de árvore. O encriptador de vídeo 20 pode associar diferentes valores de QP à CU quando o encriptador de vídeo 20 gera diferentes representações criptadas do bloco de árvore. O encriptador de vídeo 20 pode sinalizar que um determinado valor de QP está associado à CU quando o determinado valor de QP estiver associado à CU em uma representação criptada do bloco de árvore que tem uma métrica de taxa de bits e de distorção mais inferior.
[0103] A unidade de quantização inversa 108 e a unidade de transformada inversa 10 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 12 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 predição 100 para produzir um bloco de vídeo reconstruído associado a uma TU. Reconstruindo-se os blocos de vídeo para cada TU de uma CU, dessa maneira, o encriptador de vídeo 20 pode reconstruir o bloco de vídeo da CU.
[0104] Após a unidade de reconstrução 112 reconstruir o bloco de vídeo de uma CU, a unidade de filtro 13 pode realizar uma operação de desblocagem a fim reduzir artefatos de blocagem no bloco de vídeo associado à CU. Após realizar as 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 14. 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 14 para realizar intraprevisão em outras PUs na mesma figuração como da CU.
[0105] A unidade de criptação por entropia 116 podem receber dados a partir de outros componentes funcionais de encriptador de vídeo 20. Por exemplo, a unidade de criptação por entropia 116 pode receber blocos de coeficiente de transformada a partir da unidade de quantização 106 e pode receber elementos de sintaxe a partir da unidade de processamento de previsão 100. Quando a unidade de criptação por entropia 16 recebe os dados, a unidade de criptação por entropia 1 pode realizar um ou mais operações de criptação por entropia de modo a gerar dados criptados por entropia. Por exemplo, o encriptador de vídeo 20 pode realizar uma operação de codificação de comprimento variável adaptativa ao contexto (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 criptação por entropia de particionamento de intervalo de probabilidade (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 criptados por entropia.
[0106] Com parte da realização de uma operação de criptação por entropia nos dados, a unidade de criptação por entropia 116 pode selecionar um modelo de contexto. Caso a unidade de criptação por entropia 16 esteja por realizar uma operação de CABAC, o modelo de contexto pode indicar estimativas de probabilidades de bins específicos que têm valores específicos. No contexto de CABAC, o termo “número binário” é usado para se referir a um bit de uma versão binarizada de um elemento de sintaxe. ENCRIPTADOR DE VÍDEO COM MÚLTIPLAS CAMADAS
[0107] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um encriptador de vídeo com múltiplas camadas 23 (também referido simplesmente como encriptador de vídeo com múltiplas camadas que 23) que pode implantar as técnicas em conformidade com os aspectos descritos na presente revelação. O encriptador de vídeo 23 pode ser configurado para processar quadros de vídeo com múltiplas camadas, tais como, para a codificação SHVC e com múltiplas vistas. Adicionalmente, o encriptador de vídeo 23 pode ser configurado para realizar qualquer ou todas as técnicas dessa revelação.
[0108] O encriptador de vídeo 23 inclui um encriptador de vídeo 20A e um encriptador de vídeo 20B, em que cada um pode ser configurado como o encriptador de vídeo 20 e pode realizar as funções descritas acima em relação ao encriptador de vídeo 20. Além disso, conforme indicado pela reutilização de numerais de referência, os encriptadores de vídeo 20A e 20B podem incluir pelo menos algum dentre os sistemas e subsistemas como o encriptador de vídeo 20. Embora o encriptador de vídeo 23 seja ilustrado como incluindo dois encriptadores de vídeo 20A e 20B, o encriptador de vídeo 23 não se limita a isso e pode incluir qualquer número de camadas de encriptador de vídeo 20. Em algumas modalidades, o encriptador de vídeo 23 pode incluir um encriptador de vídeo 20 para cada 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 do que quadros em uma unidade de acesso. Em alguns casos, algumas dentre as camadas de encriptador de vídeo pode ser inativa quando o durante o processamento de algumas unidades de acesso.
[0109] Além dos encriptadores de vídeo 20A e 20B, o encriptador de vídeo 23 pode incluir uma unidade de reamostragem 90. A unidade de reamostragem 90 pode, em alguns casos, superamostrar uma BL de um quadro de vídeo recebido para, por exemplo, criar uma EL. A unidade de reamostragem 90 pode superamostrar informações particulares associadas à BL recebida de um quadro, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode superamostrar do tamanho espacial ou do número de pixels da BL, porém, o número de fatias ou a contagem de ordem de figuração podem permanecer constantes. 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 BL ou uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode subamostrar 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.
[0110] 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 superamostrar da figuração (ou das informações de figuração recebidas). Em seguida, essa figuração superamostrada pode ser fornecida à unidade de processamento de prediçã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 do encriptador de camada inferior. Em alguns casos, o encriptador de camada superior é uma camada removida do encriptador de camada inferior. Em outros casos, pode haver um ou mais encriptadores de camada superiores entre o encriptador de vídeo de camada 0 e o encriptador de camada 1 da Figura. 2B.
[0111] 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 encriptador de vídeo 20A pode ser fornecido diretamente, ou pelo menos sem ser fornecido à unidade de reamostragem 90, à unidade de processamento de predição 100 do encriptador de vídeo 20B. Por exemplo, caso os dados de vídeo fornecidos ao encriptador de vídeo 20B e à figuração de referência do armazenamento temporário de figuração decodificada 114 do encriptador de vídeo 20A tenham o mesmo tamanho ou resolução, a figuração de referência pode ser fornecida ao encriptador de vídeo 20B sem qualquer reamostragem.
[0112] Em algumas modalidades, o encriptador de vídeo 23 subamostra os dados de vídeo a serem fornecidos ao encriptador de camada inferior com o uso da unidade de redução de resolução 94 antes que os dados de vídeo sejam fornecidos ao encriptador de vídeo 20A. Alternativamente, a unidade de subamostragem 94 pode ser uma unidade de reamostragem 90 com capacidade para superamostrar ou subamostrar dos dados de vídeo. Ainda em outras modalidades, a unidade de subamostragem 94 pode ser omitida.
[0113] Conforme ilustrado na Figura 2B, o encriptador de vídeo 23 pode incluir adicionalmente um multiplexador 98, ou mux. O mux 98 pode emitir um fluxo de bits combinados do encriptador de vídeo 23. O fluxo de bits combinados pode ser criado tomando-se o fluxo de bits de cada um dentre os encriptadores de vídeo 20A e 20B e alternando-se qual fluxo de bits é emitido em um determinado momento. Embora em alguns casos os bits dos dois (ou mais no caso de mais que duas camadas de encriptador de vídeo) fluxos de bits possam ser alternados um bit por vez, em muitos casos, os fluxos de bits são combinados diferentemente. Por exemplo, o fluxo de bits de saída pode ser criado alternando- se o fluxo de bits selecionado um bloco por vez. Em outro exemplo, o fluxo de bits de saída pode ser criado emitindo- se uma razão não 1:1 de blocos de cada um dos encriptadores de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos a partir do encriptador de vídeo 20B para cada bloco emitido do encriptador de vídeo 20A. Em algumas modalidades, o fluxo de saída do mux 98 pode ser programado. Em outras modalidades, o mux 98 pode combinar os fluxos de bits dos encriptadores de vídeo 20A, 20B com base em um sinal de controle recebido de um sistema externo ao encriptador de vídeo 23, tal como, a partir de um processador em um dispositivo de origem que inclui o módulo de origem 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo da fonte de vídeo 18, com base em uma largura de banda do enlace 16, com base em uma assinatura associada a um usuário (por exemplo, uma assinatura paga versus uma assinatura gratuita), ou com base em qualquer outro fator para determinar uma saída de resolução desejada do encriptador de vídeo 23.
DECODIFICADOR DE VÍDEO
[0114] A Figura 3A é um diagrama de blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implantar técnicas de acordo com aspectos descritos nesta revelação. O decodificador de vídeo 30 pode ser configurado para processar uma única camada de um quadro de vídeo, tal como, para HEVC. Além disso, o decodificador de vídeo 30 pode ser configurado para realizar qualquer ou todas as técnicas da presente revelação. Em alguns exemplos, as técnicas descritas na presente revelação podem ser compartilhadas entre os vários componentes de decodificador de vídeo 30. Em alguns exemplos, adicional ou alternativamente, um processador (não mostrado) pode ser configurado para realizar qualquer ou todas as técnicas descritas nesta revelação.
[0115] Para propósitos de explicação, essa revelação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. Entretanto, as técnicas desta revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O exemplo retratado na Figura 3A é para um codec com uma camada. No entanto, conforme será descrito adicionalmente em referência à Figura 3B, alguns ou todos os decriptadores de vídeo 30 podem ser duplicados para o processamento de um codec com múltiplas camadas.
[0116] No exemplo da Figura 3A, o decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 incluem uma unidade de decodificação por entropia 150, uma unidade de processamento de previsão 152, uma unidade de quantização inversa 154, uma unidade de transformada inversa 156, uma unidade de reconstrução 158, uma unidade de filtro 159 e um armazenamento temporário de 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 encriptador de vídeo 30 pode incluir mais componentes funcionais, poucos componentes funcionais ou componentes funcionais diferentes.
[0117] 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 receber o fluxo de bits, a unidade de decodificação por entropia 150 pode realizar uma operação de análise no fluxo de bits. Como resultado da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode extrair os elementos de sintaxe do fluxo de bits. Como parte da realização da operação de análise, a unidade de decodificação por entropia 150 pode decodificar por entropia os elementos de sintaxe criptados por entropia no fluxo de bits. A unidade de processamento de previsão 152, a unidade de quantização inversa 154, a unidade de transformada inversa 156, a unidade de reconstrução 158 e a unidade de filtro 159 podem realizar uma operação de reconstrução que gera dados de vídeo decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[0118] 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.
[0119] Além disso, as unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificadas. Como parte da realização da operação de análise no fluxo de bits, a unidade de decodificação por entropia 150 pode realizar as operações de análise que extraem e decodificam por entropia as fatias codificadas das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetros de figuração associado a uma figuração que contém a fatia. A unidade de decodificação por entropia 150 pode realizar operações de decodificação por entropia, tal como operações de decodificação de CABAC, em elementos de sintaxe no cabeçalho de fatia codificada para recuperar o cabeçalho de fatia.
[0120] Como parte de extrair os dados de fatia de unidades de NAL de fatia codificada, a unidade de decodificação por entropia 150 pode realizar operações de análise que extraem elementos de sintaxe de CUs codificadas nos dados de fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados a 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.
[0121] Após a unidade de decodificação por entropia 150 realizar uma operação de análise em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução na CU não particionada. Para realizar a operação de reconstrução em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Realizando-se a operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruir um bloco de vídeo residual associado à CU.
[0122] Como parte da realização de uma operação de reconstrução em uma TU, a unidade de quantização inversa 154 pode quantizar inversamente, por exemplo, desquantizar, um bloco de coeficiente de transformada associado à TU. A unidade de quantização inversa 154 pode quantizar inversamente o bloco de coeficiente de transformada de maneira similar aos processos de quantização inversa propostos para HEVC ou definidos pelo padrão de decodificação H.264. A unidade de quantização inversa 154 pode usar um parâmetro de quantização QP calculado pelo encriptador de vídeo 20 para uma CU do bloco de coeficiente de transformada para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa a ser aplicado pela unidade de quantização inversa 154.
[0123] Após a unidade de quantização inversa 154 quantizar inversamente um bloco de coeficiente de transformada, a unidade de transformada inversa 156 pode gerar um bloco de vídeo residual para a TU associada ao bloco de coeficiente de transformada. A unidade de transformada inversa 156 pode aplicar uma transformada inversa ao bloco de coeficiente de transformada a fim de gerar o bloco de vídeo residual para a TU. Por exemplo, a unidade de transformada inversa 156 pode aplicar uma DCT inversa, uma transformada de número inteiro inversa, uma transformada de Karhunen-Loeve inversa (KLT), uma transformada rotacional inversa, uma transformada direcional inversa ou outra transformada inversa ao bloco de coeficiente de transformada. Em alguns exemplos, a unidade de transformada inversa 156 pode determinar que uma transformada inversa se aplique ao bloco de coeficiente de transformada com base na sinalização do encriptador de vídeo 20. Em tais exemplos, a unidade de transformada inversa 156 pode determinar a transformada inversa com base em uma transformada sinalizada no nó-raiz de uma árvore quadrática para um bloco de árvore associado ao bloco de coeficiente de transformada. Em outros exemplos, a unidade de transformada inversa 156 pode inferir a transformada inversa a partir de uma ou mais características de codificação, tais como, tamanho de bloco, modo de codificação ou semelhantes. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformada inversa em cascata.
[0124] Em alguns exemplos, a unidade de compensação de movimento 162 pode refinar o bloco de vídeo previsto de uma PU realizando-se interpolação com base em filtros de interpolação. Os identificadores para filtros de interpolação a serem usados para a compensação de movimento com precisão de subamostra podem estar incluídos nos elementos de sintaxe. A unidade de compensação de movimento 162 pode usar os mesmos filtros de interpolação usados pelo encriptador de vídeo 20 durante a geração do bloco de vídeo previsto do PU a fim de calcular os valores interpolados para amostras de número abaixo de número inteiro de um bloco de referência. A unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo encriptador de vídeo 20 de acordo com as informações de sintaxe recebidas e pode usar os filtros de interpolação de modo a produzir o bloco de vídeo previsto.
[0125] 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.
[0126] Em alguns exemplos, os elementos de sintaxe podem indicar que a unidade de intraprevisão 164 deve usar o modo de intraprevisão de outra PU para determinar o modo de intraprevisão da PU atual. Por exemplo, é provável que o modo de intraprevisão da PU atual seja igual ao modo de intraprevisão de uma PU próxima. Em outras palavras, o modo de intraprevisão da PU próxima pode ser o modo mais provável para a PU atual. Portanto, nesse exemplo, o fluxo de bits pode incluir um elemento de sintaxe pequeno que indica que o modo de intraprevisão da PU é igual ao modo de intraprevisão da PU próxima. A unidade de intraprevisão 164 pode, então, usar o modo de intraprevisão para gerar dados de previsão (por exemplo, amostras previstas) para a PU com base nos blocos de vídeo de PUs espacialmente próximas.
[0127] Conforme discutido acima, o decodificador de vídeo 30 também pode incluir a unidade de previsão intercamada 166. A unidade de previsão intercamada 166 é configurada para prever um bloco atual (por exemplo, um bloco atual na camada de aprimoramento) com o uso de uma ou mais camadas diferentes que estão disponíveis em SHVC (por exemplo, uma camada-base ou de referência). Tal previsão pode ser denominada como previsão intercamada. A unidade de previsão intercamada 166 utiliza os métodos de previsão para reduzir a redundância intercamada, desse modo, aprimorando a eficiência de codificação e reduzindo as exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão intercamada, previsão de moção intercamada e previsão residual intercamada. A intraprevisão intercamada usa a reconstrução de blocos localizados simultaneamente na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de moção intercamada usa as informações de movimento da camada-base para prever o movimento na camada de aprimoramento. A previsão residual intercamada usa o resíduo da camada-base para prever o resíduo da camada de aprimoramento. Cada um dentre os esquemas de previsão intercamada é discutido abaixo mais detalhadamente.
[0128] 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 como dados de interprevisão, conforme aplicável, para reconstruir o bloco de vídeo da CU. Assim, o decodificador de vídeo 30 pode gerar um bloco de vídeo previsto e um bloco de vídeo residual com base em elementos de sintaxe no fluxo de bits e pode gerar um bloco de vídeo com base no bloco de vídeo previsto e no bloco de vídeo residual.
[0129] Após a unidade de reconstrução 158 reconstruir o bloco de vídeo da CU, a unidade de filtro 159 pode realizar uma operação de desbloqueio para reduzir os artefatos de bloqueio associados à CU. Após a unidade de filtro 159 realizar uma operação de desbloqueio para reduzir artefatos de bloqueio associados à CU, o decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU em armazenamento temporário de figuração decodificada 160. O armazenamento temporário de figuração decodificada 160 pode fornecer figurações de referência para compensação de movimento subsequente, intraprevisão e apresentação em um dispositivo de exibição, tal como o dispositivo de exibição 32 das Figuras 1A ou 1B. Por exemplo, o decodificador de vídeo 30 pode realizar, com base nos blocos de vídeo no armazenamento temporário de figuração decodificada 160, operações de intraprevisão ou interprevisão nas PUs ou outras CUs.
DECODIFICADOR COM MÚLTIPLAS CAMADAS
[0130] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo com múltiplas camadas 33 (também referido simplesmente como decodificador de vídeo com múltiplas camadas que 33) que pode implantar as técnicas em conformidade com os aspectos descritos na presente revelação. O decodificador de vídeo 33 pode ser configurado para processar quadros de vídeo com múltiplas camadas, tais como para a codificação com múltiplas visualizações e SHVC. O decodificador de vídeo 33 pode ser configurado para realizar qualquer ou todas as técnicas da presente revelação.
[0131] O decodificador de vídeo 33 inclui um decodificador de vídeo 30A e um decodificador de vídeo 30B, sendo que cada um dos quais 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 alguns dos sistemas e subsistemas como o decodificador de vídeo 30. Embora o decodificador de vídeo 33 seja ilustrado como incluindo dois decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 não é limitado como tal e pode incluir qualquer quantidade de camadas de decodificador de vídeo 30. Em algumas modalidades, o decodificador de vídeo 33 pode incluir um decodificador de vídeo 30 para cada figuração ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco figurações pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas modalidades, o decodificador de vídeo 33 pode incluir mais camadas de decodificador do que quadros em uma unidade de acesso. Em alguns casos, algumas dentre as camadas de decodificador de vídeo pode estar inativa quando o durante o processamento de algumas unidades de acesso.
[0132] Em adição aos decodificadores de vídeo 30A e 30B, o decodificador de vídeo 33 pode incluir uma unidade de superamostragem 92. Em algumas modalidades, a unidade de superamostragem 92 pode superamostrar uma BL 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 superamostragem 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 superamostrar uma camada e reorganizar, redefinir, modificar ou ajustar uma ou mais fatias para estarem em conformidade com um conjunto de regras de limite de fatia e/ou regras de realização de varredura. Em alguns casos, a unidade de superamostragem 92 pode ser uma unidade de reamostragem configurada para superamostrar e/ou subamostrar uma camada de um quadro de vídeo recebido.
[0133] 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 superamostrar da figuração (ou das informações de figuração recebidas). Essa figuração superamostrada pode ser fornecida à unidade de processamento de predição 152 de um decodificador de camada superior (por exemplo, o decodificador de vídeo 30B) configurado para decodificar uma figuração na mesma unidade de acesso do 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.
[0134] Em alguns casos, a unidade de superamostragem 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 superamostragem 92, à unidade de processamento de predição 152 do decodificador de vídeo 30B. Por exemplo, caso os dados de vídeo fornecidos ao decodificador de vídeo 30B e a figuração de referência do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A sejam do mesmo tamanho ou resolução, a figuração de referência pode ser fornecida ao decodificador de vídeo 30B sem superamostragem. Além disso, em algumas modalidades, a unidade de superamostragem 92 pode ser uma unidade de reamostragem 90 configurada para superamostrar ou subamostrar uma figuração de referência recebida do armazenamento temporário de figuração decodificada 160 do decodificador de vídeo 30A.
[0135] Conforme ilustrado na Figura 3B, o decodificador de vídeo 33 pode incluir adicionalmente um desmultiplexador 99 ou demux. O demux 99 pode dividir um fluxo de bits de vídeo criptado em múltiplos fluxos de bits em que cada saída de fluxo de bits pelo demux 99 é fornecida para um decodificador de vídeo diferente 30A e 30B. Os múltiplos fluxos de bits podem ser criados recebendo-se um fluxo de bits e cada um dos decodificadores de vídeo 30A e 30B recebe uma porção do fluxo de bits em um dado momento. Embora em alguns casos os bits do fluxo de bits recebidos pelo demux 99 possam ser alternados um bit por vez entre cada um dentre dos decodificadores de vídeo (por exemplo, decodificadores de vídeo 30A e 30B no exemplo da Figura 3B), em muitos casos, o fluxo de bits é dividido diferentemente. Por exemplo, o fluxo de bits pode ser dividido alternando- se qual decodificador de vídeo recebe o fluxo de bits um bloco por vez. Em outro exemplo, o fluxo de bits pode ser divido por uma razão de não 1 de blocos para qual cada um dentre os decodificadores de vídeo 30A e 30B. Por exemplo, dois blocos podem ser fornecidos ao decodificador de vídeo 30B para cada bloco fornecido ao decodificador de vídeo 30A. Em algumas modalidades, a divisão do fluxo de bits pelo demux 99 pode ser programada. Em outras modalidades, o demux 99 pode dividir o fluxo de bits com base em um sinal de controle recebido de um sistema externo ao decodificador de vídeo 33, tal como, de um processador em um dispositivo de destino incluindo o dispositivo de destino 14. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo a partir da interface de entrada 28, com base em uma largura de banda do enlace 16, com base em uma assinatura associada a um usuário (por exemplo, uma assinatura paga versus uma assinatura gratuita) ou com base em qualquer outro fator para determinar uma resolução obtenível pelo decodificador de vídeo 33.
RESTRIÇÕES DE CONFORMIDADE DE FLUXO DE BITS
[0136] Padrões de codificação de vídeo podem especificar restrições de conformidade de fluxo de bits que conformidades de fluxo de bits de tais padrões devem ser seguidas. Em outras palavras, para ter um fluxo de bits (por exemplo, fluxo de bits em conformidade) que está em conformidade com um padrão, o fluxo de bits precisa satisfazer todas as restrições de conformidade de fluxo de bits especificadas pelo padrão. Em alguns padrões de codificação de vídeo, um fluxo de bits em conformidade é dito como decodificado por um decodificador hipotético que é conceitualmente conectado à saída de um encriptador. Tal decodificador hipotético pode consistir em a armazenamento temporário de decodificador, um decodificador e/ou uma unidade de exibição. Esse decodificador hipotético é chamado, algumas vezes, de um decodificador de referência hipotético (HRD) em esquemas de codificação existentes (por exemplo, H.264, HEVC, etc.). As restrições de conformidade de fluxo de bits de um determinado padrão garantem que o encriptador gerará um fluxo de bits que pode ser decodificado adequadamente por qualquer decodificador que esteja em conformidade com o determinado padrão.
[0137] As restrições de conformidade de fluxo de bits podem ser usadas por qualquer entidade que deseje testar a possibilidade de um fluxo de bits particular estar em conformidade com um padrão. Por exemplo, tal uma entidade pode estar no lado do encriptador (por exemplo, um provedor de conteúdo pode desejar garantir que o fluxo de bits que é gerado e enviado, de fato, esteja em conformidade com o padrão, visto que, se o fluxo de bits não estiver em conformidade com o padrão, o fluxo de bits pode não ser decodificável adequadamente por um decodificador em conformidade) ou no lado de decodificador (por exemplo, visto que um decodificador não pode ser considerado como um decodificador em conformidade salvo caso o decodificador tenha a capacidade para decodificar todos os fluxos de bits que estão em conformidade com o padrão, pode ser desejável que um decodificador ou uma entidade no lado de decodificador teste a possibilidade de um determinado fluxo de bits satisfazer uma ou mais restrições de conformidade de fluxo de bits especificadas por um determinado padrão) ou uma entidade de rede (por exemplo, uma entidade de caixa de rede pode receber um fluxo de bits e apenas encaminhar os mesmos para outras entidades após apurar que o fluxo de bits é um fluxo de bits em conformidade verificando-se que as restrições de conformidade de fluxo de bits são válidas).
PARTIÇÕES DE FLUXO DE BITS
[0138] Conforme discutido acima, um fluxo de bits pode conter mais que uma camada de vídeo (por exemplo, BL, EL, etc.). Em algumas implantações, o fluxo de bits pode ser divido em múltiplas partições de fluxo de bits, em que cada partição de fluxo de bits inclui pelo menos uma camada de vídeo no fluxo de bits. Por exemplo, se um fluxo de bits tiver Camadas A, B e C, o fluxo de bits pode ser dividido em Partições X e Y, em que a Partição X inclui Camadas A e B, e Partição Y inclui Camada C. A forma na qual as camadas de vídeo são divididas em uma ou mais partições de fluxo de bits pode ser chamada de um esquema de particionamento. Por exemplo, um encriptador pode especificar um ou mais esquemas de particionamento para o fluxo de bits (por exemplo, especificando-se parâmetros associados a cada esquema de particionamento). Em algumas modalidades, o fluxo de bits pode incluir pelo menos duas partições de fluxo de bits.
[0139] De modo semelhante, um fluxo de bits pode conter uma pluralidade de unidades de acesso (AUs), em que cada AU contém figurações no fluxo de bits que correspondem à mesma ocorrência de tempo de saída. Se o fluxo de bits conter uma ou mais partições de fluxo de bits, a porção (por exemplo, um conjunto de figurações) da AU que pertence a uma única partição de fluxo de bits pode ser chamada de uma unidade de partição. Em outras palavras, a unidade de partição pode ser um subconjunto da AU, em que a unidade de partição contém figurações de uma partição de fluxo de bits que corresponde à mesma ocorrência de tempo de saída. Em algumas implantações, uma unidade de partição inclui unidades de camada de abstração de rede (NAL) de camada de codificação de vídeo (VCL) de uma AU que pertence às camadas contidas na partição de fluxo de bits e suas unidades de NAL de não VCL associadas. Por exemplo, uma unidade de NAL pode ser uma unidade de transporte que inclui uma carga de sequência de bites bruta (RBSP) e um cabeçalho de unidade de NAL.
TRANSPORTE DE PARTIÇÕES DE FLUXO DE BITS
[0140] Em alguns esquemas de codificação existentes, o fluxo de bits inteiro é transportado junto com uma única tubulação. As figurações no fluxo de bits são armazenadas em um armazenamento temporário de figuração codificada (CPB), emitidas para um decodificador, e armazenadas em um armazenamento temporário de figuração decodificada (DPB).
[0141] Particionando-se um fluxo de bits em múltiplas partições de fluxo de bits pode fornecer flexibilidade de codificação em que as partições de fluxo de bits resultantes não precisem ser transportadas juntas em um único fluxo de bits e possam ser transportas independentemente. Por exemplo, as Camadas A e B no exemplo acima podem ser transportas em um fluxo de bits diferente de um fluxo de bits no qual Camada C é transportada. No entanto, determinadas restrições de conformidade de fluxo de bits se referem a unidades de acesso, que contém todas as figurações no fluxo de bits inteiro (por exemplo, Camadas A, B e C) que correspondem à mesma ocorrência de tempo de saída. Tais fluxos de bits podem se tornar sem significado ou impróprios se nem todas as partições de fluxo de bits que pertencem ao fluxo de bits forem transportadas juntas. Por exemplo, quando parte das camadas de vídeo no fluxo de bits forem transportadas separada ou independentemente, pode não ser mais adequado especificar parâmetros tais como taxa de figuração, tempo de chegada, etc. para o fluxo de bits inteiro ou unidades de acesso contidas nesses devido ao fluxo de bits inteiro (ou AUs inteiras) não ser mais recebido junto com ou em um único fluxo de bits. De fato, uma ou mais partições de fluxo de bits podem ser enviadas para armazenamentos temporários de partição de fluxo de bits diferentes (BPBs), e as partições de fluxo de bits podem ser decodificadas juntas por um único decodificador ou decodificadas separadamente por múltiplos decodificadores. Desse modo, em tais modalidades, esses parâmetros de conformidade de fluxo de bits devem ser especificados para cada partição de fluxo de bits ou cada unidade de partição contida nesses.
[0142] Um fluxo de bits exemplificativo que contém duas partições de fluxo de bits é ilustrado na Figura 4. O fluxo de bits 400 da Figura 4 inclui as camadas 402, 404, e 406. As camadas 402 e 404 pertencem à partição de fluxo de bits 410, e a camada 406 pertence à partição de fluxo de bits 420. As camadas 402 e 404 são enviadas para BPB 442A do sistema de decodificação 440 e a camada 406 é enviada para BPB 442B do sistema de decodificação 440. Figurações são emitidas a partir dos BPBs 442A e 442B para o decodificador 444 e decodificadas pelo decodificador 444. Embora um sistema de decodificação 440 que inclui múltiplos BPBs 442A e 442B e um único decodificador 444 é ilustrado no exemplo da Figura 4, outras configurações são possíveis, tal como um sistema de decodificação que inclui um único BPB e um único decodificador, e um sistema de decodificação que inclui múltiplos BPBs e múltiplos decodificadores. Em algumas implantações, um decodificador pode determinar variáveis que definem quais camadas devem ser processadas pelo decodificador. Por exemplo, (i) um índice-alvo de conjunto de camadas de saída, que especifica quais camadas devem ser decodificadas e emitidas, e (ii) ID temporal máxima, que especifica quantas subcamadas temporais devem ser decodificadas, especificando-se, eficazmente, a taxa de quadro das figurações de saída, pode ser fornecida ou, de outro modo, determinada pelo decodificador. Com base nessas variáveis e nos recursos disponíveis, o decodificador pode exigir uma partição de fluxo de bits de particular sob um dentre os esquemas de particionamento definidos pelo encriptador.
[0143] Em algumas implantações, o fluxo de bits pode incluir um parâmetro que especifica o tempo de remoção que em tal momento uma figuração deve ser removida do CPB a ser decodificado. Se tal um parâmetro não for modificado para se referir às unidades de partição (e, em vez disso, especificado para uma AU no fluxo de bits), o valor especificado pelo parâmetro pode não fazer mais sentido ou pode ser subideal (por exemplo, os tempos de remoção podem ser atrasados para algumas figurações), se o fluxo de bits incluir múltiplas partições que devem ser transportadas separadamente por mio de BPBs diferentes e devem ser decodificadas por decodificadores diferentes. Desse modo, tal um parâmetro deve ser modificado para se referir à unidade de partição, em vez de unidades de acesso, em que as figurações em uma única unidade de partição são transportadas juntas.
PROCESSAMENTO DE PARÂMETRO DE FLUXO DE BITS EXEMPLIFICATIVO
[0144] Com referência à Figura 5, uma rotina exemplificativa para o processamento de um parâmetro associado com um particionamento de fluxo de bits será descrita. A Figura 5 é um fluxograma que ilustra um método 500 para codificação de informações de vídeo, de acordo com uma modalidade da presente revelação. O método 500 pode ser realizado por um encriptador (por exemplo, o encriptador conforme mostrado na Figura 2A ou à Figura 2B), um decodificador (por exemplo, o decodificador de vídeo conforme mostrado na Figura 3 A ou à Figura 3B) ou qualquer outro componente. A título de conveniência, o método 500 é descrito como realizado por um codificador, que pode ser o encriptador, o decodificador ou outro componente.
[0145] O método 500 se inicia no bloco 501. No bloco 505, o codificador processa um parâmetro de conformidade de fluxo de bits associado a uma partição de fluxo de bits de uma pluralidade de partições de fluxo de bits em um fluxo de bits. O parâmetro de conformidade de fluxo de bits pode ser aplicável à partição de fluxo de bits, porém, não à outra porção do fluxo de bits não abrangida pela partição de fluxo de bits (por exemplo, outras camadas no fluxo de bits que não pertencem à partição de fluxo de bits). Por exemplo, tal um parâmetro pode ser relacionado às informações temporização relacionadas a uma ou mais figurações na partição de fluxo de bits (por exemplo, quando uma figuração na partição de fluxo de bits é recebida pelo sistema de decodificação, quando uma figuração armazenada no BPB deve ser emitida para ser decodificada, etc.). Em outro exemplo, o parâmetro pode especificar determinadas características comuns a todas as figurações na partição de fluxo de bits ou em uma única unidade de partição da partição de fluxo de bits. O parâmetro também pode representar uma restrição de conformidade de fluxo de bits aplicável a uma unidade de partição particular. A unidade de partição particular pode incluir unidades de NAL de VCL de uma AU que pertence às camadas de vídeo contidas na partição de fluxo de bits e outras unidades de NAL de não VCL associadas às unidades de NAL de VCL.
[0146] Em algumas modalidades, o fluxo de bits pode incluir uma unidade de acesso que inclui uma pluralidade de unidades de NAL no fluxo de bits e uma unidade de partição que inclui um subconjunto da pluralidade de unidades de NAL da unidade de acesso que pertencem à partição de fluxo de bits. O parâmetro de conformidade de fluxo de bits pode ser associado à unidade de partição, e o parâmetro de conformidade de fluxo de bits pode ser aplicável ao subconjunto da pluralidade de unidades de NAL da unidade de partição, porém, não às outras unidades de NAL da unidade de acesso que não são abrangidas pela unidade de partição (por exemplo, unidades de NAL que são parte de outras camadas que pertencem a outras partições de fluxo de bits). O parâmetro de conformidade de fluxo de bits pode especificar um número de unidades de decodificação no fluxo de bits que são associadas à unidade de partição, em que o número de unidades de decodificação especificado pelo parâmetro de conformidade de fluxo de bits excede um número máximo de unidades de decodificação que podem se adequar em uma única figuração. O menor tamanho das unidades de decodificação pode os ser blocos de árvore de codificação (CTBs). Em algumas modalidades, o número de unidades de decodificação especificado pelo parâmetro de conformidade de fluxo de bits pode não exceder um valor máximo igual a um número máximo de CTBs que pode se adequar na unidade de partição. No bloco 510, o codificador codifica (por exemplo, cripta ou decodifica) elementos de sintaxe associados à partição de fluxo de bits no fluxo de bits. O método 500 termina em 515.
[0147] Conforme discutido acima, um ou mais componentes do encriptador de vídeo 20 da Figura 2A, do encriptador de vídeo 23 da Figura 2B, do decodificador de vídeo 30 da Figura 3A ou de decodificador de vídeo 33 da Figura 3B podem ser usados para implantar quaisquer dentre as técnicas discutidas na presente revelação, tal como processar um parâmetro de conformidade de fluxo de bits associado a uma partição de fluxo de bits de uma pluralidade de partições de fluxo de bits em um fluxo de bits, e codificar os elementos de sintaxe associados à partição de fluxo de bits no fluxo de bits.
UNIDADES DE DECODIFICAÇÃO
[0148] Em algumas implantações, o fluxo de bits é dividido em uma pluralidade de unidades de decodificação, em que cada unidade de decodificação é definida como uma AU inteira, ou um conjunto de unidades de NAL de VCL consecutivas na AU e suas unidades de NAL de não VCL associadas. Sob um esquema de particionamento que coloca duas camadas adjacentes (por exemplo, camadas que têm IDs de camada consecutivas) em partições de fluxo de bits diferentes, uma unidade de decodificação determinada que abrange a AU inteira pode introduzir ambiguidade com relação a como as partições de fluxo de bits devem ser transportadas (por exemplo, a possibilidade de as mesmas poderem ser transportadas separadamente ou a possibilidade de as mesmas precisarem ser transportadas juntas) para qualquer partição de fluxo de bits que contém as unidades de NAL de VCL incluídas na unidade de decodificação determinada.
[0149] Em algumas modalidades, a fim de solucionar esse problema de clareza, uma unidade de decodificação pode ser definida como uma AU inteira ou um subconjunto dessa, em que a AU ou o subconjunto dessa contém aquelas unidades de NAL de VCL que pertencem a uma única partição de fluxo de bits e as unidades de NAL de não VCL associadas a tais unidades de NAL de VLC.
[0150] Em algumas implantações, cada AU contém uma única figuração codificada, e o processo de decodificação é executado em uma base de figuração por figuração. Em outras implantações, cada figuração contém uma pluralidade de unidades de decodificação, e o decodificador decodifica as unidades de decodificação assim que as mesmas são recebidas, sem esperar que a figuração codificada inteira seja recebida, desse modo, alcançado uma latência reduzida. Tais implantações podem ser chamadas de modelos de atraso ultrabaixo. No entanto, quando as partições de fluxo de bits podem ser transportadas independente ou separadamente, as unidades de decodificação que abrangem múltiplas partições de fluxo de bits podem não ter a capacidade para serem decodificadas imediatamente se uma porção da unidade de decodificação for transportada separadamente em um fluxo de bits diferente ou transportada para um sistema de decodificação diferente. Desse modo, pode ser benéfico fornecer uma restrição de conformidade de fluxo de bits que especifica que uma unidade de decodificação não pode abranger múltiplas partições de fluxo de bits, ou definir unidades de decodificação de modo que a mesma não possa abranger múltiplas partições de fluxo de bits.
NÚMERO MÁXIMO DE UNIDADES DE DECODIFICAÇÃO
[0151] Em algumas implantações, mensagens de SEI podem fornecer determinadas informações complementares relacionadas ao fluxo de bits, em que alguns podem ser opcionais. Algumas dentre tais mensagens de SEI podem fornecer restrições de conformidade de fluxo de bits, falar como uma mensagem de SEI de período de armazenamento temporário, uma mensagem de SEI de temporização de figuração, uma mensagem de SEI de informações de unidade de decodificação, etc. que pode ser necessária estar presente a fim de determinar a possibilidade de um fluxo de bits estar em conformidade com um determinado padrão ou não (por exemplo, SHVC). Por exemplo, a mensagem de SEI de temporização de figuração pode especificar o número de unidades de decodificação que pode ser presente em uma única AU. Por exemplo, no caso de um fluxo de bits ter uma única camada, se cada figuração na camada tiver um tamanho de 640 pixels por 640 pixels, e cada bloco de árvore de codificação (CTB), que é a menor unidade decodificável individualmente, tiver um tamanho de 64 pixels por 64 pixels, o número máximo de unidades de decodificação em qualquer AU pode ser de 10 * 10 = 100. Desse modo, o valor especificado em uma mensagem de SEI de temporização de figuração que indica o número de unidades de decodificação em uma única AU pode ser restringido a estar na faixa de 1 a (o tamanho de figuração nos CTBs), inclusive. Em outras palavras, se a mensagem de SEI de temporização de figuração especificar um valor para o número de unidades de decodificação em uma única AU que está fora dessa faixa, o fluxo de bits que contém uma mensagem de SEI de temporização de figuração pode ser determinada como não em conformidade com o padrão particular (por exemplo, SHVC).
[0152] No entanto, em um caso de múltiplas camadas, a AU (ou unidade de partição, se o fluxo de bits for dividido em partições de fluxo de bits) pode conter mais que uma figuração, e consequentemente, cada AU pode conter mais unidades de decodificação que o valor máximo calculado com base na hipótese de que cada AU contém uma única figuração. Desse modo, a restrição fornecida em uma mensagem de SEI de temporização de figuração deve ser modificada para especificar que o valor da variável que indica o número de unidades de decodificação em uma única AU (se a mensagem de SEI for associada a um AU) deve estar na faixa de 1 a (o número dos CTBs que pode se adequar dentro de todas as figurações na AU). De modo semelhante, a restrição fornecida em uma mensagem de SEI de temporização de figuração deve ser modificada para especificar que o valor da variável que indica que o número de unidades de decodificação em uma única unidade de partição (se a mensagem de SEI for associada a uma unidade de partição) deve estar na faixa de 1 a (o número de CTBs que pode se adequar dentro de todas as figurações na unidade de partição). No exemplo acima, se a unidade de partição conter duas figurações, o número máximo de unidades de decodificação que pode ser especificado pela mensagem de SEI de temporização de figuração em um fluxo de bits em conformidade deve ser de 200.
RESTRIÇÕES COM BASE EM TAXA DE BITS E ID TEMPORAL
[0153] Em algumas implantações, um modelo de CPB de taxa de bits constante é usado, em que o fluxo de bits chega em uma taxa de bits fixa. Em outras implantações, um modelo de CPB de taxa de bits variável é usado, em que o fluxo de bits chega em uma taxa de bits variável. Por exemplo, em tais implantações que usam o modelo de CPB de taxa de bits variável, a taxa na qual o fluxo de bits é recebido no lado de decodificador pode ser constante por um período de tempo e/ou se torna zero para ainda outro período de tempo.
[0154] Em alguns esquemas de codificação existentes, uma restrição de conformidade de fluxo de bits especifica que o valor de um tempo de remoção de CPB de unidade de decodificação de uma unidade de decodificação particular deve ser maior que um tempo de remoção de CPB de unidade de decodificação de todas as unidades de decodificação que precedem a unidade de decodificação particular na ordem de decodificação. Tais esquemas de codificação podem aplicar a restrição de conformidade de fluxo de bits apenas nas implantações que usam o modelo de CPB de taxa de bits constante. No entanto, tal uma restrição de conformidade de fluxo de bits pode garantir que as unidades de decodificação são decodificadas na ordem de decodificação correta. Desse modo, tal uma restrição de conformidade de fluxo de bits deve ser estendida às implantações que usam o modelo de CPB de taxa de bits variável.
[0155] Em alguns esquemas de codificação existentes, tal restrição de conformidade de fluxo de bits não é aplicada às unidades de decodificação dentro da partição de fluxo de bits mais baixa. A partição de fluxo de bits mais baixa pode ser uma partição de fluxo de bits que contém a camada-base do fluxo de bits e/ou que contém a camada de vídeo que tem a ID de camada mais inferior. De modo semelhante, tal restrição de conformidade de fluxo de bits deve ser aplicada às unidades de decodificação dentro da partição de fluxo de bits mais baixa.
FIGURAÇÕES DE INTRAPONTO DE ACESSO ALEATÓRIO (IRAP)
[0156] Alguns esquemas de codificação de vídeo podem fornecer vários pontos de acesso aleatórios por todo o fluxo de bits de modo que o fluxo de bits pode ser decodificado a partir do início de qualquer um desses pontos de acesso aleatórios sem precisar decodificar quaisquer figurações que precedem esses pontos de acesso aleatórios no fluxo de bits. Em tais esquemas de codificação de vídeo, todas as figurações que seguem um ponto de acesso aleatório em ordem de saída (por exemplo, incluindo essas figurações que estão na mesma unidade de acesso como a figuração que fornece o ponto de acesso aleatório) podem ser decodificadas 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.
[0157] Em alguns esquemas de codificação, tais pontos de acesso aleatórios podem ser fornecidos pelas figurações que são denominadas como figurações intraponto de acesso aleatório (IRAP). Por exemplo, um ponto de acesso aleatório (por exemplo, fornecido por uma camada de aprimoramento figuração de IRAP) em uma camada de aprimoramento ("LayerA") contida em uma unidade de acesso ("auA") pode fornecer acesso aleatório de camada específica de modo que para cada camada de referência ("LayerB") da LayerA (por exemplo, uma camada de referência que é uma camada que é usada para prever a LayerA) que tem um ponto de acesso aleatório contido em uma unidade de acesso ("auB") que está na LayerB e precede 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 auB em ordem de saída (incluindo as figurações localizadas na auB), sejam corretamente passíveis de decodificação sem precisar decodificar quaisquer figurações na LayerA que precede a auB.
[0158] 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 usar figurações que precedem a figuração de CRA na ordem de decodificação para previsão. Essas figurações que seguem a figuração de CRA na ordem de decodificação, porém, usam figurações que precedem a figuração de CRA em ordem de decodificação, podem ser denominadas de figurações esquerdas ignoradas por acesso aleatório (RASL). Um outro tipo de figuração que pode seguir uma figuração de IRAP na ordem de decodificação e preceder a mesma na ordem de saída é uma figuração precedente descodificável de acesso aleatório (RADL), que pode não conter referências a quaisquer figurações que precedem a figuração de IRAP na ordem de decodificação. As figurações de RASL podem ser descartadas pelo decodificador se as figurações que precedem a figuração de CRA não estiverem disponíveis. Uma figuração de BLA indica ao decodificador que as figurações que precedem a figuração de BLA não podem estar disponíveis para o decodificador (por exemplo, devido ao fato de que os dois fluxos de bits são unidos e a figuração de BLA é a primeira figuração do segundo fluxo de bits na 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 através das múltiplas camadas) que contém uma figuração de camada-base (por exemplo, que tem um valor de ID de camada de “0”) que é uma figura de IRAP pode ser denominada como uma unidade de acesso de IRAP. ALINHAMENTO DE CAMADA CRUZADA DE FIGURAÇÕES DE IRAP
[0159] Em algumas implantações de codificação de vídeo escalonável, as figurações de IRAP podem não estar alinhadas (por exemplo, contidas na mesma unidade de acesso) através de diferentes camadas. Por exemplo, caso tenha sido exigido que as figurações de IRAP estejam alinhadas, qualquer unidade de acesso que contém pelo menos uma figuração de IRAP contém apenas as figurações de IRAP. Por outro lado, caso não tenha sido exigido que as figurações de IRAP estejam alinhadas, em uma única unidade de acesso, uma figuração (por exemplo, em uma primeira camada) pode ser uma figuração de IRAP, e outra figuração (por exemplo, em uma segunda camada) pode ser uma figuração que não seja de IRAP. Ter tais figurações de IRAP não alinhadas em um fluxo de bits pode fornecer algumas vantagens. Por exemplo, em um fluxo de bits de duas camadas, caso haja mais figurações de IRAP na camada-base do que na camada de aprimoramento, em aplicações de difusão e de difusão seletiva, o baixo atraso de sintonização e a alta eficiência de codificação podem ser alcançados.
FLUXO DE BITS QUE INCLUI UM PONTO DE EMENDA
[0160] Com referência à Figura 6, um exemplo de fluxo de bits que tem um ponto de emenda será descrito. A Figura 6 mostra um fluxo de bits com múltiplas camadas 600 criado através da junção dos fluxos de bits 610 e 620. O fluxo de bits 610 inclui uma camada de aperfeiçoamento (EL) 610B e uma camada de base (BL) 610B, e o fluxo de bits 620 inclui uma EL 620A e uma BL 620B. A EL 610A inclui uma figura de EL 612A e a BL 610B inclui uma figura de BL 612B. A EL 620A inclui as figurações de EL 622A, 624A e 626A e a BL 620B inclui as figurações de BL 622B, 624B e 626B. O fluxo de bits de camada múltipla 600 inclui adicionalmente unidades de acesso (AUs) 630-660. A AU 630 inclui a figuração de EL 612A e a figuração de BL 612B, a AU 640 inclui a figuração de EL 622A e a figuração de BL 622B, a AU 650 inclui a figuração de EL 624A e a figuração de BL 624B e a AU 660 inclui a figuração de EL 626A e a figuração de BL 626B. No exemplo da Figura 6, a figuração de BL 622B é uma figuração de FRAP e a figuração de EL correspondente 622A na AU 640 é uma figuração anterior (por exemplo, uma figuração sem IRAP) e, consequentemente, a AU 640 é uma AU de IRAP não alinhada. Também, deve-se notar que a AU 640 é uma unidade de acesso que segue imediatamente um ponto de emenda 670.
[0161] Embora o exemplo da Figura 6 ilustre um caso em que dois fluxos de bits diferentes estão unidos, em algumas modalidades, um ponto de emenda pode estar presente quando uma porção do fluxo de bits for removida. Por exemplo, um fluxo de bits pode ter porções A, B e C, em que a porção B está entre as porções A e C. Se a porção B for removida do fluxo de bits, as porções restante A e C podem ser unidas e o ponto em que as mesmas são unidas pode ser referido como um ponto de emenda. Mais geralmente, considera-se que um ponto de emenda conforme discutido no presente pedido possa estar presente quando um ou mais sinalizadores ou parâmetros sinalizados ou derivados têm valores predeterminados. Por exemplo, sem receber uma indicação específica de que um ponto de junção existe em uma localização particular, um decodificador pode determinar o valor de um sinalizador (por exemplo, NoClrasOutputFlag, que pode indicar que figurações de pulo de acesso aleatório de camada cruzada que não devem ser emitidas se configuradas para 1 e indica que as figurações de pulo de acesso aleatório de camada cruzada devem ser emitidas se configuradas para 0), e realiza uma ou mais técnicas descritas nesse pedido com base no valor do sinalizador.
POC
[0162] Em alguns esquemas de codificação de vídeo, uma POC pode ser usada para acompanhar a ordem relativa na qual as figurações decodificadas são emitidas. Esse valor pode ser um número muito grande (por exemplo, 32 bits), e cada cabeçalho de fatia pode incluir a POC da figuração associada à fatia. Desse modo, em algumas implantações, apenas os últimos bits significativos (LSB) da POC são sinalizados no fluxo de bits e a maioria dos bits significativos (MSB) da POC são calculados com base em um processo de derivação de POC. Por exemplo, a fim de economizar bits, os LSB podem ser sinalizados no cabeçalho de fatia, e os MSB podem ser computados pelo encriptador ou pelo decodificador com base no tipo de unidade de NAL da atual figuração e nos MSB e nos LSB de uma ou mais figurações anteriores em ordem de decodificação que (i) não são figurações de RASL RADL, (ii) não são descartáveis (por exemplo, figurações marcadas como "descartável", que indicam que nenhuma outra figuração depende das mesmas, desse modo, permitindo que sejam soltas para satisfazer as restrições de largura de banda), (iii) não são figurações de não referência de subcamada (por exemplo, figurações que não usadas para referência por outras figurações na mesma subcamada temporal ou na outra camada), (iv) têm valor de ID temporal (por exemplo, ID de subcamada temporal) igual a 0.
[0163] No caso em que apenas os LSB são fornecidos no fluxo de bits, uma restrição de conformidade de fluxo de bits pode ser fornecida para garantir que os valores de POC de quaisquer figurações decodificadas no DPB são separados por mais que uma unidade valor da MSB ou um "ciclo". Por exemplo, se o DPB conter figurações que têm valores de POC de 1 e 257, respectivamente, em que a LSB é representada em 8 bits, pode ser enganoso para as duas figurações ter o mesmo valor de LSB (por exemplo, 1) quando uma preceder a outra na ordem de saída com base em seus valores de POC. Desse modo, em algumas modalidades, uma restrição de conformidade de fluxo de bits pode especificar que quaisquer duas figurações no DPB não devem ter valores de POC que diferem em mais que o comprimento de ciclo dividido por 2. Por exemplo, tais figurações podem incluir (i) a figuração atual; (ii) a figuração anterior em ordem de decodificação que tem valor de TemporalId igual a 0 e que não é uma figuração de RASL, uma figuração de RADL, ou uma subcamada figuração de não referência de subcamada; (iii) as figurações de referência a curto prazo no RPS da figuração atual; e (iv) as figurações que têm um valor de PicOutputFlag igual a 1 e precedem a figuração atual na ordem de decodificação. Nos casos de múltiplas camadas, essa restrição de conformidade de fluxo de bits é aplicada à cada sub-DPB. Por exemplo, um DPB pode conter múltiplos sub-DPBs, em que cada sub-DPB armazena figurações em uma única camada. Em tal caso, a restrição de conformidade de fluxo de bits deve ser modificada para especificar que os valores de POC das figurações decodificadas em uma sub-DPB não devem ser separados por mais que um valor particular (por exemplo, por mais que um comprimento de ciclo ou por mais que um comprimento de ciclo dividido por 2).
[0164] Em algumas modalidades, a restrição é restringida a um único CVS (por exemplo, não aplicado ao longo de múltiplos CVSs). Em algumas modalidades, a restrição não é aplicada ao longo de uma figuração atual que é uma figuração de FRAP com um valor de NoRaslOutputFlag igual a 1 ou é a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração de IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1. Em outras palavras, a diferença entre os valores de POC máximo e mínimo das figurações na lista acima, conforme aplicada a cada sub-DPB, é restringido para ser menor que MaxPicOrderCntLsb/2 apenas se o codificador determinar que a figuração atual é (i) não é uma figuração de IRAP com um valor de NoRaslOutputFlag igual a 1 ou (ii) não é a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração de IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1. Se o codificador determinar que a condição não é satisfeita, o codificador pode impedir a verificação da restrição de conformidade de fluxo de bits. Alternativamente, a restrição de conformidade de fluxo de bits acima pode apenas ser aplicada quando a figuração atual não for uma figuração de FRAP com um valor de NoRaslOutputFlag igual a 1 e o valor de MSB de POC não for sinalizado ou não for a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração de IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1.
PROCESSAMENTO DE VALOR DE POC DE DPB EXEMPLIFICATIVO
[0165] Com referência à Figura 7, uma rotina exemplificativa para determinar a possibilidade de uma restrição de conformidade de fluxo de bits ser satisfeita será descrita. A Figura 7 é um fluxograma que ilustra um método 700 para codificação de informações de vídeo, de acordo com uma modalidade da presente revelação. As etapas ilustradas na Figura 7 podem ser realizadas por um encriptador (por exemplo, o codificador de vídeo, conforme mostrado na Figura 2A ou na Figura 2B), um decodificador (por exemplo, o decodificador de vídeo, conforme mostrado na Figura 3A ou à Figura 3B) ou qualquer outro componente. A título de conveniência, o método 700 é descrito como realizado por um codificador, que pode ser o encriptador, o decodificador ou outro componente.
[0166] O método 700 se inicia no bloco 701. No bloco 705, o codificador determina a possibilidade de uma AU atual satisfazer uma condição associada a uma primeira camada. Por exemplo, o codificador pode realizar tal determinação determinando-se a possibilidade de uma figuração atual na AU atual ser uma figuração de IRAP associada a um sinalizador que indica que qualquer figuração que segue a primeira figuração na ordem de decodificação, porém, usa uma figuração que precede a primeira figuração na ordem de decodificação não deve ser emitida (por exemplo, valor de NoRaslOutputFlag igual a 1). Em outro exemplo, o codificador pode realizar tal determinação processando-se um sinalizador ou elemento de sintaxe associado a uma segunda figuração, em que a segunda figuração está em uma camada- base que tem a ID de camada mais inferior (por exemplo, valor de nuh_layer_id igual a 0). Em tal um exemplo, a segunda figuração pode estar em uma AU que precede imediatamente a AU atual. O sinalizador ou elemento de sintaxe pode ser NoClrasOutputFlag, que pode indicar que as figurações de pulo de acesso aleatório de camada cruzada não devem ser emitidas se configuradas para 1 e indicar que as figurações de pulo de acesso aleatório de camada cruzada devem ser emitidas se configuradas para 0. Em tal exemplo, um valor de elemento de sinalizador ou sintaxe de 1 pode indicar que a figuração está em uma unidade de acesso que segue imediatamente um ponto de emenda, e um valor de elemento de sinalizador ou sintaxe de 0 pode indicar que a figuração não está em uma unidade de acesso que segue imediatamente um ponto de emenda. Em algumas modalidades, o sinalizador ou elemento de sintaxe pode indicar um dentre (i) a possibilidade de a segunda figuração ser a primeira figuração no fluxo de bits (por exemplo, que aparece antes de outras figurações no fluxo de bits), (ii) a possibilidade de a segunda figuração ser incluída na primeira unidade de acesso que segue uma unidade de acesso que inclui um fim de unidade de NAL de sequência com um valor de nuh_layer_id igual a um valor de SmallestLayerld ou 0 na ordem de decodificação, (iii) a possibilidade de a segunda figuração ser uma figuração de BLA ou uma figuração de CRA com um valor de HandleCraAsBlaFlag igual a 1, ou (iv) a possibilidade de a segunda figuração ser uma figuração de IDR com um valor de cross_layer_bla_flag igual a 1.
[0167] Se o codificador determinar que AU atual não satisfaz a condição, o método 700 prossegue para o bloco 710. Se o codificador determinar que AU atual satisfaz a condição, o método 700 prossegue para o bloco 715. No bloco 710, o codificador determina a possibilidade de a diferença entre a POC mais alta e a POC mais baixa das figurações no DPB ser menor que um valor de limiar. Por exemplo, tais figurações podem incluir (i) a figuração atual; (ii) a figuração anterior em ordem de decodificação que tem valor de TemporalId igual a 0 e que não é uma figuração de RASL, uma figuração de RADL, ou uma subcamada figuração de não referência de subcamada; (iii) as figurações de referência a curto prazo no RPS da figuração atual; e/ou (iv) as figurações que têm um valor de PicOutputFlag igual a 1, precede a figuração atual na ordem de decodificação, e sucede a figuração atual na ordem de saída. No bloco 715, o codificador impede a determinação da possibilidade de a diferença entre a POC mais alta e a POC mais baixa das figurações no DPB ser menor que o valor de limiar. Por exemplo, a restrição de conformidade de fluxo de bits não é aplicada às figurações ao longo de um ponto de junção. Em outro exemplo, a restrição de conformidade de fluxo de bits não é aplicada a uma figuração que é uma figuração de IRAP com um valor de NoRaslOutputFlag igual a 1 ou é a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração de IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1. No bloco 720, o codificador codifica (por exemplo, cripta ou decodifica) elementos de sintaxe associados à AU atual no fluxo de bits. O método 700 termina em 725.
[0168] Conforme discutido acima, um ou mais componentes do encriptador de vídeo 20 da Figura 2A, do encriptador de vídeo 23 da Figura 2B, do decodificador de vídeo 30 da Figura 3A ou de decodificador de vídeo 33 da Figura 3B pode ser usada para implantar quaisquer das técnicas discutidas na presente revelação, tal como determina a possibilidade de a AU atual satisfazer uma condição, determinar a possibilidade de a diferença entre a POC mais alta e a POC mais baixa das figurações no DPB ser menor que um valor de limiar, e codificar os elementos de sintaxe associados à unidade de acesso atual no fluxo de bits.
RECONFIGURAR POC
[0169] Em algumas implantações, o valor da POC pode ser redefinido (por exemplo, definido como zero, definido como algum valor sinalizado no fluxo de bits, ou derivado das informações incluídas no fluxo de bits) toda vez em que determinados tipos de figurações aparecem no fluxo de bits. Por exemplo, quando determinadas figurações de ponto de acesso aleatório aparecem no fluxo de bits, a POC pode ser redefinida. Quando a POC de uma figuração particular é redefinida, as POCs de quaisquer figurações que precedem a figuração particular na ordem de decodificação também podem ser redefinidas, por exemplo, a fim de manter a ordem relativa na qual essas figurações devem ser emitidas ou exibidas. Ademais, as figurações decodificadas, cada uma das quais pode ser associada a um valor de POC particular, podem posteriormente ser removidas do DPB.
EXEMPLO DE RECONFIGURAÇÃO DE POC
[0170] Com referência às Figuras 8 a 11, processos exemplificativos para reconfigurar os valores de POC (por exemplo, o LSB e o MSB) serão descritos. Conforme descrito acima, em alguns esquemas de codificação, determinadas restrições de conformidade podem especificar que a POC de todas as figurações codificadas em uma única AU devem ser iguais. Sem as redefinições apropriadas dos valores de POC, as de FRAP não alinhadas no fluxo de bits podem produzir valores de POC que violam tais restrições de conformidade.
[0171] A Figura 8 mostra um fluxo de bits multicamadas 800 que inclui uma camada de aprimoramento (EL) 810 e uma camada-base (BL) 820. A EL 810 inclui figurações de EL 1012 a 1018, e a BL inclui figurações de BL 1022 a 1028. O fluxo de bits de camada múltipla 800 inclui adicionalmente unidades de acesso (AUs) 830-860. A AU 830 inclui a figuração de EL 812 e a figuração de BL 822, a AU 840 inclui a figuração de EL 814 e a figuração de BL 824, a AU 850 inclui a figuração de EL 816 e a figuração de BL 826 e a AU 860 inclui a figuração de EL 818 e a figuração de BL 828. No exemplo da Figura 8, uma figuração de EL 814 é uma figuração de IDR, e a figuração de BL 824 correspondente na AU 840 é uma figuração direita (por exemplo, a figuração não IRAP) e, consequentemente, a AU 840 é uma AU IRAP não alinhada. Em algumas modalidades, uma redefinição de MSB é realizada em uma determinada figuração caso a figuração seja uma figuração de IDR que não está na camada-base. Tal figuração de IDR pode ter um valor de LSB de POC diferente de zero.
[0172] A Figura 9 mostra uma tabela 900 que ilustra os valores de POC que podem ser sinalizados ou derivados em conexão ao fluxo de bits multicamadas 800 da Figura. 8. Conforme mostrado na Figura 9, os MSB da POC na EL 810 são redefinidos na figuração de EL 814, ao passo que os MSB da POC na BL 820 não são redefinidos. Desse modo, caso uma redefinição não seja realizada na BL 820 na figuração de BL 824 na AU IRAP não alinhada 840, os valores de POC das figurações de BL e as figurações de EL nas AUs 840 a 860 não correspondem (isto é, são equivalentes) conforme especificado pelas restrições de conformidade. As diferenças nos valores de POC com e sem uma redefinição estão destacados em negrito na Figura 9.
[0173] A Figura 10 mostra um fluxo de bits multicamadas 1000 que inclui uma camada de aprimoramento (EL) 1010 e uma camada-base (BL) 1020. A EL 1010 inclui figurações de EL 1012 a 1018, e a BL inclui figurações de BL 1022 a 1028. O fluxo de bits de camada múltipla 1000 inclui adicionalmente unidades de acesso (AUs) 1030-1060. A AU 1030 inclui a figuração de EL 1012 e a figuração de BL 1022, a AU 1040 inclui a figuração de EL 1014 e a figuração de BL 1024, a AU 1050 inclui a figuração de EL 1016 e a figuração de BL 1026 e a AU 1060 inclui a figuração de EL 1018 e a figuração de BL 1028. No exemplo da Figura 10, uma figuração de BL 1024 é uma figuração de IDR, e a figuração de EL 1014 correspondente na AU 1040 é uma figuração direita (por exemplo, a figuração não IRAP) e, consequentemente, a AU 1040 é uma AU IRAP não alinhada. Em algumas modalidades, uma redefinição de MSB e uma redefinição de LSB são realizadas para uma determinada figuração caso a figuração seja uma figuração de IDR que está na camada-base. Por exemplo, o fluxo de bits pode incluir uma indicação de que os MSB de POC e os LSB de POC de tal figuração de BL de IDR devem ser redefinidos. Alternativamente, o decodificador pode realizar a redefinição dos MSB de POC e dos LSB de POC de tal figuração de BL de IDR sem qualquer indicação no fluxo de bits de que uma redefinição de POC deve ser realizada.
[0174] A Figura 11 mostra uma tabela 1100 que ilustra os valores de POC que podem ser sinalizados ou derivados em conexão ao fluxo de bits multicamadas 1000 da Figura. 10. Conforme mostrado na Figura 11, os MSB e os LSB da POC na BL 1020 são redefinidos na figuração de BL 1024, embora os MSB não sejam redefinidos tampouco os LSB da POC na EL 1010. Desse modo, caso uma redefinição dos MSB e dos LSB da POC não seja realizada na EL 1010 na figuração de EL 1014 na AU IRAP não alinhada 1040, os valores de POC das figurações de BL e das figurações de EL nas AUs 640 a 660 não correspondem conforme especificado pelas restrições de conformidade. As diferenças nos valores de POC com e sem uma redefinição estão destacados em negrito na Figura 11.
[0175] As modalidades descritas no presente documento não se limitam às configurações de fluxo de bits exemplificativas nas Figuras 8 e 10, e as técnicas descritas no presente documento podem se estender a qualquer fluxo de bits multicamadas que têm qualquer número de camadas, unidades de acesso e figurações. Além disso, nos exemplos ilustrados nas Figuras 8 a 11, o LSB da POC é representado com o uso de sete bits. No entanto, as técnicas descritas no presente documento podem se estender às situações que têm quaisquer formas de representação de valor de POC.
CONSEQUÊNCIA DE RECONFIGURAÇÃO DE POC OU REMOÇÃO DO DPB
[0176] Em algumas implantações, uma restrição de conformidade de fluxo de bits especifica que para duas figurações m e n dentro de uma sequência de vídeo codificada (CVS), se DpbOutputTime [ m ] for maior que DpbOutputTime [ n ], PicOrderCntVal de figuração m deve ser maior que PicOrderCntVal de figuração n. No entanto, a possibilidade de tal uma restrição ser satisfeita se torna pouca clara se o PicOrderCntVal da figuração m ou da figuração n ou de uma figuração entre ter sido reconfigurada, visto que a restrição não especifica qual valor de PicOrderCntVal das figurações deve ser usado para testar a restrição. Ademais, pode não ser claro como a restrição de conformidade de fluxo de bits deve ser satisfeita se uma dentre as figurações a ser testada for removida do DPB no tempo de teste. Além disso, algumas restrições de PicOrderCntVal devem ser aplicáveis mesmo ao longo de sequências de vídeos codificados devido ao fato de a cadeia de POC poder continuar em camadas de melhoria mesmo ao longo de um limite de CVS. Por exemplo, uma determinada AU pode conter uma figuração de IDR na camada-base e uma figuração de não IRAP na camada de aperfeiçoamento. A figuração de IDR na camada-base quebra a cadeia de POC na camada-base, porém, a figuração de não IRAP na camada de aperfeiçoamento não quebra a cadeia de POC na camada de aperfeiçoamento (pode ser desejável usar as figurações de camada de aperfeiçoamento que precedem a determinada AU na ordem de decodificação para predizer a figuração de não IRAP ou outras figurações de camada de aperfeiçoamento que seguem a figuração de não IRAP na ordem de decodificação).
[0177] Em algumas modalidades, a restrição no DpbOutputTime e no PicOrderCntVal pode ser atualizada conforme o seguinte: Deixar picA ser uma figuração de IRAP com NoRaslOutputFlag igual a 1 e que pertence a uma camada layerA. Deixar auB ser a anterior, na ordem de decodificação, da primeira unidade de acesso que contém uma figuração de IRAP com nuh_layer_id igual a 0 e NoClrasOutputFlag igual a 1 que sucede picA na ordem de decodificação e a primeira unidade de acesso que contém uma figuração de IRAP com NoRaslOutputFlag igual a 1 na layerA que sucede picA na ordem de decodificação. Para quaisquer duas figurações picM e picN na camada layerA contida nas unidades de acesso m e n, respectivamente, que são picA ou picA sucedida na ordem de decodificação e precede auB na ordem de decodificação, quando DpbOutputTimef m J for maior que DpbOutputTimef n J, PicOrderCntVal (picM) deve ser maior que PicOrderCntVal(picN), em que PicOrderCnt(picM) e PicOrderCnt(picN) são os valores de PicOrderCntVal de picM e picN, respectivamente, imediatamente após a invocação do processo de decodificação para a contagem de ordem de figuração do último de picM e picN na ordem de decodificação. Por exemplo, a restrição de conformidade de fluxo de bits pode ser testada apenas imediatamente após a figuração anterior ser decodificada, e não em um momento posterior. Em algumas modalidades, picM precede picN na ordem de decodificação. Em outras modalidades, picN precede picM na ordem de decodificação.
TEMPO DE SAÍDA DE FIGURAÇÕES SUCESSIVAS
[0178] Em algumas implantações, uma restrição de conformidade de fluxo de bits (por exemplo, DpbOutputTimef], ou outras variáveis derivadas para cada figuração) especifica uma ligação inferior do tempo de saída (por exemplo, quando uma figuração for removida do DPB) de figurações sucessivas a fim de garantir que a taxa de quadro real das figurações de saída não excede uma taxa de quadro máxima específica (por exemplo, 300 fps). No entanto, um fluxo de bits de múltiplas camadas pode precisar conter mais que uma figuração que corresponde ao mesmo tempo de saída (por exemplo, em uma única AU). Desse modo, se a restrição de conformidade de fluxo de bits acima do caso de única camada fosse aplicada ao caso de múltiplas camadas, cada AU pode conter apenas uma única figuração, que pode ser indesejável. Desse modo, a restrição de tempo de saída deve ser aplicada às figurações em AUs diferentes. OUTRAS CONSIDERAÇÕES
[0179] As informações e os sinais revelados no presente documento podem ser representados com o uso de qualquer um dentre uma variedade de tecnologias e técnicas diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos e circuitos integrados que podem ser referenciados por toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, partículas ou campos magnéticos, partículas ou campos ópticos ou qualquer combinação dos mesmos.
[0180] Os vários blocos lógicos, módulos, circuitos e etapas de algoritmo ilustrativos descritos em conexão às modalidades reveladas no presente documento podem ser implementadas como hardware eletrônico, software de computador ou combinações de ambos. A fim de ilustrar claramente essa possibilidade de intercâmbio de hardware e software, vários componentes, blocos, módulos, circuitos e etapas ilustrativos foram descritos acima geralmente em termos de funcionalidade dos mesmos. A possibilita de tal funcionalidade ser implantada como hardware ou software depende da aplicação particular e das restrições de projeto impostas no sistema geral. As pessoas versadas na técnica podem implantar a funcionalidade descrita de várias maneiras para cada aplicação em particular, porém, tais decisões de implantação não devem ser interpretadas como causadoras de um afastamento do escopo da presente revelação.
[0181] As técnicas descritas no presente documento podem ser implantadas em hardware, software, firmware ou em qualquer combinação dos mesmos. Tais técnicas podem ser implantadas em qualquer um dentre uma variedade de dispositivos, tais como computadores de propósito geral, aparelhos de telefone de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos incluindo a aplicação em aparelhos de telefone de dispositivo de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos 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 uma mídia de comunicação legível por computador que transporta ou comunica o código de programa na forma de instruções ou estruturas de dados e que podem ser acessadas, lidas e/ou executadas por um computador, tais como ondas ou sinais propagados.
[0182] 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 também pode ser implantado como uma combinação de dispositivos de computação (por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em combinação com um núcleo de DSP ou qualquer outra tal configuração). Correspondentemente, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma dentre as estruturas supracitadas, qualquer combinação das estruturas supracitadas, ou qualquer outra estrutura ou aparelho adequado para a implantação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de software ou módulos de hardware dedicados configurados para criptar e decodificar ou incorporados em um decodificador- encriptador de vídeo combinado (CODEC). Também, as técnicas poderiam ser plenamente implantadas em um ou mais circuitos ou elementos lógicos.
[0183] As técnicas dessa revelação podem ser implantadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar os aspectos funcionais dos dispositivos configurados para realizar as técnicas 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.
[0184] Várias modalidades da invenção foram descritas. Essas e outras modalidades estão dentro do escopo das reivindicações a seguir.

Claims (14)

1. Aparelho para converter informações de vídeo em código em um fluxo de bits, que compreende: uma memória configurada para armazenar informações de vídeo associadas a uma primeira camada incluindo uma primeira figuração e uma segunda camada incluindo uma segunda figuração, a primeira figuração associada a uma unidade de acesso atual, AU; e um processador em comunicação com a memória e configurado para: fornecer apenas os últimos bits significativos, LSB, de uma contagem de ordem de figuração, POC, em um fluxo de bits e calcular a maioria dos bits significativos, MSB, de acordo com o processo de derivação de POC; determinar a possibilidade de uma primeira figuração ser uma figuração de ponto de acesso aleatório, IRAP, com um valor NoRaslOutputFlag igual a 1, indicando que uma figuração esquerda ignorada por acesso aleatório, RASL, não deve ser emitida, ou ser a primeira figuração da primeira camada com identificador de camada, nuh_layer_id, maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1; indicando que figurações de pulo de acesso aleatório de camada cruzada não devem ser emitidas; caracterizado pelo fato de ser com base em uma determinação de que a primeira figuração não é uma figuração IRAP com valor de NoRaslOutputFlag igual a 1 ou não é a primeira figuração da primeira camada com nuh_layer_id maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1, restringindo valores de contagem de ordem de figuração, POC, valores de figurações em um armazenamento temporário de figuração sub decodificada, sub-DPB, armazenando uma pluraridade de figurações em uma única camada, de forma que uma diferença entre uma contagem de ordem de figuração, POC, mais alta e uma POC mais baixa da pluralidade de figurações no armazenamento temporário de figuração sub decodificada, sub-DPB, seja menor que um valor limítrofe MaxPicOrderCntLsb/2, MaxPicOrderCntLsb definindo os valores máximos do LSB do POC.
2. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que a pluralidade de figurações no sub-DPB inclui a primeira figuração e um primeiro conjunto de figurações que pertence à primeira camada.
3. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o primeiro conjunto de figurações inclui uma ou mais figurações que precedem a primeira figuração na ordem de decodificação, que tem valores de IDs temporais iguais a 0, e não são figurações esquerdas ignoradas por acesso aleatório, RASL, figurações precedentes descodificáveis de acesso aleatório, RADL, ou figurações de não referência de subcamada.
4. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o primeiro conjunto de figurações inclui figurações de referência a curto prazo da primeira figuração.
5. Aparelho, de acordo com a reivindicação 2, caracterizado pelo fato de que o primeiro conjunto de figurações inclui todas as figurações que precedem a primeira figuração na ordem de decodificação e cada uma é associada a um sinalizador que indica que a figuração deve ser emitida.
6. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o processador é configurado adicionalmente para impedir, com base em uma determinação de que a primeira figuração é uma figuração IRAP com um valor de NoRaslOutputFlag igual a 1 ou é a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1, a partir da determinação da possibilidade de a diferença entre a POC mais alta e a POC mais baixa da pluralidade de figurações no DPB ser menor que o valor limítrofe.
7. Aparelho, de acordo com a reivindicação 1, caracterizado pelo fato de que o processador é configurado adicionalmente para determinar a possibilidade de uma terceira figuração que segue uma quinta figuração na ordem de decodificação ou está na mesma AU que a quinta figuração, preceder uma sétima figuração que satisfaz uma segunda condição na ordem de decodificação e tem um tempo de saída de DPB que é maior que um tempo de saída de DPB de uma quarta figuração que segue a quinta figuração na ordem de decodificação ou está na mesma AU que a quinta figuração, e precede uma sétima figuração na ordem de decodificação que tem uma POC que é maior que uma POC da quarta figuração.
8. Método para converter informações de vídeo em código em um fluxo de bits, que compreende: armazenar informações de vídeo associadas a uma primeira camada incluindo uma primeira figuração e uma segunda camada incluindo uma segunda figuração, a primeira figuração associada a uma unidade de acesso atual, AU; fornecer apenas os últimos bits significativos, LSB, de uma contagem de ordem de figuração, POC, em um fluxo de bits e calcular a maioria dos bits significativos, MSB, de acordo com o processo de derivação de POC; determinar a possibilidade da primeira figuração ser uma figuração de ponto de acesso aleatório, IRAP, com um valor NoRaslOutputFlag igual a 1, indicando que uma figuração esquerda ignorada por acesso aleatório, RASL, não deve ser emitida, ou ser a primeira figuração da primeira camada com identificador de camada nuh_layer_id maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1, indicando que figurações de pulo de acesso aleatório de camada cruzada não devem ser emitidas; caracterizado pelo fato de ser com base em uma determinação de que a primeira figuração não é uma figuração IRAP com um valor de NoRaslOutputFlag igual a 1 ou não é a primeira figuração da primeira camada com nuh_layer_id maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1, restringindo valores de contagem de ordem de figuração, POC, valores de figurações em um armazenamento temporário de figuração sub decodificada, sub-DPB, armazenando uma pluraridade de figurações em uma única camada, de forma que uma diferença entre uma contagem de ordem de figuração, POC, mais alta e uma POC mais baixa da pluralidade de figurações no armazenamento temporário de figuração sub decodificada, sub-DPB, seja menor que um valor limítrofe MaxPicOrderCntLsb/2, MaxPicOrderCntLsb definindo os valores máximos do LSB do POC.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que a pluralidade de figurações no sub-DPB inclui a primeira figuração e um primeiro conjunto de figurações que pertence à primeira camada.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o primeiro conjunto de figurações inclui uma ou mais figurações que precedem a primeira figuração na ordem de decodificação que tem valores de IDs temporais iguais a 0, e não são figurações esquerdas ignoradas por acesso aleatório, RASL, figurações precedentes descodificáveis de acesso aleatório, RADL, ou figurações de não referência de subcamada.
11. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o primeiro conjunto de figurações inclui figurações de referência a curto prazo da primeira figuração.
12. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que o primeiro conjunto de figurações inclui todas as figurações que precedem a primeira figuração na ordem de decodificação e cada uma é associada a um sinalizador que indica que a figuração deve ser emitida.
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de compreende adicionalmente impedir, com base em uma determinação de que a primeira figuração é uma figuração IRAP com um valor de NoRaslOutputFlag igual a 1 ou é a primeira figuração da camada atual com nuh_layer_id maior que 0 que segue uma figuração IRAP que tem um valor de nuh_layer_id igual a 0 e tem um valor de NoClrasOutputFlag igual a 1, a determinação da possibilidade de a diferença entre a POC mais alta e a POC mais baixa da pluralidade de figurações no DPB ser menor que o valor limítrofe.
14. Memória legível por computador caracterizada pelo fato de que possui instruções nela armazenadas que, quando executadas, fazem com que um computador realize o método conforme definido em qualquer uma das reivindicações 8 a 13.
BR112016030377-6A 2014-06-26 2015-06-25 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 BR112016030377B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462017742P 2014-06-26 2014-06-26
US62/017,742 2014-06-26
US14/749,533 2015-06-24
US14/749,533 US10091532B2 (en) 2014-06-26 2015-06-24 Bitstream conformance constraints in scalable video coding
PCT/US2015/037720 WO2015200653A1 (en) 2014-06-26 2015-06-25 Bitstream conformance constraints in scalable video coding

Publications (2)

Publication Number Publication Date
BR112016030377A2 BR112016030377A2 (pt) 2017-08-22
BR112016030377B1 true BR112016030377B1 (pt) 2023-10-31

Family

ID=54932010

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016030377-6A BR112016030377B1 (pt) 2014-06-26 2015-06-25 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

Country Status (8)

Country Link
US (2) US10264286B2 (pt)
EP (2) EP3162065B1 (pt)
JP (2) JP6608395B2 (pt)
KR (2) KR102090005B1 (pt)
CN (2) CN106464909B (pt)
BR (1) BR112016030377B1 (pt)
CA (2) CA2952497C (pt)
WO (2) WO2015200653A1 (pt)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding
CN104751779A (zh) * 2014-11-25 2015-07-01 上海和辉光电有限公司 显示装置、oled像素驱动电路及其驱动方法
WO2017206803A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Method and apparatus of current picture referencing for video coding
US10771163B2 (en) * 2017-10-24 2020-09-08 Mediatek Inc. Apparatus and method for decoding ROI regions in image
TWI820196B (zh) 2018-08-28 2023-11-01 大陸商北京字節跳動網絡技術有限公司 用擴展四叉樹進行分割時的上下文編解碼
KR20210069717A (ko) * 2018-10-09 2021-06-11 브이-노바 인터내셔널 리미티드 다중-레벨 향상 및 코딩 포맷 조정을 갖는 비디오 신호용 향상 디코더
CA3132391A1 (en) * 2019-03-11 2020-09-17 Tencent America LLC Signaling of adaptive picture size in video bitstream
WO2021061283A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Signaling of picture header in video coding
WO2021134052A1 (en) * 2019-12-26 2021-07-01 Bytedance Inc. Signaling coded picture buffer levels in video coding
WO2021134015A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Profile, tier and layer indication in video coding
CN114846457A (zh) 2019-12-26 2022-08-02 字节跳动有限公司 对层级视频的编解码的限制
KR20220115959A (ko) * 2019-12-27 2022-08-19 바이트댄스 아이엔씨 비디오 코딩에서의 서브픽처 시그널링
CN114946188A (zh) 2020-01-09 2022-08-26 字节跳动有限公司 视频比特流中的值的范围的约束
KR20230015385A (ko) * 2020-05-22 2023-01-31 바이트댄스 아이엔씨 액세스 유닛들에서 픽처 정보의 시그널링
WO2021241963A1 (ko) * 2020-05-27 2021-12-02 엘지전자 주식회사 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법
CN116671111A (zh) * 2020-09-29 2023-08-29 抖音视界有限公司 辅助信息的信令通知
WO2023056360A1 (en) * 2021-09-30 2023-04-06 Bytedance Inc. Method, apparatus and medium for video processing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080152006A1 (en) * 2006-12-22 2008-06-26 Qualcomm Incorporated Reference frame placement in the enhancement layer
SI3264780T1 (sl) * 2007-04-18 2020-08-31 Dolby International Ab Kodirni sistemi, pri katerih se uporablja dodatni niz sekvenčnih parametrov za skalabilno kodiranje videa ali večpogledno kodiranje
JP5072893B2 (ja) * 2009-03-25 2012-11-14 株式会社東芝 画像符号化方法および画像復号化方法
CN103688548A (zh) 2011-07-08 2014-03-26 汤姆逊许可公司 为具有重复结构的三维模型编码和解码位流的系统及方法
US9635355B2 (en) * 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US10003817B2 (en) 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
EP2810438A1 (en) 2012-01-31 2014-12-10 VID SCALE, Inc. Reference picture set (rps) signaling for scalable high efficiency video coding (hevc)
WO2013161203A1 (ja) * 2012-04-23 2013-10-31 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、及び画像符号化復号装置
BR122020007914B1 (pt) * 2012-06-29 2023-03-07 Ge Video Compression, Llc Fluxo contínuo de dados de vídeo, entidade de rede para receber o fluxo contínuo de dados de vídeo e método para decodificar o fluxo contínuo de dados recebido
US9351005B2 (en) 2012-09-24 2016-05-24 Qualcomm Incorporated Bitstream conformance test in video coding
US9479779B2 (en) 2012-10-01 2016-10-25 Qualcomm Incorporated Sub-bitstream extraction for multiview, three-dimensional (3D) and scalable media bitstreams
US20140301463A1 (en) * 2013-04-05 2014-10-09 Nokia Corporation Method and apparatus for video coding and decoding
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
US9591321B2 (en) * 2013-04-07 2017-03-07 Dolby International Ab Signaling change in output layer sets
WO2015004924A1 (en) * 2013-07-10 2015-01-15 Sharp Kabushiki Kaisha Scaling list signaling and parameter sets activation
US10250897B2 (en) * 2013-07-14 2019-04-02 Sharp Kabushiki Kaisha Tile alignment signaling and conformance constraints
WO2015008479A1 (en) 2013-07-14 2015-01-22 Sharp Kabushiki Kaisha Signaling indications and constraints
US20150016503A1 (en) * 2013-07-15 2015-01-15 Qualcomm Incorporated Tiles and wavefront processing in multi-layer context
JP6393317B2 (ja) * 2013-10-10 2018-09-19 シャープ株式会社 復号方法及び符号化方法
WO2015082763A1 (en) 2013-12-02 2015-06-11 Nokia Technologies Oy Video encoding and decoding
US20150264404A1 (en) 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10334260B2 (en) 2014-03-17 2019-06-25 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US10390087B2 (en) 2014-05-01 2019-08-20 Qualcomm Incorporated Hypothetical reference decoder parameters for partitioning schemes in video coding
US10264286B2 (en) 2014-06-26 2019-04-16 Qualcomm Incorporated Bitstream conformance constraints in scalable video coding

Also Published As

Publication number Publication date
CN106464909A (zh) 2017-02-22
CA2952350C (en) 2021-04-13
KR102090005B1 (ko) 2020-03-17
BR112016030377A2 (pt) 2017-08-22
CA2952497A1 (en) 2015-12-30
CA2952497C (en) 2021-08-03
CA2952350A1 (en) 2015-12-30
JP2017525257A (ja) 2017-08-31
KR102038190B1 (ko) 2019-10-29
CN106464909B (zh) 2019-10-25
WO2015200652A1 (en) 2015-12-30
CN106464910A (zh) 2017-02-22
KR20170023009A (ko) 2017-03-02
US10264286B2 (en) 2019-04-16
KR20170026371A (ko) 2017-03-08
WO2015200653A1 (en) 2015-12-30
CN106464910B (zh) 2019-10-18
EP3162065A1 (en) 2017-05-03
US20150382023A1 (en) 2015-12-31
US20150382022A1 (en) 2015-12-31
JP2017525248A (ja) 2017-08-31
US10091532B2 (en) 2018-10-02
EP3162065B1 (en) 2020-12-23
JP6608395B2 (ja) 2019-11-20
JP6498706B2 (ja) 2019-04-10
EP3162064A1 (en) 2017-05-03

Similar Documents

Publication Publication Date Title
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
ES2895442T3 (es) Dispositivo y método para la codificación escalable de información de video
ES2879635T3 (es) Vaciado de imágenes e inferencia de parámetros de búfer de imágenes decodificadas para flujos de bits multicapa
ES2778463T3 (es) Inferencia mejorada de indicador de no emisión de imagen previa en codificación de video
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
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
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
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
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
BR112016007916B1 (pt) Sinalização para armazenamento temporário de figuração subdecodificada (sub-dpb) com base em operações de dpb em codificação de vídeo
BR112014024850B1 (pt) Armazenamento em buffer de vídeo de baixo retardo em codificação de vídeo
ES2834481T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
BR112016029611B1 (pt) Aparelho e método para codificar informações de vídeo em codificação de vídeo de alta eficiência, e, memória legível por computador
BR112016030530B1 (pt) Método e aparelho para decodificação de dados de vídeo e método e aparelho para codificação de dados de vídeo em um fluxo de bits
JP2017507539A (ja) マルチレイヤコーディングにおいて回復点補足エンハンスメント情報(sei)メッセージと領域リフレッシュ情報seiメッセージとをコーディングするための方法
JP2018514985A (ja) ビデオデータを処理するためのデバイスおよび方法
BR112016000865B1 (pt) Aparelho e método para codificar informações de vídeo multicamadas, aparelho e método para decodificar informações de vídeo multicamadas, e memória legível por computador
BR112016021475B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
BR112016030211B1 (pt) Restrições de conformidade de fluxo de bits em codificação de vídeo escalonável
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
BR112016015918B1 (pt) Suporte de camada base não-hevc em extensões de muticamada de hevc

Legal Events

Date Code Title Description
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 3A ANUIDADE.

B08G Application fees: restoration [chapter 8.7 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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