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

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

Info

Publication number
BR112016000865B1
BR112016000865B1 BR112016000865-0A BR112016000865A BR112016000865B1 BR 112016000865 B1 BR112016000865 B1 BR 112016000865B1 BR 112016000865 A BR112016000865 A BR 112016000865A BR 112016000865 B1 BR112016000865 B1 BR 112016000865B1
Authority
BR
Brazil
Prior art keywords
bitrate
video
frame rate
information
flags
Prior art date
Application number
BR112016000865-0A
Other languages
English (en)
Other versions
BR112016000865A2 (pt
Inventor
Krishnakanth RAPAKA
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 BR112016000865A2 publication Critical patent/BR112016000865A2/pt
Publication of BR112016000865B1 publication Critical patent/BR112016000865B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

SINALIZAÇÃO DE INFORMAÇÕES DE TAXA DE BIT E INFORMAÇÕES DE TAXA DE RETRATO EM VPS Trata-se de um aparelho para codificar informações de vídeo de acordo com certos aspectos, o qual inclui uma memória e hardware de computação. A memória é configurada para armazenar informações de vídeo. O hardware de computação é configurado para processar pelo menos um dentre um primeiro sinal que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar ou um segundo sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de retrato para sinalizar.

Description

ANTECEDENTES CAMPO
[0001] Esta revelação refere-se ao campo de codificação e compactação de vídeo. Em particular, a mesma se refere à codificação de vídeo escalonável (SVC), incluindo SVC para Codificação de Vídeo Avançada (AVC), bem como SVC para Codificação de Vídeo de Alta Eficácia (HEVC), que também é chamado de HEVC Escalonável (SHVC). A mesma também se refere a codificação de vídeo em 3D, como a extensão de múltiplas vistas de HEVC, chamada de MV-HEVC e 3D-HEVC. Diversas modalidades se referem a sistemas e métodos para sinalização de profundidade de bit de identificador de vista (ID), sinalização de informações de taxa de bit e/ou informações de taxa de imagens no conjunto de parâmetros de vídeo (VPS) e processos relacionados.
DESCRIÇÃO DA TÉCNICA RELACIONADA
[0002] As capacidades de vídeo digital podem ser incorporadas a uma ampla faixa de dispositivos, incluindo televisões digitais, sistemas de difusão direta digital, sistemas de difusão sem fio, assistentes digitais pessoais (PDAs), computadores do tipo laptop ou desktop, computadores do tipo tablet, leitores de e-book, câmeras digitais, dispositivo de gravação digitais, reprodutores de mídia digitais, dispositivos de vídeo jogo, consoles de vídeo jogo, celular ou telefones de rádio-satélite, conhecidos como "telefones inteligentes", dispositivos de teleconferência por vídeo, dispositivos de difusão por vídeo e similares. Os dispositivos de vídeo digital implantam técnicas de codificação de vídeo, como as descritas nos padrões definidos por MPEG-2, MPEG-4, 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) atualmente sob desenvolvimento e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, criptografar, decodificar e/ou armazenar informações de vídeo digital de modo mais eficaz implantando-se tais técnicas de codificação de vídeo.
[0003] As técnicas de codificação de vídeo incluem previsão espacial (intra imagem) e/ou previsão espacial (inter imagem) para reduzir ou remover redundância inerente a sequências de vídeo. Para codificação de vídeo com base em bloco, uma fração de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionada em blocos de vídeo, que também podem ser chamadas de blocos em árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fração intracodificada (I) de uma imagem são criptografados com o uso de previsão espacial em relação a amostras de referência em blocos próximos na mesma imagem. Os blocos de vídeo em uma fração intercodificada (P ou B) de uma imagem podem usar previsão espacial em relação a amostras de referência em blocos próximos na mesma imagem ou previsão temporal em relação a amostras de referência em outras imagens de referência. As imagens podem ser chamadas de quadros e imagens de referência podem ser chamadas de quadros de referência.
[0004] A previsão espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência que formam o bloco preditivo, e os dados residuais indicam a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e o dados residuais. Para compressão adicional, os dados residuais podem ser transformados do domínio de pixel para um domínio de transformada, resultando em coeficientes residuais, os quais os mesmos podem ser quantizados. O coeficiente de transformada quantizado pode ser disposto inicialmente em uma matriz bidimensional e varrido a fim de produzir um vetor monodimensional de coeficiente de transformada, e a codificação de entropia pode ser aplicada para conseguir ainda mais compressão.
SUMÁRIO
[0005] Em geral, a presente revelação descreve técnicas relacionadas a codificação de vídeo escalonável (SVC). Diversas técnicas descritas abaixo fornecem métodos e dispositivos para sinalização de profundidade de bit de ID de vista e sinalização de informações de taxa de bit e/ou informações de taxa de imagens no VPS.
[0006] Um aparelho para criptografar informações de vídeo de acordo com certos aspectos que inclui uma memória e hardware de computação. A memória é configurada para armazenar informações de vídeo. O hardware de computação é configurado para determinar uma profundidade de bit de um ou mais identificadores de vista para sinalizar, em que cada um dentre os um ou mais identificadores de vista é associado a uma camada a ser criptografada. O hardware de computação é adicionalmente configurado para sinalizar a profundidade de bit dos um ou mais identificadores de vista em um fluxo de bit.
[0007] Um aparelho para decodificar informações de vídeo de acordo com certos aspectos que inclui uma memória e hardware de computação. A memória é configurada para armazenar informações de vídeo. O hardware de computação é configurado para receber um indicador de profundidade de bit que indica um número de bits usados para sinalizar um ou mais valores de identificador de vista, em que cada um dentre os um ou mais valores de identificador de vista é associado a uma dentre uma ou mais camadas a serem decodificadas. O hardware de computação é adicionalmente configurado para receber cada um dentre os um ou mais valores de identificador de vista como um valor que tem o número indicado de bits.
[0008] Um aparelho para codificar informações de vídeo de acordo com certos aspectos inclui uma memória e hardware de computação. A memória é configurada para armazenar informações de vídeo. O hardware de computação é configurado para processar pelo menos um dentre um primeiro sinal que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar ou um segundo sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar.
[0009] Os detalhes de um ou mais exemplos são apresentados nos desenhos anexos e na descrição abaixo, que não se destinam a limitar o escopo completo dos conceitos inventivos descritos no presente documento. Outros recursos, objetivos e vantagens serão evidentes a partir da descrição e dos desenhos e a partir das reivindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0010] Ao longo dos desenhos, números de referência podem ser reusados para indicar correspondência entre elementos de referencia. Os desenhos são fornecidos para ilustrar modalidades exemplificativas descritas no presente documento e não se destinam a limitar o escopo da revelação.
[0011] A Figura 1 é um diagrama de blocos que ilustra uma criptografia de vídeo exemplificativa e sistema de decodificação que pode utilizar técnicas de acordo com aspectos descritos na presente revelação.
[0012] A Figura 2A é um diagrama de blocos que ilustra um exemplo de um criptógrafo de vídeo que pode implantar técnicas de acordo com aspectos descritos na presente revelação.
[0013] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um criptógrafo de vídeo que pode implantar técnicas de acordo com aspectos descritos na presente revelação.
[0014] A Figura 3 A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos na presente revelação.
[0015] 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 na presente revelação.
[0016] A Figura 4 é um fluxograma que ilustra um método para sinalização de profundidade de bit de ID de vista, de acordo com aspectos dessa revelação.
[0017] A Figura 5 é um fluxograma que ilustra um método para decodificação de profundidade de bit de ID de vista, de acordo com aspectos dessa revelação.
[0018] A Figura 6 é um fluxograma que ilustra um método para sinalizar informações de taxa de bit e/ou informações de taxa de imagens nos VPS, de acordo com aspectos dessa revelação.
DESCRIÇÃO DETALHADA
[0019] As técnicas descritas na presente revelação geralmente se referem a codificação de vídeo escalonável (SHVC, SVC) e múltiplas vistas/codificação de vídeo em 3D (por exemplo, codificação de múltiplas vistas mais profundidade, MVC+D). Por exemplo, as técnicas podem ser relacionadas a e usadas com ou dentro de, uma Codificação de Vídeo de Alta Eficácia (HEVC), extensão de codificação de vídeo escalonável (SVC, algumas vezes chamado de SHVC). Em um SHVC, extensão SVC, poderia haver múltiplas camadas de informações de vídeo. A camada no nível mais inferior das informações de vídeo pode servir como uma camada-base (BL) ou camada de referência (RL), e a camada bem no topo (ou a camada mais elevada) das informações de vídeo pode servir como uma camada aprimorada (EL). A "camada aprimorada" é, algumas vezes, chamada de uma "camada de aprimoramento", e esses termos podem ser usados de modo intercambiável. A camada-base é, algumas vezes, chamada de uma "camada de referência", e esses termos também podem ser usados de modo intercambiável. Todas as camadas entre a camada-base e a camada de topo podem servir como camadas de ELs e/ou de referência adicionais. Por exemplo, uma certa camada pode ser uma EL para uma camada abaixo (por exemplo, que preceda) a certa camada, como a camada-base ou qualquer camada de aprimoramento de intervenção. Adicionalmente, a certa camada também pode servir como uma RL para uma ou mais da(s) camada(s) de aprimoramento acima (por exemplo, subsequente a) da certa camada. Qualquer camada entre a camada-base (por exemplo, a camada mais inferior que tem, por exemplo, um conjunto de identificação de camada (ID) ou igual a "1") e a camada de topo (ou a camada mais elevada) pode ser usada como uma referência para previsão intercamada por uma camada mais elevada para a certa camada e pode usar uma camada inferir para a certa camada como uma referência para previsão intercamada. Por exemplo, a certa camada pode ser determinada com o uso de uma camada inferior à certa camada como uma referência para previsão intercamada.
[0020] Para simplicidade, os exemplos são apresentados em termos de apenas duas camadas: uma BL e uma EL; no entanto, deve ser bem entendido que as ideias e modalidades descritas abaixo também são aplicáveis a casos com múltiplas camadas. Além disso, para facilidade de explicação, os termos "quadros" ou "blocos" são genericamente usados. No entanto, esses termos não se destinam a ser limitantes. Por exemplo, as técnicas descritas abaixo podem ser usadas com qualquer uma de uma variedade de unidades de vídeo, incluindo, porém, sem limitação pixels, blocos (por exemplo, CU, PU, TU, macroblocos, etc.), pedaços, quadros, imagem, etc.
CODIFICAÇÃO DE VÍDEO
[0021] Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo sua Codificação de Vídeo Escalonável (SVC) e Codificação de Vídeo de Múltiplas Vistas (MVC) e extensões de Codificação de múltiplas vistas mais Profundidade (MVC+D). A especificação de rascunho de HEVC mais recente e chamada de HEVC WD 10 doravante está disponível junto à http://phenix.int-evry. fr/j ct/ doc_end_us er/ documents/ 13_Incheon/wg 11/ JCT VC-M0432 -v3.zip . A extensão de múltiplas vistas para HEVC, a saber, MV-HEVC, também está sendo desenvolvida por JCT-3V. Um Rascunho de Trabalho recente (WD) de MV-HEVC WD4 doravante, está disponível junto à http://phenix.it- sudparis.eu/jct2/doc_end_user/documents/4_Incheon/wgl l/JCT3V-D1004-v4.zip. A extensão escalonável para HEVC, chamada SHVC, também está sendo desenvolvida por JCT-VC. Um Rascunho de Trabalho recente (WD) de SHVC e chamado de Rascunho de Trabalho 2 doravante, está disponível junto à http://phenix.it-sudparis.eu/jct/doc_end_user/documents/ 13_Incheon/wg 11/JCTVC-M 1008-v3.zip. De acordo com um aspecto, JCT3V-D0196 (http://phenix.it-sudparis . eu/j ct2/ doc_end_user/ documents/ 4_Incheon/wg 11 /JCT3 V-DO 196-v 1. zip) inclui um método para sinalização de IDs vista no conjunto de parâmetros de vídeo (VPS). De acordo com um aspecto, JCTVC-K0125 (http://phenix.int- evry.fr/jct/doc_end_user/documents/l l_Shanghai/wgl l/JCTVC-K0125-vl .zip) inclui um método para sinalização de taxa de bit e informações de taxa de imagens no VPS.
[0022] Codificação de vídeo escalonável (SVC) pode ser usada para fornecer qualidade (também chamada de escalabilidade sinal-ruído (SNR)), escalabilidade espacial e/ou escalabilidade temporal. Por exemplo, em uma modalidade, uma camada de referência (por exemplo, uma camada-base) inclui informações de vídeo suficientes para exibir um vídeo em um primeiro nível de qualidade e a camada de aprimoramento inclui informações de vídeo adicionais relativas à camada de referência de modo que a camada de referência e a camada de aprimoramento, juntas, incluam informações de vídeo suficientes para exibir o vídeo em um segundo nível de qualidade maior que o primeiro nível (por exemplo, menos ruído, melhor resolução, melhor taxa de quadro, etc.). Uma camada aprimorada pode ter resolução espacial diferente de uma camada-base. Por exemplo, a razão de aspecto espacial entre EL e BL pode ser 1,0, 1,5, 2,0 ou outras razões diferentes em direções vertical e horizontal. Em outras palavras, o aspecto espacial da EL pode ser igual a 1,0, 1,5 ou 2,0 vezes o aspecto espacial da BL. Em alguns exemplos, o fator de dimensionamento da EL pode ser maior que a BL. Por exemplo, um tamanho de imagens na EL pode ser maior que um tamanho de imagens na BL. Dessa maneira, pode ser possível, embora não uma limitação, de que a resolução espacial da EL é maior que a resolução espacial da BL.
[0023] Em SVC, que se refere à extensão SVC para H.264 ou à extensão SHVC para H.265 (conforme discutido acima), a previsão de um bloco atual pode ser realizada com o uso das camadas diferentes que são fornecidas para SVC. Tal previsão pode ser chamada de previsão intercamada. Os métodos de previsão intercamada podem ser utilizados em SVC a fim de reduzir redundância intercamada. Alguns exemplos de previsão intercamada podem incluir intraprevisão intercamada, previsão de movimento intercamada e previsão residual intercamada. A intraprevisão intercamada usa a reconstrução de blocos colocalizados na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de movimento intercamada usa informações de movimento (incluindo vetores de movimento) da camada-base para prever 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.
VISÃO GERAL
[0024] Em versões anteriores de MV-HEVC e SHVC (por exemplo, Rascunho de Trabalho 2), a ID de vista de uma camada foi sinalizada com o uso de um número fixo de bits. Por exemplo, as versões anteriores de SHVC usaram 10 bits para sinalizar a ID de vista, independentemente de quantas vistas estavam disponíveis para uma camada. No entanto, usar uma profundidade de bit fixa (por exemplo, um número fixo de bits) para sinalizar a ID de vista pode levar a ineficácia, especialmente, quando o número de vistas disponível é relativamente pequeno (por exemplo, 1 a 4 vistas) em comparação ao número de vistas que podem ser sinalizadas com o uso de 10 bits. Usar uma profundidade de bit fixa de 10 bits pode permitir sinalização de até 1.024 (210) vistas para uma camada, mas, na maior parte dos casos, o número de vistas total para uma camada é muito menos que 1.024 vistas.
[0025] Adicionalmente, em versões anteriores de MV-HEVC e SHVC, informações de taxa de bit e informações de taxa de imagens são sinalizadas para cada conjunto de camada e cada subcamada de cada conjunto de camada. Para cada conjunto de camada, a estrutura de sintaxe que inclui as informações de taxa de bit e informações de taxa de imagens (por exemplo, bit_rate_pic_rate()) é sinalizada. Para cada subcamada do conjunto de camada, um sinalizador que indica se informações de taxa de bit existem é sinalizado e um sinalizador que indica se informações de taxa de imagens existem é sinalizado. Esse processamento é realizado mesmo se não houver quaisquer informações de taxa de bit e informações de taxa de imagens para quaisquer conjuntos de camada ou subcamadas. Por exemplo, 0 é sinalizado como o valor de um sinalizador para cada conjunto de camada e cada subcamada a fim de indicar que não há informações de taxa de bit e/ou informações de taxa de imagens para todos os conjuntos de camada e subcamadas. Isso pode levar à ineficácia e sinalização desnecessária e/ou processamento, por exemplo, visto que pode haver muitos conjuntos de camada e muitas subcamadas para os conjuntos de camada.
[0026] A fim de abordar esses e outros desafios, as técnicas da presente revelação podem sinalizar uma profundidade de bit de uma ID de vista e sinalizar o valor da ID de vista com o uso de um número de bits que são sinalizados por meio da profundidade de bit. Por exemplo, se apenas 2 vistas são usadas, a profundidade de bit da ID de vista pode ser 1 bit e o valor da ID de vista pode ser sinalizado com o uso de 1 bit. Se 3 vistas são usadas, a profundidade de bit da ID de vista pode ser 2 bits e o valor da ID de vista pode ser sinalizado com o uso de 2 bits. A profundidade de bit utilizada para sinalizar a ID de vista pode ser variável (por exemplo, entre 1 e 16 bits). Dessa maneira, a ID de vista pode ser sinalizada de modo mais eficaz na maior parte dos casos reduzindo-se o número de bits usados na sinalização do valor da ID de vista; é mais provável que o número de vistas a serem sinalizadas seja menor que o número máximo que pode ser sinalizado com o uso do número fixo atual de bits (por exemplo, 10 bits).
[0027] As técnicas também podem sinalizar informações de taxa de bit e/ou informações de taxa de imagens nos VPS. Por exemplo, as técnicas podem indicar se qualquer conjunto de camada e/ou qualquer subcamada dentre um conjunto de camada tem informações de taxa de bit e/ou informações de taxa de imagens. Em uma modalidade, as técnicas podem sinalizar um sinalizador global no VPS que indica se informações de taxa de bit existem para quaisquer conjuntos de camada e/ou subcamadas e sinalizar um sinalizador global no VPS que indica se informações de taxa de imagens existem para quaisquer conjuntos de camada e/ou subcamadas. Ao incluir os sinalizadores globais no VPS, a estrutura de sintaxe de taxa de imagens e taxa de bit pode ser sinalizada e/ou acessada apenas quando os sinalizadores globais indicam que informações de taxa de bit e/ou informações de taxa de imagens existem para pelo menos um conjunto de camada ou uma subcamada dentre um conjunto de camada. Se os sinalizadores globais indicarem que informações de taxa de bit e/ou informações de taxa de imagens não existem para quaisquer conjuntos de camada, a estrutura de sintaxe de taxa de imagens e taxa de bit não precisa ser sinalizada e/ou acessada, e os sinalizadores para subcamadas individuais de conjuntos de camada individuais dentro da estrutura de sintaxe de taxa de imagens e taxa de bit não precisam ser enviados (por exemplo, sinalizados). Além disso, os sinalizadores globais podem permitir processamento separado de informações de taxa de bit e informações de taxa de imagens de uma maneira eficaz. Se o sinalizador global para informações de taxa de bit indicar que não há informações de taxa de bit em pelo menos um conjunto de camada, os respectivos sinalizadores para informações de taxa de bit para qualquer subcamada não precisam ser sinalizados e/ou processados. De modo similar, se o sinalizador global para informações de taxa de imagens indicar que não há informações de taxa de imagens para pelo menos um conjunto de camada, os respectivos sinalizadores para informações de taxa de imagens para qualquer subcamada não precisam ser sinalizados e/ou processados. Embora anteriormente também fosse possível para sinalizar apenas uma das informações de taxa de bit ou das informações de taxa de imagens, sinalização e processamento de múltiplos sinalizadores individuais foram necessários: um sinalizador para as informações de taxa de bit para cada subcamada de cada conjunto de camada e um sinalizador para as informações de taxa de imagens para cada subcamada de cada conjunto de camada.
[0028] Diversos aspectos dos sistemas inovadores, aparelhos e métodos são descritos mais completamente doravante em referência aos desenhos anexos. A presente revelação pode, entretanto, ser incorporada de um certo número de formas diferentes e não deve ser interpretada como limitada a qualquer estrutura específica ou função apresentada ao longo de toda esta revelação. Em vez disso, esses aspectos são fornecidos de modo que a presente revelação seja minuciosa e completa e transmita completamente o escopo da revelação para aqueles versados na técnica. Com base nos ensinamentos do presente documento, um indivíduo versado na técnica deve verificar que o escopo da revelação se destina a cobrir qualquer aspecto dos sistemas, aparelhos e métodos inovadores revelados no presente documento, se implantados de modo independente ou combinados com, qualquer outro aspecto da invenção. Por exemplo, um aparelho pode ser implantado e/ou um método pode ser praticado através do uso de diversos aspectos apresentados no presente documento. Além disso, o escopo da invenção se destina a cobrir tal aparelho ou método que é praticado com o uso de outra estrutura, funcionalidade ou estrutura e funcionalidade em adição ou diferente dos diversos aspectos da invenção apresentados 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.
[0029] Embora aspectos particulares sejam descritos no presente documento, muitas variações e permutações desses aspectos são abrangidos dentro do escopo da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais sejam mencionados, o escopo da revelação não se destina a ser limitado por benefícios, usos ou objetivos particulares. Em vez disso, aspectos da revelação se destinam a ser amplamente aplicáveis a tecnologias sem fio diferentes, configurações de sistema, redes e protocolos de transmissão, alguns dos quais são ilustrados à título de exemplificação nas Figuras e na descrição a seguir dos aspectos preferenciais. A descrição detalhada e os desenhos são meramente ilustrativos da revelação em vez de limitantes, em que o escopo da revelação é definido pelas reivindicações anexas e equivalentes do mesmo.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0030] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação de vídeo exemplificativo 10 que pode utilizar técnicas de acordo com aspectos descritos na presente revelação. Conforme descrito no presente documento, o termo "codificador de vídeo" se refere genericamente tanto a criptógrafos de vídeo quanto a decodificadores de vídeo. Na presente revelação, os termos "codificação de vídeo" ou "codificação" podem se referir genericamente a criptografia de vídeo e decodificação de vídeo.
[0031] Conforme mostrado na Figura 1, o sistema de codificação de vídeo 10 inclui um dispositivo de fonte 12 e um dispositivo de destino 14. O dispositivo de fonte 12 gera dados de vídeo criptografados. O dispositivo de destino 14 pode decodificar os dados de vídeo criptografados gerados por dispositivo de fonte 12. O dispositivo de fonte 12 pode fornecer os dados de vídeo para o dispositivo de destino 14 por meio de um canal de comunicação 16, que pode incluir um meio de armazenamento legível por computador ou outro canal de comunicação. O dispositivo de fonte 12 e o dispositivo de destino 14 podem incluir uma faixa ampla de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, laptop), computadores do tipo tablet, decodificadores de sinal, aparelhos telefônicos, como os chamados telefones "inteligentes", os chamados computadores do tipo pad "inteligentes", televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, computadores no carro, dispositivos de transmissão de vídeo ou similares. O dispositivo de fonte 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0032] O dispositivo de destino 14 pode receber os dados de vídeo criptografados a serem decodificados por meio de canal de comunicação 16. O canal de comunicação 16 pode compreender um tipo de meio ou dispositivo com capacidade para mover os dados de vídeo criptografados do dispositivo de fonte 12 para o dispositivo de destino 14. Por exemplo, o canal de comunicação 16 pode compreender um meio de comunicação para habilitar o dispositivo de fonte 12 a transmitir dados de vídeo criptografados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo criptografados 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 destino 14. O meio de comunicação pode compreender um 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 outro equipamento que possa ser útil para facilitar a comunicação a partir do dispositivo de fonte 12 até o dispositivo de destino 14.
[0033] Em algumas modalidades, dados criptografados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento. Em tais exemplos, o canal 16 pode corresponder a um dispositivo de armazenamento ou meio de armazenamento legível por computador que armazena os dados de vídeo criptografados gerados pelo dispositivo de fonte 12. Por exemplo, o dispositivo de destino 14 pode acessar o meio de armazenamento legível por computador por meio de acesso de disco ou acesso de cartão. De modo similar, os dados criptografados podem ser acessados a partir do meio de armazenamento legível por computador por interface de entrada 28. O meio de armazenamento legível por computador pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou outro meio de armazenamento digital para armazenar dados de vídeo. O meio de armazenamento legível por computador pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo criptografado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do meio de armazenamento legível por computador por meio de transmissão ou transferência por download. O servidor de arquivos pode ser um tipo de servidor com capacidade para armazenar dados de vídeo criptografados e transmitir esses dados de vídeo criptografados 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 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 criptografado através de conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão WiFi), uma conexão com fio (por exemplo, DSL, modem de cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo criptografado armazenados em um servidor de arquivos. A transmissão de dados de vídeo criptografados a partir do meio de armazenamento legível por computador pode ser uma transmissão de transferência, uma transmissão de transferência por download ou uma combinação de ambas.
[0034] As técnicas dessa revelação podem aplicar aplicativos ou configurações além dos aplicativos ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo em apoio a uma dentre uma variedade de aplicativos de multimídia, como difusões sem fio para televisão, transmissões a cabo para televisão, transmissões por meio de satélite para televisão, transmissões de vídeo por difusão para Internet, como difusão adaptativa dinâmica através de HTTP (DASH), vídeo digital que é criptografado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outros aplicativos. Em algumas modalidades, o sistema 10 pode ser configurado para suportar transmissão de vídeo de uma via ou de duas vias para suportar aplicações como difusão de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0035] Na Figura 1, o dispositivo de fonte 12 inclui fonte de vídeo 18, criptógrafo de vídeo 20 e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30 e dispositivo de exibição 32. O criptógrafo de vídeo 20 de dispositivo de fonte 12 pode ser configurado para aplicar as técnicas para codificar um fluxo de bit incluindo dados de vídeo adaptados para múltiplos padrões ou extensões de padrões. Em outras modalidades, um dispositivo de fonte e um dispositivo de destino pode incluir outros componentes ou disposições. Por exemplo, o dispositivo de fonte 12 pode receber dados de vídeo a partir de uma fonte de vídeo externa 18, como uma câmera externa. De modo semelhante, o dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0036] A fonte de vídeo 18 do dispositivo de fonte 12 pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo que contém vídeo capturado anteriormente e/ou uma interface de alimentação de vídeo para receber vídeo a partir de um fornecedor de conteúdo de vídeo. A fonte de vídeo 18 pode gerar dados com base em gráficos de computador como o vídeo-fonte ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em algumas modalidades, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de fonte 12 e o dispositivo de destino 14 podem formar o que é conhecido por fones de câmera ou fones de vídeo. O vídeo capturado, pré-capturado ou gerado por computador pode ser criptografado pelo criptógrafo de vídeo 20. As informações de vídeo criptografadas podem ser emitidas por interface de saída 22 para um canal de comunicação 16, que pode incluir um meio de armazenamento legível por computador, conforme discutido acima.
[0037] O meio de armazenamento legível por computador pode incluir meios transitórios, como uma transmissão por difusão sem fio ou por difusão com fio ou meios de armazenamento (por exemplo, meios de armazenamento não transitórios), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outros meios legíveis por computador. Um servidor de rede (não mostrado) pode receber dados de vídeo criptografados a partir do dispositivo de fonte 12 e fornecer os dados de vídeo criptografados ao dispositivo de destino 14 (por exemplo, por meio de transmissão por rede). Um dispositivo de computação de uma instalação de produção de mídia, como uma instalação de rotulação de disco, pode receber dados de vídeo criptografados a partir do dispositivo de fonte 12 e produzir um disco que contém os dados de vídeo criptografados.Portanto, o canal de comunicação 16 pode ser entendido de modo que inclui um ou mais meios de armazenamento legíveis por computador de diversas formas.
[0038] A interface de entrada 28 de dispositivo de destino 14 pode receber informações de canal de comunicação 16. As informações de canal de comunicação 16 podem inclui informações de sintaxe definidas pelo codificador de vídeo 20, que pode ser usado pelo decodificador de vídeo 30, que inclui elementos de sintaxe que descrevem características e/ou o processamento de blocos e outras unidades codificadas, por exemplo, GOPs. O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode incluir qualquer um dentre uma variedade de dispositivos de visores como um tubo de raio de cátodo (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0039] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, como a padrão de Codificação de Vídeo de Alta Eficiência (HEVC), atualmente em desenvolvimento, e pode se conformar ao Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões de proprietário ou de indústria, como o padrão ITU- T H.264, referido de modo alternativo como MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ou extensões de tais padrões. As técnicas desta revelação, no entanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não seja mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados a um codificador e decodificador de áudio, e podem incluir unidades MUX-DEMUX apropriadas, ou outro hardware e software, para lidar com a codificação tanto de áudio quanto de vídeo em uma corrente de dados comum ou correntes de dados separadas. Caso aplicável, as unidades MUX-DEMUX podem se conformar ao protocolo multiplexador ITU H.223, ou outros protocolos como protocolo de datagrama de usuário (UDP).
[0040] A Figura 1 é meramente um exemplo, e as técnicas dessa revelação podem ser aplicadas à configurações de codificação de vídeo (por exemplo, criptografia de vídeo ou decodificação de vídeo) que não necessariamente incluir qualquer comunicação de dados entre os dispositivos de criptografia e decodificação. Em outros exemplos, dados podem ser recuperados de uma memória local, difundidos através de uma rede ou similares. Um dispositivo de criptografia pode criptografar e armazenar dados para a memória e/ou um dispositivo de decodificação pode recuperar e decodificar dados a partir da memória. Em muitos exemplos, a criptografia e decodificação é realizada por dispositivos que não se comunicam entre si, mas simplesmente criptografam dados para a memória e/ou recuperam e decodificam dados a partir da memória.
[0041] O codificador de vídeo 20 e o decodificador de vídeo 30, cada um, podem ser implantados como qualquer um dentre uma variedade de conjunto de circuitos de codificador adequado, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portal programáveis por campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implantadas parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas dessa revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode estar incluído em um ou mais codificadores ou decodificadores, um dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um dispositivo respectivo. Um dispositivo que inclui o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, como um telefone celular.
[0042] A JCT-VC trabalha no desenvolvimento do padrão HEVC. Os esforços de padronização HEVC têm base em um modelo de evolução de um dispositivo de codificação de vídeo referido como o Modelo de Teste HEVC (HM). O HM presume diversas capacidades adicionais de dispositivos de vídeo de codificação em relação a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto o H.264 fornece nove modos de codificação intraprevisão, o HM pode fornecer até trinta e três modos de codificação intraprevisão.
[0043] Em geral, o modelo em funcionamento do HM descreve que um quadro de vídeo ou imagem pode ser dividido em uma sequência de blocos em árvore ou as maiores unidades de codificação (LCU) que incluem tanto amostras luma quanto amostra croma. Os dados de sintaxe dentro de um fluxo de bits podem definir um tamanho para a LCU, que é uma maior unidade de codificação em termos dos vários pixels. Um pedaço inclui vários blocos em árvore consecutivos em ordem de codificação. Um quadro de vídeo ou imagem pode ser particionado em um ou mais pedaços. Cada bloco em árvore pode ser partido em unidades de codificação (CUs) de acordo com uma árvore quadrática. Em geral, uma estrutura de dados de árvore quadrática inclui um nó por CU, com um nó de raiz correspondente ao bloco em árvore. se uma CU for partida em quatro sub-CUs, o nó correspondente ao CU inclui quadro nós de folha, cada um dos quais corresponde a um dos sub-CUs.
[0044] Cada nó da estrutura de dados de árvore quadrática pode fornecer dados de sintaxe para o CU correspondente. Por exemplo, um nó na árvore quadrática pode incluir um sinalizador partido, que indica se a CU que corresponde ao nó está partida em sub-CUs. Os elementos de sintaxe para uma CU podem ser definidos de modo recursivo e podem depender de se a CU está dividida em sub-CUs. Se uma CU não estiver mais dividida, a CU é referida como uma folha de CU. Na presente revelação, quatro sub-CUs de uma folha de CU também serão referidos como CUs-folha mesmo se não houver divisão explícita da folha de CU original. Por exemplo, se uma CU de tamanho 16x16 não estiver mais partida, as quatro sub-CUs 8x8 também serão referidas como CUs-folha mesmo que a CU 16x16 nunca tivesse sido dividida.
[0045] Uma CU tem um propósito similar a um macrobloco do padrão H.264, exceto que uma CU não tem uma distinção de tamanho. Por exemplo, um bloco em árvore pode ser partido em quatro nós-filho (também referidos como sub- CUs), e cada nó-filho pode ser, por sua vez, ser um nó-pai e ser partido em outros quatro nós-filhos. Um nó-filho final não partido, referido como um nó-filho da árvore quadrática, compreende um nó de codificação, também referido como folha de CU. Os dados de sintaxe associados a um fluxo de bits codificado podem definir uma quantidade máxima de vezes que um bloco em árvore pode ser partido, referida como uma profundidade de CU máxima, e também pode definir um tamanho mínimo dos nós de codificação. Consequentemente, um fluxo de bits também pode definir uma menor unidade de codificação (SCU). A presente revelação usa o termo "bloco" para se referir a qualquer um dentre uma CU, uma PU ou uma TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macroblocos e sub-blocos dos mesmos em H.264/AVC).
[0046] Uma CU inclui um nó de codificação e unidades de previsão (PUs) e unidades de transformada (TUs) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e deve ter formato quadrado. O tamanho da CU pode variar de 8x8 pixels até o tamanho do bloco em árvore com um máximo de 64x64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Os modos de divisão podem diferir entre se a CU é codificada em salto ou de modo direto, codificada de modo em intraprevisão ou codificada de modo em interprevisão. As PUs podem ser particionadas para serem não quadradas em formato. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, a divisão da CU em uma ou mais TUs de acordo com uma árvore quadrática. Uma TU pode ser quadrada ou não quadrada (por exemplo, retangular) em formato.
[0047] O padrão HEVC prevê transformações de acordo com TUs, que podem ser diferentes para diferentes CUs. As TUs são dimensionadas tipicamente com base no tamanho de PUs dentro de uma CU dada definida por uma LCU particionada, embora esse possa nem sempre ser o caso. As TUs têm tipicamente o mesmo tamanho ou são menores que as PUs. Em alguns exemplos, as amostras residuais correspondentes a uma CU podem ser subdivididas em unidades menores com o uso de uma estrutura de árvore quadrática conhecida como "árvore quadrática residual" (QT). Os nós de folha da RQT podem ser referidos como unidades de transformada (TUs). Os valores de diferença de pixel associados às TUs podem ser transformados para produzir o coeficiente de transformada, que pode ser quantizado.
[0048] Uma folha de CU pode incluir uma ou mais unidades de previsão (PUs). Em geral, uma PU representa uma área espacial correspondente a toda ou a uma porção da CU correspondente, e pode incluir dados para recuperar uma amostra de referência para a PU. Além do mais, uma PU inclui dados relacionados a previsão. Por exemplo, quando a PU é codificada em intramodo, os dados para a PU podem ser incluídos em uma árvore quadrática residual (RQT), que podem incluir dados que descrevem um modo de intraprevisão para uma TU correspondente à PU. Como outro exemplo, quando a PU for codificada em intermodo, a PU pode incluir dados que definem um ou mais vetores de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de um quarto de pixel ou precisão de um oitavo de pixel), uma imagem de referência para a qual o vetor de movimento aponta e/ou uma lista de imagens de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0049] Uma folha de CU que tem uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). As unidades de transformada podem ser especificadas com o uso de uma RQT (também referida como uma estrutura de árvore quadrática de TU), conforme discutido acima. Por exemplo, um sinalizador partido pode indicar se uma folha de CU é partida em quatro unidades de transformada. Então, cada unidade de transformada pode ser ainda mais dividida em quatro sub-TUs. Quando uma TU não estiver mais partida, a mesma pode ser chamada de uma folha de TU. Em geral, para intracodificação, todas as folha de TUs que pertencem a uma folha de CU compartilham o mesmo modo de intraprevisão. Ou seja, o mesmo modo de intraprevisão é geralmente aplicado para calcular valores praticados para todas as TUs de uma folha de CU. Para a intracodificação, um codificador de vídeo pode calcular um valor residual para cada folha de TU com o uso do modo de intraprevisão, como uma diferença entre a porção da CU correspondente à TU e ao bloco original. Uma TU não está necessariamente limitada ao tamanho de uma PU. Dessa forma, as TUs podem ser maiores ou menores que uma PU. Para a intracodificação, uma PU pode ser colocada com uma folha de TU correspondentes para a mesma CU. Em alguns exemplos, o tamanho máximo de uma folha de TU pode corresponder ao tamanho da folha de CU correspondente.
[0050] Além do mais, as TUs das CUs-folha também podem estar associadas às estruturas de dados de árvore quadrática respectivas, referidas como árvores quadráticas residuais (RQTs). Ou seja, uma folha de CU pode incluir uma árvore quadrática que indica como a folha de CU é particionada em TUs. O nó de raiz de uma TU árvore quadrática geralmente corresponde a uma folha de CU, enquanto o nó de raiz de uma árvore quadrática de CU geralmente corresponde a um bloco em árvore (ou LCU). As TUs da RQT que não são partidas estão referidas como folha de TUs. Em geral, a presente revelação usa os termos CU e TU para se referir à folha de CU e à folha de TU, respectivamente, a não ser que notado de outro modo.
[0051] Uma sequência de vídeo inclui tipicamente uma série de quadros ou imagens de vídeo. Um grupo de imagens (GOP) geralmente compreende uma série de uma ou mais das imagens de vídeo. Uma GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, eu em outro lugar, que descreve um certo número de imagens incluídas no GOP. Cada pedaço de uma imagem pode incluir dados de sintaxe de pedaço que descrevem um modo de codificação para o respectivo pedaço. O codificador de vídeo 20 opera tipicamente em blocos de vídeo dentro de pedaços de vídeo individuais a fim de criptografar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixos ou variados, e podem diferir em tamanho de acordo com um padrão de codificação especificado.
[0052] Como um exemplo, o HM suporta uma previsão em vários tamanhos de PU. Presumindo-se que o tamanho de uma CU particular seja 2Nx2N, o HM suporta intraprevisão em tamanhos de PU de 2Nx2N ou xN e interprevisão em tamanhos simétricos de PU de 2Nx2N, 2NxN, Nx2N ou NxN. O HM também suporta a divisão assimétrica para interprevisão em tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de uma CU não é particionada, enquanto a outra direção é particionada em 25% e 75%. A porção da CU correspondente aos 25% de divisão é indicada por um "n" seguida por uma indicação de "Cima", "Baixo", "Esquerda" ou "Direita". Dessa forma, por exemplo, "2NxnU" se refere a uma CU de 2Nx2N que é particionado horizontalmente com uma PU de 2Nx0.5N no topo e uma PU de 2Nxl.5N no fundo.
[0053] Na presente revelação, "NxN" e "N por N" podem ser usados de modo intercambiável para se referir às dimensões de pixel de um bloco de vídeo em termos de dimensões horizontal e vertical, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (y = 16) e 16 pixels em uma direção horizontal (x = 16). De modo semelhante, um bloco NxN geralmente tem N pixels em uma direção vertical e N pixels em uma direção horizontal, em que N representa um valor de número inteiro não negativo. Os pixels em um bloco podem ser representados em fileiras e colunas. Além disso, os blocos não necessariamente têm a mesma quantidade de pixels tanto na direção horizontal quanto na direção vertical. Por exemplo, os blocos podem compreender NxM pixels, em que M não é necessariamente igual a N.
[0054] Após a codificação intrapreditiva ou interpreditiva com o uso das PUs de uma CU, o codificador de vídeo 20 pode calcular dados residuais para as TUs da CU. As PUs podem compreender dados de sintaxe que descrevem um método ou modo de geração de dados de pixel preditivos no domínio espacial (também referido como o domínio de pixels) e as TUs podem compreender coeficientes no domínio de transformada após a aplicação de uma transformada, por exemplo, uma transformada de seno discreta (DST), uma transformada de cosseno discreta (DCT), uma transformada de número inteiro, uma transformada de wavelet ou uma transformada conceitualmente similar de dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem não codificada e valores de previsão correspondentes às PUs. O codificador de vídeo 20 pode formar as TUs incluindo os dados residuais para a CU e, então, transformar as TUs para produzir o coeficiente de transformada para a CU.
[0055] Após quaisquer transformações para produzir o coeficiente de transformada, o codificador de vídeo 20 pode realizar a quantização do coeficiente de transformada. A quantização é um termo amplo destinado a ter seu significado comum mais amplo. Em uma modalidade, quantização se refere a um processo no qual os coeficientes de transformada são quantizados para reduzir possivelmente a quantidade de dados usados para representar os coeficientes, fornecendo compressão adicional. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. Por exemplo, um valor n-bit pode ser arredondado para baixo para um valor m-bit durante a quantização, em que n é maior que m.
[0056] Após a quantização, o codificador de vídeo pode varrer o coeficiente de transformada, produzindo um vetor monodimensional a partir da matriz bidimensional que inclui o coeficiente de transformada quantizado. A varredura pode ser atribuída para aplicar coeficientes de energia mais alta(e portanto frequência mais baixa) na frente da matriz e aplicar coeficientes de energia mais baixa (e portanto frequência mais alta) no verso da matriz. Em alguns exemplos, o codificador de vídeo 20 pode utilizar uma ordem de varredura predefinida para varrer o coeficiente de transformada quantizado para produzir o vetor serializado que pode ser codificado por entropia. Em outros exemplos, o codificador de vídeo 20 pode realizar uma varredura adaptativa. Após varrer o coeficiente de transformada quantizado para formar um vetor monodimensional, o codificador de vídeo 20 pode codificar por entropia o vetor monodimensional, por exemplo, de acordo com a codificação de comprimento variável adaptativa a contexto (CAVLC), codificação aritmética binária adaptativa a contexto (CABAC), codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação de entropia.O codificador de vídeo 20 também pode codificar por entropia elementos de sintaxe associados aos dados de vídeo codificados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0057] Para realizar a CABAC, o codificador de vídeo 20 pode atribuir um contexto dentro de um modelo de contexto a um símbolo a ser transmitido. O contexto pode se relacionar a, por exemplo, se valores vizinhos do símbolo são diferentes de zero ou não. Para realizar a CAVLC, o codificador de vídeo 20 pode selecionar um código de comprimento variável para um símbolo a ser transmitido. As palavras-código em VLC podem ser construídas de modo que códigos relativamente mais curtos correspondam a mais símbolos prováveis, enquanto códigos mais longos correspondem a símbolos menos prováveis. Desse modo, o uso de VLC pode conseguir uma economia de bits sobre, por exemplo, o uso de palavras-código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ter base em um contexto atribuído ao símbolo.
[0058] O criptógrafo 20 pode enviar adicionalmente os dados de sintaxe, como dados de sintaxe com base em bloco, dados de sintaxe com base em quadro e dados de sintaxe com base em GOP, para o decodificador de vídeo 30, por exemplo, em um cabeçalho de quadro, um cabeçalho de bloco, um cabeçalho de pedaço ou um cabeçalho de GOP. Os dados de sintaxe de GOP podem descrever vários quadros no respectivo GOP, e os dados de sintaxe de quadro podem indicar um modo de criptografia/previsão usado para criptografar o quadro correspondente.
CRIPTÓGRAFO DE VÍDEO
[0059] A Figura 2A é um diagrama de blocos que ilustra um exemplo de um criptógrafo de vídeo que pode implantar técnicas de acordo com aspectos descritos na presente revelação. O criptógrafo de vídeo 20 pode ser configurado para processar uma única camada de um fluxo de bit de vídeo, como para HEVC. Adicionalmente, o criptógrafo de vídeo 20 pode ser configurado para realizar qualquer uma ou todas as técnicas dessa revelação, incluindo, porém, sem limitação, os métodos de sinalização de profundidade de bit de ID de vista, sinalização de informações de taxa de bit e/ou informações de taxa de imagens no VPS e processos relacionados descritos em maiores detalhes acima e abaixo em relação às Figuras 4 a 6. Com um exemplo, a unidade de previsão intercamada 66 (quando fornecida) pode ser configurada para realizar qualquer uma ou todas as técnicas descritas na presente revelação. Entretanto, aspectos dessa revelação não são tão limitados. Em alguns exemplos, as técnicas descritas na presente revelação podem ser compartilhadas entre os diversos componentes de criptógrafo de vídeo 20. Em alguns exemplos, de modo adicional ou alternativo, um processador (não mostrado) pode ser configurado para realizar qualquer uma ou todas as técnicas descritas na presente revelação.
[0060] Para propósitos explicativos, a presente revelação descreve o criptógrafo de vídeo 20 no contexto de codificação de HEVC. No entanto, as técnicas dessa revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O criptógrafo 20 da Figura 2A ilustra uma única camada de um codec. No entanto, conforme será adicionalmente descrito em relação à Figura 2B, alguns ou todos os criptógrafos de vídeo 20 podem ser duplicados para processamento de acordo com um codec de múltiplas camadas.
[0061] O criptógrafo de vídeo 20 pode realizar intraprevisão, interprevisão e previsão intercamada (algumas vezes, chamada de codificação de intra-, inter- ou intercamada) de blocos de vídeo dentro de pedaços de vídeo. A intracodificação depende da previsão espacial para reduzir ou remover a redundância espacial no vídeo dentro de um certo quadro ou imagem de vídeo. A intercodificação tem base na previsão temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. A codificação intercamada depende da previsão com base em vídeo dentro de uma camada(s) diferente(s) dentro da mesma sequência de codificação de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre vários modos de codificação com base em espaço. Os intermodos, como previsão monodirecional (modo P) ou biprevisão (modo B), podem se referir a qualquer um dentre vários modos de codificação com base em tempo.
[0062] Conforme mostrado na Figura 2A, o criptógrafo de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser criptografado. No exemplo da Figura 2A, o criptógrafo de vídeo 20 inclui unidade de seleção de modo 40, memória de quadro de referência 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54 e unidade de codificação por entropia 56. A unidade de seleção de modo 40, por sua vez, inclui unidade de compensação de movimento 44, unidade de estimativa de movimento 42, unidade de intraprevisão 46, unidade de previsão intercamada 66, e unidade de divisão 48. A memória de quadro de referência 64 pode incluir um armazenador temporário decodificado. O armazenador temporário decodificado é um termo abrangente que tem seu significado ordinário e, em algumas modalidades, se refere a uma estrutura de dados de codec gerenciado de vídeo de quadros de referência.
[0063] Para o bloco de vídeo reconstrução, o criptógrafo de vídeo 20 também inclui unidade de quantização inversa 58, unidade de transformada inversa 60 e somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) também pode ser incluído para filtrar os limites de bloco para remover artefatos de característica de bloqueio provenientes de vídeo reconstruído. Caso desejado, o filtro de desbloqueio pode filtrar tipicamente o resultado do somador 62. Filtros adicionais (em circuito ou pós-circuito) também podem ser usados adicionalmente ao filtro de desbloqueio. Tais filtros não são mostrados para propósitos de brevidade mas, caso desejado, podem filtrar o resultado do somador 50 (como um filtro em circuito).
[0064] Durante o processo de criptografia, o criptógrafo de vídeo 20 recebe um quadro ou pedaço de vídeo a ser codificado. O quadro ou pedaço pode ser dividido em múltiplos blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de modo 44 realizam codificação interpreditiva do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer previsão temporal. A unidade de intraprevisão 46 pode realizar de modo alternativo a codificação intrapreditiva do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou pedaço que o bloco a ser codificado para fornecer previsão espacial. O criptógrafo de vídeo 20 pode realizar múltiplos passos de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0065] Além do mais, a unidade de divisão 48 pode dividir blocos de dados de vídeo em sub-blocos, com base na avaliação de esquemas de divisão anteriores em passos de codificação anteriores. Por exemplo, a unidade de divisão 48 pode dividir inicialmente um quadro ou pedaço em LCUs e dividir cada uma das LCUs em sub-CUs com base na análise de distorção de taxa (por exemplo, otimização de distorção de taxa). A unidade de seleção de modo 40 pode produzir adicionalmente uma estrutura de dados de árvore quadrática que indica a divisão de uma LCU em sub-CUs. As CUs de nó-folha da árvore quadrática podem incluir uma ou mais PUs e uma ou mais TUs.
[0066] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra, inter ou modo de previsão intercamada, por exemplo, com base em resultados de erro e fornece o bloco intra- ou intercodificado resultante para o somador 50 para gerar dados de bloco residuais e para o somador 62 para reconstruir o bloco criptografado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, como vetores de movimento, indicadores intramodo, informações de divisão e outras tais informações de sintaxe, para a unidade de criptografia por entropia 56.
[0067] A unidade de estimativa de movimento 42 e a unidade de compensação de modo 44 podem ser altamente integradas, mas são ilustradas separadamente para propósitos de conceito. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estima o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro ou imagem de vídeo atual em relação a um bloco de previsão dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual que está codificado dentro do quadro atual (ou outra unidade codificada). Um bloco de previsão é um bloco que se encontra em correspondência muito próxima ao bloco a ser codificado, em termos de diferença de pixels, que pode ser determinado pelo somatório da diferença absoluta (SAD), somatório da diferença quadrada (SSD) ou outras medidas de diferença. Em alguns exemplos, o criptógrafo de vídeo pode calcular valores para posições de pixel subinteiro de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o criptógrafo de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel ou outras posições fracionadas de pixel da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação a todas as posições de pixel e posições fracionadas de pixel e emitir um vetor de movimento com precisão fracionada de pixel.
[0068] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em um pedaço intercodificada pela comparação da posição da PU em relação à posição de um bloco de previsão de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0) ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação por entropia 56 e a unidade de compensação de modo 44.
[0069] A compensação de movimento, realizada pela unidade de compensação de modo 44, pode envolver obter ou gerar o bloco de previsão com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. A unidade de estimativa de movimento 42 e a unidade de compensação de modo 44 podem ser integradas de modo funcional, em alguns exemplos. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de modo 44 pode localizar o bloco de previsão ao qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco de previsão dos valores de pixel do bloco de vídeo atual que está codificado, o que forma a diferença de valores de pixels, conforme discutido abaixo. Em algumas modalidades, a unidade de estimativa de movimento 42 pode realizar estimativa de movimento em relação aos componentes de luma e a unidade de compensação de modo 44 pode usar vetores de movimento calculados com base nos componentes de luma tanto para os componentes de croma quanto para os componentes de luma. A unidade de seleção de modo 40 pode gerar elementos de sintaxe associados aos blocos de vídeo e o pedaço de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo do pedaço de vídeo.
[0070] A unidade de intraprevisão 46 pode intraprever ou calcular um bloco atual, como uma alternativa à interprevisão realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de modo 44, conforme descrito acima. Em particular, a unidade de intraprevisão 46 pode determinar um modo de intraprevisão para usar para codificar um bloco atual. Em alguns exemplos, a unidade de intraprevisão 46 pode criptografar um bloco atual com o uso de diversos modos de intraprevisão, por exemplo, durante passos de criptografia separados, e a unidade de intraprevisão 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de intraprevisão apropriado para usar a partir dos modos testados.
[0071] Por exemplo, a unidade de intraprevisão 46 pode calcular valores de distorção de taxa com o uso de uma análise de distorção de taxa para os vários modos de intraprevisão testados e selecionar o modo de intraprevisão que tem as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco criptografado e um bloco original não criptografado que foi criptografado para produzir o bloco criptografado, bem como uma taxa de bits (ou seja, diversos bits) usada para produzir o bloco criptografado. A unidade de intraprevisão 46 pode calcular razões a partir de distorções e taxas para os vários blocos criptografados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0072] Após selecionar um modo de intraprevisão para um bloco, a unidade de intraprevisão 46 pode fornecer informações que indicam o modo de intraprevisão selecionado para o bloco em relação à unidade de codificação por entropia 56. A unidade de criptografia por entropia 56 pode criptografar as informações que indicam o modo de intraprevisão selecionado. O criptógrafo de vídeo 20 pode incluir dados de configuração no fluxo de bits transmitido, os quais podem incluir uma pluralidade de tabelas de índices de modo de intraprevisão e uma pluralidade de tabelas de índices de modo de intraprevisão modificados (também referidas como tabelas de mapeamento de palavras-código), as definições de contextos de criptografia para diversos blocos, e indicações de um modo de intraprevisão mais provável, uma tabela de índices de modo de intraprevisão e uma tabela de índices de modo de intraprevisão modificados para usar para cada um dos contextos.
[0073] O criptógrafo de vídeo 20 pode incluir uma unidade de previsão intercamada 66. A unidade de previsão intercamada 66 é 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 SVC (por exemplo, uma base ou camada de referência). Tal previsão pode ser chamada de previsão intercamada. A unidade de previsão intercamada 66 utiliza métodos de previsão para reduzir redundância de intercamada, aprimorando, desse modo, a eficácia de codificação, e reduzindo exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão de intercamada, previsão de movimento intercamada e previsão residual intercamada. A intraprevisão de intercamada usa a reconstrução de blocos colocalizados na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de movimento intercamada usa informações de movimento da camada-base para prever 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. Quando a camada-base e de aprimoramento têm resoluções espaciais diferentes, escalonamento de vetor de movimento espacial e/ou mapeamento de posição intercamada com o uso de uma função de escalonamento temporal podem ser realizados pela unidade de previsão intercamada 66, conforme descrito em maiores detalhes abaixo.
[0074] O criptógrafo de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de previsão da unidade de seleção de modo 40 a partir do bloco de vídeo original que está codificado. O somador 50 representa o componente ou os componentes que realizam essa operação de subtração. A unidade de processamento de transformada 52 aplica uma transformada, como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente similar, ao bloco residual, o que produz um bloco de vídeo que compreende valores de coeficiente de transformada residuais. A unidade de processamento de transformada 52 pode realizar outras transformadas que sejam conceitualmente similares à DCT. Por exemplo, transformadas de seno discretas (DST), transformadas de wavelet, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformada também podem ser usadas.
[0075] A unidade de processamento de transformada 52 pode aplicar a transformada ao bloco residual, produzir um bloco de coeficientes de transformada residual. A transformada pode converter as informações residuais provenientes de um domínio de valor de pixel para um domínio de transformada, como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar o coeficiente de transformada resultante para a unidade de quantização 54. A unidade de quantização 54 quantiza o coeficiente de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54, então, pode realizar uma varredura da matriz, incluindo o coeficiente de transformada quantizado. Alternativamente, a unidade de codificação por entropia 56 pode realizar a varredura.
[0076] Após a quantização, a unidade de criptografia por entropia 56 criptografa por entropia o coeficiente de transformada quantizado. Por exemplo, uma unidade de criptografia por entropia 56 pode realizar codificação de comprimento variável adaptativa a contexto (CAVLC), codificação aritmética binária adaptativa a contexto (CABAC), codificação aritmética binária adaptativa a contexto com base em sintaxe (SBAC), codificação por Entropia de Particionamento de Intervalo de Probabilidade (PIPE) ou outra técnica de codificação de entropia. No caso de codificação de entropia com base em contexto, o contexto pode ter base em blocos vizinhos. Após a codificação de entropia pela unidade de criptografia por entropia 56, o fluxo de bits criptografado pode ser transmitido para outro dispositivo (por exemplo, o decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[0077] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixels, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco de previsão de um dos quadros de memória de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel subinteiros para uso na estimativa de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de previsão compensado de movimento produzido pela unidade de compensação de modo 44 para produzir um bloco de vídeo reconstruído para o armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimativa de movimento 42 e pela unidade de compensação de modo 44 como um bloco de referência para intercodifcar um bloco em um quadro de vídeo subsequente.
CRIPTÓGRAFO DE VÍDEO DE MÚLTIPLAS CAMADAS
[0078] A Figura 2B é um diagrama de blocos que ilustra um exemplo de um criptógrafo de vídeo de múltiplas camadas 21 que pode implantar técnicas de acordo com aspectos descritos na presente revelação. O criptógrafo de vídeo 21 pode ser configurado para processar quadros de vídeo de múltiplas camadas, como para SHVC e codificação de múltiplas vistas. O criptógrafo de vídeo 21 pode ser configurado para realizar qualquer ou todas as técnicas dessa revelação.
[0079] O criptógrafo de vídeo 21 inclui um criptógrafo de vídeo 20A e criptógrafo de vídeo 20B, em que cada um dos quais pode ser configurado como o criptógrafo de vídeo 20 da Figura 2A e pode realizar as funções descritas acima em relação ao criptógrafo de vídeo 20. Adicionalmente, conforme indicado pelo reuso de números de referência, os criptógrafos de vídeo 20A e 20B podem incluir pelo menos alguns dos sistemas e subsistemas como o criptógrafo de vídeo 20. Embora o criptógrafo de vídeo 21 seja ilustrado incluindo dois criptógrafos de vídeo 20A e 20B, o criptógrafo de vídeo 21 não é limitado a isso, e pode incluir qualquer número de camadas de criptógrafo de vídeo 20. Em algumas modalidades, o criptógrafo de vídeo 21 pode incluir um criptógrafo de vídeo 20 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou criptografada por um criptógrafo de vídeo que inclui cinco camadas de criptógrafo. Em algumas modalidades, o criptógrafo de vídeo 21 pode incluir mais camadas de criptógrafo que quadros em uma unidade de acesso. Em tais casos, algumas das camadas de criptógrafo de vídeo podem estar inativas quando processam algumas unidades de acesso.
[0080] Além dos criptógrafos de vídeo 20A e 20B, o criptógrafo de vídeo 21 pode incluir uma unidade de reamostragem 90. A unidade de reamostragem 90 pode, em alguns casos, aumentar a resolução de uma camada-base de um quadro de vídeo recebido para, por exemplo, criar uma camada de aprimoramento. A unidade de reamostragem 90 pode aumentar a resolução de informações particulares associadas à camada-base recebida de um quadro, mas não outras informações. Por exemplo, a unidade de reamostragem 90 pode aumentar a resolução do tamanho espacial ou número de pixels da camada-base, mas o número de pedaços ou da contagem de ordem de imagem pode permanecer constante. Em alguns casos, a unidade de reamostragem 90 pode não processar o vídeo recebido e/ou pode ser opcional. Por exemplo, em alguns casos, a unidade de seleção de modo 40 pode realizar aumento de resolução. Em algumas modalidades, a unidade de reamostragem 90 é configurada para aumentar a resolução de uma camada e reorganizar, redefinir, modificar ou ajustar um ou mais pedaços para cumprir com um conjunto de regras de limite de pedaço e/ou regras de varredura de rastreamento. Embora primeiramente descrita como aumento de resolução de uma camada-base ou uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode reduzir a resolução de uma camada. Por exemplo, se durante a difusão de um vídeo a largura de banda for reduzida, um quadro pode ter resolução reduzida em vez de aumentada. A unidade de reamostragem 90 também pode ser adicionalmente configurada para realizar operações de recorte e/ou preenchimento.
[0081] A unidade de reamostragem 90 pode ser configurada para receber uma imagem ou quadro (ou informações de imagem associadas à imagem) do armazenador temporário decodificado 114 do criptógrafo de camada inferior (por exemplo, o criptógrafo de vídeo 20A) e para aumentar uma resolução da imagem (ou as informações de imagem recebidas). Essa imagem de resolução aumentada pode, então, ser fornecida à unidade de seleção de modo 40 de um criptógrafo de camada superior (por exemplo, o criptógrafo de vídeo 20B) configurado para criptografar uma imagem na mesma unidade de acesso como o criptógrafo de camada inferior. Em alguns casos, o criptógrafo de camada superior é uma camada removida do criptógrafo de camada inferior. Em outros casos, podem haver um ou mais criptógrafos de camada superior entre os criptógrafos de vídeo de camada 0 e o criptógrafo de camada 1 da Figura 2B.
[0082] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou ignorada. Em tais casos, a imagem do armazenador temporário decodificado 64 do criptógrafo de vídeo 20A pode ser fornecido diretamente ou pelo menos sem ser fornecido à unidade de reamostragem 90, à unidade de seleção de modo 40 do criptógrafo de vídeo 20B. Por exemplo, se dados de vídeo fornecidos ao criptógrafo de vídeo 20B e à imagem de referência do armazenador temporário decodificado 64 do criptógrafo de vídeo 20A forem do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida ao criptógrafo de vídeo 20B sem qualquer reamostragem.
[0083] Em algumas modalidades, o criptógrafo de vídeo 21 diminui a resolução de dados de vídeo a serem fornecidos ao criptógrafo de camada inferior com o uso da unidade de redução de resolução 94 antes de fornecer os dados de vídeo ao criptógrafo de vídeo 20A. De modo alternativo, a unidade de redução de resolução 94 pode ser uma unidade de reamostragem 90 com capacidade para aumentar a resolução ou reduzir a resolução dos dados de vídeo. Em ainda outras modalidades, a unidade de redução de resolução 94 pode ser omitida.
[0084] Conforme ilustrado na Figura 2B, o criptógrafo de vídeo 21 pode incluir adicionalmente um multiplexador 98 ou mux. O mux 98 pode emitir um fluxo de bit combinado a partir do criptógrafo de vídeo 21. O fluxo de bit combinado pode ser criado assumindo-se um fluxo de bit de cada um dos criptógrafos de vídeo 20A e 20B e alternando qual fluxo de bit é emitido em um tempo determinado. Embora em alguns casos os bits dos dois fluxos de bit (ou mais no caso de mais de duas camadas de criptógrafo de vídeo) possam ser alternados em um bit de cada vez, em muitos casos os fluxos de bit são combinados de modo diferente. Por exemplo, o fluxo de bit de saída pode ser criado alternando-se o fluxo de bit ao selecionar um bloco de cada vez. Em outro exemplo, o fluxo de bit de saída pode ser criado emitindo-se uma não razão - 1 : 1 de blocos de cada um dos criptógrafos de vídeo 20A e 20B. Por exemplo, dois blocos podem ser emitidos a partir do criptógrafo de vídeo 20B para cada saída de bloco do criptógrafo de vídeo 20A. Em algumas modalidades, o fluxo de saída do mux 98 pode ser pré-programado. Em outras modalidades, o mux 98 pode combinar os fluxos de bit dos criptógrafos de vídeo 20A, 20B com base em um sinal de controle recebido de um sistema externo ao criptógrafo de vídeo 21, como a partir de um processador no dispositivo de fonte 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bit de um vídeo da fonte de vídeo 18, com base em uma largura de banda do canal 16, com base em a subinscrição associada a um usuário (por exemplo, uma subinscrição paga versus uma subinscrição grátis) ou com base em qualquer outro fator para determinar uma saída de resolução desejada do criptógrafo de vídeo 21.
DECODIFICADOR DE VÍDEO
[0085] A Figura 3 A é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implantar técnicas de acordo com aspectos descritos na presente revelação. O decodificador de vídeo 30 pode ser configurado para processar uma única camada de um fluxo de bit de vídeo, como para HEVC. Adicionalmente, o decodificador de vídeo 30 pode ser configurado para realizar qualquer uma ou todas as técnicas dessa revelação, incluindo porém, sem limitação, os métodos de sinalização de profundidade de bit de ID de vista e sinalização de informações de taxa de bit e/ou informações de taxa de imagens no VPS, descrito em maiores detalhes acima e abaixo em relação às Figuras 4 a 6. Com um exemplo, a unidade de previsão intercamada 75 pode ser configurada para realizar qualquer uma ou todas as técnicas descritas na presente revelação. Entretanto, aspectos dessa revelação não são tão limitados. 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, de modo adicional ou alternativo, um processador (não mostrado) pode ser configurado para realizar qualquer uma ou todas as técnicas descritas na presente revelação.
[0086] Para propósitos explicativos, a presente revelação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. No entanto, as técnicas dessa revelação podem ser aplicáveis a outros padrões ou métodos de codificação. O decodificador 30 da Figura 3A ilustra uma única camada de um codec. No entanto, conforme será adicionalmente descrito em relação à Figura 3B, alguns ou todos os decodificadores de vídeo 30 podem ser duplicados para processamento de acordo com um codec de múltiplas camadas.
[0087] No exemplo da Figura 3 A, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, unidade de compensação de movimento 72, unidade de intraprevisão 74, unidade de previsão intercamada 75, unidade de quantização inversa 76, unidade de transformação inversa 78, memória de quadro de referência 82 e somador 80. Em algumas modalidades, a unidade de compensação de movimento 72 e/ou a unidade de intraprevisão 74 podem ser configuradas para realizar previsão intercamada, no qual caso a unidade de previsão intercamada 75 pode ser omitida. O decodificador de vídeo 30 pode, em alguns exemplos, realizar um passo de decodificação geralmente recíproco ao passo de criptografia descrito em relação ao codificador de vídeo 20 (Figura 2A). A unidade de compensação de movimento 72 pode gerar dados de previsão com base em vetores de movimento recebidos a partir da unidade de decodificação e entropia 70, enquanto a unidade de intraprevisão 74 pode gerar dados de previsão com base em indicadores de modo de intraprevisão recebidos a partir da unidade de decodificação e entropia 70. A memória de quadro de referência 82 pode incluir um armazenador temporário decodificado. O armazenador temporário decodificado é um termo abrangente que tem seu significado ordinário e, em algumas modalidades, se refere a uma estrutura de dados de codec gerenciado de vídeo de quadros de referência.
[0088] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo criptografado que representa blocos de vídeo de um pedaço de vídeo criptografado e elementos de sintaxe associados provenientes do criptógrafo de vídeo 20. A unidade de decodificação de entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de intraprevisão e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de modo 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de pedaço de vídeo e/ou no nível de bloco de vídeo.
[0089] Quando o pedaço de vídeo for codificado como um pedaço intracodificado (I), a unidade de intraprevisão 74 pode gerar dados de previsão para um bloco de vídeo do pedaço de vídeo atual com base em um modo de intraprevisão sinalizado e dados provenientes de blocos decodificados anteriormente do quadro ou imagem atual. Quando o quadro de vídeo for codificado como um pedaço intercodificado (por exemplo, B, P ou GPB), a unidade de compensação de modo 72 produz blocos preditivos para um bloco de vídeo do pedaço de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação e entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, a Lista 0 e a Lista 1, com o uso de técnicas de construção padrão com base em imagens de referência armazenadas na memória de quadro de referência 82.
[0090] A unidade de compensação de movimento 72 determina informações de previsão para um bloco de vídeo do pedaço de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe e usa as informações de previsão para produzir os blocos preditivos para o bloco de vídeo atual em decodificação. Por exemplo, a unidade de compensação de modo 72 usa uma parte dos elementos de sintaxe recebidos para determinar um modo de previsão (por exemplo, intra- ou interprevisão) usado para codificar os blocos de vídeo da pedaço de vídeo, um tipo de pedaço de interprevisão (por exemplo, pedaço B, pedaço P ou pedaço GPB), informações de construção para um ou mais dentre as listas de imagens de referência para o pedaço, vetores de movimento para cada bloco de vídeo intercodificado do pedaço, situações de interprevisão para cada bloco de vídeo intercodificado do pedaço e outras informações para decodificar os blocos de vídeo no pedaço de vídeo atual.
[0091] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 por usar filtros de interpolação conforme usado pelo criptógrafo de vídeo 20 durante a criptografia dos blocos de vídeo para calcular valores interpolados para pixels sub-inteiros de blocos de referência. Nesse caso, a unidade de compensação de modo 72 pode determinar os filtros de interpolação usados pelo criptógrafo de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0092] O decodificador de vídeo 30 também pode incluir uma unidade de previsão intercamada 75. A unidade de previsão intercamada 75 é 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 SVC (por exemplo, uma base ou camada de referência). Tal previsão pode ser chamada de previsão intercamada.A unidade de previsão intercamada 75 utiliza métodos de previsão para reduzir redundância de intercamada, aprimorando, desse modo, a eficácia de codificação, e reduzindo exigências de recurso computacional. Alguns exemplos de previsão intercamada incluem intraprevisão de intercamada, previsão de movimento intercamada e previsão residual intercamada. A intraprevisão de intercamada usa a reconstrução de blocos co-localizados na camada-base para prever o bloco atual na camada de aprimoramento. A previsão de movimento intercamada usa informações de movimento da camada-base para prever 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. Quando as camadas-base e de aprimoramento têm resoluções espaciais diferentes, escalonamento de vetor de movimento espacial e/ou mapeamento de posição intercamada podem ser realizados pela unidade de previsão intercamada 75 com o uso de uma função de escalonamento temporal, conforme descrito em maiores detalhes abaixo.
[0093] A unidade de quantização inversa 76 quantiza de modo inverso, por exemplo, de-quantiza, o coeficiente de transformada quantizado fornecido no fluxo de bits e decodificado pela unidade de decodificação e entropia 70. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização QPY calculado pelo decodificador de vídeo 30 para cada bloco de vídeo no pedaço de vídeo para determinar um grau de quantização e, de modo similar, um grau de quantização inversa que deve ser aplicado.
[0094] A unidade de transformada inversa 78 aplica uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, ao coeficiente de transformada a fim de produzir blocos residuais no domínio de pixels.
[0095] Após a unidade de compensação de modo 72 gerar o bloco de previsão para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30 forma um bloco de vídeo decodificado somando-se os blocos residuais provenientes da unidade de transformada inversa 78 com os blocos preditivos correspondentes gerados pela unidade de compensação de modo 72. O somador 90 representa o componente ou os componentes que realizam essa operação de soma. Caso desejado, um filtro de desbloqueio também pode ser aplicado para filtrar os blocos decodificados a fim de remover os artefatos de característica de bloqueio. Outros filtros em circuito (tanto no circuito de codificação quanto após o circuito de codificação) também podem ser usados para suavizar as transições de pixel, ou, de outro modo, melhorar a qualidade de vídeo. Os blocos de vídeo decodificados em um quadro ou imagem dados são, então, armazenados na memória de quadro de referência 82, que armazena imagens de referência usadas para a composição de movimento subsequente. A memória de quadro de referência 82 também armazena o vídeo decodificado para apresentação posterior em um dispositivo de exibição, como o dispositivo de exibição 32 da Figura 1.
DECODIFICADOR DE MÚLTIPLAS CAMADAS
[0096] A Figura 3B é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo de múltiplas camadas 31 que pode implantar técnicas de acordo com aspectos descritos na presente revelação. O decodificador de vídeo 31 pode ser configurado para processar quadros de vídeo de múltiplas camadas, como para SHVC e codificação de múltiplas vistas. Adicionalmente, o decodificador de vídeo 31 pode ser configurado para realizar qualquer uma ou todas as técnicas dessa revelação.
[0097] O decodificador de vídeo 31 inclui um decodificador de vídeo 30A e um decodificador de vídeo 30B, em que cada um dos quais pode ser configurado como o decodificador de vídeo 30 da Figura 3 A e pode realizar as funções descritas acima em relação ao decodificador de vídeo 30. Adicionalmente, conforme indicado pelo reuso de números de referência, os decodificadores de vídeo 30A e 30B podem incluir pelo menos alguns dos sistemas e subsistemas como o decodificador de vídeo 30. Embora o decodificador de vídeo 31 seja ilustrado incluindo dois decodificadores de vídeo 30A e 30B, o decodificador de vídeo 31 não é limitado a tais e pode incluir qualquer número de camadas de decodificador de vídeo 30. Em algumas modalidades, o decodificador de vídeo 31 pode incluir um decodificador de vídeo 30 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas modalidades, o decodificador de vídeo 31 pode incluir mais camadas de decodificador que quadros em uma unidade de acesso. Em tais casos, algumas das camadas de decodificador de vídeo podem estar inativas quando processam algumas unidades de acesso.
[0098] Além dos decodificadores de vídeo 30A e 30B, o decodificador de vídeo 31 pode incluir uma unidade de aumento de resolução 92. Em algumas modalidades, a unidade de aumento de resolução 92 pode aumentar a resolução de uma camada-base de um quadro de vídeo recebido para criar uma camada aprimorada a ser adicionada à lista de imagens de referência para o quadro ou unidade de acesso. Essa camada aprimorada pode ser armazenada na memória de quadro de referência 82 (por exemplo, em seu armazenador temporário decodificado, etc.). Em algumas modalidades, a unidade de aumento de resolução 92 pode incluir algumas ou todas as modalidades descritas em relação à unidade de reamostragem 90 da Figura 2B. Em algumas modalidades, a unidade de aumento de resolução 92 é configurada para aumentar a resolução de uma camada e reorganizar, redefinir, modificar ou ajustar um ou mais pedaços para cumprir com um conjunto de regras de limite de pedaço e/ou regras de varredura de rastreamento. Em alguns casos, a unidade de aumento de resolução 92 pode ser uma unidade de reamostragem configurada para aumentar uma resolução e/ou reduzir a resolução de uma camada de um quadro de vídeo recebido.
[0099] A unidade de aumento de resolução 92 pode ser configurada para receber uma imagem ou quadro (ou informações de imagens associadas à imagem) do armazenador temporário decodificado 82 do decodificador de camada inferior (por exemplo, o decodificador de vídeo 30A) e para aumentar a resolução da imagem (ou as informações de imagem recebidas). Essa imagem de resolução aumentada pode, então, ser fornecida à unidade de previsão intercamada 75 de um decodificador de camada superior (por exemplo, o decodificador de vídeo 30B) configurado para decodificar uma imagem na mesma unidade de acesso que o decodificador de camada inferior. Em alguns casos, o decodificador de camada superior é uma camada removida do decodificador de camada inferior. Em outros casos, pode haver um ou mais decodificadors de camada superior entre o decodificador de camada 0 e o decodificador de camada 1 da Figura 3B.
[00100] Em alguns casos, a unidade de aumento de resolução 92 pode ser omitida ou ignorada. Em tais casos, a imagem do armazenador temporário decodificado 82 do decodificador de vídeo 30A pode ser fornecida diretamente, ou pelo menos sem ser fornecida à unidade de aumento de resolução 92, à unidade de previsão intercamada 75 do decodificador de vídeo 30B. Por exemplo, se dados de vídeo fornecidos ao decodificador de vídeo 30B e a imagem de referência do armazenador temporário decodificado 82 do decodificador de vídeo 30A são do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida ao decodificador de vídeo 30B sem aumentar a resolução. Adicionalmente, em algumas modalidades, a unidade de aumento de resolução 92 pode ser uma unidade de reamostragem 90 configurada para aumentar uma resolução ou reduzir a resolução de uma imagem de referência recebida do armazenador temporário decodificado 82 do decodificador de vídeo 30A.
[00101] Conforme ilustrado na Figura 3B, o decodificador de vídeo 31 pode incluir adicionalmente um demultiplexador 99 ou demux. O demux 99 pode dividir um fluxo de bit de vídeo criptografado em múltiplos fluxos de bit com cada saída de fluxo de bit pelo demux 99 que é fornecido para um decodificador de vídeo diferente 30A e 30B. Os múltiplos fluxos de bit podem ser criados recebendo-se um fluxo de bit e cada um dos decodificadores de vídeo 30A e 30B recebe uma porção do fluxo de bit em um determinado momento. Embora em alguns casos os bits do fluxo de bit recebido no demux 99 possam ser alternados em um bit de cada vez entre cada um dos decodificadores de vídeo (por exemplo, decodificadores de vídeo 30A e 30B no exemplo da Figura 3B), em muitos casos, o fluxo de bit é dividido de modo diferente. Por exemplo, o fluxo de bit pode ser dividido alternando-se qual decodificador de vídeo recebe o fluxo de bit em um bloco de cada vez. Em outro exemplo, o fluxo de bit pode ser dividido por uma razão de não -1 : 1 de blocos para cada um dos decodificadores de vídeo 30A e 30B. Por exemplo, fois 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 bit pelo he demux 99 pode ser pré-programada. Em outras modalidades, o demux 99 pode dividir o fluxo de bit com base em um sinal de controle recebido de um sistema externo ao decodificador de vídeo 31, como a partir de um processador no dispositivo de destino 14. O sinal de controle pode ser gerado com base na resolução ou taxa de bit de um vídeo da interface de entrada 28, com base em uma largura de banda do canal 16, com base em uma subinscrição associada a um usuário (por exemplo, uma subinscrição paga versus uma subinscrição grátis) ou com base em qualquer outro fator para determinar uma resolução obtenível pelo decodificador de vídeo 31.
SINALIZAÇÃO DE PROFUNDIDADE DE BIT DE ID DE VISTA E SINALIZAÇÃO DE INFORMAÇÕES DE TAXA DE BIT E/OU INFORMAÇÕES DE TAXA DE IMAGENS EM VPS
[00102] Em versões anteriores de MV-HEVC e SHVC (por exemplo, Rascunho de Trabalho 2), a ID de vista de uma camada foi sinalizada com o uso de um número fixo de bits. Por exemplo, as versões anteriores de SHVC usaram 10 bits para sinalizar a ID de vista, independentemente de quantas vistas estavam disponíveis para uma camada. No entanto, com o uso de uma profundidade de bit fixa para sinalizar a ID de vista pode levar à ineficácia, especialmente, quando o número de vistas disponível é pequeno (por exemplo, 1 a 4 vistas). Usar uma profundidade de bit fixa de 10 bits pode permitir sinalização de até 1.024 (210) vistas para uma camada, mas, na maior parte dos casos, o número de vistas total para uma camada é muito menor que essa.
[00103] Adicionalmente, em versões anteriores de MV-HEVC e SHVC, a taxa de bit e informações de taxa de imagens é sinalizada e/ou processada para cada camada e cada subcamada de cada conjunto de camada. Para cada conjunto de camada, a estrutura de sintaxe que inclui a taxa de bit e informações de taxa de imagens (por exemplo, bit_rate_pic_rate()) é sinalizada. Para cada subcamada de cada conjunto de camada, um respectivo sinalizador que indica se as informações de taxa de bit existem é sinalizado e um respectivo sinalizador que indica se as informações de taxa de imagens existem é sinalizado. Esse processo é realizado independentemente de se ou não quaisquer informações de taxa de bit e/ou informações de taxa de imagens existem para quaisquer conjuntos de camada ou subcamadas. Por exemplo, 0 é sinalizado como o valor de um sinalizador para cada conjunto de camada e cada respetiva subcamada a fim de indicar que não há informações de taxa de bit e/ou informações de taxa de imagens para todos os conjuntos de camada e subcamadas. Isso pode levar à ineficácia e sinalização desnecessária e/ou processamento, por exemplo, visto que podem haver muitos conjuntos de camada e muitas subcamadas para os conjuntos de camada.
[00104] A fim de abordar esses e outros desafios, as técnicas da presente revelação podem habilitar a sinalização da profundidade de bit da ID de vista e a sinalização do valor da ID de vista com o uso da profundidade de bit sinalizada. Por exemplo, se apenas 2 vistas são usadas, a profundidade de bit da ID de vista pode ser 1 bit e o valor da ID de vista pode ser sinalizado com o uso de 1 bit. Se 3 vistas são usadas, a profundidade de bit da ID de vista pode ser 2 bits e o valor da he ID de vista pode ser sinalizada com o uso de 2 bits. A profundidade de bit da ID de vista pode ser variável (por exemplo, entre 1 e 16 bits). Dessa maneira, a ID de vista pode ser sinalizada de modo mais eficaz reduzindo-se o número de bits usados na sinalização do valor da ID de vista.
[00105] As técnicas da presente revelação podem habilitar a sinalização de informações de taxa de bit e/ou informações de taxa de imagens no VPS. Por exemplo, as técnicas podem indicar se qualquer conjunto de camada e/ou qualquer subcamada de um conjunto de camada tem informações de taxa de bit e/ou informações de taxa de imagens. Em uma modalidade, as técnicas podem sinalizar um sinalizador global no VPS que indica se informações de taxa de bit existem para quaisquer conjuntos de camada e/ou subcamadas e signalizar um sinalizador global no VPS que indica se informações de taxa de imagens existem para quaisquer conjuntos de camada e/ou subcamadas. Ao incluir os sinalizadores globais no VPS, a estrutura de sintaxe de taxa de imagens e taxa de bit podem ser sinalizadas e/ou acessadas apenas quando os sinalizadores globais indicam que informações de taxa de bit e/ou informações de taxa de imagens existem para pelo menos um conjunto de camada ou pelo menos uma subcamada. Se os sinalizadores globais indicam que informações de taxa de bit e/ou informações de taxa de imagens não existem para quaisquer camadas, a estrutura de sintaxe de taxa de imagens e a taxa de bit não precisam ser sinalizadas e/ou acessadas. Além disso, os sinalizadores globais podem permitir o processamento separado de informações de taxa de bit e informações de taxa de imagens de uma maneira eficaz. Se o sinalizador global para informações de taxa de bit indicar que não há informações de taxa de bit, o sinalizador para informações de taxa de bit para uma subcamada não precisa ser sinalizado e/ou processado. De modo similar, se o sinalizador global para informações de taxa de imagens indicar que não há informações de taxa de imagens para uma subcamada, o sinalizador para informações de taxa de imagens para uma subcamada não precisa ser sinalizado e/ou processado. Embora anteriormente também fosse possível para sinalizar apenas uma das informações de taxa de bit ou das informações de taxa de imagens, sinalização e processamento de múltiplos sinalizadores individuais foram necessários: um sinalizador para as informações de taxa de bit para cada subcamada de cada conjunto de camada e um sinalizador para as informações de taxa de imagens para cada subcamada de cada conjunto de camada.
[00106] Diversos termos usados durante toda a presente revelação são termos amplos que têm seu significado comum. Além disso, em algumas modalidades, certos termos se referem aos conceitos de vídeo a seguir. Uma imagem pode se referir a uma imagem de vídeo conforme esse termo é usado em padrões atuais (por exemplo, HEVC, SHVC, MV-HEVC, etc.). Um conjunto de parâmetros de vídeo (VPS) pode se referir a qualquer conjunto de parâmetros que se aplicam de modo global a múltiplas camadas e através de uma sequência de unidades de acesso. As informações de aprimoramento suplementares (SEI) podem se referir a quaisquer informações que não são necessariamente exigidas para decodificação correta de imagens em um fluxo de bit de conformação, mas é útil para experiência de usuário aprimorada (por exemplo, para auxiliar a aprimorar a qualidade de vídeo no qual há erro de transmissão, etc.). Um identificador de vista (ID) pode se referir a um identificador de uma vista (representação de uma câmera) ou um sinal háptico (por exemplo, representação de um sensor háptico). A negociação de sessão pode se referir a capacidade de troca, oferta de resposta, etc. As técnicas dessa revelação também podem se aplicar a características de sinalização de fluxo de bit além de taxa de bit e taxa de imagens, como os períodos de acesso aleatório, o número de imagens codificadas de cada tipo (intracodificados, imagens previstas unidirecionais, biprevistas, etc.) e assim por diante. Em algumas modalidades, o hardware de computação pode incluir um ou mais dispositivos de computação que compreendem hardware de computador.
SINALIZAÇÃO DE PROFUNDIDADE DE BIT DE ID DE VISTA
[00107] Conforme explicado acima, a ID de vista de uma camada pode ser sinalizada com o uso de uma profundidade de bit variável. Em uma modalidade, a profundidade de bit pode ser variável visto que a profundidade de bit pode ser selecionada apropriadamente, por exemplo, com base no número de vistas a serem sinalizadas. Em certas modalidades, a profundidade de bit é sinalizada no VPS. Em uma modalidade, a sintaxe vps_extension() e a semântica nas versões anteriores de MV- HEVC e SHVC podem ser alteradas conforme indicado em itálico. Tais alterações podem ser alterações do método em JCT3V-D0196. O número de bits usado para sinalizar IDs de vista pode ser ajustado apropriadamente através da sinalização do comprimento dos valores de ID de vista viewidval em vista de viewidlenminus1.
Figure img0001
Figure img0002
Figure img0003
Os diversos elementos de sintaxe ou variáveis acima podem ser definidos como a seguir: • scalability_mask_flag[i] igual a 1 indica que elementos de sintaxe dimensionados que correspondem à dimensão de escalabilidade i-th na Tabela F-l estão presentes. A scalability_mask_flag[i] igual a 0 indica que elementos de sintaxe dimensionados que correspondem à dimensão de escalabilidade i-th não estão presentes. TABELA F-L - MAPEAMENTO DE ID DE ESCALABILIDADE
Figure img0004
• dimension_id_len_minusl[j] mais 1 especifica o comprimento, em bits, do elemento de sintaxe dimension_id[i][j]. • Quando splitting_flag é igual a 1, o seguinte se aplica: • A variável dimBitOffset [0] é definida igual a 0 e para j na faixa de 1 a NumScalability Types - 1, inclusive, dimBitOffset[j] é derivado como a seguir:
Figure img0005
-O valor de dimension_id_len_minus1[NumScalability Types-1] é inferido para ser igual a 5 ? dimBitOffset[NumScalabilityTypes-1]. - O valor de dimBitOffset[NumScalability Types] é definido igual a 6. É uma exigência de conformidade de fluxo de bit que dimBitOffset[ NumScalabilityTypes-1] deva ser menor que 6. • vps_nuh_layer_id_present_flag igual a 1 especifica que layer_id_in_nuh[i] para i de 1 to para vps_max_layers_minusl, inclusive, estão presentes. vps_nuh_layer_id_present_flag igual a 0 especifica que layer_id_in_nuh[i] para i de 1 para vps_max_layers_minusl, inclusive, não estão presentes. • layer_id_in_nuh[i] especifica o valor do elemento de sintaxe nuh_layer_id em unidades de NAL de VCL da camada i-th. Para i na faixa de 0 para vps_max_layers_minusl, inclusive, quando layer_id_in_nuh[i] não está presente, o valor é inferido para ser igual a i. • Quando i é maior que 0, layer_id_in_nuh[i] deve ser maior que layer_id_in_nuh[i-1]. • Para i de 0 para vps_max_layers_minus l, inclusive, a variável LayerIdxInVps[ layer_id_in_nuh[i] ] é definida igual a i. - dimension_id[i][j] especifica o identificador do tipo de dimensão de escalabilidade presente j-th da camada i-th. O número de bits usado para a representação de dimension_id[i][j] é dimension_id_len_minusl [j] + 1 bits. - Se splitting_flag for igual a 1, para i de 0 para vps_max_layers_minus 1 , inclusive, e j de 0 para NumScalabilityTypes - 1 , inclusive, dimension_id[i][j] é inferido para ser igual a ((layer_id_in_nuh[i] & ((1 « dimBitOffset[ j + 1]) - 1)) » dimBit Offset[j]). - De outro modo, para j de 0 para NumScalabilityTypes - 1, inclusive, dimension_id [0][j] é inferido para ser igual a 0. - A variável Scalabilityld[i] [ smldx ] que especifica o identificador do tipo de dimensão de escalabilidade smldx- th da i-nésima camada e da variável ViewScalExtLayerFlag que especifica se a camada i-th é uma camada de extensão de escalabilidade de vista são derivados como a seguir: para (i = 0; i <= vps_max_layers_minusl; i++) { lid = layer_id_in_nuh[i] para (smldx= 0, j =0; smldx < 16; smldx ++) se(scalability_mask_flag[ smldx ]) Scalabilityld[i][ smldx ] = dimension_id[i][ j++ ] ViewScalExtLayerFlag[ lid ] = (Scalabilityld[i] [0] > 0) } • view_id_explicitly_signalled_lag igual a 1 especifica que os identificadores de vista são explicitamente atribuídos a algumas ou todas as camadas especificadas pelo VPS. view_id_explicitly_signalled lag igual a 0 especifica que os identificadores de vista não são explicitamente atribuídos às camadas especificadas pelo VPS. • view_id_len_minusl mais 1 especifica o comprimento, em bits, do elemento de sintaxe view_id_val[i]. • view_id_present_for_all_layers_flag igual a 1 especifica que o identificador de vista para cada camada especificada pelo VPS é explicitamente sinalizado. view_id_present_for_all_layers_flag igual a 0 especifica que os identificadores de vista são explicitamente sinalizados para algumas camadas especificadas pelo VPS e derivados para outras camadas especificadas pelo VPS. • view_id_val[i] especifica o identificador de vista da camada i-th especificada pelo VPS. O elemento de sintaxe view_id_val[i] é representado por view_id_id_minus1 + 1 bits. - Quando view_id_explicitly_signalled_flag é igual a 1, view_id_present_for_all_layers_flag é igual a 0 e i%2 é igual a 1, o valor de view_id_val[i] é inferido para ser igual a view_id_val[i -1]. - Quando view_id_explicitly_signalled_flag é igual a 0, o valor de view_id_val[i] é inferido a ser igual a Scalabilityld[i] [0]. Para cada camada com nuh_layer_id igual a nuhLayerld, a variável Viewld é definida igual a view_id_val[ LayerIdxInVps[nuhLayerld]]. Cada imagem em uma camada é considerada para ser associada à Viewld da camada. Para SHVC o valor de view_of_id_present_lag pode ser exigido para ser igual a 0. Em uma extensão potencial de MV-HEVC que inclui profundidade, a textura e os componentes de profundidade de uma vista seriam duas camadas próximas e têm a mesma view_id. Quando a textura e a profundidade são sempre emparelhadas, definir view_id_info_present_lag igual a 1 e view_id_present _for_all_layers_lag igual a 0 seria desejável.
[00108] Na modalidade acima, view_id_explicitly_signalled_flag é sinalizado para indicar que o identificador de vista é explicitamente sinalizado. view_id_explicitly_signalled_flag pode ser sinalizad no VPS. Se view_id_explicitly_signalled_flag é igual a 1, view_id_len_minus1 for sinalizado, view_id_len_minus1 pode indicar a profundidade de bit a ser usada na sinalização de um ou mais identificadores de vista menos 1. Em um exemplo, a profundidade de bit pode estar entre 1 e 16. view_id_val[i] é sinalizada com o uso da profundidade de bit indicada por view_id_len_minus1 + 1. O comprimento de view_id_val[i] pode ser variável dependendo do número de vistas que precisam ser sinalizadas.
[00109] De modo similar, no lado de decodificador, view_id_explicity_signalled_flag é recebido, por exemplo, no VPS. view_id_explicitly_signalled_flag pode indicar que o identificador de vista é explicitamente sinalizado. Se view_id_explicitly_signalled_flag for igual a 1, view_id_len_minusl é processada, view_id_len_minus 1 pode indicar a profundidade de bit usada na sinalização de um ou mais identificadores de vista menos 1. view_id_val[i] pode ser recebida como um valor que tem o comprimento de view_id_len_minus1 + 1.
[00110] Dessa maneira, uma profundidade de bit variável pode ser usada para sinalizar a ID de vista de uma camada por sinalização da profundidade de bit da ID de vista. Então, a ID de vista pode ser decodificada com o uso do número de bits indicado pela profundidade de bit. Em algumas modalidades, a profundidade de bit também pode ser chamada de comprimento da ID de vista.
SINALIZAÇÃO DE INFORMAÇÕES DE TAXA DE BIT E/OU INFORMAÇÕES DE TAXA DE IMAGENS EM VPS
[00111] Em versões anteriores de MV-HEVC e SHVC, informações relacionadas a perfil, camada e nível, que é útil para negociação de sessão e seleção de conteúdo, são sinalizadas no VPS. No entanto, outras informações que também são importantes para o mesmo propósito, como taxa de bit e taxa de imagens, não são sinalizadas no VPS. A sinalização de taxa de bit e informações de taxa de imagens é suportada em SVC e MVC na mensagem de Informações de Aprimoramente Suplementares (SEI) de informações de escalabilidae e a mensagem de SEI de informações de escalabilidade de vista, respectivamente. Em extensões de múltiplas camadas de HEVC, algumas ou todas as informações importantes para negociação de sessão transportadas na mensagem de SEI de informações de escalabilidade e a mensagem de SEI de informações de escalabilidade de vista (das extensões de AVC) pode agora ser incluída no VPS.
[00112] Portanto, em um aspecto das informações de taxa de bit da revelação e/ou informações de taxa de imagens são sinalizadas no VPS. As semânticas de tais informações são alinhadas com seus homólogos em especificações de sistemas como a Organização Internacional para formato de arquivo de meio de base de Padronização (ISO) e seus formatos de arquivo de extensão.
[00113] Comparado ao método em JCTVC-K0125, as técnicas da presente revelação podem habilitar sinalização mais eficaz de apenas uma das informações de taxa de bit e informações de taxa de imagens através de inclusão dos sinalizadores, bit_rate_present_vps_flag e pic_rate_present_vps_flag e seu uso no condicionamento de estruturas de sintaxe e elementos de sintaxe.
[00114] Em uma modalidade, a sintaxe e a semântica vps_extension() nas versões anteriores de MV-HEVC e SHVC pode ser alterado conforme indicado em itálico:
Figure img0006
Figure img0007
• bit_rate_present_vps_flag igual a 1 ou pic_rate_presente_vps_flag igual a 1 especifica que um estrutura de sintaxe bit_rate__pic_rate() está presente para cada conjunto de camada no VPS.
Figure img0008
Figure img0009
• bit_rate_present_flag[i] igual a 1 especifica que as informações de taxa de bit para o subconjunto i-th do conjunto de camada está presente. bit_rate_present_flag[i] igual a 0 especifica que as informações de taxa de bit para o subconjunto i-th do conjunto de camada não está presente. O subconjunto i-th de um conjunto de camada é a saída do sub-fluxo de processo de extração de bit quando a mesma é executada com o conjunto de camada, i, e a lista de identificador de camada associada ao conjunto de camada como entradas. Quando não está presente, o valor de ctu_based_offset_enabled_flag[i]é inferido como igual a 0. • pic_rate_present_flag[i] igual a 1 especifica que informações de taxa de imagens para o subconjunto i-th do conjunto de camada está presente. pic_rate_present_flag[i] igual a 0 especifica que informações de taxa de imagens para o subconjunto i-th do conjunto de camada não está presente. Quando não está presente, o valor de pic_rate _present_flag[i] é inferido para ser igual a 0. • avg_bit_rate[i] indica a taxa de bit média do subconjunto i-th do conjunto de camada, em bits por segundo. O valor é dado por BitRateBPS(avg_bit_rate[i]) com a função BitRateBPS() que é especificada por - A taxa de bit média é derivada de acordo com a tempo de remoção de unidade de acesso especificado em Annex F.13 de SHVC WD2 e MV-HEVC WD4. A seguir, bTotal é o número de bits em todas as unidades NAL do conjunto i-th do conjunto de camada, t1 é o tempo de remoção (em segundos) da primeira unidade de acesso a qual o VPS se aplica e t2 é o tempo de remoção (em segundos) da última unidade de acesso (em ordem de decodificação) a qual o VPS se aplica. - Com x que especifica o valor de avg_bit_rate[i], o seguinte se aplica: o Se t1 não for igual a t2, a condição seguinte deve ser verdadeira:
Figure img0010
o De outro modo(t1 é igual a t2), a condição seguinte deve ser verdadeira:
Figure img0011
• max_bit_rate_layer[i] indica uma ligação superior para a taxa de bit do subconjunto i-th da conjunto de camada em qualquer janela de tempo de um segundo de tempo de remoção de unidade de acesso conforme especificado em Annex F.13. A ligação superior para a taxa de bit em bits por segundo é dada por BitRateBPS(max_bit_rate_layer[i]). Os valores de taxa de bit são derivados de acordo com o tempo de remoção de unidade de acesso especificado em Annex F.13. A seguir, t1 é qualquer ponto no tempo (em segundos), t2 é definido igual a t1 + 1 ^ 100 e bTotal é o número de bits em todas as unidades de NAL de unidades de acesso com um tempo de remoção maior que ou igual a t1 e menor que t2. Com x que especifica o valor de max_bit_rate_layer[i], a condição seguinte deve ser obedecida para todos os valores de t1:
Figure img0012
• constant_pic_rate_idc[i] indica se a taxa de imagens do subconjunto i-th do conjunto de camada é constante. A seguir, um segmento temporal tSeg é qualquer conjunto de duas ou mais unidades de acesso consecutivas, em ordem de decodificação, do subconjunto i-th do conjunto de camada, fTotal(tSeg) é o número de unidades de acesso no segmento temporal tSeg, t1(tSeg) é o tempo de remoção (em segundos) da primeira unidade de acesso (em ordem de decodificação) do segmento temporal tSeg, t2(tSeg) é o tempo de remoção (em segundos) da última unidade de acesso (em ordem de decodificação) do segmento temporal tSeg e avgFR(tSeg) é a taxa de imagens média no segmento temporal tSeg, que é dada por: avgFR(tSeg) = = Round(fTotal(tSeg) * 256 ^ (t2(tSeg) — ti(tSeg))) (F-6) • Se o subconjunto i-th do conjunto de camada contém apenas uma ou duas unidades de acesso ou o valor de avgFR(tSeg) é constante por todos os segmentos temporais, a taxa de imagens é constante; de outro modo, a taxa de imagens não é constante, • constant _pic_rate_idc[i] igual a 0 indica que a taxa de imagens do subconjunto i-th do conjunto de camada não é constante, _pic_rate_idc[i] constante igual a i indica que a taxa de imagens do subconjunto i-th do conjunto de camada é constante, _pic_rate_idc[i] constante igual a 2 indica que a taxa de imagens do subconjunto i-th do conjunto de camada pode ou não ser constante. O valor de _pic_rate_idc[i] constante deve estar na faixa de 0 a 2, inclusive. • avg_pic_rate[i] indica a taxa de imagens média, em unidades de imagem por 256 segundos, do subconjunto i-th do conjunto de camada. Com fTotal sendo o número de unidades de acesso no subconjunto i-th do conjunto de camada, em que t1 é o tempo de remoção (em segundos) da primeira unidade de acesso a qual o VPS se aplica e em que t2é o tempo de remoção (em segundos) da última unidade de acesso (em ordem de decodificação) a qual o VPS se aplica, o seguinte se aplica: - Se t1 não for igual a t2, a condição seguinte deve ser verdadeira: avg_pic_rate[i] = = Round(fTotal * 256 ^ (t2- t1)) (F-7) De outro modo (t1 é igual a t2), a condição seguinte deve ser verdadeira: avg_pic_rate[i] = = 0 (F-8)
[00115] Na modalidade acima, os sinalizadores globais bit_rate_present_vps_flag e pic_rate_present_vps_flag são sinalizados no VPS. bit_rate_present_vps_flag indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar e pic_rate _present_vps_flag indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Se bit_rate _present_vps_flag e pic_rate_present_vps_flag forem ambas iguais a 0, nenhuma estrutura de sintaxe de taxa de imagens e taxa de bit é sinalizada no VPS. Se bit_rate_present_vps_flag ou pic_rate_present_vps_flag forem iguais a 1, a estrutura de sintaxe de taxa de imagens e a taxa de bit é sinalizada para cada conjunto de camada. Um conjunto de camada pode se referir a um grupo de um ou mais camadas. Dentro da estrutura de sintaxe de taxa de imagens e da taxa de bit para cada conjunto de camada, uma taxa de bit _present_flag pode ser sinalizada para cada subcamada se bit_rate_present_vps_flag for igual a 1 e um pic_rate_present_flag pode ser sinalizado para cada subcamada se pic_rate_present_vps_flag for igual a 1.
[00116] De modo similar, no lado de decodificador, os sinalizadores globais bit_rate_present_vps_flag e pic_rate_present_vps_flag são recebdidos no VPS. Se bit_rate_present_vps_flag e pic_rate _present_vps_flag forem ambas iguais a 0, nenhuma estrutura de sintaxe de taxa de imagens e taxa de bit é acessada e/ou processada. Se bit_rate _present_vps_flag ou pic_rate_present_vps_flag for igual a 1, a estrutura de sintaxe de taxa de imagens e taxa de bit é acessada e/ou processada para cada conjunto de camada. Dentro da estrutura de sintaxe de taxa de imagens e taxa de bit para cada conjunto de camada, um bit_rate_present_flag pode ser acessado e/ou processado para cada subcamada se bit_rate_present_vps_flag for igual a 1 e um pic_rate_present_flag pode ser acessado e/ou processado para cada subcamada se pic_rate _present_vps_flag for igual a 1.
[00117] Dessa maneira, as técnicas podem reduzir recursos para criptografar e/ou decodificar as informações de taxa de bit e/ou informações de taxa de imagens ao incluir sinalizadores globais no VPS que indicam se informações de taxa de bit e/ou informações de taxa de imagens existem para todas as camadas indicadas no VPS, respectivamente. A estrutura de sintaxe de taxa de imagens e taxa de bit pode ser acessada apenas quando a mesma inclui informações de taxa de bit e/ou informações de taxa de imagens. Além disso, as informações de taxa de bit e informações de taxa de imagens podem ser sinalizadas e/ou processadas separadamente. Por exemplo, quando apenas informações de taxa de bit são necessárias, apenas as informações de taxa de bit podem ser sinalizadas sem ter que sinalizar as informações de taxa de imagens e vice- versa.
[00118] Certos detalhes relacionados às técnicas são descritos abaixo com referência às Figuras 4 a 6. Todos os recursos e/ou modalidades descritos em relação à Figura 4 podem ser implantados sozinhos ou em qualquer combinação com outros recursos e/ou modalidades descritos nas Figuras 4 a 6.
MÉTODO PARA SINALIZAÇÃO DE PROFUNDIDADE DE BIT DE ID DE VISTA
[00119] A Figura 4 é um fluxograma que ilustra um método para sinalização ou criptação de profundidade de bit de ID de vista, de acordo com aspectos dessa revelação. O processo 400 pode ser realizado por um criptógrafo (por exemplo, o cirptógrafo conforme mostrado nas Figuras 2A, 2B, etc.), um decodificador (por exemplo, o decodificador conforme mostrado na Figura 3A, 3B, etc.) ou qualquer outro componente, dependendo da modalidade. Os blocos do processo 400 são descritos em relação ao criptógrafo 21 na Figura 2B, mas o processo 400 pode ser realizado por outros componentes, como um decodificador, conforme mencionado acima. O criptógrafo de vídeo de camada 1 20B do criptógrafo 21 e/ou o criptógrafo de camada 0 20A do criptógrafo 21 pode realizar o processo 400, dependendo da modalidade. Todas as modalidades descritas em relação à Figura 4 podem ser implantadas separadamente ou em combinação entre si. Certos detalhes relacionados ao processo 400 são explicados acima e abaixo, por exemplo, em relação às Figuras 5 e 6.
[00120] O processar 400 começa no bloco 401. O criptógrafo 21 pode incluir uma memória (por exemplo, memória de quadro de referência 64) para armazenar informações de vídeo.
[00121] No bloco 402, o criptógrafo 21 determina uma profundidade de bit de um ou mais identificadores de vista para sinalizar. Cada um dentre os um ou mais identificadores de vista pode ser associado a uma camada a ser criptografada. A profundidade de bit dos um ou mais identificadores de vista pode ser determinada com base no número máximo de vistas que pode ser criptografado, por exemplo, no mesmo fluxo de bit. A profundidade de bit para sinalização de identificadores de vista pode ser variável, por exemplo, no sentido de que a profundidade de bit pode ser selecionada apropriadamente dependendo do número de vistas para criptografar (por exemplo, número máximo). Uma camada pode se referir a uma camada associada às informações de vídeo, como uma camada na codificação de vídeo escalonável (por exemplo, SFTVC) ou uma camada na codificação de vídeo em 3D (por exemplo, MV- HEVC). Um fluxo de bit SHVC, em geral, representa um sinal de vídeo capturado por uma câmera e o fluxo de bit pode incluir múltiplas camadas, em que cada camada corresponde a uma representação de um sinal de vídeo com uma qualidade diferente ou uma resolução espacial diferente. Um fluxo de bit MV-HEVC, em geral, representa um sinal de vídeo capturado por múltiplas câmeras e o fluxo de bit pode incluir múltiplas camadas, em que cada camada corresponde a uma representação da parte do sinal de vídeo capturado por uma câmera distinta. Uma camada em MV-HEVC também pode ser chamada de uma vista.
[00122] No bloco 403, o criptógrafo 21 sinaliza a profundidade de bit dos um ou mais identificadores de vista em um fluxo de bit. Em algumas modalidades, a profundidade de bit dos um ou mais identificadores de vista é sinalizada no conjunto de parâmetros de vídeo (VPS). Em uma modalidade, o número de bits indicado pela profundidade de bit sinalizada está entre 1 e 16. A profundidade de bit sinalizada pode ser recebida e decodificada por um decodificador, por exemplo, conforme expliado em conexão com a Figura 5.
[00123] Em certas modalidades, o criptógrafo 21 sinaliza se sinaliza explicitamente identificadores de vista no fluxo de bit. Em uma modalidade, o criptógrafo 21 sinaliza se sinaliza explicitamente identificadores de vista no fluxo de bit por sinalização de um identificador de vista de sinalizador explicitamente sinalizado. Em algumas modalidades, o criptógrafo 21 sinaliza os um ou mais identificadores de vista com o uso do número de bits indicado pela profundidade de bit sinalizada.
[00124] O processo 400 termina no bloco 404. Os blocos podem ser adicionados e/ou omitidos no processo 400, dependendo da modalidade e blocos do processo 400 podem ser realizados em ordens diferentes, dependendo da modalidade.
[00125] Quaisquer recursos e/ou modalidades descritos em relação à reamostragem na presente revelação podem ser implantados separadamente ou em qualquer combinação dos mesmos. Por exemplo, quaisquer recursos e/ou modalidades descritos em conexão com as Figuras 5 a 6 podem ser implantadas em qualquer combinação com quaisquer recursos e/ou modalidades descritos em conexão com a Figura 4 e vice-versa.
[00126] A Figura 5 é um fluxograma que ilustra um método para decodificação de profundidade de bit de ID de vista, de acordo com aspectos dessa revelação. O processo 500 pode ser realizado por um criptógrafo (por exemplo, o cirptógrafo conforme mostrado nas Figuras 2A, 2B, etc.), um decodificador (por exemplo, o decodificador conforme mostrado na Figura 3A, 3B, etc.) ou qualquer outro componente, dependendo da modalidade. Os blocos do processo 500 são descritos em relação ao decodificador 31 na Figura 3B, mas o processo 500 pode ser realizado por outros componentes, como um criptógrafo, conforme mencionado acima. O decodificador de vídeo de camada 1 30B do decodificador 31 e/ou o decodificador de camada 0 30A do decodificador 31 pode realizar o processo 500, dependendo da modalidade. Todas as modalidades descritas em relação à Figura 5 podem ser implantadas separadamente ou em combinação entre si. Certos detalhes relacionados ao processo 500 são explicados acima e abaixo, por exemplo, em relação às Figuras 4 a 6.
[00127] O processo 500 começa no bloco 501. O decodificador 31 pode incluir uma memória (por exemplo, memória de quadro de referência 82) para armazenar informações de vídeo.
[00128] No bloco 502, o decodificador 31 recebe um indicador de profundidade de bit que indica um número de bits usado para sinalizar um ou mais valores de identificador de vista. Cada um dentre os um ou mais valores de identificador de vista pode ser associado a uma dentre uma ou mais camadas a ser decodificadas. O indicador de profundidade de bit pode ser a profundidade de bit criptografada ou sinalizada pelo criptógrafo 21 conforme explicado acima em conexão com a Figura 4. Em uma modalidade, o número de bits indicado pelo indicador de profundidade de bit está entre 1 e 16. O indicador de profundidade de bit pode indicar o número máximo de vistas que podem ser criptografadas.
[00129] No bloco 503, o decodificador 31 recebe cada um dentre os um ou mais valores de identificador de vista como um valor que tem o número indicado de bits. O indicador de profundidade de bit e os um ou mais valores de identificador de vista podem ser recebidos no VPS.
[00130] O processo 500 termina no bloco 504. Os blocos podem ser adicionados e/ou omitidos no processo 500, dependendo da modalidade e blocos do processo 500 podem ser realizados em ordens diferentes, dependendo da modalidade.
[00131] Quaisquer recursos e/ou modalidades descritos em relação à reamostragem na presente revelação podem ser implantados separadamente ou em qualquer combinação dos mesmos. Por exemplo, quaisquer recursos e/ou modalidades descritos em conexão com as Figuras 4 e 6 podem ser implantadas em qualquer combinação com quaisquer recursos e/ou modalidades descritos em conexão com a Figura 5 e vice-versa.
MÉTODO PARA SINALIZAÇÃO DE INFORMAÇÕES DE TAXA DE BIT E/OU INFORMAÇÕES DE TAXA DE R ETRATO NO VPS
[00132] A Figura 6 é um fluxograma que ilustra um método para sinalizar informações de taxa de bit e/ou informações de taxa de imagens nos VPS, de acordo com aspectos dessa revelação. O processo 600 pode ser realizado por um criptógrafo (por exemplo, o cirptógrafo conforme mostrado nas Figuras 2A, 2B, etc.), um decodificador (por exemplo, o decodificador conforme mostrado na Figura 3A, 3B, etc.) ou qualquer outro componente, dependendo da modalidade. Os blocos do processo 600 são descritos em relação ao decodificador 31 na Figura 3B, mas o processo 600 pode ser realizado por outros componentes, como um criptógrafo, conforme mencionado acima. O decodificador de vídeo de camada 1 30B do decodificador 31 e/ou o decodificador de camada 0 30A do decodificador 31 pode realizar o processo 600, dependendo da modalidade. Todas as modalidades descritas em relação à Figura 6 podem ser implantadas separadamente ou em combinação entre si. Certos detalhes relacionados ao processo 600 são explicados acima e abaixo, por exemplo, em relação às Figuras 4 a 5.
[00133] O processo 600 começa no bloco 601. O decodificador 31 pode incluir uma memória (por exemplo, memória de quadro de referência 82) para armazenar informações de vídeo.
[00134] No bloco 602, o decodificador 31 processa um sinal que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar. Um conjunto de camada pode se referir a um conjunto de uma ou mais camadas e pode diferir de uma camada na qual um conjunto de camada pode incluir mais de uma camada. Por exemplo, o sinal pode ser um sinalizador global que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar. O sinalizador global pode ser incluído no VPS. Em uma modalidade, processar o sinal é criptografar o sinal. Em outra modalidade, processar o sinal é decodificar o sinal. Em certas modalidades, um dispositivo de computação pode implantar funcionalidade de tanto de um criptógrafo quanto de um decodificador.
[00135] No bloco 603, o decodificador 31 processa um sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Por exemplo, o sinal pode ser um sinalizador global que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. O sinalizador global pode ser incluído no VPS. Em uma modalidade, processar o sinal é criptografar o sinal. Em outra modalidade, processar o sinal é decodificar o sinal. Em certas modalidades, um dispositivo de computação pode implantar funcionalidade de tanto de um criptógrafo quanto de um decodificador.
[00136] Em certas modalidades, o decodificador 31 processa uma estrutura de sintaxe de taxa de imagens e taxa de bit ou (1) quando o primeiro sinal indica que pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar ou (2) quando o segundo sinal indica que pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Em algumas modalidades, o decodificador 31 processa a estrutura de sintaxe de taxa de imagens e taxa de bit através do processamento de um sinalizador que indica se uma subcamada de uma camada dos um ou mais conjuntos de camada tem informações de taxa de bit quando o primeiro sinal indica que pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar e processar um sinalizador que indica se uma subcamada de uma camada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens quando o segundo sinal indica que pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Em uma modalidade, processar a estrutura de sintaxe de imagem de taxa de bit é criptografar a estrutura de sintaxe de imagem de taxa de bit. Em outra modalidade, processar a estrutura de sintaxe de imagem de taxa de bit é decodificar a estrutura de sintaxe de imagem de taxa de bit. Em certas modalidades, um dispositivo de computação pode implantar funcionalidade de tanto de um criptógrafo quanto de um decodificador.
[00137] Em algumas modalidades, um sinal pode ser usado para indicar se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar e se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Por exemplo, o mesmo sinalizador global pode indicar se um ou mais conjuntos de camada e/ou subcamadas têm informações de taxa de bit e informações de taxa de imagens. Em uma modalidade, o sinalizador global para cada tipo de informações pode ser mesclado em um sinalizador global. Tal sinalizador global pode ser incluído no VPS.
[00138] De acordo com certos aspectos, o decodificador 31 processa pelo menos um dentre um primeiro sinal que indica se pelo menos uma subcamada dentre um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar ou um segundo sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar. Por exemplo, em vez de executar os blocos 602 e 603, o decodificador 31 pode processar pelo menos um dentre o primeiro sinal e o segundo sinal, por exemplo, em um bloco. Em algumas modalidades, apenas o sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de bit para sinalizar pode ser incluído no VPS e processado pelo decodificador 31. Em outras modalidades, apenas o sinal que indica se pelo menos uma subcamada dentre os um ou mais conjuntos de camada tem informações de taxa de imagens para sinalizar pode ser incluído no VPS e processado pelo decodificador 31.
[00139] O processo 600 termina no bloco 604. Os blocos podem ser adicionados e/ou omitidos no processo 600, dependendo da modalidade e blocos do processo 600 podem ser realizados em ordens diferentes, dependendo da modalidade.
[00140] Quaisquer recursos e/ou modalidades descritos em relação à reamostragem na presente revelação podem ser implantados separadamente ou em qualquer combinação dos mesmos. Por exemplo, quaisquer recursos e/ou modalidades descritos em conexão com as Figuras 4 a 5 podem ser implantados em qualquer combinação com quaisquer recursos e/ou modalidades descritos em conexão com a Figura 6 e vice-versa.
TERMINOLOGIA
[00141] Embora a revelação acima tenha descrito modalidades particulares, muitas variações são possíveis. Por exemplo, conforme mencionado acima, as técnicas acima podem ser aplicadas à criptografia de vídeo em 3D. Em algumas modalidades de 3D vídeo, uma camada de referência (por exemplo, uma camada-base) inclui informações de vídeo suficientes para exibir uma primeira vista de um vídeo e a camada de aprimoramento inclui informações de vídeo adicionais relacionadas à camada de referência de modo que a camada de referência e a camada de aprimoramento, juntas, incluam informações de vídeo suficientes para exibir uma segunda vista do vídeo. Essas duas vistas podem ser usadas para gerar uma imagem estereoscópica. Conforme discutido acima, informações de movimento da camada de referência podem ser usadas para identificar hipósteses implícitas adicionais quando realiza criptação ou decodificação de uma unidade de vídeo na camada de aprimoramento, de acordo com aspectos da revelação. Isso pode fornecer maior eficácia de codificação para um fluxo de bit de vídeo em 3D.
[00142] Deve ser reconhecido que, dependendo-se do exemplo, certos atos ou eventos de quaisquer uma das técnicas descritas no presente documento podem ser realizados em uma sequência diferente, podem ser adicionados, fundidos ou deixados de fora todos juntos (por exemplo, nem todos os atos e eventos descritos são necessários para a prática das técnicas). Ademais, em certos exemplos, os atos e eventos podem ser realizados de modo concorrente, por exemplo, através de processamento multifiletado, processamento interrupto ou em múltiplos processadores, em vez de sequencialmente.
[00143] As informações e os sinais revelados no presente documento podem ser representados com o uso de qualquer um dentre uma variedade de tecnologias e conjunto de procedimentos diferentes. Por exemplo, dados, instruções, comandos, informações, sinais, bits, símbolos, e circuitos integrados que podem ser referenciados por toda a descrição acima podem ser representados por tensões, correntes, ondas eletromagnéticas, partículas ou campos magnéticos, partículas ou campos ópticos ou qualquer combinação dos mesmos.
[00144] As várias etapas de blocos lógicos ilustrativos, módulos, circuitos e algoritmos descritos em conjunto com as modalidades reveladas no presente documento podem ser implantadas como hardware eletrônico, software de computador ou combinações de ambos. Para ilustrar claramente essa intercambiabilidade de hardware e software, vários componentes, blocos, módulos, circuitos, e etapas ilustrativos têm sido descritos acima geralmente em termos de funcionalidade dos mesmos. Se tal funcionalidade for implantada como hardware ou software, depende da restrição de projeto e do pedido particular impostos no sistema geral. Versados na técnica podem implementar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implementação não deveriam ser interpretadas como que por se afastar do escopo da presente invenção.
[00145] As técnicas aqui descritas podem ser implementadas em hardwares, softwares, firmwares, ou qualquer combinação dos mesmos. Tais técnicas podem ser implantadas em qualquer uma dentre uma variedade de dispositivos, como computadores de propósito geral, aparelhos telefônicos de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos, incluindo aplicativo em aparelhos telefônicos 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 integrado ou separadamente como dispositivos de lógica distintos, mas interoperáveis. Se implantadas em software, as técnicas podem ser realizadas pelo menos em parte por um meio de armazenamento de dados legível por computador que compreende código de programa, incluindo instruções que, quando executadas, realiza um ou mais dentre 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 para pacotes. O meio legível por computador pode compreender meio de armazenamento de dados ou memória, como memória de acesso aleatório (RAM) como memória de acesso aleatório dinâmica síncrona (SDRAM), memória só de leitura (ROM), memória não- volátil de acesso aleatório (NVRAM), memória só de leitura programável apagável elétricamente (EEPROM), memória FLASH, meios de armazenamento de dados magnéticos ou óticos e similares. As técnicas, de modo adicional ou alternativo, podem ser realizadas pelo menos em parte por um meio de comunicação legível por computador que porta ou comunica código de programa na forma de instruções ou estruturas de dados e que pode ser acessado, lido e/ou executado por um computador, como sinais ou ondas propagados.
[00146] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados específicos de aplicação específica (ASICs), matrizes lógicas programáveis de campo (FPGAs) ou outro conjunto de circuitos lógicos equivalentes integrados ou discretos. Tal processador pode ser configurado para realizar qualquer uma das técnicas descritas na presente revelação. Um processador de propósito geral pode ser um microprocessador, mas na alternativa, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina de estado convencional convencionais. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um DSP núcleo ou qualquer outra tal configuração. Em conformidade, o termo "processador," conforme usado no presente documento pode se referir a qualquer uma dentre a estrutura anterior, qualquer combinação da estrutura anterior ou qualquer outra estrutura ou aparelho adequado para 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 dedicado ou módulos de hardware configurados para criptografar e decodificar ou incorporada em um codificador-criptógrafo de vídeo combinado (CODEC).
[00147] As técnicas de codificação discutidas no presente documento podem ser incorporadas em uma criptografia de vídeo exemplificativa e sistema de decodificação. Um sistema inclui um dispositivo de fonte que fornece dados de vídeo criptografados a serem decodificados em um tempo posterior por um dispositivo de destino. Em particular, o dispositivo de fonte fornece os dados de vídeo ao dispositivo de destino por meio de um meio legível por computador. O dispositivo de fonte e o dispositivo de destino podem compreender qualquer um dentre uma faixa ampla de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (isto é, computadores do tipo laptop), computadores do tipo tablet, decodificadores de sinal, aparelhos telefônicos, como os chamados telefones "inteligentes", chamados computadores do tipo pad "inteligentes", televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivo de transmissão de vídeo ou similares. Em alguns casos, o dispositivo de fonte e o dispositivo de destino podem ser equipados para comunicação sem fio.
[00148] O dispositivo de destino pode receber os dados de vídeo criptografados a serem decodificados por meio do meio legível por computador. O meio legível por computador pode compreender qualquer tipo de meio ou dispositivo com capacidade para mover os dados de vídeo criptografados do dispositivo de fonte para o dispositivo de destino. Em um exemplo, o meio legível por computador pode compreender um meio de comunicação para habilitar o dispositivo de fonte 12 a transmitir dados de vídeo criptografados diretamente para o dispositivo de destino em tempo real. Os dados de vídeo criptografados 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 destino. 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 para facilitar a comunicação a partir do dispositivo de fonte para o dispositivo de destino.
[00149] Em alguns exemplos, dados criptografados podem ser emitidos da interface de saída para um dispositivo de armazenamento. De modo similar, dados criptografados podem ser acessados do dispositivo de armazenamento por interface de entrada. O dispositivo de armazenamento pode incluir qualquer um dentre uma variedade de meios de armazenamento de dados distribuídos ou acessados localmente como um disco rígido, discos Blu-ray, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou quaisquer outros meios de armazenamento digital adequados para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo criptografado gerado por dispositivo de fonte. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo criptografado e transmitir esses dados de vídeo criptografado para o dispositivo de destino. Os servidores de arquivos exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor FTP, dispositivos de armazenamento fixado à rede (NAS) ou uma unidade de disco local. O dispositivo de destino pode acessar os dados de vídeo criptografado através de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem de cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo criptografado armazenados em um servidor de arquivos. A transmissão de dados de vídeo criptografados do dispositivo de armazenamento pode ser uma transmissão de transferência, uma transmissão de transferência por download ou uma combinação das mesmas.
[00150] As técnicas dessa revelação não estão necessariamente limitadas à 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 aplicativos de multimídia, como difusões sem fio para televisão, transmissões a cabo para televisão, transmissões por meio de satélite para televisão, transmissões de vídeo por difusão para Internet, como difusão adaptativa dinâmica através de HTTP (DASH), vídeo digital que é criptografado em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados ou outros aplicativos. Em alguns exemplos, o sistema pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional para suportar aplicações como difusão de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[00151] Em um exemplo, o dispositivo de fonte inclui uma fonte de vídeo, um criptógrafo de vídeo e uma interface de saída. O dispositivo de destino pode incluir uma interface de entrada, um decodificador de vídeo e um dispositivo de exibição. O criptógrafo de vídeo de dispositivo de fonte pode ser configurado para aplicar as técnicas reveladas no presente documento. Em outros exemplos, um dispositivo de fonte e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de fonte pode receber dados de vídeo de uma fonte de vídeo externa, como uma câmera externa. Do mesmo modo, o dispositivo de destino pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[00152] O sistema exemplificativo acima é simplesmente um exemplo. As técnicas para processar dados de vídeo em paralelo podem ser realizadas por qualquer dispositivo de criptografia e/ou decodificação de vídeo digital. Embora, em geral, as técnicas dessa revelação sejam realizadas por um dispositivo de criptografia de vídeo, as técnicas também podem ser realizadas por um criptógrafo/decodificador de vídeo, tipicamente chamado de um “CODEC.” Além disso, as técnicas dessa revelação também podem ser realizadas por um pré-processador de vídeo. O dispositivo de fonte e o dispositivo de destino são simplesmente exemplos de tais dispositivos de codificação nos quais o dispositivo de fonte gera dados de vídeo codificados para transmissão para o dispositivo de destino. Em alguns exemplos, os dispositivos de fonte e destino podem operar de uma maneira substancialmente simétrica de modo que cada um dos dispositivos inclua componentes de criptografia e decodificação de vídeo. Visto isso, sistemas exemplificativos podem suportar transmissão de vídeo unidirecional e bidirecional entre dispositivos de vídeo, por exemplo, para difusão de vídeo, reprodução de vídeo, transmissão de vídeo ou telefonia de vídeo.
[00153] A fonte de vídeo pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo que contém vídeo anteriormente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo. Como uma alternativa adicional, a fonte de vídeo pode gerar dados com base em gráficos de computador como o vídeo de fonte ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador. Em alguns casos, se uma fonte de vídeo for uma câmera de vídeo, o dispositivo de fonte e o dispositivo de destino podem formar os chamados telefones de câmera ou telefones de vídeo. Entretando, conforme mencionado acima, as técnicas descritas na presente revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas às aplicações com fio e/ou sem fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser criptografado pelo criptógrafo de vídeo. As informações de vídeo codificadas podem, então, ser emitidas pela interface de saída no meio legível por computador.
[00154] Conforme verificado, o meio legível por computador pode incluir meios transitórios, como uma transmissão por difusão sem fio ou por difusão com fio ou meios de armazenamento (ou seja, meios de armazenamento não transitórios), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outros meios legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo criptografados do dispositivo de fonte e fornecer os dados de vídeo criptografados ao dispositivo de destino, por exemplo, por meio de transmissão de rede. De modo similar, um dispositivo de computação de uma instalação de produção de meio, como uma instalação de estampagem de disco, pode receber dados de vídeo criptografados do dispositivo de fonte e produzir um disco que contém os dados de vídeo criptografados. Portanto, o meio legível por computador pode ser entendido como incluindo um ou mais meios legíveis por computador de diversas de formas, em diversos exemplos.
[00155] A interface de entrada do dispositivo de destino recebe informações do meio legível por computador. As informações do meio legível por computador podem incluir informações de sintaxe definidas pelo criptógrafo de vídeo, que também é usado pelo decodificador de vídeo, que inclui elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOP). Um dispositivo de exibição exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um dentre uma variedade de dispositivos de exibição, como um tubo de raio de cátodo (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânica (OLED) ou outro tipo de dispositivo de exibição. Várias modalidades da invenção foram descritas. Estas e outras modalidades estão no escopo das reivindicações a seguir.
[00156] Várias modalidades da invenção foram descritas. Estas e outras modalidades estão no escopo das reivindicações a seguir.

Claims (6)

1. Aparelho (12) para codificar informações de vídeo multicamadas, caracterizado pelo fato de que compreende: uma memória configurada para armazenar informações de vídeo; e hardware de computação operacionalmente acoplado à memória e configurado para: codificar (602) um primeiro sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de bits indicativos de uma presença em um fluxo de bits de informações de taxa de bits para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o primeiro sinalizador está incluído em um conjunto de parâmetros de vídeo, VPS, em que o VPS inclui um conjunto de parâmetros que se aplicam a todas as camadas no fluxo de bit e através de uma sequência de unidades de acesso; codificar (603) um segundo sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de imagens indicativos de uma presença em um fluxo de bits de informações de taxa de imagens para um ou mais subconjuntos dos um ou mais conjuntos de camada, em que o segundo sinalizador também está incluído no VPS; em resposta à determinação de que nenhum sinalizador de presença de taxa de bits será fornecido no fluxo de bits ou de que nenhum sinalizador de presença de taxa de imagens será fornecido no fluxo de bits, codificar o VPS sem codificar uma estrutura de sintaxe de taxa de imagens e taxa de bits; e em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de bits e um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar uma estrutura de sintaxe de taxa de imagens de taxa de bits no VPS, em que a codificação da estrutura de sintaxe de taxa de imagens de taxa de bits no VPS compreende: i) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits, codificar os um ou mais sinalizadores de presença de taxa de bits para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, codificar informações de taxa de bits para o subconjunto na estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de bits codificado para o subconjunto indica que informação de taxa de bits está presente para o subconjunto, e ii) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar os um ou mais sinalizadores de presença de taxa de imagens para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, codificar informações de taxa de imagens para o subconjunto na estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de imagens codificado para o subconjunto indica que a informação de taxa de imagens está presente para o subconjunto.
2. Aparelho (12) para decodificar informações de vídeo multicamadas, caracterizado pelo fato de que compreende: uma memória configurada para armazenar informações de vídeo; e hardware de computação operacionalmente acoplado à memória e configurado para: decodificar (602) um primeiro sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de bits indicativos de uma presença em um fluxo de bits de informações de taxa de bits para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o primeiro sinalizador está incluído em um conjunto de parâmetros de vídeo, VPS, em que o VPS inclui um conjunto de parâmetros que se aplicam a todas as camadas no fluxo de bits e através de uma sequência de unidades de acesso; decodificar (603) um segundo sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de imagens indicativos de uma presença em um fluxo de bits de informações de taxa de imagens para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o segundo sinalizador também está incluído no VPS; em resposta à determinação de que nenhum sinalizador de presença de taxa de bits será fornecido no fluxo de bits e de que nenhum sinalizador de presença de taxa de imagens será fornecido no fluxo de bits, codificar o VPS sem codificar uma estrutura de sintaxe de taxa de imagens e taxa de bits; e em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de bits e um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar uma estrutura de sintaxe de taxa de imagens de taxa de bits no VPS, em que a codificação da estrutura de sintaxe de taxa de imagens de taxa de bits no VPS compreende: i) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits, decodificar os um ou mais sinalizadores de presença de taxa de bits para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, decodificar informações de taxa de bits para o subconjunto a partir da estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de bits decodificado para o subconjunto indica que informação de taxa de bits está presente para o subconjunto, e ii) em resposta à determinação de que o segundo sinalizador indica que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, decodificar os um ou mais sinalizadores de presença de taxa de imagens para os respectivos subconjuntos dos um ou mais conjuntos de camada a partir da estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, decodificar informações de taxa de imagens para o subconjunto a partir da estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de imagens decodificado para o subconjunto indica que a informação de taxa de imagens está presente para o subconjunto.
3. Aparelho, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o aparelho compreende um ou mais dentre: um computador do tipo desktop, um computador do tipo notebook, um computador do tipo laptop, um computador do tipo tablet, um decodificador de sinais, um aparelho telefônico, um telefone inteligente, um dispositivo de comunicação sem fio, um computador do tipo pad inteligente, uma televisão, uma câmera, um dispositivo de exibição, um reprodutor de mídia digital, um console de vídeo game ou um dispositivo de transmissão de vídeo.
4. Método (600) para codificar informações de vídeo multicamadas, caracterizado pelo fato de que compreende: codificar (602) um primeiro sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de bits indicativos de uma presença em um fluxo de bits de informações de taxa de bits para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o primeiro sinalizador está incluído em um conjunto de parâmetros de vídeo, VPS, em que o VPS inclui um conjunto de parâmetros que se aplicam a todas as camadas no fluxo de bit e através de uma sequência de unidades de acesso; codificar (603) um segundo sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de imagens indicativos de uma presença em um fluxo de bits de informações de taxa de imagens para um ou mais subconjuntos dos um ou mais conjuntos de camada, em que o segundo sinalizador também está incluído no VPS; em resposta à determinação de que nenhum sinalizador de presença de taxa de bits será fornecido no fluxo de bits ou de que nenhum sinalizador de presença de taxa de imagens será fornecido no fluxo de bits, codificar o VPS sem codificar uma estrutura de sintaxe de taxa de imagens e taxa de bits; e em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de bits e um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar uma estrutura de sintaxe de taxa de imagens de taxa de bits no VPS, em que a codificação da estrutura de sintaxe de taxa de imagens de taxa de bits no VPS compreende: i) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits, codificar os um ou mais sinalizadores de presença de taxa de bits para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, codificar informações de taxa de bits para o subconjunto na estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de bits codificado para o subconjunto indica que informação de taxa de bits está presente para o subconjunto, e ii) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar os um ou mais sinalizadores de presença de taxa de imagens para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, codificar informações de taxa de imagens para o subconjunto na estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de imagens codificado para o subconjunto indica que a informação de taxa de imagens está presente para o subconjunto.
5. Método (600) para decodificar informações de vídeo multicamadas, caracterizado pelo fato de que compreende: decodificar (602) um primeiro sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de bits indicativos de uma presença em um fluxo de bits de informações de taxa de bits para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o primeiro sinalizador está incluído em um conjunto de parâmetros de vídeo, VPS, em que o VPS inclui um conjunto de parâmetros que se aplicam a todas as camadas no fluxo de bits e através de uma sequência de unidades de acesso; decodificar (603) um segundo sinalizador que indica se serão fornecidos no fluxo de bits um ou mais sinalizadores de presença de taxa de imagens indicativos de uma presença em um fluxo de bits de informações de taxa de imagens para um ou mais subconjuntos de um ou mais conjuntos de camada, em que o segundo sinalizador também está incluído no VPS; em resposta à determinação de que nenhum sinalizador de presença de taxa de bits será fornecido no fluxo de bits e de que nenhum sinalizador de presença de taxa de imagens será fornecido no fluxo de bits, codificar o VPS sem codificar uma estrutura de sintaxe de taxa de imagens e taxa de bits; e em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits ou de que um ou mais sinalizadores de presença de taxa de bits eum ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, codificar uma estrutura de sintaxe de taxa de imagens de taxa de bits no VPS, em que a codificação da estrutura de sintaxe de taxa de imagens de taxa de bits no VPS compreende: i) em resposta à determinação de que um ou mais sinalizadores de presença de taxa de bits serão fornecidos no fluxo de bits, decodificar os um ou mais sinalizadores de presença de taxa de bits para os respectivos subconjuntos dos um ou mais conjuntos de camada na estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, decodificar informações de taxa de bits para o subconjunto a partir da estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de bits decodificado para o subconjunto indica que informação de taxa de bits está presente para o subconjunto, e ii) em resposta à determinação de que o segundo sinalizador indica que um ou mais sinalizadores de presença de taxa de imagens serão fornecidos no fluxo de bits, decodificar os um ou mais sinalizadores de presença de taxa de imagens para os respectivos subconjuntos dos um ou mais conjuntos de camada a partir da estrutura de sintaxe de taxa de imagens de taxa de bits e, para cada subconjunto dos um ou mais conjuntos de camada, decodificar informações de taxa de imagens para o subconjunto a partir da estrutura de sintaxe de taxa de imagens de taxa de bits se o sinalizador de presença de taxa de imagens decodificado para o subconjunto indica que a informação de taxa de imagens está presente para o subconjunto.
6. Memória legível por computador caracterizada pelo fato de que compreende instruções que quando processador que compreende hardware de com que o processador realize um método na reivindicação 4 ou 5.
BR112016000865-0A 2013-07-15 2014-07-14 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 BR112016000865B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361846421P 2013-07-15 2013-07-15
US61/846,421 2013-07-15
US14/329,675 US9912943B2 (en) 2013-07-15 2014-07-11 Signaling of bit rate information and picture rate information in VPS
US14/329,675 2014-07-11
PCT/US2014/046553 WO2015009633A1 (en) 2013-07-15 2014-07-14 Signaling of bit rate information and picture rate information in vps

Publications (2)

Publication Number Publication Date
BR112016000865A2 BR112016000865A2 (pt) 2017-07-25
BR112016000865B1 true BR112016000865B1 (pt) 2023-04-18

Family

ID=52277088

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112016000862-6A BR112016000862B1 (pt) 2013-07-15 2014-07-14 Sinalização de profundidade de bit de identificador de visualização em conjuntos de parâmetros
BR112016000865-0A BR112016000865B1 (pt) 2013-07-15 2014-07-14 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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112016000862-6A BR112016000862B1 (pt) 2013-07-15 2014-07-14 Sinalização de profundidade de bit de identificador de visualização em conjuntos de parâmetros

Country Status (8)

Country Link
US (2) US10075729B2 (pt)
EP (2) EP3022914B1 (pt)
JP (2) JP6495268B2 (pt)
KR (2) KR20160032165A (pt)
CN (2) CN105493506B (pt)
BR (2) BR112016000862B1 (pt)
CA (2) CA2914714C (pt)
WO (2) WO2015009628A1 (pt)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075729B2 (en) 2013-07-15 2018-09-11 Qualcomm Incorporated Signaling of view ID bit depth in parameter sets
KR20150075040A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 멀티 레이어 비디오 신호 인코딩/디코딩 방법 및 장치
CN106105213B (zh) 2014-03-24 2019-09-10 株式会社Kt 多层视频信号编码/解码方法和装置
WO2017038103A1 (en) 2015-09-04 2017-03-09 Sharp Kabushiki Kaisha Systems and methods for signaling of video parameters and information associated with caption services
US10743004B1 (en) * 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
US10743003B1 (en) 2016-09-01 2020-08-11 Amazon Technologies, Inc. Scalable video coding techniques
CN114600456A (zh) * 2019-09-03 2022-06-07 Lg电子株式会社 用子画面对图像编码/解码的方法和装置及比特流传输方法
US20230016432A1 (en) * 2019-12-19 2023-01-19 Telefonaktiebolaget Lm Ericsson (Publ) Film grain process
US11381841B2 (en) * 2020-03-27 2022-07-05 Tencent America LLC Method for signaling subpicture identifier in tiled video stream
US11877011B2 (en) 2020-09-17 2024-01-16 Lemon Inc. Picture dimension indication in decoder configuration record

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101523919B (zh) * 2006-10-12 2011-09-14 高通股份有限公司 基于用于精细化系数译码的视频区块类型的可变长度译码表选择
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8238439B2 (en) 2007-01-04 2012-08-07 Thomson Licensing Methods and apparatus for multi-view information conveyed in high level syntax
ZA200904019B (en) * 2007-01-05 2010-08-25 Thomson Licensing Hypothetical reference decoder for scalable video coding
US9521434B2 (en) 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding
US10237565B2 (en) 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
EP3174295B1 (en) 2012-04-13 2018-12-12 GE Video Compression, LLC Low delay picture coding
EP2876882A4 (en) 2012-09-09 2016-03-09 Lg Electronics Inc IMAGE DECODING METHOD AND APPARATUS USING THE SAME
WO2014103529A1 (ja) * 2012-12-28 2014-07-03 シャープ株式会社 画像復号装置、およびデータ構造
KR20140092198A (ko) * 2013-01-07 2014-07-23 한국전자통신연구원 계층적 비디오 부호화에서의 스케일러빌리티 정보 표현방식
US20160134879A1 (en) 2013-04-05 2016-05-12 Samsung Electronics Co., Ltd. Multi-layer video coding method and device, and multi-layer video decoding method and device
US10075729B2 (en) 2013-07-15 2018-09-11 Qualcomm Incorporated Signaling of view ID bit depth in parameter sets

Also Published As

Publication number Publication date
CA2914714C (en) 2021-01-19
CN105493506B (zh) 2019-04-02
KR101930249B1 (ko) 2018-12-18
JP6495268B2 (ja) 2019-04-03
JP6363190B2 (ja) 2018-07-25
JP2016525317A (ja) 2016-08-22
BR112016000862A2 (pt) 2017-07-25
WO2015009633A1 (en) 2015-01-22
BR112016000862B1 (pt) 2023-04-04
KR20160032165A (ko) 2016-03-23
JP2016528801A (ja) 2016-09-15
US10075729B2 (en) 2018-09-11
WO2015009628A1 (en) 2015-01-22
BR112016000865A2 (pt) 2017-07-25
EP3022914A1 (en) 2016-05-25
US20150016534A1 (en) 2015-01-15
EP3022914B1 (en) 2020-11-25
CA2914357A1 (en) 2015-01-22
US20150016544A1 (en) 2015-01-15
CA2914714A1 (en) 2015-01-22
CN105379272B (zh) 2019-04-23
KR20160032164A (ko) 2016-03-23
US9912943B2 (en) 2018-03-06
EP3022915A1 (en) 2016-05-25
CA2914357C (en) 2020-07-28
CN105493506A (zh) 2016-04-13
CN105379272A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
TW202037163A (zh) 改善的子劃分內預測
JP6440735B2 (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
BR112016008235B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
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
BR112016008241B1 (pt) Indicação de processamento paralelo em codificação de vídeo
JP6333942B2 (ja) ビデオ情報のスケーラブルコード化のための装置及び方法
BR112015031009B1 (pt) Método e equipamento 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
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
KR20150137099A (ko) 고레벨 신택스 전용 스케일러블 비디오 코딩에 대한 계층간 레퍼런스 픽처 제한
BR112016021489B1 (pt) Método e equipamento para codificação de informação de vídeo, e,memória legível por computador
BR112016014227B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
ES2780686T3 (es) Tipo de dependencia entre vistas en MV-HEVC
BR112016006607B1 (pt) Método e dispositivo para processamento de dados de vídeo, e memória legível por computador
BR112016006574B1 (pt) Predição de vetor de movimento temporal com base em unidade de subpredição (pu) em hevc e projeto de sub-pu em 3d-hevc
BR112016008224B1 (pt) Escalabilidade de gama de cores com base em tabela de pesquisa tridimensional em codificação de vídeo de múltiplas camadas
BR112016021473B1 (pt) Método e aparelho para codificar informação de vídeo usando extensão escalável para codificação de vídeo de alta eficiência, shvc, ou codificação de vídeo de alta eficiência de múltiplas vistas, mv-hevc, assim como memória legível por computador
BR112016030377B1 (pt) Método e aparelho para converter informações de vídeo em código em um fluxo de bits, assim como memória legível por computador
BR112016029691B1 (pt) Projeto extensível de mensagens da informação suplementar do realce (sei) de aninhamento
KR20160031499A (ko) 고효율 비디오 코딩 확장물들에서 타겟 출력 계층들의 선택
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
TWI535273B (zh) 經組態以寫碼視訊資訊之設備及視訊寫碼裝置、編碼及解碼視訊資訊之方法與非暫態電腦可讀媒體
BR112016015453B1 (pt) Suporte de camada base de codec diferente em codificação de vídeo de várias camadas
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

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B350 Update of information on the portal [chapter 15.35 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 14/07/2014, OBSERVADAS AS CONDICOES LEGAIS