MÉTODO PARA A EXTRAÇÃO DE FLUXO DE BITS ESCALONÁVEL E SISTEMA DE COMPRESSÃO DE VÍDEO ESCALONÁVEL
CAMPO DA INVENÇÃO
A presente invenção relaciona-se à codificação de vídeo e, mais particularmente, à compressão de vídeo escalonável.
HISTÓRICO DA INVENÇÃO
A utilização de dispositivos eletrônicos portáteis e dispositivos de comunicação móveis aumentou dramaticamente nos anos recentes. Ademais, a demanda para dispositivos móveis ativados para vídeo está aumentando rapidamente. O processamento de vídeo requer uma quantidade significativa de processamento de sinais e coloca alta demanda de processamento em um dispositivo móvel tendo potência computacional e energia da bateria limitadas. Assim, o vídeo é geralmente recebido em formato comprimido para reduzir a quantidade de dados necessária para representar as imagens. Os dados comprimidos também facilitam a entrega de dados em tempo real, pois a quantidade de dados a serem transmitidos fica diminuída. A codificação de vídeo é o processo de codificar o vídeo dentro de um formato comprimido.
Na compressão de vídeo tradicional, uma seqüência de vídeo é codificada dentro de um fluxo de bits comprimido, que pode posteriormente ser decodificado para obter uma reconstrução da seqüência de vídeo original. Este sistema consiste de um codificador e um decodificador. A compressão de vídeo pode ser estendida para fornecer escalabilidade. A escalabilidade permite um ajuste da qualidade do vídeo com base em recursos de hardware ou de software disponíveis. A
Petição 870190086698, de 04/09/2019, pág. 6/77
2/21 escalabilidade também fornece uma plataforma para a mobilidade sem defeitos e que permite aos usuários consumir eficientemente o conteúdo do vídeo através de diferentes dispositivos de vídeo e canais de transmissão. Por exemplo, certos hardware poderão apenas suportar uma gama de velocidades de quadro ou uma gama de velocidades de bit. Um sistema de compressão de vídeo escalonável permite ao hardware suportar várias opções de decodificação escalonadas para os recursos do hardware.
A compressão de vídeo escalonável (SVC) produz um fluxo de bits embutido que pode ser truncado em pontos de segmentação diferentes (isto é, localizações dentro do fluxo de bit embutido) para produzir vídeos reconstruídos com diferentes parâmetros desejados como resolução, velocidade de quadro, e qualidade. Como um exemplo, com referência à Figura 1, um sistema de compressão de vídeo escalonável (SVC) pode consistir de um codificador 120, um extrator de fluxo de bits 140 e um decodificador 160. O codificador 120 pode comprimir a entrada de vídeo e gerar um fluxo de bits embutido 130 com bits que representam a entrada de vídeo. O sistema SVC 100 pode receber parâmetros de entrada do usuário 145 para estabelecer uma qualidade de decodificação do vídeo. O sistema SVC 100 é escalonável no sentido de que a qualidade de decodificação do vídeo pode ser escalonada de acordo com os parâmetros 145.
Com referência à Figura 2, é mostrado uma representação de fluxo de bits escalonável exemplar. Devese observar que os segmentos de fluxo de bits (B0-B35) podem ser guardados em várias ordenações. Na ilustração da Figura 2, os bits são mostrados em formato de linhas (por
Petição 870190086698, de 04/09/2019, pág. 7/77
3/21 exemplo, camadas temporais) e colunas (por exemplo, níveis espaciais) . Na prática, cada bit 131 do fluxo de bits é recebido de maneira seqüencial que poderá ser ditada pela ordem de codificação. As fatias de refinamento progressivo (PR) nas camadas de refinamento de um fluxo de bits escalonável podem ser truncados em qualquer localização nos segmentos de fluxo de bits relacionados, com cada bit adicional fornecendo um melhoramento para a qualidade de vídeo reconstruída. Por exemplo, o fluxo de bits escalonável poderá ser truncado ao final do segmento B14 do fluxo de bits fornecendo, assim, apenas os segmentos de bits B0 a B14 para decodificar o que poderá ser suficiente para uma imagem de baixa qualidade. Com referência de volta à Figura 1, o extrator de fluxo de bits 140 pode truncar um fluxo de bits codificado para obter um fluxo a uma velocidade de bits mais baixa que decodificará a uma resolução espacial e velocidade de quadro temporal desejados, com uma qualidade SNR que tem por base os parâmetros de entrada de usuário fornecidos 145. Uma gama de taxas de bit é permitida em cada resolução e velocidade de quadro, com taxas mais altas produzindo melhor qualidade SNR. Para aplicações de codificação de vídeo de taxa de bit constante, o extrator de fluxo de bits deverá coletar seqüencialmente os segmentos de bits relevantes do fluxo de bits escalonável dado seguindo a via de extração de fluxo de bits projetada até o orçamento de bits alvo ser atingido. Embora uma ordenação de extração teoricamente ótima não esteja clara, vários esquemas de extração de bits podem efetuar diferentemente para uma ampla variedade de seqüências de vídeo.
Petição 870190086698, de 04/09/2019, pág. 8/77
4/21
Há três tipos principais de escalabilidade: espacial, temporal, e SNR (qualidade). A escalabilidade espacial é a capacidade de decodificar o fluxo de bits em muitas resoluções diferentes. A escalabilidade SNR é a capacidade de decodificar o fluxo de bits a taxas de bit diferentes para atingir a qualidade desejada. Por exemplo, o usuário pode ajustar parâmetros 145, como a resolução, velocidade de quadro, e qualidade para estabelecer a escalabilidade espacial, temporal, e de SNR. A escalabilidade espacial e temporal são geralmente fornecidas uma camada sobre outra, em que há um conjunto pequeno de resoluções e velocidades de quadro possíveis. Isto é, a informação é fornecida em camadas tal que cada camada fornece um melhoramento incremental na qualidade de decodificação do vídeo. É possível fornecer escalabilidade de SNR uma camada sobre outra similar, ou de uma maneira mais contínua com um fluxo de bits embutido.
HISTÓRICO DA TECNOLOGIA
A equipe de vídeo conjunta (JVT) das organizações de normas ITU-T e MPEG está no processo de desenvolver novas normas de codificação de vídeo escalonável internacionais, como uma nova emenda para a extensão de codificação de vídeo escalonável da norma MPEG-4 AVC/H.264. A nova norma é evoluída através do Joint Scalable Video Model (JSVM). O software de referência, incorporado com as novas ferramentas de codificação, é desenvolvido para a condução de experimentos de codificação durante as atividades de normatização. O software de referência JSVM fornece dois métodos para a extração de bits, aqui denominada de extração Point Extraction and Layer, Level, and Refinement
Petição 870190086698, de 04/09/2019, pág. 9/77
5/21
Extraction |
(LLR). |
|
|
|
Para |
o |
método de extração |
de ponto, |
o usuário |
especifica |
um |
ponto (por exemplo, |
localização |
de bit) |
no |
fluxo de |
bit |
embutido 130 para |
decodificar. |
O ponto |
é |
associado |
a |
uma resolução, velocidade de |
quadro |
e |
velocidade |
de |
bit para a qualidade de decodificação |
do |
vídeo. A Point Extraction é um método intuitivo para a extração de bits e que é amigável para o usuário, pois uma taxa de bits desejada já é fornecida. O método de extração de ponto 200 é representado graficamente na Figura 3. Bits são extraídos do fluxo de bits embutido 130 como é mostrado pela ordem de extração de bits 141. Notadamente, a Point Extraction 200 está ao longo da mesma via que os bits foram codificados. Isto poderá ser necessário para evitar 'deriva' (drift) . O método de extração de ponto 200 opera de acordo com a ordem de extração de bits 141 conforme segue. Ele começa na camada espacial mais baixa e um nível temporal mais baixo. Ele inclui refinamentos escalonáveis de granularidade fina (FGS) na ordem da mais baixa para a mais alta nesta camada e nível. Embora haja mais níveis nesta camada, o codec se desloca para o nível seguinte, e extrai todos os refinamentos nesse nível. Por exemplo, há 2 refinamentos (A depois B) ao nível temporal 0, nível espacial 0. Também há dois refinamentos (G e H) ao nível temporal 1, camada espacial 1. O número de refinamentos é igual ao número de camadas. Após todos os refinamentos para todos os níveis na camada mais baixa serem extraídos, o codec se desloca para a camada espacial mais alta e repete o processo. Quando a taxa de dados alvo for satisfeita, o codec trunca os dados apropriadamente no refinamento atual,
Petição 870190086698, de 04/09/2019, pág. 10/77
6/21 e sai. Na camada espacial mais alta, o codec assegura que todos os níveis utilizarão a mesma fração de camadas de refinamento. Outra representação do método de extração de ponto FGS é mostrado na Figura 4.
Para a extração LLR, o usuário especifica o número de camadas espaciais, o número de níveis temporais, e o número de refinamentos FGS a serem incluídos no fluxo de bits. O usuário geralmente é limitado a valores integrais para camadas espaciais e níveis temporais, mas poderá optar por valores decimais para os refinamentos FGS, ou denominados fatias de refinamento progressivo no JSVM. Na extração LLR, a taxa de bits do fluxo extraído não é especificada. Para cada camada espacial igual ou inferior à camada espacial máxima dada, e para cada nível temporal igual ou inferior ao nível temporal máximo dado, refinamentos são incluídos até o ponto de truncamento do refinamento dado. Como não há nenhuma restrição de taxa de bits para este modo e os segmentos de fluxos de bits extraídos são integralmente determinados pelos parâmetros de entrada, a ordem da extração do fluxo de bits não tem qualquer impacto na qualidade de decodificação final.
O JSVM implementa Point Extraction 200 e extração LLR 250 de maneiras diferentes. A reconstrução de um fluxo de bits extraído por ponto a certa taxa de bits poderá ter um valor PSNR significativamente diferente do que a reconstrução de um fluxo de bits extraído por LLR na mesma taxa de bits. Nenhum dos métodos sempre é melhor que o outro com relação ao PSNR; selecionar o melhor método é dependente do ponto de extração. Como o codec JSVM é a primeira norma de codificação de vídeo internacional a
Petição 870190086698, de 04/09/2019, pág. 11/77
7/21 combinar flexivelmente escalabilidade nas dimensões temporal, espacial, e de FGS, o problema de ordenação de extração de fluxo de bits ótimo não foi relevante nem encarado no passado fora da atual atividade de normatização em andamento.
SUMÁRIO
Dito de maneira ampla, versões da invenção são dirigidas a um extrator de bits e método do mesmo para decodificar de maneira eficiente um fluxo de bits embutido escalonável a diferentes níveis de resolução de vídeo, velocidade de quadro, e qualidade de vídeo. Versões da invenção permitem que um único fluxo de bits escalonável comprimido seja decidido mais eficientemente em diferentes níveis de resolução de vídeo, de velocidade de quadro, e de qualidade. Em particular, o extrator de bits extrai bits na ordem da camada de refinamento, seguido pelo nível temporal, seguido pela camada espacial, em que cada bit extraído fornece um refinamento para a qualidade de decodificação do vídeo. Em uma disposição, o extrator de bits pode receber uma camada de refinamento máxima, um nível temporal máximo, e uma camada espacial máxima para fixar uma qualidade de decodificação de vídeo para o fluxo de bits embutido. O extrator de vídeo pode truncar a extração de bits em uma posição no fluxo de bits embutido correspondente à camada de refinamento máximo, o nível temporal máximo, e a camada espacial máxima para atingir a qualidade de decodificação do vídeo. O extrator de bits fornece uma faixa para a escalabilidade da proporção sinala-ruído (SNR) dada a capacidade de refinamento máxima, uma faixa para a escalabilidade temporal dado o nível temporal
Petição 870190086698, de 04/09/2019, pág. 12/77
8/21 máximo, e uma faixa para a escalabilidade espacial dada a camada espacial máxima. Para uma camada de refinamento dada, os bits são extraídos de todas as camadas espaciais em um nível temporal mais baixo de uma camada de refinamento antes de extrair bits de camadas espaciais em um nível temporal mais alto da camada de refinamento para priorizar o ganho de codificação para aumentar a qualidade de decodificação do vídeo. Em um aspecto, o extrator de vídeo pode especificar uma faixa de taxas de bits que estão disponíveis para fornecer escalabilidade sinal-a-ruído (SNR). Em outro aspecto, o extrator de bits pode especificar uma faixa de taxas de bits que são permitidas para cada resolução e velocidade de quadro.
O extrator de bits pode começar a uma camada espacial mais baixa de um nível temporal mais baixo de uma camada de refinamento mais baixa. Na camada de refinamento mais baixa, para cada refinamento, bits podem ser extraídos do nível temporal mais baixo da camada espacial mais baixa na ordem de mais baixo para mais alto da camada espacial. O extrator pode deslocar-se para uma camada de refinamento mais alta, e para cada refinamento, extrair bits do nível temporal mais baixo da camada espacial mais baixa do nível temporal mais alto da camada espacial mais alta na ordem da mais baixa para a mais alta da camada espacial. O extrator de bits pode repetir a etapa de deslocar para a camada de refinamento seguinte para cima até e inclusive a camada de refinamento mais elevada. Para cada camada de refinamento, os bits são extraídos do fluxo de bits embutidos na ordem do refinamento para cada camada de nível temporal, seguido por cada camada espacial. O extrator de bits pode coletar
Petição 870190086698, de 04/09/2019, pág. 13/77
9/21 os bits no fluxo de bits embutido para o decodificador na ordem de prioritização do ganho de codificação, tal que cada bit extraído adicional fornece um refinamento para a qualidade da decodificação de vídeo. O extrator de bits pode priorizar os bits no fluxo de bits embutido para ganho de codificação na ordem de refinamento para a camada de refinamento, seguido pelo nível temporal, seguido pela camada espacial. Os bits da camada espacial podem fornecer a contribuição mais elevada para a qualidade de vídeo, seguido pelos bits do nível temporal, seguido pelos bits da camada de refinamento.
Versões da invenção também são dirigidas a um método para a codificação de vídeo. O método pode incluir codificar um primeiro grupo de bits para criar pelo menos uma camada de refinamento de um fluxo de bits embutido, codificar um segundo grupo de bits para criar pelo menos um nível temporal do fluxo de bits embutido, e codificar um terceiro grupo de bits para criar pelo menos uma camada espacial no fluxo de bits embutido, em que cada camada embutida é codificada utilizando uma camada espacial anterior para a previsão. Bits no fluxo de bits embutido podem ser priorizados no ganho de codificação na ordem do refinamento para a camada de refinamento, seguido pelo nível temporal, seguido pela camada espacial. Bits de todas as camadas espaciais ao nível temporal mais baixo e o refinamento são priorizados da camada espacial mais baixa para a camada espacial mais alta para fornecer a contribuição mais elevada para a qualidade do vídeo. Isto é seguido pelos bits da camada espacial mais baixa para a camada espacial mais alta no nível temporal seguinte para o
Petição 870190086698, de 04/09/2019, pág. 14/77
10/21 refinamento mais baixo. Isto continuará até todas as camadas espaciais para todos os níveis temporais estarem incluídos para o refinamento mais baixo. Bits do refinamento seguinte serão então incluídos na mesma ordem. BREVE DESCRIÇÃO DOS DESENHOS
Os recursos do sistema, que se acredita serem novéis, são explicitados com particularidade nas reivindicações apensas. As versões aqui podem ser compreendidas por referência à descrição seguinte, tomada em conjunto com os desenhos acompanhantes, nas várias figuras dos quais números de referência igual identificam elementos iguais, e em que:
A Figura 1 é um diagrama de blocos de um sistema de compressão de vídeo escalonável.
A Figura 2 é uma representação em tabela de um fluxo de bits embutido.
A Figura 3 é um diagrama de Point Extraction da tecnologia anterior.
A Figura 4 é outro diagrama de Point Extraction da tecnologia anterior.
A Figura 5 é uma ilustração do nível temporal, da camada espacial, e da camada de refinamento de um fluxo de bits embutido de acordo com as versões da invenção.
A Figura 6 é uma ilustração do ajuste do nível temporal, da camada espacial, e da camada de refinamento de um fluxo de bits embutido, de acordo com as versões da invenção.
A Figura 7 é um método de camada de refinamento, nível temporal, e camada espacial (FTS) de acordo com as versões da invenção.
Petição 870190086698, de 04/09/2019, pág. 15/77
11/21
A Figura 8 é uma primeira passagem de uma ordem de extração de bits para FTS de acordo com as versões da invenção.
A Figura 9 é uma segunda passagem de uma ordem de extração de bits para FTS de acordo com as versões da invenção. E
A Figura 10 é pseudocódigo para o método de FTS de acordo com as versões da invenção.
DESCRIÇÃO DETALHADA
Embora a especificação conclua com reivindicações que definem os recursos das versões da invenção que são considerados como novéis, acredita-se que o método, sistema, e outras versões serão mais bem conhecidas de uma consideração da descrição seguinte em conjunto com as figuras do desenho, em que números de referência iguais são repetidos.
Como é necessário, versões detalhadas do presente método e sistema são aqui revelados. No entanto, deve ser compreendido que as versões reveladas são meramente exemplares, que podem ser incorporadas de várias formas. Portanto, detalhes específicos estruturais e funcionais aqui revelados não devem ser interpretados como limitativos, mas meramente como uma base para as reivindicações e como uma base representativa para ensinar alguém habilitado na tecnologia a empregar de maneira variada as versões da presente invenção em virtualmente qualquer estrutura apropriadamente detalhada. Ainda, os termos e frases aqui utilizados não pretendem ser limitativos, mas sim fornecer uma descrição compreensível da versão aqui explicitada.
Petição 870190086698, de 04/09/2019, pág. 16/77
12/21
Os termos 'o', 'a', conforme aqui utilizados, são definidos como um ou mais de um. O termo ‘pluralidade' , conforme aqui utilizado, é definido como dois ou mais de dois. O termo 'outro', conforme aqui utilizado, é definido como pelo menos um segundo ou mais. Os termos ‘incluir' e/ou 'ter', conforme aqui utilizados, são definidos como compreendendo (isto é, linguagem aberta). O termo ‘acoplado', conforme aqui utilizado, é definido como conectado, embora não necessariamente de maneira direta, e não necessariamente de maneira mecânica. O termo ‘camada de refinamento' pode ser definido como um nível de codificação utilizado tanto para o melhoramento da qualidade Fine Grain Scaling (FGS) e para um processo geral de fornecer melhor vídeo para o decodificador. O termo ‘fluxo de bit embutido' pode ser definido como uma coleção de bits entredispersados dentro de uma memória, ou canal de comunicação. O termo ‘nível temporal' pode ser definido como uma coleção de bits que são ordenados com base no tempo. O termo ‘camada espacial' pode ser definido como uma coleção de bits que são ordenados com base na associação. O termo ‘restrição do orçamento de bits' pode ser definido como uma limitação em um número de bits utilizada para codificação. O termo ‘aprimoramento da qualidade' pode ser definido como um aumento na resolução temporal, na resolução espacial, ou uma combinação delas. O termo ‘qualidade de decodificação do vídeo' pode ser definido como um aumento na proporção sinal-a-ruído na resolução temporal, proporção sinal-aruído na resolução espacial, ou uma combinação destas.
A Figura 1 mostra o sistema Scalable Video Compression (SVC - Compressão de Vídeo Escalonável) 100 para a
Petição 870190086698, de 04/09/2019, pág. 17/77
13/21 eficiente codificação de vídeo. O sistema SVC 100 poderá ser implementado em software por um processador como um microprocessador ou um processador de sinal digital (DSP) como é conhecido na tecnologia, ou qualquer outro dispositivo eletrônico adequado. As funções do sistema SVC 100 também poderão ser implementadas em hardware como um ASIC ou FPGA como são conhecidos na tecnologia, ou qualquer outro hardware adequado. Como foi observado anteriormente, o sistema SVC 100 pode incluir o codificador 120, o extrator de fluxo de bits 140, e o decodificador 160. O codificador 120 pode receber um fluxo de entrada de vídeo que representa uma pluralidade de imagens pelo tempo. O codificador 120 pode comprimir a entrada de vídeo e gerar o fluxo de bits embutido 130 que representa a entrada de vídeo. O fluxo de bits embutido 130 é mostrado na Figura 2. O sistema SVC 100 também pode receber parâmetros de entrada 145 para estabelecer uma qualidade de decodificação do vídeo. O sistema SVC 100 é escalonável no sentido de que a qualidade de decodificação do vídeo pode ser escalonada de acordo com os parâmetros 145. O sistema SVC 100 é capaz de oferecer uma ampla variedade de opções de decodificação escalonáveis, como espacial, temporal, e de qualidade, de um único fluxo de bits embutido. Isto permite ao sistema SVC 100 fornecer vídeo de extremidade baixa embutido em dados de fluxo de bits de vídeo de extremidade alta.
As operações do codificador 120 e do decodificador 160 são separadas para fornecer eficiente armazenagem, transmissão, gerenciamento de mídia, e elasticidade no erro. O codificador 120 pode codificar vídeo de entrada e extrair os segmentos de fluxo de bits relevantes para
Petição 870190086698, de 04/09/2019, pág. 18/77
14/21 servir diferentes restrições de recursos de decodificação. O codificador 120 pode gerar um fluxo de bits escalonável que pode ser extraído com flexibilidade de maneiras diferentes para satisfazer as restrições de resolução espacial-temporal e de taxa de bits do decodificador de vídeo 160. O extrator de bits 140 pode extrair bits do fluxo de bits embutido 130 em uma ordem especificada. A extração de bits poderá depender do número de camadas espaciais, os níveis temporais, e as camadas de refinamento e taxa de bits desejável para a decodificação. O extrator de bits pode extrair os bits no fluxo de bits embutido para o decodificador em ordem de prioritização do ganho de codificação, tal que cada bit extraído adicional fornece um refinamento eficiente para a qualidade de decodificação do vídeo.
Com referência à Figura 5, é mostrada uma ilustração para o fluxo de bits embutido 130 conforme disposto pelo nível temporal, a camada espacial, e o nível de refinamento. Em particular, o fluxo de bits embutido 130 pode ser representado por um número de níveis temporais 132, um número de camadas espaciais 134, e um número de camadas de refinamento 136. O número de níveis temporais 132 pode ser dado como uma entrada para estabelecer a escalAbilidade temporal, o número de camadas espaciais 134 pode ser dado como uma entrada para estabelecer a escalabilidade espacial, e o número de camadas de refinamento 136 pode ser dado como uma entrada para estabelecer a escalabilidade do SNR. A representação do fluxo de bits embutido 130 apresenta uma relação visual entre a escalabilidade temporal, a escalabilidade espacial,
Petição 870190086698, de 04/09/2019, pág. 19/77
15/21 e a escalabilidade do SNR.
Com referência à Figura 6, são mostradas várias representações do fluxo de bits embutido 130. Como um exemplo, com referência ao fluxo de bits embutido 142, aumentar o número de níveis temporais pode melhorar a qualidade temporal. Como outro exemplo, com referência ao fluxo de bits embutido 144, aumentar o número de camadas espaciais pode melhorar a qualidade espacial. Como ainda outro exemplo, com referência ao fluxo de bits embutido 146, aumentar o número de camadas de refinamento pode melhorar a qualidade do SNR. Notadamente, o número de níveis temporais, níveis espaciais, e níveis de refinamento podem ser estabelecidos pelos parâmetros do usuário 145 da Figura 1. Modificar o número de níveis temporais, de níveis espaciais, ou de níveis de refinamento pode mudar a qualidade de decodificação do vídeo.
Com referência de volta à Figura 1, o extrator de bits 140 pode extrair bits do fluxo de bits embutido 130 em ordem de camada de refinamento 136, seguido pelo nível temporal 132, seguido pela camada espacial 134. O decodificador 160 pode criar um vídeo dos bits extraídos pelo extrator de bits. O extrator de bits 140 pode receber parâmetros que incluem a resolução, a velocidade de quadro, e uma taxa de bits para fornecer decodificação de vídeo escalonável, e converter os parâmetros para a camada de refinamento dada correspondente, o nível temporal dado, e a camada espacial dada para alcançar a resolução, a velocidade de quadro, e a taxa de bits. O vídeo pode ter uma qualidade de decodificação do vídeo dependente do número dado de camadas de refinamento 136, o número dado de
Petição 870190086698, de 04/09/2019, pág. 20/77
16/21 níveis temporais 132, e o número dado de camadas espaciais 134. O extrator de bits 140 pode especificar uma gama de taxas de bits que são permitidas para cada resolução e velocidade de quadro, e uma gama de taxas de bits que estão disponíveis para fornecer escalabilidade de sinal-a-ruído (SNR). Por exemplo, o módulo de extração de bits 140 pode receber a camada de refinamento dada, o nível temporal dado, e a camada espacial dada para estabelecer uma qualidade de decodificação do vídeo, e truncar a extração de bits em uma posição no fluxo de bits embutido 130 correspondente à camada de refinamento dada 136, o nível temporal dado 132, e a camada espacial dada 134 para alcançar a qualidade de decodificação do vídeo.
Com referência de volta à Figura 1, o extrator de bits 140 pode extrair bits em ordens diferentes. Uma dessas ordens de extração de bits, como anteriormente recitado na tecnologia anterior, é o método de Point Extraction 200 como é mostrado na Figura 3. Outra ordem de extração de bits, como recitado anteriormente na tecnologia anterior, é o método de Layer, Level, e Refinement (LLR) 250, como é mostrado na Figura 4. Uma restrição dos métodos de extração de ponto 200 e da extração LLR 250 é que subdividir bits entre todos os níveis temporais não é eficiente.
Os autores demonstraram que bits dos níveis temporais inferiores fornecem mais ganho do que os bits de níveis temporais mais altos. Assim, os bits podem ser reordenados, com relação à extração de bits, com base na prioridade dos bits para o ganho de codificação. Curvas de distorção de velocidade em simulação demonstraram que até 2 dB pode ser obtida em um ganho de qualidade de decodificação de vídeo
Petição 870190086698, de 04/09/2019, pág. 21/77
17/21 ponta-a-ponta pelo reordenamento dos bits de acordo com as versões da invenção. Na prática, bits de níveis temporais inferiores são extraídos antes dos bits de níveis temporais mais elevados. Especificamente, bits são extraídos em ordem de refinamento, seguido pelo nível temporal, seguido pela camada espacial. Essa ordenação de extração de bits através de uma reordenação com base na prioritização do esquema de extração de bits produz uma qualidade ponta-a-ponta mais
elevada. |
O |
refinamento seguido |
do temporal seguido |
do |
espacial |
é |
referido como FTS, |
e é um aspecto novel |
da |
invenção. |
A |
ordem da extração |
de bits é distinguida |
da |
ordenação da extração de bits dos métodos LLR e Point Extraction.
Com referência à Figura 7, é mostrada a ordem de extração de bits 137 para o método FTS. O método FTS opera de acordo com a ordem de extração de bits 137 conforme segue. Para cada refinamento em uma camada de refinamento 136, bits do nível temporal inferior da camada espacial inferior são extraídos primeiro. Bits de todas as camadas espaciais neste nível temporal e camada de refinamento são então extraídos em ordem. Então, o extrator de bits 140 desloca-se para o próximo nível temporal 132 e extrai bits das camadas espaciais 134 em ordem do mais baixo ao mais alto. Uma vez todos os níveis temporais e camadas espaciais são extraídas no refinamento mais baixo, o codificador desloca para o próximo refinamento e repete o processo.
Por exemplo, com referência à Figura 8, é mostrado um primeiro passe para extrair bits de acordo com a ordem de extração de bits 137 do fluxo de bits embutido 130. A ordem de extração de bits especifica explicitamente uma ordem
Petição 870190086698, de 04/09/2019, pág. 22/77
18/21 distinta de extração para os bits no fluxo de bits embutido 130. Em particular, o primeiro passe é associado à Camada de Refinamento 0, que é a camada de refinamento mais baixa. Isto é, bits são primeiro extraídos de todas as camadas espaciais 134 e todos os níveis temporais 132 antes dos bits da Camada de Refinamento 1 serem extraídos. Todos os bits são extraídos em ordem de refinamento, seguidos pelo nível temporal, seguido pela camada espacial conforme mostrado pela ordem de extração de bits 137. Notadamente, todos os bits são extraídos de todas as camadas espaciais em um nível temporal mais baixo antes de extrair bits de camadas espaciais em um nível temporal mais alto para priorizar o ganho de código.
Com referência à Figura 9, é mostrado um segundo passe para extrair bits de acordo com a ordem de extração de bits 137 do fluxo de bits embutido 130. Em particular, o segundo passe é associado à Camada de Refinamento 1, que é a camada de refinamento mais alta seguinte. Bits são extraídos de todas as camadas espaciais 134 e de todos os níveis temporais 132 na Camada de Refinamento 1. Como a Camada de Refinamento só contém dois refinamentos, a extração de bits termina no término do segundo passe. Notadamente, o método de extração de bits exemplificado pela ordem de extração de bits 137 seria replicado para maiores refinamentos.
O método FTS pode ser implementado com o pseudo código abaixo como também é mostrado na Figura 10.
(310) Para FGS_refinement=0:highest-refinement (312) Para Temporal_level=0: highest_level (314) Para Spatial_layer=0:highest_layer (316) Incluir dados do refinamento atual, camada
Petição 870190086698, de 04/09/2019, pág. 23/77
19/21 espacial, e nível temporal.
Se o orçamento de bits designado for alcançado (utilizar refinamento fracional, se necessário), então sair.
Na prática, (310) para uma camada de refinamento dado 13 6, (312) para um nível temporal dado, e (314) para uma camada espacial dada 134, (316) bits são extraídos de uma camada espacial mais baixa para uma camada espacial mais alta para o nível temporal dado e a camada de refinamento dada. O método FTS 300 repete (314) para uma camada espacial mais baixa até uma camada espacial máxima, repete (312) para o nível temporal mais baixo até um nível temporal máximo, e repete (310) para uma camada de refinamento mais baixa até uma camada de refinamento máxima.
Retornando de volta à Figura 5, deve-se observar que o extrator de bits 140 efetua o método para extrair bits do fluxo de bits embutido 130. O extrator de bits 140 extrai bits do fluxo de bits embutido em ordem de prioridade de ganho de codificação. Isto é, bits são extraídos em uma ordem que pode reduzir mais eficientemente a distorção da codificação. Por exemplo, com referência à Figura 5, bits a níveis temporais mais baixos, como aqueles no Nível 0, fornecem maior ganho que os bits em níveis temporais mais altos, como aqueles no Nível 3. Assim, os bits são extraídos antes dos bits de níveis temporais mais altos para explorar o ganho de codificação. Em outra disposição, os bits podem ser extraídos por um processador hospedeiro (não mostrado) que é acoplado comunicativamente ao sistema SVC 100 da Figura 1.
Notadamente, o método de extração de bits do FTS é
Petição 870190086698, de 04/09/2019, pág. 24/77
20/21 significativamente diferente da extração de bits efetuada pelos métodos da tecnologia anterior de Point Extraction 200 e LLR. No Point Extraction 200, bits são extraídos em ordem de camada espacial 134, seguido pelo nível temporal 132, seguido pela camada de refinamento 136. Em FTS 300, bits são extraídos em ordem de camada de refinamento, seguido pelo nível temporal 132, seguido pela camada espacial 134. LLR não é aplicado diretamente à codificação de taxa de bits constante.
Versões da invenção também são dirigidas a um método para criar um fluxo de bits embutido adequado para utilização na codificação de vídeo escalonável. O método inclui priorizar os bits no fluxo de bits embutido para o ganho de codificação em ordem de refinamento para a camada de refinamento, pelo nível temporal, seguido pela camada espacial.
Quando aplicável, as presentes versões da invenção podem ser realizadas em hardware, software, ou uma combinação de hardware e de software. Qualquer tipo de sistema de computador ou outro aparelho adaptado para realizar os métodos aqui descritos são adequados. Uma combinação típica de hardware e de software pode ser um dispositivo de comunicação móvel com um programa de computador que, quando for carregado e executado, pode controlar o dispositivo de comunicação móvel tal que ele realiza os métodos aqui descritos. Partes do presente método e sistema também poderão ser embutidos em um produto de programa de computador, que compreende todos os recursos que permitem a implementação dos métodos aqui descritos e que quando carregado em um sistema de computador, é capaz
Petição 870190086698, de 04/09/2019, pág. 25/77
21/21 de realizar esses métodos.
Embora as versões preferidas da invenção tenham sido ilustradas e descritas, será claro que as versões da invenção não são assim tão limitadas. Numerosas 5 modificações, mudanças, variações, substituições e equivalentes ocorrerão àqueles habilitados na tecnologia sem desviar do espírito e escopo das presentes versões da invenção conforme definidas pelas reivindicações apensas.