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

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

Info

Publication number
BR112016029751B1
BR112016029751B1 BR112016029751-2A BR112016029751A BR112016029751B1 BR 112016029751 B1 BR112016029751 B1 BR 112016029751B1 BR 112016029751 A BR112016029751 A BR 112016029751A BR 112016029751 B1 BR112016029751 B1 BR 112016029751B1
Authority
BR
Brazil
Prior art keywords
ols
video
hevc
vps
video data
Prior art date
Application number
BR112016029751-2A
Other languages
English (en)
Other versions
BR112016029751A2 (pt
Inventor
Ye-Kui Wang
Adarsh Krishnan Ramasubramonian
Fnu HENDRY
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 BR112016029751A2 publication Critical patent/BR112016029751A2/pt
Publication of BR112016029751B1 publication Critical patent/BR112016029751B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/182Methods 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 pixel
    • 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/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/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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

Landscapes

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

Abstract

perfil, patamar, nível para o 0-ésimo conjunto de camada de saída em codificação de vídeo. trata-se de sistemas e métodos para criptar dados de decodificação de vídeo. o método para codificar dados de vídeo pode incluir receber um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo. a pluralidade de camadas de dados de vídeo pode incluir uma camada de base e um conjunto de parâmetros de vídeo (vps). o vps pode indicar uma pluralidade de conjuntos de camada de saída (ols) e informações de perfil, patamar e nível (ptl) para cada ols dentre a pluralidade de olss, incluindo o 0ésimo ols. o método para decodificação também pode incluir selecionar um ols dentre a uma ou mais camadas como um ols alvo, e decodificar o ols alvo com base em informações de ptl sinalizadas no vps.

Description

ANTECEDENTES CAMPO TECNOLÓGICO
[0001] Este pedido se refere ao campo de codificação e compressão de vídeo, por exemplo, em criptadores de vídeo e decodificadores de vídeo. Em particular, este pedido se refere à Codificação de Vídeo Escalonável (SVC), incluindo SVC para Codificação de Vídeo Avançada (AVC), e SVC para Codificação de Vídeo de Alta Eficiência (HEVC), também denominados como HEVC Escalonável (SHVC), adicionalmente a extensões de múltiplas vistas e 3D para HEVC.
ANTECEDENTES
[0002] As capacidades de vídeo digital podem ser incorporadas em uma ampla gama 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, dispositivos 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 processos 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 HEVC atualmente sob desenvolvimento e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, criptar, decodificar e/ou armazenar informações de vídeo digital de maneira mais eficiente implantando-se tais tipos de codificação de vídeo.
[0003] Os métodos de codificação de vídeo incluem previsão espacial (intrafoto) e/ou previsão temporal (interfoto) para reduzir ou remover a redundância inerente em sequências de vídeo. Para a codificação de vídeo com base em bloco, uma fatia de vídeo (por exemplo, um quadro de vídeo ou uma porção de um quadro de vídeo) pode ser particionada em blocos de vídeo, que também podem ser denominados de blocos em árvore, unidades de codificação (CUs) e/ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma foto são criptados com o uso de uma previsão espacial em relação às amostras de referência em blocos vizinhos na mesma foto. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma foto podem usar previsão espacial em relação às amostras de referência em blocos vizinhos na mesma previsão de foto ou temporal em relação às amostras de referência em outras fotos de referência. As fotos podem ser referidas como quadros e as fotos de referência podem ser referidas como quadros de referência.
[0004] A previsão espacial ou temporal resulta em um bloco previsto para um bloco a ser codificado. Os dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco previsto. Um bloco intercodificado é criptado 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 é criptado de acordo com um modo de intracodificação e os 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 que podem, em seguida, ser quantizados. O coeficiente de transformada quantizado, disposto inicialmente em uma matriz bidimensional e pode ter sua varredura realizada a fim de produzir um vetor monodimensional de coeficiente de transformada, e a codificação por entropia pode ser aplicada para conseguir ainda mais compressão.
[0005] Um fluxo de bits de codificação de múltiplas vistas pode ser gerado criptando-se vistas, por exemplo, a partir de múltiplas perspectivas. Alguns padrões de vídeo tridimensionais (3D) foram desenvolvidos para fazer o uso de aspectos de codificação de múltiplas vistas. Por exemplo, diferentes vistas podem transmitir vistas de olho esquerdo e direito para suportar vídeo 3D. Alternativamente, alguns processos de codificação de vídeo 3D podem aplicar o que é conhecido por codificação de múltiplas vistas mais profundidade. Na codificação de múltiplas vistas mais profundidade, o fluxo de bits de vídeo 3D pode conter não apenas componentes de vista de textura, mas também componentes de vista de profundidade. Por exemplo, cada vista pode compreender um componente de vista de textura e um componente de vista de profundidade.
DESCRIÇÃO RESUMIDA
[0006] Em geral, esta revelação descreve métodos e sistemas relacionados à codificação de vídeo e, mais particularmente, a HEVC. Nos padrões SHVC e MV-HEVC atuais, o 0ésimoconjunto de camada de saída (OLS) especificado pelo conjunto de parâmetros de vídeo (VPS) ativo se refere ao OLS que contém somente a camada de base de dados de vídeo. No entanto, a menos que o fluxo de bits inteiro contém somente a camada de base, as informações de patamar e nível do 0ésimoOLS não são sinalizadas. Isso evita que o sistema de codificação de vídeo opere em um nível ideal em HEVC.
[0007] Os sistemas, métodos e dispositivos desta revelação têm, cada um, diversos aspectos inovadores, sendo que nenhum dos quais é unicamente responsável pelos atributos desejáveis revelados no presente documento.
[0008] Um aspecto da revelação fornece um método para criptar um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo, sendo que a pluralidade de camadas de dados de vídeo inclui uma camada de base. O método pode incluir gerar um ou mais elementos de sintaxe que indicam uma pluralidade de conjuntos de camada de saída (OLS) dentro do fluxo de bits. Cada OLS pode ter uma ou mais camadas dentre a pluralidade de camadas. Os elementos de sintaxe também podem indicar informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs. O método também pode incluir criptar a pluralidade de camadas que incluem criptar o um ou mais elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS).
[0009] Outro aspecto da revelação fornece um dispositivo para criptar um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo, sendo que a pluralidade de camadas de dados de vídeo inclui uma camada de base. O dispositivo pode ter uma memória configurada para armazenar a pluralidade de camadas de dados de vídeo. O dispositivo também pode ter pelo menos um processador acoplado de modo operável à memória. O pelo menos um processador pode gerar um ou mais elementos de sintaxe que indicam uma pluralidade de conjuntos de camada de saída (OLS) dentro do fluxo de bits. Cada OLS pode ter uma ou mais camadas dentre a pluralidade de camadas. Os elementos de sintaxe também podem indicar informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs. O pelo menos um processador também pode criptar a pluralidade de camadas que incluem criptar o um ou mais elementos de sintaxe em um conjunto de parâmetros de vídeo (VPS).
[0010] Outro aspecto da revelação fornece um método para decodificar dados de vídeo. O método pode incluir receber um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo. A pluralidade de camadas de dados de vídeo pode incluir uma camada de base e um conjunto de parâmetros de vídeo (VPS). O VPS pode indicar uma pluralidade de conjuntos de camada de saída (OLS) e informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs. O método também pode incluir selecionar um OLS de a uma ou mais camadas como um OLS alvo. O método também pode incluir decodificar o OLS alvo com base em informações de PTL sinalizadas no VPS.
[0011] Outro aspecto da revelação fornece um dispositivo para decodificar dados de vídeo. O dispositivo pode incluir uma memória configurada para armazenar um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo. A pluralidade de camadas de dados de vídeo pode incluir uma camada de base e um conjunto de parâmetros de vídeo (VPS). O VPS pode indicar uma pluralidade de conjuntos de camada de saída (OLS) e informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs. O dispositivo também pode ter pelo menos um processador acoplado de modo operável à memória. O pelo menos um processador pode selecionar um OLS dentre a uma ou mais camadas como um OLS alvo. O pelo menos um processador também pode decodificar o OLS alvo com base em informações de PTL sinalizadas no VPS.
[0012] Outros recursos e vantagens da presente revelação devem ser evidentes a partir da descrição a seguir que ilustra, a título de exemplo, aspectos da revelação.
DESCRIÇÃO DOS DESENHOS
[0013] Os detalhes das modalidades da presente revelação, tanto em relação à sua estrutura quanto à sua operação, podem ser adquiridos em parte pelo estudo dos desenhos anexos, nos quais referências numéricas similares se referem a partes similares, e nas quais:
[0014] A Figura 1 é um diagrama de blocos funcional de um sistema de codificação de vídeo;
[0015] A Figura 2 é um diagrama de blocos funcional do criptador de vídeo da Figura 1;
[0016] A Figura 3 é um diagrama de blocos funcional que ilustra o decodificador de vídeo da Figura 1;
[0017] A Figura 4 é um fluxograma de sinal que mostra um fluxo de sinal exemplificador entre um criptador de vídeo e decodificador de vídeo;
[0018] A Figura 5 é um fluxograma de um método para criptar um fluxo de bits; e
[0019] A Figura 6 é um fluxograma de um método para decodificar um fluxo de bits.
DESCRIÇÃO DETALHADA
[0020] A revelação fornece sistemas e métodos de codificação que podem incluir um ou mais dentre diversos aprimoramentos na codificação de vídeo de múltiplas camadas, incluindo a sinalização de informações de interoperabilidade tais como perfil, patamar, e nível para o 0ésimoconjunto de camada de saída (OLS). Conforme usado no presente documento, a “0ésimacamada” pode se referir, em geral, à camada de base de um fluxo de bits. Nos padrões SHVC e MV-HEVC atuais, o 0ésimoOLS especificado pelo VPS ativo se refere ao OLS que contém somente a camada de base. No entanto, a menos que o fluxo de bits inteiro contém somente a camada de base, as informações de patamar e nível do 0ésimoOLS não são sinalizadas.
[0021] Diversos aspectos dos sistemas, aparelhos e métodos inovadores são descritos mais completamente a partir deste ponto no presente documento com referência aos desenhos anexos. Entretanto, a presente revelação pode ser incorporada de várias maneiras diferentes e não deve ser interpretada como limitada a qualquer estrutura ou função específica apresentada ao longo de toda a presente revelação. Em vez disso, esses aspectos são fornecidos de modo que a presente revelação seja minuciosa e completa, e transmita plenamente o escopo da revelação para as pessoas versadas na técnica. Com base nos ensinamentos no presente documento, uma pessoa versada na técnica deve apreciar que o escopo da revelação está destinado a cobrir qualquer aspecto dos sistemas, aparelhos e métodos inovadores revelados no presente documento, sejam os mesmos implantados independentemente de, ou combinados com qualquer outro aspecto da revelação. Por exemplo, um aparelho pode ser implantado ou um método pode ser praticado através do uso de qualquer quantidade dos aspectos apresentados no presente documento. Além disso, o escopo da revelação está destinado a cobrir tal aparelho ou método que é praticado com o uso de outra estrutura, funcionalidade ou estrutura e funcionalidade adicionalmente ou que não sejam os vários aspectos da revelação estabelecidos no presente documento. Deve ser entendido que qualquer aspecto revelado no presente documento pode ser incorporado por um ou mais elementos de uma reivindicação.
[0022] Embora sejam descritos os aspectos particulares no presente documento, muitas variações e permutações desses aspectos estão dentro do escopo da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais sejam mencionados, o escopo da revelação não está destinado a ser limitado a benefícios, usos ou objetivos particulares. Em vez disso, os aspectos da revelação se destinam a ser amplamente aplicáveis a diferentes tecnologias sem fio, configurações de sistema, redes e protocolos de transmissão, alguns dos quais são ilustrados a título de exemplo nas Figuras e na descrição a seguir dos aspectos preferenciais. A descrição detalhada e desenhos são meramente ilustrativos da revelação em vez de limitantes, sendo que o escopo da revelação é definido pelas reivindicações anexas e equivalentes das mesmas.
SISTEMA DE CODIFICAÇÃO DE VÍDEO
[0023] A Figura 1 é um diagrama de blocos funcional de um sistema de codificação de vídeo. Um sistema de codificação de vídeo (“sistema”) 10 que pode utilizar métodos de acordo com aspectos descritos nesta revelação. Conforme usado descrito no presente documento, o termo “codificador de vídeo” se refere, genericamente, tanto a criptadores de vídeo quanto a decodificadores de vídeo. Nesta revelação, os termos “codificação de vídeo” ou “codificação” podem se referir, genericamente, à criptação de vídeo e à decodificação de vídeo.
[0024] Conforme mostrado na Figura 1, o sistema 10 inclui um dispositivo de origem 12 que pode gerar dados de vídeo criptados a serem decodificados posteriormente por um dispositivo de destino 14. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla gama de dispositivos, incluindo computadores de mesa, computadores do tipo notebook (isto é, do tipo laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone, tais como, os denominados telefones "inteligentes", denominados pads "inteligentes", televisões, câmeras, dispositivos de exibição, reprodutores de meio digital, consoles de jogos eletrônicos, dispositivo de transmissão contínua de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0025] O dispositivo de destino 14 pode receber os dados de vídeo criptados para serem decodificados através de um enlace 16. O enlace 16 pode compreender qualquer tipo de meio ou dispositivo com capacidade de mover os dados de vídeo criptados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, o enlace 16 pode compreender um meio de comunicação para possibilitar que um dispositivo de origem 12 transmita os dados de vídeo criptados diretamente ao dispositivo de destino 14 em tempo real. O dispositivo de origem 12 pode modular os dados de vídeo criptados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio e transmitidos ao dispositivo de destino 14. O meio de comunicação pode compreender qualquer meio de comunicação sem fio ou com fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. O meio de comunicação pode formar parte de uma rede com base em pacote, tal como, uma rede de área local, uma rede de longa distância ou uma rede global, tal como a Internet. O meio de comunicação pode incluir roteadores, comutadores, estações-base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação do dispositivo de origem 12 com o dispositivo de destino 14.
[0026] Os dados criptados podem ser emitidos a partir da interface de saída 22 para um dispositivo de armazenamento 34. De modo similar, dados codificados podem ser acessados a partir do dispositivo de armazenamento 34 pela interface de entrada. O dispositivo de armazenamento 34 pode incluir qualquer um dentre uma variedade de mídias de armazenamento de dados distribuídos ou acessados localmente tais 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 outras mídias de armazenamento digital adequadas para armazenar dados de vídeo criptados. Em um exemplo adicional, o dispositivo de armazenamento 34 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode manter o vídeo criptado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento por meio de transmissão ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com capacidade para armazenar dados de vídeo criptados e transmitir esses dados de vídeo criptados para o dispositivo de destino 14. Os servidores de arquivos exemplificadores 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 criptados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão cabeada (por exemplo, DSL, modem a cabo, etc.), ou uma combinação dos dois que seja adequada para cessar os dados de vídeo criptados armazenados em um servidor de arquivos. A transmissão de dados de vídeo criptados do dispositivo de armazenamento pode ser uma transmissão de transmissão contínua, uma transmissão de transferência por download ou uma combinação de ambas.
[0027] Os métodos desta revelação não se limitam necessariamente às aplicações ou definições sem fio. Os métodos podem ser aplicados à codificação de vídeo em suporte a qualquer uma dentre uma variedade de aplicativos multimídia, tais como difusões de televisão pelo ar, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões de vídeo contínuas, por exemplo, através da Internet, criptação de vídeo digital para o armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 10 pode ser configurado para suportar transmissão de vídeo unidirecional ou bidirecional a fim de suportar aplicações, tais como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou videotelefonia.
[0028] No exemplo da Figura 1, o dispositivo de origem 12 inclui uma fonte de vídeo 18, o criptador de vídeo 20 e uma interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. No dispositivo de origem 12, a fonte de vídeo 18 pode incluir uma fonte, tal como, um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo que contém vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo de um fornecedor de conteúdo de vídeo e/ou um sistema de computação gráfica para gerar dados de computação gráfica, como o vídeo de origem, ou uma combinação de tais fontes. Como exemplo, se a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os denominados telefones de câmera ou videofones. Entretanto, os métodos descritos nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas às aplicações sem fio e/ou com fio.
[0029] O criptador de vídeo 20 pode criptar o vídeo capturado, pré-capturado ou gerado por computador. Adicionalmente, em algumas modalidades, o decodificador de vídeo 30 pode diferenciar entre um primeiro fluxo de bits e um segundo fluxo de bits com base no ID de conjunto de parâmetros do primeiro fluxo de bits e do ID de conjunto de parâmetros exclusivo. Em outros exemplos, a interface de saída 22 do dispositivo de origem 12 pode transmitir os dados de vídeo criptados diretamente ao dispositivo de destino 14 através do enlace 16. Os dados de vídeo criptados também podem (ou, alternativamente) ser armazenados no dispositivo de armazenamento 34 para acesso posterior pelo dispositivo de destino 14 ou outros dispositivos, para decodificação e/ou reprodução.
[0030] O dispositivo de destino 14 inclui uma interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de inserção 28 do dispositivo de destino 14 recebe os dados de vídeo criptados pelo enlace 16. Os dados de vídeo criptados comunicados através do enlace 16, ou fornecidos no dispositivo de armazenamento 34, podem incluir uma variedade de elementos de sintaxe gerados pelo criptador de vídeo 20 para uso através de um decodificador de vídeo, tal como o decodificador de vídeo 30, na decodificação dos dados de vídeo. Tais elementos de sintaxe podem estar incluídos com os dados de vídeo criptados transmitidos em um meio de comunicação, armazenados em um meio de armazenamento ou armazenados em um servidor de arquivos.
[0031] O dispositivo de exibição 32 pode ser integrado ou externo ao dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de exibição integrado e também ser configurado para fazer interface com um dispositivo de exibição externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em general, o dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário e pode compreende qualquer um dentre uma variedade de dispositivos de exibição, tais como, um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo de emissão de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0032] Cada um dentre o criptador de vídeo 20 e o decodificador de vídeo 30 pode ser implantado como qualquer um dentre uma variedade de conjuntos de circuitos de criptador adequados, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programável em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando os métodos são implantados parcialmente em software, um dispositivo pode armazenar instruções para o software em um meio legível por computador não transitório adequado e executar as instruções em hardware com o uso de um ou mais processadores para realizar os métodos desta revelação. Cada um dentre o criptador de vídeo 20 e o decodificador de vídeo 30 podem estar incluídos em um ou mais criptadores ou decodificadores, um dos quais pode ser integrado como parte de um criptador/decodificador (CODEC) combinado em um dispositivo respectivo.
[0033] 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 um certo número de 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 criptação intraprevisão, o HM pode fornecer até trinta e três modos de criptação de intraprevisão.
[0034] Em geral, o modelo em funcionamento do HM descreve que um quadro de vídeo ou figuração 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. Um bloco em árvore tem um propósito similar ao de um macrobloco do padrão H.264. Uma fatia inclui vários blocos em árvore consecutivos em ordem de codificação. Um quadro ou figuração de vídeo pode ser particionado em uma ou mais fatias. Cada bloco de árvore pode ser repartido em unidades de codificação (CUs) de acordo com uma árvore quadrática. Por exemplo, um bloco de árvore, como um nó raiz da árvore quadrática, pode ser dividido em quatro nós filhos e cada nó filho pode, por sua vez, ser um nó pai e ser dividido em outros quatro nós filhos. Um nó filho não dividido final, como um nó folha da árvore quadrática, compreende um nó de codificação, isto é, um bloco de vídeo codificado. Os dados de sintaxe associados a um fluxo de dados codificados podem definir um número máximo de vezes que um bloco em árvore pode ser dividido e definem um tamanho mínimo dos nós de codificação.
[0035] 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 de á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 partição da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se a CU é omitida ou codificada de modo direto, codificada de modo de intraprevisão ou codificada de modo de interprevisão. As PUs podem ser particionadas para terem formato não quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, a partição da CU em uma ou mais TUs de acordo com uma árvore quadrática. Uma TU pode ter formato quadrado ou não quadrado.
[0036] O padrão HEVC prevê transformações de acordo com as TUs, que podem ser diferentes para diferentes CUs. As TUs podem ser dimensionadas com base no tamanho de PUs dentro de uma dada CU definida por uma LCU particionada, embora esse possa nem sempre ser o caso. As TUs podem ter 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" (RQT). Os nós de folha da RQT podem ser chamados de 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.
[0037] Em geral, uma PU inclui dados relacionados ao processo de previsão. Por exemplo, quando a PU for criptada em intermodos, a PU pode incluir dados que descrevam um modo de intraprevisão para a PU. Como outro exemplo, quando a PU for criptada em intermodo, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para um 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 figuração de referência para a qual o vetor de movimento aponta e/ou uma lista de figurações de referência (por exemplo, Lista 0, Lista 1 ou Lista C) para o vetor de movimento.
[0038] Em geral, uma TU é usada para os processos de transformada e de quantização. Uma dada CU que tem uma ou mais PUs também pode incluir uma ou mais unidades de transformada (TUs). Após a previsão, o criptador de vídeo 20 pode calcular valores residuais que correspondem à PU. Os valores residuais compreendem valores de diferença de pixel que podem ser transformados em coeficientes de transformada, quantizados e digitalizados com o uso das TUs para produzir coeficientes de transformada em série para codificação por entropia. Conforme usado no presente documento, o termo “bloco de vídeo” pode se referir, em geral, a um nó de codificação de uma CU. Em alguns casos específicos, essa revelação também pode usar o termo "bloco de vídeo"para se referir a um bloco de árvore, isto é, um CTB, uma LCU ou uma CU, que inclui um nó de codificação e PUs e TUs.
[0039] O criptador de vídeo 20 pode gerar um fluxo de bits que inclui dados de vídeo criptados. O fluxo de bits pode incluir uma série de unidades de camada de abstração de rede (NAL). Cada uma das unidades de NAL pode incluir um cabeçalho de unidade de NAL e pode encapsular uma carga útil de sequência de byte bruto (RBSP). O cabeçalho de unidade de NAL pode incluir um elemento de sintaxe que indica um código de tipo de unidade de NAL. O código do tipo unidade de NAL especificado pelo cabeçalho de unidade de NAL de uma unidade de NAL indica o tipo da unidade de NAL. As unidades de NAL do fluxo de bits podem incluir unidades de NAL de camada de codificação de vídeo (VCL) e unidades diferentes de NAL VCL. As unidades de NAL de VCL podem incluir fatias codificadas das figurações.
[0040] Uma unidade de NAL não VCL pode incluir um VPS, um conjunto de parâmetros de sequência (SPS), um conjunto de parâmetros de figuração (PPS), SEI, ou outros tipos de dados. Um VPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que aplicam a zero ou sequências de vídeo de codificação mais inteiras. Um SPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que aplicam a zero ou figurações de codificação mais inteiras. Um único VPS pode ser aplicável a múltiplos SPSs. Um PPS é uma estrutura de sintaxe que pode conter elementos de sintaxe que aplicam a zero ou figurações de codificação mais inteiras. Um único SPS pode ser aplicável a múltiplos PPSs. Vários aspectos do VPS, SPS, e PPS podem ser formados, em geral, conforme definido pelo padrão HEVC. O criptador de vídeo 20 pode usar mensagens de SEI para incluir, no fluxo de bits, metadados que não são exigidos para decodificação correta dos valores de amostra das figurações. No entanto, o decodificador de vídeo 30 ou outros dispositivos podem usar os metadados incluídos em mensagens de SEI para vários outros propósitos. Por exemplo, o decodificador de vídeo 30 pode usar os metadados em mensagens de SEI para temporização de emissão de figuração, exibição de figuração, detecção de perda, e ocultabilidade de erros.
SINTAXE DE ALTO NÍVEL
[0041] As unidades de NAL podem conter elementos de sintaxe criptados pelo criptador de vídeo 20 e transmitidas ao decodificador de vídeo 30. Os elementos de sintaxe que descrevem a estrutura do fluxo de bits ou fornecem informações que se aplicam a múltiplas figurações ou a múltiplas regiões de bloco codificadas dentro de uma figuração, tais como os conjuntos de parâmetros (por exemplo, SPS, VPS, PPS, etc.), sintaxe de gerenciamento de figuração de referência, e mensagens de SEI, são conhecidas como parte de “sintaxe de alto nível” (HLS) de HEVC.
[0042] Em particular, HEVC emprega os seguintes aspectos, relevantes a esta revelação: Estrutura de conjuntos de parâmetros: Conjuntos de parâmetros contêm informações que podem ser compartilhadas para a decodificação de diversas regiões do vídeo decodificado. A estrutura de conjuntos de parâmetros fornece um mecanismo robusto para transportar dados que são essenciais ao processo de decodificação. Informações de aprimoramento suplementares (SEI) A sintaxe inclui suporte para vários tipos de metadados conhecidos como SEI. Tais dados fornecem informações acerca da temporização das figurações de vídeo, a interpretação apropriada do espaço de cor usado no sinal de vídeo, informações de empacotamento de quadro estereoscópico 3D, outras informações de pistas de exibição, e assim por diante.
[0043] A Figura 2 é um diagrama de blocos funcional do criptador de vídeo da Figura 1. O criptador de vídeo 20 pode incluir um módulo de particionamento 35 configurado para receber dados de vídeo capturados e particionar os dados de vídeo em blocos de vídeo. O módulo de particionamento 35 pode particionar os dados de vídeo em fatias, telhas ou outras unidades maiores. O módulo de particionamento 35 também pode particionar blocos de vídeo, por exemplo, de acordo com uma estrutura de quad-tree das LCUs e CUs. O criptador de vídeo 20 pode dividir as fatias em múltiplos blocos de vídeo (e possivelmente em conjuntos de blocos de vídeo denominados figurações lado a lado).
[0044] O criptador de vídeo 20 também pode ter um módulo de previsão 41 acoplado de modo operável ao módulo de particionamento 35 e configurado para receber os dados de vídeo particionados. O módulo de previsão 41 pode selecionar um dentre uma pluralidade de modos de codificação possíveis, como um dentre uma pluralidade de modos de intracodificação ou um dentre uma pluralidade de modos de intercodificação, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, taxa de codificação e o nível de distorção). O módulo de previsão 20 pode permitir que o criptador de vídeo 20 realize a intracodificação e a intercodificação de blocos de vídeo dentro de fatias de vídeo. A intracodificação tem base na previsão espacial para reduzir ou remover a redundância espacial no vídeo dentro de um dado quadro ou figuração de vídeo. A intercodificação se baseia na previsão temporal para reduzir ou remover a redundância temporal no vídeo dentro de quadros ou figurações adjacentes de uma sequência de vídeo. O intramodo (modo I) pode se referir a qualquer um dentre vários modos de compressão com base em espaço. Os intermodos, como previsão unidirecional (modo P) ou biprevisão (modo B), podem se referir a qualquer um dentre vários modos de compressão com base em tempo.
[0045] O módulo de previsão 41 pode incluir um módulo de estimativa de movimento 42, um módulo de compensação de movimento 44, e um módulo de intraprevisão 46. Cada um desses componentes pode ser conectado de modo operável ou integrado em um ou mais processadores dentro do criptador de vídeo 20. Embora discutido separadamente para fins conceituais, o módulo de estimativa de movimento 42, o módulo de compensação de movimento 44 e o módulo de intraprevisão 46 podem ser altamente integrados.
[0046] O módulo de estimativa de movimento 42 pode ser configurado para determinar o modo de interprevisão para uma fatia de vídeo de acordo com uma padronização predeterminada para uma sequência de vídeo. Tal codificação de interprevisão e interpreditiva do bloco de vídeo atual relativo a um ou mais blocos preditivos em uma ou mais figurações de referência pode fornecer compressão atemporal. A padronização predeterminada pode designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. A estimativa de movimento, conforme usado no presente documento, pode se referir ao 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 que o deslocamento de uma PU de um bloco de vídeo dentro de um quadro ou figuração de vídeo atual em relação a um bloco preditivo dentro de um quadro de uma figuração de referência. Os quadros de referência podem ser armazenados em uma memória de figuração de referência 64 acoplada de modo operável ao módulo de previsão 41. A memória de quadro de referência 64. A memória de quadro de referência 64 pode armazenar blocos de codificação reconstruídos depois que um módulo de filtro 63 realiza operações de desbloqueio nos blocos de codificação reconstruídos. A memória de quadro de referência 64 também pode operar desse modo como um armazenamento temporário de figuração decodificado (DPB).
[0047] Um bloco preditivo é um bloco que se encontra em correspondência muito próxima à PU do bloco de vídeo a ser codificado, em termos de diferença de pixels, que pode ser determinada pelo somatório da diferença absoluta (SAD), pelo somatório da diferença quadrada (SSD) ou por outras medidas de diferença. Em alguns exemplos, o módulo de previsão de movimento ("módulo de previsão") 41 pode calcular valores para posições de pixel de subnúmero inteiro de figurações de referência armazenadas na memória de figuração de referência 64. Por exemplo, o módulo de previsão 41 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 figuração de referência. Portanto, o módulo 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.
[0048] O módulo de estimativa de movimento 42 pode calcular um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada pela comparação da posição da PU em relação à posição de um bloco preditivo de uma figuração de referência. A figuração de referência pode ser selecionada a partir de uma primeira lista de figuração de referência (Lista 0) ou uma segunda lista de figuração de referência (Lista 1), cada uma das quais identifica uma ou mais figurações de referência armazenadas na memória de figuração de referência 64. O módulo de estimativa de movimento 42 pode enviar o vetor de movimento calculado ao módulo de compensação de movimento 44 e um módulo de criptação por entropia 56.
[0049] A compensação de movimento pode envolver obter ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Isso pode incluir interpolações à precisão de subpixel. Mediante o recebimento do vetor de movimento para a PU do bloco de vídeo atual, o módulo de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de figurações de referência. O módulo de compensação de movimento 44 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0050] O módulo de intraprevisão 46 do módulo de previsão pode realizar a codificação intrapreditiva do bloco de vídeo atual em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia para fornecer a compressão espacial. O módulo de intraprevisão 46 pode intraprever ou calcular um bloco atual, como uma alternativa à interprevisão realizada pelo módulo de estimativa de movimento 42 e pelo módulo de compensação de movimento 44, conforme descrito acima. Em particular, o módulo de intraprevisão 46 pode determinar um modo de intraprevisão para uso para criptar um bloco atual. Em alguns exemplos, o módulo de intraprevisão 46 pode criptar um bloco atual com o uso de vários modos de intraprevisão, por exemplo, durante passes de criptação separada. Por exemplo, o módulo 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 pode determinar uma quantidade de distorção (ou erro) entre um bloco criptado e um bloco original não criptado que foi criptado para produzir o bloco criptado, bem como uma taxa de bits (isto é, vários bits) usados para produzir o bloco criptado. O módulo de intraprevisão 46 pode calcular razões a partir de distorções e taxas para os vários blocos criptados para determinar qual modo de intraprevisão exibe o melhor valor de distorção de taxa para o bloco.
[0051] O módulo de intraprevisão 46 pode fornecer informações indicativas do modo de intraprevisão selecionado para o bloco ao módulo de criptação por entropia 56. O módulo de criptação por entropia 56 pode criptar as informações que indicam o modo de intraprevisão selecionado. O criptador de vídeo 20 pode incluir dados de configuração no fluxo de bits transmitido, que 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 criptação de contextos para vários 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.
[0052] Depois que o módulo de previsão 41 gera o bloco preditivo para o bloco de vídeo atual por meio tanto de interprevisão quanto de intraprevisão, o codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se o bloco preditivo do bloco de vídeo atual. Esse processo pode resultar em valores de diferença de pixel. Os valores de diferença de pixel formam os dados residuais para o bloco e podem incluir componentes de diferença tanto de luma quanto de croma. Um somador 50, acoplado de modo operável ao módulo de previsão 41 e ao módulo de particionamento 35, representa o componente ou componentes que podem ser configurados para realizar essa operação de subtração.
[0053] Os dados de vídeo residuais no bloco residual podem estar incluídos em uma ou mais TUs e aplicados a um módulo de transformada 52 acoplado de modo operativo ao somador 50. O módulo de transformada 52 pode transformar os dados de vídeo residuais em coeficientes de transformada residuais com o uso de uma transformada, como uma transformada de cosseno distinta (DCT) ou uma transformada conceitualmente semelhante. O módulo de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel a um domínio de transformada, como um domínio de frequência. O módulo de previsão 41 pode fornecer o bloco intra ou intercodificado resultante ao somador 50 para gerar dados de bloco residuais. O bloco intra ou intercodificado resultante pode ser adicionalmente dotado de um somador 62 para reconstruir o bloco criptado para uso como uma figuração de referência.
[0054] O criptador de vídeo 20 também pode incluir o módulo de filtro 63 acoplado de modo operável ao somador 62. O módulo de filtro 63 pode representar um ou mais filtros em circuito como um filtro de desbloqueio, um filtro de circuito adaptativo (ALF) e um filtro de deslocamento adaptativo de amostra (SAO). Embora o módulo de filtro 63 seja mostrado na Figura 2 como sendo um filtro em circuito, em outras configurações, o módulo de filtro 63 pode ser implantado como um filtro pós-circuito. O módulo de filtro 63 pode fornecer figurações de referência à memória de figuração de referência 64.
[0055] O módulo de transformada 52 pode enviar coeficientes de transformada resultantes a um módulo de quantização 54. O módulo de quantização 54 pode quantizar os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bit 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, o módulo de quantização 54 pode, então, realizar uma varredura da matriz, que inclui coeficientes de transformada quantizados. Em algumas modalidades, o módulo de criptação por entropia 56 pode realizar a varredura.
[0056] Após a quantização, o módulo de criptação por entropia 56 pode criptar por entropia os coeficientes de transformada quantizados. Por exemplo, o módulo de criptação 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 metodologia de criptação por entropia. O criptador de vídeo 20 também pode criptar por entropia elementos de sintaxe associados aos dados de vídeo criptados para uso pelo decodificador de vídeo 30 na decodificação dos dados de vídeo.
[0057] Após a codificação por entropia pelo módulo de criptação por entropia 56, o fluxo de bits criptado pode ser transmitido ao decodificador de vídeo 30. O fluxo de bits também pode ser arquivado para transmissão ou recuperação posterior pelo decodificador de vídeo 30. O módulo de criptação por entropia 56 pode também codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que é codificada.
[0058] O criptador de vídeo 20 também pode incluir um módulo de quantização inversa 58 acoplado de modo operável ao módulo de criptação por entropia 56. Um módulo de transformada inversa 60 também pode ser acoplado de modo operável ao módulo de quantização inversa 58 e ao somador 62. O módulo de quantização inversa 58 e o módulo de transformada inversa 60 podem aplicar quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixels, para uso posterior como um bloco de referência de uma figuração de referência. O módulo de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de uma dentre as figurações de referência em uma dentre as listas de figuração de referência 64. O somador 62 pode adicionar o bloco residual reconstruído ao bloco de previsão compensado de movimento produzido pelo módulo de compensação de modo 44 para produzir um bloco de referência para o armazenamento na memória de figuração de referência 64. O bloco de referência pode ser usado pelo módulo de estimativa de movimento 42 e pelo módulo de compensação de movimento 44 como um bloco de referência para interprever um bloco em um quadro de vídeo subsequente ou figuração.
[0059] Em alguns exemplos, o criptador de vídeo 20 gera um fluxo de bits. O fluxo de bits gerado pelo criptador de vídeo 20 pode incluir múltiplos pontos de operação que podem ser extraídos como subfluxos de bits do fluxo de bits. Os pontos de operação podem incluir, por exemplo, múltiplas camadas e/ou vistas, assim como múltiplas taxas de quadro. O criptador de vídeo 20 pode criptar informações indicativas dos pontos de operação de saída no VPS. Conforme usado no presente documento um ponto de operação de saída se refere a um ponto de operação para o qual as camadas de saída (isto é, o conjunto de camadas a ser emitido) são especificadas. Em alguns exemplos, para cada um dos pontos de operação que o criptador de vídeo 20 sinaliza no VPS associado ao fluxo de bits, uma estrutura de sintaxe de ponto de operação especifica um conjunto de identificadores de camada (IDs) usadas para identificar unidades de NAL no fluxo de bits que pertencem a um subfluxo de bits de um dado ponto de operação. Dessa maneira, as unidades de NAL que compõem o subfluxo de bits do dado ponto de operação podem ser extraídas do fluxo de bits original com base nos identificadores de camada das unidades de NAL.
[0060] A Figura 3 é um diagrama de blocos que ilustra o decodificador de vídeo da Figura 1. Para propósitos explicativos, a presente revelação descreve o decodificador de vídeo 30 no contexto de codificação de HEVC. Entretanto, essa revelação pode ser aplicável a outros padrões ou métodos de codificação.
[0061] O decodificador de vídeo 30 pode incluir um módulo de decodificação por entropia 70, um módulo de previsão 71, um módulo de quantização inversa 76, um módulo de transformada inversa 78, um somador 80, um módulo de filtro 84 e um armazenamento temporário de figuração decodificada (DPB) 82. O módulo de previsão 71 pode incluir um módulo de compensação de movimento 72 e um módulo de intraprevisão 74. Em outros exemplos, o decodificador de vídeo 30 pode incluir mais componentes funcionais, poucos componentes funcionais ou componentes funcionais diferentes.
[0062] Um armazenamento temporário de figuração codificada (CPB) 90 pode receber e armazenar dados de vídeo criptados (por exemplo, unidades de NAL) de um fluxo de bits. O módulo de decodificação por entropia 70 pode receber unidades de NAL provenientes do CPB 90 e analisar as unidades de NAL para decodificar elementos de sintaxe. O módulo de decodificação por entropia 70 pode decodificar por entropia os elementos de sintaxe criptados por entropia nas unidades de NAL. O módulo de previsão 71, o módulo de quantização inversa 76, o módulo de transformada inversa 78, o somador 80, e o módulo de filtro 84 podem gerar dados de vídeo decodificados com base nos elementos de sintaxe extraídos do fluxo de bits.
[0063] As unidades de NAL do fluxo de bits podem incluir unidades de NAL de fatia codificada. Como parte de decodificação do fluxo de bits, o módulo de decodificação por entropia 70 pode extrair e decodificar por entropia elementos de sintaxe a partir das unidades de NAL de fatia codificada. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados de fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho de fatia podem incluir um elemento de sintaxe que identifica um PPS associado a uma figuração que contém a fatia.
[0064] Além de decodificar os elementos de sintaxe a partir do fluxo de bits, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em uma CU não particionada. Para realizar a operação de reconstrução em uma CU não particionada, o decodificador de vídeo 30 pode realizar uma operação de reconstrução em cada TU da CU. Através da realização da operação de reconstrução para cada TU da CU, o decodificador de vídeo 30 pode reconstruir os blocos residuais da CU.
[0065] Como parte de realização de uma operação de reconstrução em uma TU de uma CU, o módulo de quantização inversa 76 pode quantizar inversamente, isto é, desquantizar, os blocos de coeficiente associados à TU. O módulo de quantização inversa 76 pode usar um valor de parâmetro de quantização (QP) associado à CU da TU para determinar um grau de quantização e, de modo similar, para aplicar um grau de quantização inversa para que o módulo de quantização inversa 76. Isto é, a razão de comparação, isto é, a razão do número de bits usada para representar sequência original e a compactada, pode ser controlada através do ajuste do valor do QP usado ao quantizar os coeficientes de transformada. A razão de comparação também pode depender do método de codificação de entropia empregado.
[0066] Depois que o módulo de quantização inversa 76 quantiza inversamente um bloco de coeficiente, o módulo de transformada inversa 78 pode aplicar uma ou mais transformadas inversas ao bloco de coeficiente a fim de gerar um bloco residual associado à TU. Por exemplo, o módulo de transformada inversa 78 pode aplicar uma DCT inversa, uma transformada de número inteiro inversa, uma transformada direcional inversa ou outra transformada inversa ao bloco de coeficiente.
[0067] Se uma PU for criptada com uso de intraprevisão, o módulo de intraprevisão 74 pode realizar a intraprevisão para gerar blocos preditivos para a PU. O módulo de intraprevisão 74 pode usar um modo de intraprevisão para gerar os blocos preditivos luma, Cb e Cr para a PU com base nos blocos de previsão de PUs espacialmente vizinhas. O módulo de intraprevisão 74 pode determinar o modo de intraprevisão para a PU com base em um ou mais elementos de sintaxe decodificados a partir do fluxo de bits.
[0068] O módulo de previsão 71 pode construir uma primeira lista de figuração de referência (RefPicList0) e uma segunda figuração de referência (RefPicListl) com base nos elementos de sintaxe extraídos do fluxo de bits. Além disso, se uma PU for codificada com uso de interprevisão, o módulo de decodificação por entropia 70 pode extrair as informações de movimento para a PU. O módulo de compensação de movimento 72 pode determinar, com base nas informações de movimento da PU, uma ou mais regiões de referência para a PU. O módulo de compensação de movimento 72 pode gerar blocos de luma, Cb e Cr preditivos para os blocos de amostras baseados em PU nos um ou mais blocos de referência para o PU.
[0069] O somador 80 pode usar os blocos de transformada luma, Cb e Cr associados às TUs de uma CU e os blocos de luma, Cb e Cr preditivos das PUs da CU, isto é, dados de intraprevisão ou dados de interprevisão, caso seja aplicável, para reconstruir os blocos de codificação luma, Cb e Cr da CU. Por exemplo, o somador 80 pode adicionar amostras dos blocos de transformada luma, Cb e Cr às amostras correspondentes dos blocos preditivos luma, Cb e Cr) para reconstruir os blocos de codificação luma, Cb e Cr da CU.
[0070] O módulo de filtro 84 pode ser um filtro de desbloqueio, por exemplo, e realizar uma operação de desbloqueio para reduzir o bloqueio de artefatos associados aos blocos de codificação de luma Cb e Cr da CU. O decodificador de vídeo 30 pode então armazenar os blocos de codificação de luma Cb e Cr da CU no armazenamento temporário de figuração decodificado 82. O armazenamento temporário de figuração decodificada 82 pode fornecer figurações de referência para compensação, intraprevisão e apresentação de movimento subsequente em um dispositivo de visor, tal como dispositivo de visor 32 da Figura 1. Por exemplo, o decodificador de vídeo 30 pode realizar operações de intraprevisão ou interprevisão em PUs de outras CUs com base nos blocos de luma Cb e Cr no armazenamento temporário de figuração decodificado 82. Desse modo, o decodificador de vídeo 30 pode decodificar, do fluxo de bits, níveis de coeficiente de transformada do bloco de coeficientes luma significativo, quantizar inversamente os níveis de coeficiente de transformada, aplicar uma transformada aos níveis de coeficiente de transformada para gerar um bloco de transformada, gerar, com base, pelo menos em parte, no bloco de transformada, um bloco de codificação, e emitir o bloco de codificação para exibição.
ORDEM DE CONJUNTOS DE PARÂMETRO
[0071] Uma RBSP é uma estrutura de sintaxe que contém um número inteiro de bytes que é encapsulado em uma unidade de NAL e que tanto está vazia como tem a forma de uma sequência de bits de dados que contém elementos de sintaxe
[0072] Uma RBSP de PPS inclui parâmetros que podem ser denominados pelas unidades de NAL de segmento de fatia codificado de uma ou mais figurações codificadas. Cada RBSP de PPS é inicialmente considerada não ativa para a camada de base no começo da operação do processo de decodificação. No máximo uma RBSP de PPS é considerada ativa para a camada de base em qualquer dado momento durante a operação do processo de decodificação, e a ativação de qualquer RBSP de PPS particular para a camada de base resulta na desativação da RBSP de PPS previamente ativo para a camada de base (se houver).
[0073] Quando uma RBSP de PPS não é ativa para a camada de base e a mesma é denominada por uma unidade de NAL de segmento de fatia codificado com nuh_layer_id igual a 0, a mesma é ativada para a camada de base. Essa RBSP de PPS é chamada de RBSP de PPS ativa para a camada de base até que o mesmo seja desativado pela ativação de outra RBSP de PPS para a camada de base. Uma RBSP de PPS, com esse valor particular de pps_pic_parameter_set_id, deve estar disponível ao processo de decodificação antes de sua ativação, incluída em pelo menos uma unidade de acesso com Temporalld menor ou igual ao Temporalld da unidade de NAL de PPS ou fornecida através de meios externos, e a unidade de NAL de PPS que contém a RBSP de PPS deve ter nuh_layer_id igual a 0.
[0074] Qualquer unidade de NAL de PPS que contém o valor de pps_pic_parameter_set_id para a RBSP de PPS ativa para uma figuração codificada (e, consequentemente, para a camada que contém a figuração codificada) deve ter o mesmo conteúdo que o da RBSP de PPS ativa para a figuração codificada, a menos que o mesmo siga a última unidade de NAL de VCL da figuração codificada e precede a primeira unidade de NAL de VCL de outra figuração codificada.
[0075] Uma RBSP de SPS inclui parâmetros que podem ser citados por uma ou mais RBSPs de PPS ou uma ou mais unidades de NAL de SEI que contêm uma mensagem de SEI de conjuntos de parâmetros ativa. Cada RBSP de SPS é inicialmente considerada não ativa para a camada de base no começo da operação do processo de decodificação. No máximo uma RBSP de PPS é considerada ativa para a camada de base em qualquer dado momento durante a operação do processo de decodificação, e a ativação de qualquer RBSP de PPS particular para a camada de base resulta na desativação da RBSP de PPS previamente ativo para a camada de base (se houver).
[0076] Quando uma RBSP de SPS já não é ativa para a camada de base e o mesmo é denominado pela de uma RBSP de PPS para a camada de base ou, quando vps_base_layer_internal_flag é igual a 1 e vps_base_layer_available_flag é igual a 1, é denominado por uma unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativa, a mesma é ativada para a camada de base. Essa RBSP de SPS é chamada de RBSP de SPS ativa para a camada de base até que o mesmo seja desativado pela ativação de outra RBSP de SPS para a camada de base. Uma RBSP de SPS, com esse valor particular de sps_seq_parameter_set_id, deve estar disponível ao processo de decodificação antes de sua ativação, incluída em pelo menos uma unidade de acesso com Temporalld igual a 0 ou fornecida através de meios externos, e a unidade de NAL de SPS que contém a RBSP de SPS deve ter nuh_layer_id igual a 0. Uma RBSP de SPS ativada para a camada de base deve permanecer ativa para a sequência de vídeo codificada inteira (CVS).
[0077] Qualquer unidade de NAL de SPS com nuh_layer_id igual a 0 que contém o valor de sps_seq_parameter_set_id para a RBSP de SPS ativa para a camada de base para um CVS deve ter o conteúdo igual ao da RBSP de SPS ativa para a camada de base para o CVS, a menos que a mesma siga a última unidade de acesso do CVS e precede a primeira unidade de NAL de VCL e a primeira unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativa (quando presente) de outro CVS.
[0078] Uma RBSP de VPS inclui parâmetros que podem ser citados por uma ou mais RBSPs de VPS ou uma ou mais unidades de NAL de SEI que contêm uma mensagem de SEI de conjuntos de parâmetros ativa. Cada RBSP de VPS é inicialmente considerada não ativa no começo da operação do processo de decodificação. No máximo, uma RBSP de VPS é considerada ativa em qualquer tempo dado durante a operação do processo de decodificação, e a ativação de qualquer RBSP de VPS particular resulta na desativação da RBSP de VPS ativa anteriormente (se houver).
[0079] Quando uma RBSP de VPS (com um valor particular de vps_video_parameter_set_id) já não é ativa e a mesma é denominada pela ativação de uma RBSP de SPS para a camada de base, ou é denominada por uma unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativa, a mesma é ativada. Essa RBSP de VPS é chamada de RBSP de VPS ativa até que a mesma seja desativada pela ativação de outra RBSP de VPS. Uma RBSP de VPS, com esse valor particular de vps_video_parameter_set_id, deve estar disponível ao processo de decodificação antes de sua ativação, incluída em pelo menos uma unidade de acesso com Temporalld igual a 0 ou fornecida através de meios externos, e a unidade de NAL de VPS que contém o RBSP de VPS deve ter nuh_layer_id igual a 0. Uma RBSP de VPS ativada deve permanecer ativa para o CVS inteiro.
[0080] Qualquer unidade de NAL de VPS que contém o valor de vps_video_parameter_set_id para a RBSP de VPS ativa para um CVS deve ter o conteúdo igual ao da RBSP de VPS ativa para o CVS, a menos que a mesma siga a última unidade de acesso do CVS e precede a primeira unidade de NAL de VCL, a primeira unidade de NAL de SPS e a primeira unidade de NAL de SEI que contém uma mensagem de SEI de conjuntos de parâmetros ativa (quando presentes) de outro CVS.
[0081] Todas as restrições que são expressas na relação entre os valores dos elementos de sintaxe e os valores de variáveis derivadas daqueles elementos de sintaxe em VPSs, SPSs e PPSs e outros elementos de sintaxe são expressões de restrições que se aplicam somente às RBSP de VPS ativo, o SPS ativo, RBSP para a camada de base e a RBSP de PPS ativa para a camada de base. Se qualquer RBSP de VPS, RBSP de SPS e RBSP de PPS estiver presente que nunca é ativada no fluxo de bits, seus elementos de sintaxe terão os valores que se conformariam às restrições especificadas se a mesmo fosse ativada a título de referência em um fluxo de bits de outro modo conformante.
[0082] Durante a operação do processo de decodificação, os valores de parâmetros da RBSP de VPS ativa, a RBSP de SPS ativa para a camada de base e a RBSP de PPS ativa para a camada de base são consideradas em efeito. Para interpretação de mensagens de SEI, os valores da RBSP de VPS ativa, a RBSP de SPS ativa para a camada de base e a RBSP de PPS ativa para a camada de base para a operação do processo de decodificação para as unidades de NAL de VCL da figuração codificada com nuh_layer_id igual a 0 na mesma unidade de acesso são consideradas em efeito a menos que especificado de outro modo na semântica de mensagem de SEI.
PONTOS DE OPERAÇÃO, PONTOS DE OPERAÇÃO DE SAÍDA, CONJUNTOS DE CAMADA, E CONJUNTOS DE CAMADA DE SAÍDA
[0083] Conforme usado no presente documento, um ponto de operação é um fluxo de bits criado a partir de outro fluxo de bits pela operação do processo de extração de subfluxo de bits com outro fluxo de bits, um temporal_ID superior alvo, e uma lista de identificador de camada alvo como entrada. Mais especificamente, “pontos de operação” são subfluxos de bits que podem ser extraídos de um fluxo de bits original que é escalonável temporariamente e/ou com múltiplas camadas e/ou vistas. Ou seja, um ponto de operação é um fluxo de bits que é criado a partir de outro fluxo de bits pela operação do processo de extração de subfluxo de bits com o outro fluxo de bits, um ID temporal superior alvo, e uma lista de identificador de camada alvo como entra. O fluxo de bits inclui uma ou mais vistas, incluindo a(s) vista(s) do ponto de operação. O temporal_ID superior alvo define o subconjunto temporal. A lista de camadas alvo inclui um conjunto de camadas: o conjunto de camadas a ser decodificado para um ponto de operação, e o conjunto de camadas a ser emitido para um ponto de operação de saída. Um ponto de operação de saída é associado a, entre outros, um conjunto de camadas de saída, isto é, as camadas identificadas no conjunto de camada de saída, que são as camadas que devem ser emitidos. Em geral, cada fluxo de bits pode conter um ou mais conjuntos de camada de saída. Cada conjunto de camada de saída pode conter um ou mais pontos de operação de saída. Um teste de conformidade de fluxo de bits é realizado para cada ponto de operação de saída para garantir que o subfluxo de bits correspondente seja um fluxo de bits de conformidade.
[0084] O termo “conjunto de camadas” é usado para se referir a um conjunto de camadas a serem decodificadas. Um “conjunto de camadas” é similar a um ponto de operação exceto que um conjunto de camadas não é associado a um valor particular de ID temporal. Em vez disso, as subcamadas temporais presentes nas camadas se referem todas ao conjunto de camadas. De modo similar, um conjunto de camadas pode ser dito como associado ao ID temporal superior possível. Consequentemente, as subcamadas temporais presentes nas camadas pertencem todas ao conjunto de camadas. Um conjunto de camadas pode ser derivado de um fluxo de bits da mesma maneira que um ponto de operação pode ser derivado de um fluxo de bits, com o ID temporal superior sendo o valor superior possível.
[0085] O termo “conjunto de camada de saída” se refere a um conjunto de camadas para as quais as camadas de saída são especificadas. Desse modo, embora o conjunto de camadas a serem decodificadas seja especificado como um conjunto de camadas, o conjunto de camadas a ser liberado é especificado para um conjunto de camada de saída. Em alguns exemplos, o conjunto de camada de saída identifica o conjunto de camadas correspondente incluindo-se um índice ao conjunto de camadas correspondente, em que o conjunto de camadas correspondente identifica as camadas a serem decodificadas. Em outros exemplos, o conjunto de camada de saída identifica o conjunto de camadas correspondente de alguma outra maneira.
[0086] As camadas no conjunto de camadas não almejadas para emissão ainda podem ser decodificadas, por exemplo, quando usadas para a previsão de intercamada (ou intervista). As camadas que são almejadas para saída são um subconjunto das camadas que devem ser decodificadas: uma, algumas, ou todas as camadas a serem decodificadas podem ser almejadas para emissão. Deve-se entender que o termo “subconjunto” não significa necessariamente que a camada a ser emitida é um subconjunto estrito das camadas a serem decodificadas. Ou seja, em alguns exemplos, as camadas a serem decodificadas e a camada a ser emitida são iguais. Desse modo, a distinção entre um conjunto de camada de saída e um ponto de operação de saída é similar à distinção entre um conjunto de camadas e um ponto de operação conforme descrito acima.
[0087] Os subfluxos de bits podem ser extraídos do fluxo de bits com base em valores de identificadores de camada (que identificam as camadas para o ponto de operação de saída) e os identificadores de subcamada temporal (que identifica o subconjunto temporal para o ponto de operação de saída) que identificam o ponto de operação de saída do fluxo de bits. Os pontos de operação de saída podem ser sinalizados em um VPS dentro do fluxo de bits. Para cada um dos pontos de operação, uma estrutura de sintaxe de ponto de operação especifica um conjunto de identificadores de camada usados para identificar as unidades de camada de abstração de rede (NAL) no fluxo de bits que pertencem a um subfluxo de bits de um dado ponto de operação. Dessa maneira, as unidades de NAL que compõem o subfluxo de bits do dado ponto de operação de saída podem ser extraídas do fluxo de bits original com base nos identificadores de camada das unidades de NAL e no ID temporal superior associado ao ponto de operação de saída. As unidades de NAL são os componentes dos dados de vídeo codificados; os dados de vídeo codificados são organizados em unidades de NAL.
SINTAXE DE PERFIL, PATAMAR E NÍVEL
[0088] A estrutura de sintaxe profile_tier_level() é uma estrutura de sintaxe que fornece informações de sintaxe relacionadas a perfis, patamares e níveis. Os perfis, patamares, e níveis especificam diferentes pontos de conformidade para implantar o padrão HEVC ou um padrão de extensão HEVC (por exemplo, SHVC, MV- HEVC) de modo que o mesmo seja interoperável através de vários aplicativos que podem ter exigências funcionais similares. Em alguns exemplos, um perfil pode definir um conjunto de ferramentas ou algoritmos de codificação que um codec pode usar para gerar um fluxo de bits de conformidade. Um perfil é uma sintaxe de subconjunto do fluxo de bits inteiro especificada por padrão particular, HEVC, por exemplo. Dentro das ligações impostas pela sintaxe de um dado perfil, ainda é possível exigir uma variação muito grande no desempenho de criptadores e decodificadores que dependem dos valores tomados pelos elementos de sintaxe no fluxo de bits tais como o tamanho especificado das fotos decodificadas. Em muitas aplicações, pode não ser prático nem econômico implantar um decodificador (por exemplo, o decodificador de vídeo 30) com capacidade de lidar com todos os usos hipotéticos da sintaxe dentro de um perfil particular. Desse modo, os “patamares” e “níveis” também são especificados dentro de cada perfil. Um nível de um patamar é um conjunto específico de restrições impostas em valores dos elementos de sintaxe no fluxo de bits. Essas restrições podem ser simples limites de valores. Alternativamente, as mesmas podem tomar a forma de restrições em combinações aritméticas de valores (por exemplo, largura de figuração multiplicada por altura de figuração multiplicada pela quantidade de figurações decodificadas por segundo). Um nível especificado para um patamar inferior é mais restrito que um nível especificado para um patamar superior.
[0089] Em alguns exemplos, um patamar e um nível podem impor restrições na carga de processamento de decodificador (por exemplo, o decodificador de vídeo 30) e capacidades de memória de decodificador. As informações de nível podem estabelecer restrições no processamento de dados. Por exemplo, as informações de nível podem incluir taxa de amostra máxima, tamanho de figuração máximo, taxa de bits máxima, e razão de compressão mínima entre outras possibilidades. As informações de nível também podem incluir capacidades do DPB e do armazenamento temporário de figuração codificada (CPB). O CPB mantém dados comprimidos antes de sua decodificação para fins de gerenciamento de fluxo de dados. O DPB mantém dados de figuração decodificados.
[0090] Os patamares e níveis de codificação de vídeo de alta eficiência são restrições que definem um fluxo de bits de codificação de vídeo de alta eficiência (HEVC) em termos de taxa de bits máxima, taxas de amostra de luma máxima, tamanho de amostra de luma máximo, razão de compressão mínima, número máximo de fatias permitido, e número máximo de telhas permitidas. Patamares inferiores são mais restritos do que patamares superiores e níveis inferiores são mais restritos do que níveis superiores.
[0091] O padrão HEVC define dois patamares: Principal e alto. O Patamar principal é um patamar inferior do que o Alto patamar. Os patamares são implantados aos aplicativos de gerenciamento que diferem em termos de sua taxa de bits máxima. O Patamar principal pode acomodar muitos aplicativos comuns que têm taxas de bits médias enquanto o Alto patamar pode acomodar aplicativos mais em demanda.
[0092] O padrão HEVC define treze níveis. Um nível é um conjunto de restrições para um fluxo de bits. Para níveis abaixo do nível 4 somente o Patamar principal é permitido. Um decodificador de vídeo 30 que está em conformidade com um dado patamar/nível tem capacidade de decodificar todos os fluxos de bits que são criptados para esse patamar/nível e para todos os patamares/níveis inferiores.
[0093] Conforme descrito no presente documento, o codificador de vídeo (por exemplo, o criptador de vídeo 20 ou decodificador de vídeo 30 (Figura 1)) pode transmitir e receber estruturas de sintaxe de perfil, patamar, e nível através do enlace 16. O codificador de vídeo (por exemplo, o sistema 10) também pode se referir a uma dentre as estruturas de sintaxe de perfil, patamar, e nível para cada um dentre uma pluralidade de conjuntos de camada de saída e decodificar dados de vídeo de um ou mais dentre os conjuntos de camada de saída com base em informações da estrutura de sintaxe de perfil, patamar, e nível denominadas para o OLS. Por exemplo, o criptador de vídeo 20 pode se referir a uma dentre as estruturas de sintaxe de perfil, patamar e nível para cada um dentre uma pluralidade de conjuntos de camada de saída e encode dados de vídeo de um ou mais conjuntos de camada de saída com base em informações a partir da estrutura de sintaxe de perfil, patamar e nível denominada para o conjunto de camada de saída. O decodificador de vídeo 30 também pode se referir a uma dentre as estruturas de sintaxe de perfil, patamar e nível para cada um dentre uma pluralidade de conjuntos de camada de saída e decodificar dados de vídeo de um dentre os conjuntos de camada de saída com base em informações a partir da estrutura de sintaxe de perfil, patamar e nível denominada para o conjunto de camada de saída.
[0094] As informações de PTL podem ser contidas dentro de elementos de sintaxe profile_tier_level() e conduzidas por meio de conjuntos de parâmetros (por exemplo, SPS, VPS). A estrutura de sintaxe profile_tier_level() pode fornecer o perfil, patamar, e nível ao qual um OLS se conforma e pode ser incluído no VPS ativo para o OLS. Em alguns exemplos, as informações de PTL são incluídas na extensão de VPS. Quando a estrutura de sintaxe profile_tier_level() é incluída em uma estrutura de sintaxe vps_extension(), o elemento de sintaxe profile_tier_level_idx [i] da estrutura de sintaxe vps_extension() especifica qual estrutura de sintaxe profile_tier_level() se aplica ao i-ésimo OLS, em que “i” é uma camada de número inteiro. Quando a sintaxe num_add_layer_sets é maior do que 0, e i está na faixa de FirstAddLayerSetldx à LastAddLayerSetldx, inclusiva, a estrutura de sintaxe profile_tier_level() identificada por profile_tier_level_idx [i] se aplica à emissão de uma camada de não base com a variável lsldx de entrada definida igual a 01sIdxToLsIdx [i]. Quando a estrutura de sintaxe profile_tier_level() é incluída em um VPS, mas não em uma estrutura de sintaxe vps_extension(), a mesma se aplica a 0ésimoOLS. Quando a estrutura de sintaxe profile_tier_level() é incluída em um SPS ativo para a camada de base, o mesmo se aplica ao 0ésimoOLS. Quando a estrutura de sintaxe profile_tier_level() é incluída em um SPS ativo para uma camada de não base independente com nuh_layer_id igual a layerld, o mesmo se aplica ao 0ésimoOLS em um fluxo de bits de saída do processo de extração de subárvore de camada de não base com um parâmetro lsldx de entrada de modo que AssignedBaseLayerId [lsldx] seja igual a layerld.
[0095] A Figura 4 é um fluxograma de sinal que mostra um fluxo de sinal exemplificador entre um criptador de vídeo e decodificador de vídeo. Um fluxo de sinal 400 é representativo do criptador de vídeo 20 que recebe dados de vídeo 405, por exemplo, da fonte de vídeo 18. Os dados de vídeo 405 podem incluir informações de vídeo bruto que o criptador de vídeo 20 pode criptar em uma camada de base (BL) ou camada 0, e uma ou mais base camadas de não base, ou camadas de intensificação (EL). Em alguns exemplos, o criptador de vídeo 20 pode criptar os dados de vídeo 405 como dados de vídeo de camada de base 410 (por exemplo, camada 0), e dados de vídeo de múltiplas camadas 415 (por exemplo, camadas 0 a 2). O criptador de vídeo 20 pode receber os dados de vídeo 405 para criptação e transmissão ao decodificador de vídeo 30.
[0096] Em algumas modalidades, o criptador de vídeo 20 pode sinalizar um VPS 420 com um nuh_layer_id igual a zero (0) que inclui informações de perfil, patamar, e nível para uma camada de base de dados de vídeo. O nuh_layer_id pode ser usado para indicar uma camada correspondente de dados de vídeo. Consequentemente, o VPS 420 pode ser denominado como “VPS ativo”, até que seja suplantado por um VPS seguido ou próximo. Uma camada pode ser um conjunto de unidades de NAL de VCL que têm um valor particular de nuh_layer_id e as unidades de NAL de não VCL associadas. O nuh_layer_id pode ser igual a 0 em um fluxo de bits que contém somente uma camada, tal como, por exemplo, a camada de base ou o 0ésimoOLS. O nuh_layer_id também pode igual a 0 em todas as unidades de NAL da camada de base. Outros valores de nuh_layer_id podem aparecer em fluxos de bits que contém múltiplas camadas tais como, por exemplo, os dados de vídeo de múltiplas camadas 415.
[0097] O criptador de vídeo 20 pode transmitir o VPS 420 com um nuh_layer_id igual a 0. Em tal exemplo, o VPS 420 pode incluir a estrutura de sintaxe de perfil, patamar e nível para os dados de vídeo de camada de base 410, ou um 0ésimoOLS 426 devido ao fato de que a camada de base é o único conteúdo do fluxo de bits e, portanto, a única camada de saída. O decodificador de vídeo 30 pode receber o VPS 420 com o nuh_layer_id igual a 0, em que o VPS inclui uma estrutura de sintaxe de perfil, patamar e nível para a dados de vídeo de camada de base 410 e usada como informações de PTL para decodificar o 0ésimoOLS 426.
[0098] O criptador de vídeo 20 também pode transmitir um SPS 422 com um nuh_layer_id igual a 0, em referência ao VPS 420 e indicando informações de PTL para os dados de vídeo de camada de base 410. O criptador de vídeo 20 pode também transmitir unidades de NAL de VCL 424 que incluem os dados de vídeo criptados 405. Em algumas modalidades, as unidades de NAL de VCL 424 podem ser representativas do fluxo de bits inteiro que têm somente a camada de base (camada 0) como a saída, por exemplo o 0ésimo OLS 426. O decodificador de vídeo 30 pode então fazer referência ao VPS 420 para decodificar o 0ésimoOLS 426. Em algumas modalidades, o VPS 420 e o SPS 422 podem ser denominados como o SPS “ativo” ou VPS ativo se as informações de PTL que cada um contém forem atualmente denominadas para decodificar os dados de vídeo 405 que são recebidos no decodificador de vídeo 30. Em alguns exemplos, um SPS (por exemplo, o SPS 422) contém tanto zero como uma estrutura de sintaxe de PTL, enquanto um VPS pode conter múltiplas estruturas de sintaxe de PTL, por exemplo, uma para cada camada.
[0099] Em tal modalidade, o 0ésimoOLS especificado pelo VPS ativo se refere ao OLS que contém somente os dados de vídeo de camada de base 410 (a camada com nuh_layer_id igual a 0), que é também a única camada de saída. Consequentemente, quando o fluxo de bits inteiro contém somente os dados de vídeo de camada de base 410, as informações de patamar e nível do 0ésimoOLS 426 são sinalizadas na estrutura de sintaxe profile_tier_level() do SPS ativo 420 assim como na primeira estrutura de sintaxe profile_tier_level() no VPS ativo 422.
[0100] Em algumas modalidades, um processo similar pode ser usado para criptar dados de vídeo de múltiplas camadas 415. O criptador de vídeo 20 pode sinalizar um VPS 430. O VPS 430 pode incluir informações de PTL para cada OLS no fluxo de bits. Por exemplo, as informações de PTL podem ser incluídas para um 0ésimoOLS 450, um 1oOLS, ou um 2o OLS. O criptador de vídeo 20 também pode sinalizar um SPS 432 que inclui informações de PTL para o fluxo de bits inteiro (por exemplo, os dados de vídeo 415). O criptador de vídeo 20 pode então transmitir unidades de NAL de VCL 438 que têm um ou mais OLSs identificados no VPS 430. Devido ao fato de que o VPS 430 contém informações de PTL para cada OLS no fluxo de bits, o decodificador de vídeo 30 pode fazer referência ao VPS 430 e receber informações de PTL para um 0ésimoOLS 450 ao decodificar o fluxo de bits.
[0101] Em algumas modalidades, a vps_extension() da estrutura de sintaxe, por exemplo, do VPS 430, pode incluir informações de sintaxe de PTL para o 0ésimo OLS. Consequentemente, as informações de PTL para o 0ésimoOLS podem ser implantadas no começo da extensão de VPS, conforme mostrado abaixo. Isso pode aprimorar a eficiência da extensão de VPS que fornece as informações de PTL necessárias no nível apropriado e diminuir a sinalização extra para receber tais informações de PTL quando as mesmas não são incluídas. A Tabela 1 mostra os elementos de sintaxe que podem ser incluídos na extensão de VPS quando tais condições existem.
[0102] Determinadas adições à estrutura de sintaxe vps_extension() podem incluir os elementos de sintaxe a seguir, conforme listado na Tabela 1. TABELA 1
[0103] Conforme mostrado na Tabela 1, a sintaxe vps_extension() pode incorporar o termo, “for(i = vps_base_layer_internal_flag ? 0 : 1; i < NumOutputLayerSets; i++)” e “if(i > vps_num_layer_sets_minusl I I (defaultOutputLayerldc = = 2 && i > 0)” de modo a incluir informações de PTL para o 0ésimo OLS. Isso pode garantir que embora o fluxo de bits contenha mais do que a camada de base (por exemplo, dados de vídeo de múltiplas camadas 415), e mais do que um OLS (por exemplo, o oésimo, io, e 2oOLS), as informações de patamar e nível são sempre sinalizadas para o 0ésimoOLS.
[0104] A Figura 5 é um fluxograma de um método para criptar um fluxo de bits. No bloco 510, gerar um ou mais elementos de sintaxe para inclusão em um VPS, que indica uma pluralidade de conjuntos de camada de saída (OLS) dentro de um fluxo de bits. Os elementos de sintaxe também podem ser incluídos na parte de extensão do VPS (por exemplo, o VPS 430). Cada OLS pode ter uma ou mais camadas dentre a pluralidade de camadas. Os elementos de sintaxe podem indicar informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs contidos no fluxo de bits.
[0105] No bloco 520, o criptador de vídeo 20 pode criptar a pluralidade de camadas que incluem os elementos de sintaxe dentro do VPS (por exemplo, o VS 430). Dessa maneira, o método 500 pode ser usado para sinalizar informações de perfil, patamar, e nível para cada OLS de um fluxo de bits, incluindo informações de PTL para o 0ésimoOLS, na extensão de VPS.
[0106] A Figura 6 é um fluxograma de um método para decodificar um fluxo de bits. Um método 600 começa no bloco 610 quando o decodificador de vídeo 30 recebe um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo. O fluxo de bits pode incluir os dados de vídeo de múltiplas camadas 415 (Figura 4). A pluralidade de camadas de dados de vídeo também pode incluir uma camada de base e um VPS (por exemplo, o VPS 430). O VPS pode indicar a presença de uma pluralidade de OLS e informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs.
[0107] No bloco 620, o decodificador de vídeo 30 pode selecionar um dentre os OLSs como um OLS alvo para decodificação. Então no bloco 630, o decodificador de vídeo 30 pode decodificar o OLS alvo com o uso das informações de PTL sinalizadas no VPS ativo (por exemplo, o VPS 430). Consequentemente, o método 600 pode fornecer um método pelo qual o decodificador de vídeo 30 pode usar informações de PTL ideais para cada OLS contido no fluxo de bits (por exemplo, o 0ésimoOLS, o 1o OLS, e o 2o OLS).
[0108] Os vários blocos lógicos ilustrativos, módulos, circuitos e etapas de algoritmos descritos em conexão com as modalidades reveladas no presente documento podem ser implantados como hardware eletrônico, software de computador ou combinações de ambos. Para ilustrar claramente esse intercambiabilidade de hardware e software, vários componentes, blocos, módulos, circuitos e etapas ilustrativos foram descritos acima geralmente em termos da funcionalidade dos mesmos. Se tal funcionalidade deve ser implantada como hardware ou software, depende da restrição de design e pedido particular impostas no sistema geral. Versados na técnica podem implantar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implantação não deveriam ser interpretadas como que por se afastar do escopo da presente revelação.
[0109] Os métodos descritos no presente documento podem ser implantados em hardware, software, firmware ou em qualquer combinação dos mesmos. Tais métodos podem ser implantados em qualquer um dentre uma variedade de dispositivos, tais como computadores de propósito geral, aparelhos de telefone de dispositivo de comunicação sem fio ou dispositivos de circuito integrado que têm múltiplos usos incluindo a aplicação em aparelhos de telefone de dispositivo de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implantados juntos em um dispositivo de lógica integrada ou separadamente como dispositivos de lógica distinta, porém, interoperável. Caso sejam implantados em software, os métodos podem ser realizados 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, realizam um ou mais dos métodos descritos acima. O meio de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de empacotamento. O meio legível por computador pode compreender mídias de armazenamento de dados ou memória, tais como memória de acesso aleatório (RAM), tal como memória de acesso aleatório dinâmica síncrona (SDRAM), memória somente de leitura (ROM), memória de acesso aleatório não volátil (NVRAM), memória somente de leitura programável eletricamente apagável (EEPROM), memória Flash, mídias de armazenamento de dados magnéticos ou ópticos e similares. Os métodos, adicional ou alternativamente, podem ser realizados, pelo menos em parte, por um meio de comunicação legível por computador que transporta ou comunica o código de programa na forma de instruções ou estruturas de dados e que podem ser acessadas, lidas e/ou executadas por um computador, tais como ondas ou sinais propagados.
[0110] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), matrizes lógicas programáveis em campo (FPGAs) ou outro conjunto de circuitos lógico discreto ou integrado equivalente. Tal processador pode ser configurado para realizar qualquer um dentre os métodos descritos na presente revelação. Um processador de propósito geral pode ser um microprocessador; porém, na alternativa, o processador pode ser qualquer processador, controlador, microcontrolador ou máquina em estado convencional. Um processador também pode ser implantado como uma combinação de dispositivos de computação (por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em combinação com um núcleo de DSP ou qualquer outra tal configuração). Consequentemente, o termo "processador", conforme usado no presente documento pode se referir a qualquer uma dentre as estruturas supracitadas, qualquer combinação das estruturas supracitadas, ou qualquer outra estrutura ou aparelho adequado para a implantação dos métodos descritos no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita no presente documento pode ser fornecida dentro de módulos de software ou módulos de hardware dedicados configurados para criptar e decodificar ou incorporados em um decodificador-criptador de vídeo combinado (CODEC).
[0111] Os conjuntos de métodos de codificação discutidos no presente documento podem ser uma modalidade em um sistema de criptação e decodificação de vídeo exemplificativo. Um sistema inclui um dispositivo de origem que fornece dados de vídeo criptados a serem decodificados em um momento posterior por um dispositivo de destino. Em particular, o dispositivo de origem fornece os dados de vídeo para o dispositivo de destino por meio de um meio legível por computador. O dispositivo de origem e o dispositivo de destino podem compreender qualquer um dentre uma ampla gama de dispositivos, incluindo computadores de mesa, computadores do tipo notebook (isto é, do tipo laptop), computadores do tipo tablet, decodificadores de sinais, aparelhos de telefone, tais como, os denominados telefones "inteligentes", denominados pads "inteligentes", televisões, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de jogos eletrônicos, dispositivo de transmissão contínua de vídeo, ou semelhantes. Em alguns casos, o dispositivo de origem e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0112] Embora as modalidades da revelação sejam descritas acima para a modalidade particular, muitas variações da revelação são possíveis. Por exemplo, o número de vários componentes pode ser aumentado ou diminuído, módulos e etapas que determinam uma tensão de suprimento podem ser modificados para determinar uma frequência, outro parâmetro de sistema ou uma combinação de parâmetros. Adicionalmente, recursos das várias modalidades podem ser combinados em combinações que diferem daqueles descritos acima.
[0113] Os elementos versados verificarão que os vários blocos ilustrativos e módulos descritos em conexão com a modalidade revelada no presente documento podem ser implantados em várias formas. Alguns blocos e módulos foram descritos acima geralmente em termos de sua funcionalidade. Como tal funcionalidade é implantada depende das restrições de projeto impostas em um sistema geral. As pessoas versadas na técnica podem implantar a funcionalidade descrita em modos variáveis para cada aplicação em particular, porém tais decisões de implantação não devem ser interpretadas como causadoras de um afastamento do escopo da revelação. Adicionalmente, o agrupamento de funções dentro de um módulo, bloco, ou etapa é para facilitar a descrição. As funções ou etapas específicas podem ser movidas de um módulo ou bloco ou distribuídas aos módulos ou blocos sem se afastar da revelação.
[0114] A descrição acima da modalidade revelada é fornecida para possibilitar que qualquer indivíduo versado na técnica produza ou use a matéria da revelação. Várias modificações em tais modalidades ficarão prontamente evidentes para os elementos versados na técnica e os princípios genéricos descritos neste documento podem ser aplicados à outra modalidade sem se afastar do espírito ou escopo da revelação. Desse modo, deve-se entender que a descrição e os desenhos apresentados no presente documento representam uma implantação presentemente preferencial da revelação e são, portanto, representativos da matéria que é amplamente contemplada pela presente revelação. É adicionalmente entendido que o escopo da presente revelação abrange totalmente outra modalidade que pode se tornar óbvia aos elementos versados na técnica e que o escopo da presente revelação não é consequentemente limitado por nada além das reivindicações anexas.

Claims (4)

1. Método para codificar um fluxo de bits de acordo com HEVC (Codificação de Vídeo de Alta Eficiência) escalonável, SHVC, uma extensão 3D de HEVC, ou uma extensão de múltiplas vistas de HEVC, MV-HEVC, o fluxo de dados tendo uma pluralidade de camadas de dados de vídeo, sendo que a pluralidade de camadas de dados de vídeo inclui uma camada de base, caracterizado pelo fato de que o método compreende: gerar (510) um ou mais elementos de sintaxe que indicam uma pluralidade de conjuntos de camada de saída (OLS) dentro do fluxo de bits, sendo que cada OLS tem uma ou mais camadas dentre a pluralidade de camadas, sendo que um dentre a pluralidade de conjuntos de camada de saída é um 0ésimo OLS que inclui apenas a camada de base, em que os elementos de sintaxe indicam, adicionalmente, informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs; e codificar (520) o um ou mais elementos de sintaxe que indicam a pluralidade de OLS em um conjunto de parâmetros de vídeo (VPS), em que as informações de PTL para cada OLS, incluindo o 0ésimoOLS, são incluídas em uma parte de extensão de VPS do VPS.
2. Dispositivo para codificar um fluxo de bits de acordo com HEVC (Codificação de Vídeo de Alta Eficiência) escalonável, SHVC, uma extensão 3D de HEVC, ou uma extensão de múltiplas vistas de HEVC, MV-HEVC, o fluxo de dados tendo uma pluralidade de camadas de dados de vídeo, sendo que a pluralidade de camadas de dados de vídeo inclui uma camada de base, caracterizado pelo fato de que o dispositivo compreende: uma memória configurada para armazenar a pluralidade de camadas de dados de vídeo; e pelo menos um processador acoplado de modo operacional à memória e configurado para: gerar um ou mais elementos de sintaxe que indicam uma pluralidade de conjuntos de camada de saída (OLS) dentro do fluxo de bits, sendo que cada OLS tem uma ou mais camadas dentre a pluralidade de camadas, sendo que um dentre a pluralidade de conjuntos de camada de saída é um 0ésimoOLS que inclui apenas a camada de base, em que os elementos de sintaxe indicam adicionalmente informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs, e codificar o um ou mais elementos de sintaxe que indicam a pluralidade de OLS em um conjunto de parâmetros de vídeo (VPS), em que as informações de PTL para cada OLS, incluindo o 0ésimoOLS, são incluídas em uma parte de extensão de VPS do VPS.
3. Método para decodificar dados de vídeo de acordo com HEVC (Codificação de Vídeo de Alta Eficiência) escalonável, SHVC, uma extensão 3D de HEVC, ou uma extensão de múltiplas vistas de HEVC, MV-HEVC, caracterizado pelo fato de que compreende: receber (610) um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo, a pluralidade de camadas de dados de vídeo incluindo uma camada de base, o fluxo de bits compreendendo ainda um conjunto de parâmetros de vídeo (VPS), sendo que o VPS que inclui um ou mais elementos de sintaxe indica uma pluralidade de conjuntos de camada de saída (OLS) e informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs, em que um dentre a pluralidade de conjuntos de camada de saída é um 0ésimoOLS que inclui apenas a camada de base; selecionar (620) o 0ésimoOLS a partir da pluralidade de camadas como um OLS alvo, e decodificar (630) o OLS alvo com base em informações de PTL sinalizadas no VPS, em que as informações de PTL para cada OLS, incluindo o 0ésimoOLS, são incluídas em uma extensão de VPS do VPS.
4. Dispositivo para decodificar dados de vídeo de acordo com HEVC (Codificação de Vídeo de Alta Eficiência) escalonável, SHVC, uma extensão 3D de HEVC, ou uma extensão de múltiplas vistas de HEVC, MV-HEVC, caracterizado pelo fato de que compreende: uma memória configurada para armazenar um fluxo de bits que tem uma pluralidade de camadas de dados de vídeo, sendo que a pluralidade de camadas de dados de vídeo inclui uma camada de base, o fluxo de bits compreendendo ainda um conjunto de parâmetros de vídeo (VPS), sendo que o VPS que inclui um ou mais elementos de sintaxe indica uma pluralidade de conjuntos de camada de saída (OLS) e informações de perfil, patamar e nível (PTL) para cada OLS dentre a pluralidade de OLSs, em que um dentre a pluralidade de conjuntos de camada de saída é um 0ésimoOLS que inclui apenas a camada de base; e pelo menos um processador acoplado de modo operacional à memória e configurado para: selecionar o 0ésimo OLS a partir da pluralidade de camadas como um OLS alvo, e decodificar o OLS alvo com base em informações de PTL sinalizadas no VPS, em que as informações de PTL para cada OLS, incluindo o 0ésimoOLS, são incluídas em uma extensão de VPS do VPS.
BR112016029751-2A 2014-06-20 2015-06-19 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 BR112016029751B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462015210P 2014-06-20 2014-06-20
US62/015,210 2014-06-20
US14/743,512 US9788007B2 (en) 2014-06-20 2015-06-18 Profile, tier, level for the 0-th output layer set in video coding
US14/743,512 2015-06-18
PCT/US2015/036614 WO2015196034A1 (en) 2014-06-20 2015-06-19 Profile, tier, level for the 0-th output layer set in video coding

Publications (2)

Publication Number Publication Date
BR112016029751A2 BR112016029751A2 (pt) 2017-08-22
BR112016029751B1 true BR112016029751B1 (pt) 2023-10-17

Family

ID=54870871

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112016029751-2A BR112016029751B1 (pt) 2014-06-20 2015-06-19 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
BR112016029787A BR112016029787A8 (pt) 2014-06-20 2015-06-19 faixas de valor para elementos de sintaxe em criptografia de vídeo

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112016029787A BR112016029787A8 (pt) 2014-06-20 2015-06-19 faixas de valor para elementos de sintaxe em criptografia de vídeo

Country Status (9)

Country Link
US (2) US9756355B2 (pt)
EP (2) EP3158763A1 (pt)
JP (2) JP6377778B2 (pt)
KR (2) KR102387848B1 (pt)
CN (2) CN106464919B (pt)
BR (2) BR112016029751B1 (pt)
CA (2) CA2952973A1 (pt)
ES (1) ES2898663T3 (pt)
WO (2) WO2015196025A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2749027B1 (en) 2011-08-25 2020-04-29 Sun Patent Trust Methods and apparatuses for encoding and decoding video using updated buffer description
ES2625097T3 (es) 2011-09-07 2017-07-18 Sun Patent Trust Método de codificación de imágenes y aparato de codificación de imágenes
JP5932811B2 (ja) 2011-09-19 2016-06-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像復号方法、及び画像復号装置
ES2924280T3 (es) 2011-10-19 2022-10-05 Sun Patent Trust Procedimiento de descodificación de imágenes y aparato de descodificación de imágenes
US9756355B2 (en) 2014-06-20 2017-09-05 Qualcomm Incorporated Value ranges for syntax elements in video coding
CN117294837A (zh) 2018-04-02 2023-12-26 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
EP4336832A3 (en) 2018-08-17 2024-05-22 Huawei Technologies Co., Ltd. Reference picture management in video coding
EP3846471A4 (en) 2018-08-31 2022-02-23 SZ DJI Technology Co., Ltd. ENCODING METHOD, DECODING METHOD, ENCODING APPARATUS, AND DECODING APPARATUS
US10735770B2 (en) 2018-09-13 2020-08-04 Tencent America LLC Method and device using high layer syntax architecture for coding and decoding
US11375223B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for signaling output layer set with sub-picture
CN117596403A (zh) * 2019-09-24 2024-02-23 华为技术有限公司 不允许未使用的层包括在多层视频码流中
WO2021061489A1 (en) * 2019-09-24 2021-04-01 Futurewei Technologies, Inc. Signaling of dpb parameters for multi-layer video bitstreams
EP4022930A4 (en) * 2019-09-24 2022-11-02 Huawei Technologies Co., Ltd. OLS FOR SPATIAL AND SNR Scalability
BR112022006453A2 (pt) 2019-10-05 2022-09-27 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
MX2022004141A (es) 2019-10-07 2022-04-26 Huawei Tech Co Ltd Evitación de señalización redundante en flujos de bits de video multicapa.
US11477487B2 (en) * 2019-12-10 2022-10-18 Zte (Uk) Limited Subpicture signaling in video coding
US11375232B2 (en) 2019-12-10 2022-06-28 Zte (Uk) Limited Sub picture signaling in video coding
WO2021134018A1 (en) 2019-12-26 2021-07-01 Bytedance Inc. Signaling of decoded picture buffer parameters in layered video
KR20220115958A (ko) * 2019-12-26 2022-08-19 바이트댄스 아이엔씨 코딩된 비트스트림들에서의 비디오 계층들의 시그널링에 대한 제약들
US11343524B2 (en) * 2019-12-27 2022-05-24 Tencent America LLC Method for adaptation parameter set reference and constraints in coded video stream
JP2023508680A (ja) 2019-12-27 2023-03-03 バイトダンス インコーポレイテッド ビデオコーディングにおけるサブピクチャシグナリング
WO2021142369A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Signalling of the wavefront parallel processing
US11778215B2 (en) 2020-02-28 2023-10-03 Qualcomm Incorporated Coding output layer set data and conformance window data of high level syntax for video coding
CN115398895A (zh) 2020-03-26 2022-11-25 阿里巴巴集团控股有限公司 编码或解码视频参数集或序列参数集的方法
US11297350B1 (en) * 2020-03-27 2022-04-05 Tencent America LLC Method for output layer set for multilayered video stream
WO2021195026A1 (en) * 2020-03-27 2021-09-30 Bytedance Inc. Level information in video coding
US20230141607A1 (en) * 2020-03-30 2023-05-11 Lg Electronics Inc. Image encoding/decoding method and device for signaling hrd parameters, and computer-readable recording medium in which bitstream is stored
WO2021201548A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
EP4131969A4 (en) * 2020-03-30 2024-03-13 Lg Electronics Inc IMAGE CODING/DECODING METHOD AND APPARATUS FOR SIGNALING PTL RELATED INFORMATION AND COMPUTER READABLE RECORDING MEDIUM HAVING BIT STREAM STORED THEREIN
US20230224469A1 (en) * 2020-04-01 2023-07-13 Lg Electronics Inc. Image encoding/decoding method and apparatus for determining whether or not to refer to parameter set on basis of output layer set, and method for transmitting bitstream
KR20230017817A (ko) * 2020-05-25 2023-02-06 엘지전자 주식회사 멀티 레이어 기반 영상 코딩 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101911012B1 (ko) * 2011-04-26 2018-12-19 엘지전자 주식회사 참조 픽쳐 리스트 관리 방법 및 이러한 방법을 사용하는 장치
US10003817B2 (en) * 2011-11-07 2018-06-19 Microsoft Technology Licensing, Llc Signaling of state information for a decoded picture buffer and reference picture lists
US9210430B2 (en) * 2012-01-19 2015-12-08 Sharp Kabushiki Kaisha Reference picture set signaling and restriction on an electronic device
US20140092988A1 (en) 2012-09-28 2014-04-03 Sharp Laboratories Of America, Inc. Systems and methods for reference picture set extension
US9807421B2 (en) 2013-04-05 2017-10-31 Sharp Kabushiki Kaisha NAL unit type restrictions
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
US9756355B2 (en) 2014-06-20 2017-09-05 Qualcomm Incorporated Value ranges for syntax elements in video coding

Also Published As

Publication number Publication date
KR20170020793A (ko) 2017-02-24
CN106664426A (zh) 2017-05-10
CN106664426B (zh) 2020-01-21
KR20170020794A (ko) 2017-02-24
BR112016029787A2 (pt) 2017-08-22
CN106464919B (zh) 2019-10-18
KR102387848B1 (ko) 2022-04-15
WO2015196034A1 (en) 2015-12-23
EP3158746A1 (en) 2017-04-26
JP2017523683A (ja) 2017-08-17
ES2898663T3 (es) 2022-03-08
EP3158746B1 (en) 2021-10-20
CA2952973A1 (en) 2015-12-23
US20150373377A1 (en) 2015-12-24
CA2950921A1 (en) 2015-12-23
JP6377778B2 (ja) 2018-08-22
CA2950921C (en) 2023-01-10
US9756355B2 (en) 2017-09-05
JP2017523681A (ja) 2017-08-17
US20150373361A1 (en) 2015-12-24
EP3158763A1 (en) 2017-04-26
JP6453365B2 (ja) 2019-01-16
CN106464919A (zh) 2017-02-22
BR112016029751A2 (pt) 2017-08-22
US9788007B2 (en) 2017-10-10
BR112016029787A8 (pt) 2021-07-13
WO2015196025A1 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
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
KR101787864B1 (ko) 출력 계층 세트에 대한 비디오 데이터 코딩
KR101719079B1 (ko) 비디오 코딩을 위한 파라미터 세트들의 표시 및 활성화
JP6585096B2 (ja) マルチレイヤビデオコーディング
BR112016008235B1 (pt) Dispositivo e método para codificação escalonável de informações de vídeo
BR112016008337B1 (pt) Aparelho configurado para codificar informações de vídeo, método para codificar informações de vídeo e memória legível por computador
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
BR112016021489B1 (pt) Método e equipamento para codificação de informação de vídeo, e,memória legível por computador
BR112016007916B1 (pt) Sinalização para armazenamento temporário de figuração subdecodificada (sub-dpb) com base em operações de dpb em codificação de vídeo
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
BR112015015802B1 (pt) Mensagens sei não aninhadas em codificação de vídeo
BR112016008241B1 (pt) Indicação de processamento paralelo em codificação de vídeo
BR112016001223B1 (pt) Aparelho e método para codificar ou decodificar informações de vídeo e memória legível por computador
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
BR112016015455B1 (pt) Inferência aperfeiçoada de nooutputofpriorpicsflag em codificação de vídeo
BR112016015453B1 (pt) Suporte de camada base de codec diferente em codificação de vídeo de várias camadas
BR112020011099A2 (pt) intra-predição com pixels vizinhos distantes
BR112016030436B1 (pt) Mensagem de sei de ponto de recuperação em codecs de vídeo de múltiplas 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
KR20160135761A (ko) 멀티-계층 비디오 코딩에 대한 poc 값 설계
BR112016000865B1 (pt) Aparelho e método para codificar informações de vídeo multicamadas, aparelho e método para decodificar informações de vídeo multicamadas, e memória legível por computador
BR112016021475B1 (pt) Dispositivo e método para codificação escalável de informação de vídeo
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
BR112016008240B1 (pt) Sistemas e métodos para definir separadamente dependências para previsão de camada intermediária com base em subcamada
BR112016001121B1 (pt) Dispositivo e método para codificação escalável de informações de vídeo e memória legível por computador

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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