MÉTODO E APARELHO PARA O PROGNÓSTICO PONDERADO
PARA UMA CODIFICAÇÃO DE VÍDEO REDIMENSIONÁVEL”
REFERÊNCIA CRUZADA COM PEDIDOS RELACIONADOS
O presente pedido reivindica o benefício do Pedido de Patente Provisório dos Estados Unidos N. de Série 60/701 464, depositado em 21 de julho de 2005 e intitulado METHOD AND APPARATUS FOR WEIGHTED PREDICTION FOR SCALABLE VIDEO CODING”, incorporado ao presente documento à guisa de referência em sua totalidade.
CAMPO DA INVENÇÃO
A presente invenção refere-se de modo geral à codificação e decodificação de vídeo e mais particularmente a métodos e aparelho para o prognóstico ponderado de uma codificação e decodificação de vídeo redimensionável.
FUNDAMENTOS DA INVENÇÃO
A Organização Internacional para a Padronização / Comissão Internacional Eletrotécnica (ISO/IEC) do Moving Picture Experts Group-4 (MPEG-4) Parte 10 do padrão de Codificação Avançada de Vídeo (AVC) / União Internacional de Telecomunicações, Setor de Telecomunicações (ITU-T) do padrão H.264 (doravante o padrão MPEG4/H.264 ou simplesmente o padrão H.264) é o primeiro padrão internacional de codificação de vídeo a incluir uma ferramenta de Prognóstico Ponderado (WP). O Prognóstico Ponderado foi adotado para melhorar a eficiência da codificação. O padrão de codificação de vídeo redimensionável (SVC), desenvolvido como uma emenda do padrão H.264, também adota o prognóstico ponderado. No entanto, o padrão SVC não explicitamente especifica a relação dos
Petição 870190000002, de 01/01/2019, pág. 6/49
2/32 pesos entre uma camada de base e as suas camadas de aperfeiçoamento.
O prognóstico ponderado é suportado nos perfis Principal, Estendido, e Alto do padrão H.264. O uso do prognóstico WP é indicado no parâmetro de seqüência definido para as fatias P e SP que usam o campo weighted_pred_flag, e para as fatias B que usam o campo weighting_bipred_idc. Existem dois modos de prognóstico WP, um modo explícito e um modo implícito. O modo explícito é suportado nas fatias P, SP e B. O modo implícito é suportado apenas nas fatias B.
Um fator de prognóstico único e deslocamento são associados a cada índice de imagem de referência para cada componente de cor em cada fatia. No modo explícito, estes parâmetros de prognóstico WP podem ser codificados no cabeçalho da fatia. No modo implícito, estes parâmetros são derivados com base na distância relativa da imagem corrente e suas imagens de referência.
Para cada macrobloco ou divisão de macrobloco, os parâmetros de ponderação aplicados se baseiam em um índice de imagem de referência (ou índices, no caso de um biprognóstico) do macrobloco corrente ou divisão de macrobloco. Os índices de imagem de referência são codificados no fluxo de bits ou podem ser derivados, por exemplo, para saltar ou direcionar macroblocos de modo. O uso do índice de imagem de referência para sinalizar quais parâmetros de ponderação aplicar é eficiente em taxa de bits, em comparação à necessidade de um índice de parâmetro de ponderação no fluxo de bits, uma vez que o índice de imagem de referência já se
Petição 870190000002, de 01/01/2019, pág. 7/49
3/32 encontra disponível com base nos outros campos de fluxo de bits requeridos.
Muitos métodos diferentes de redimensionamento têm sido amplamente estudados e padronizados, incluindo o redimensionamento SNR, o redimensionamento espacial, o redimensionamento temporal, e o redimensionamento de grão fino, em perfis de redimensionamento dos padrões MPEG-2 e H.264, ou estão sendo correntemente desenvolvidos como uma emenda do padrão H.264.
Para um redimensionamento espacial, temporal e SNR, um grande grau de prognóstico entre camadas é incorporado. Os intra e inter macroblocos podem ser previstos usando os sinais correspondentes das camadas anteriores. Além disso, a descrição de animação de cada camada pode ser usada para um prognóstico da descrição de animação para as camadas de aperfeiçoamento seguintes. Estas técnicas recaem em três categorias: um prognóstico de inter-camada e intra-textura, um prognóstico de animação inter-camada e um prognóstico de resíduo inter-camada.
No Modelo de Vídeo Redimensionável Conjunto (JSVM) 2.0, um macrobloco de camada de aperfeiçoamento pode explorar o prognóstico de inter-camada usando os dados de animação de camada de base redimensionados, usando o BASE_LAYER_MODE ou o QPEL_REFINEMENT_MODE, como no caso do redimensionamento espacial diádico (de duas camadas). Quando o prognóstico de animação inter-camada é usado, o vetor de animação (incluindo o seu índice de imagem de referência e parâmetros de ponderação associados) do macrobloco MB (su
Petição 870190000002, de 01/01/2019, pág. 8/49
4/32 per-amostrado) correspondente na camada anterior é usado para o prognóstico de animação. Quando a camada de aperfeiçoamento e sua camada anterior possuem diferentes valores pred_weight_table(), precisamos armazenar diferentes conjuntos de parâmetros de ponderação para a mesma imagem de referência na camada de aperfeiçoamento.
SUMÁRIO DA INVENÇÃO
Estas e outras falhas e desvantagens da técnica anterior são tratadas pela presente invenção, a qual diz respeito a métodos e aparelho para o prognóstico ponderado para uma codificação e decodificação de vídeo redimensionável.
De acordo com um aspecto da presente invenção, é provido um codificador de vídeo redimensionável. O codificador de vídeo redimensionável inclui um codificador para a codificação de um bloco em uma camada de aperfeiçoamento de uma imagem por meio da aplicação de um mesmo parâmetro de ponderação a uma imagem de referência de camada de aperfeiçoamento que o aplicado a uma imagem de referência de camada inferior usada para codificar um bloco em uma camada inferior da imagem. O bloco na camada de aperfeiçoamento corresponde ao bloco na camada inferior, e a imagem de referência de camada de aperfeiçoamento corresponde à imagem de referência de camada inferior.
De acordo com um outro aspecto da presente invenção, é provido um método para uma codificação de vídeo redimensionável. O método inclui a codificação de um bloco em uma camada de aperfeiçoamento de uma imagem por meio da
Petição 870190000002, de 01/01/2019, pág. 9/49
5/32 aplicação de um mesmo parâmetro de ponderação a uma imagem de referência de camada de aperfeiçoamento que o aplicado a uma imagem de referência de camada inferior usada para codificar um bloco em uma camada inferior da imagem. O bloco na camada de aperfeiçoamento corresponde ao bloco da camada inferior, e a imagem de referência de camada de aperfeiçoamento corresponde à imagem de referência de camada inferior.
De acordo com um outro aspecto da presente invenção, é provida uma estrutura de sinal de vídeo para uma codificação de vídeo redimensionável incluindo um bloco codificado em uma camada de aperfeiçoamento de uma imagem gerada por meio da aplicação de um mesmo parâmetro de ponderação a uma imagem de referência de camada de aperfeiçoamento que o aplicado a uma imagem de referência de camada inferior usada para codificar um bloco em uma camada inferior da imagem. O bloco na camada de aperfeiçoamento corresponde ao bloco da camada inferior, e a imagem de referência de camada de aperfeiçoamento corresponde à imagem de referência de camada inferior.
Estes e outros aspectos, recursos e vantagens da presente invenção tornar-se-ão aparentes a partir da descrição detalhada a seguir de modalidades exemplares que devem ser lidas com relação aos desenhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
A presente invenção pode ser melhor entendida de acordo com as seguintes figuras exemplares, nas quais:
A Figura 1 mostra um diagrama em blocos de um codificador de Vídeo Redimensionável Conjunto (JSVM) Modelo
Petição 870190000002, de 01/01/2019, pág. 10/49
6/32
2.0 ao a qual os presentes princípios podem ser aplicados;
A Figura 2 mostra um diagrama em blocos para um decodificador exemplar ao qual os presentes princípios podem ser aplicados;
A Figura 3 é um fluxograma para um método exemplar para a codificação de vídeo redimensionável de um bloco de imagem usando o prognóstico ponderado de acordo com uma modalidade exemplar dos presentes princípios;
A Figura 4 é um fluxograma de um método exemplar para a decodificação de vídeo redimensionável de um bloco de imagem usando o prognóstico ponderado de acordo com uma modalidade exemplar dos presentes princípios;
A Figura 5 é um fluxograma de um método exemplar para a decodificação das sintaxes level_idc e profile_idc de acordo com uma modalidade exemplar dos presentes princípios; e
A Figura 6 é um fluxograma de um método exemplar para a decodificação de uma limitação de prognóstico ponderado para uma camada de aperfeiçoamento de acordo com uma modalidade exemplar dos presentes princípios.
DESCRIÇÃO DETALHADA
A presente invenção refere-se a métodos e aparelho para o prognóstico ponderado para a codificação e decodificação de vídeo redimensionável.
De acordo com os princípios da presente invenção, métodos e aparelho são apresentados que reutilizam os parâmetros de ponderação de camada de base para um prognóstico ponderado de camada de aperfeiçoamento. Com vantagem, as moPetição 870190000002, de 01/01/2019, pág. 11/49
7/32 dalidades de acordo com os presentes princípios podem salvar na memória e/ou complexidade para ambos o codificador e decodificador. Além disso, as modalidades de acordo com os presentes princípios podem também salvar bits em taxas de 5 bits muito baixas.
A presente descrição ilustra os princípios da presente invenção. Deste modo, será apreciado que os versados na técnica serão capazes de imaginar várias disposições que, embora não explicitamente descritas ou mostradas no presente 10 documento, incorporam os princípios da presente invenção e são incluídas no seu espírito e âmbito.
Todos os exemplos e linguagem condicional aqui apresentados se prestam a fins pedagógicos a fim de auxiliar o leitor no entendimento dos princípios da presente invenção 15 e dos conceitos contribuídos pelo inventor para melhorar a técnica, e devem ser construídos sem limitação aos exemplos e condições especificamente apresentados.
Além disso, todas as instruções aqui apresentam princípios, aspectos, e modalidades da presente invenção, 20 assim como exemplos específicos da mesma, pretendem abranger tanto os equivalentes estruturais como os funcionais da mesma. Além disso, é pretendido que tais equivalentes incluam tanto os equivalentes correntemente conhecidos, como também os equivalentes a serem desenvolvidos no futuro, isto é, 25 quaisquer elementos desenvolvidos que realizem a mesma função, independente da estrutura.
Sendo assim, por exemplo, será apreciado pelos versados na técnica que os diagramas em blocos aqui apresen
Petição 870190000002, de 01/01/2019, pág. 12/49
8/32 tados representam as visões conceituais de um circuito ilustrativo incorporando os princípios da presente invenção. De maneira similar, será apreciado que quaisquer painéis, fluxogramas, diagramas de transição de estado, pseudocódigos, ou coisa do gênero, representam vários processos que podem ser substancialmente representados em um meio legível em computador e assim executados por um computador ou processador, quer ou não este computador ou processador seja explicitamente mostrado.
As funções dos vários elementos mostrados nas figuras podem ser providas através do uso de um hardware dedicado assim como de um hardware capaz de executar um software em associação a um software apropriado. Quando providas por um processador, as funções podem ser providas por um único processador dedicado, por um único processador compartilhado, ou por uma pluralidade de processadores individuais, alguns dos quais podendo ser compartilhados. Além disso, o uso explícito do termo processador ou controladora deve ser construído de modo a se referir exclusivamente a um hardware capaz de executar um software, e pode implicitamente incluir sem limitação um hardware de processador de sinal digital (DSP), uma memória de leitura (ROM) para o armazenamento do software, uma memória de acesso aleatório (RAM), e um armazenamento não volátil.
Outros hardwares, convencionais e/ou personalizados podem também ser incluídos. De maneira similar, quaisquer comutadores mostrados nas figuras são apenas conceituais. Sua função pode ser realizada através da operação de
Petição 870190000002, de 01/01/2019, pág. 13/49
9/32 uma lógica de programa, através de uma lógica dedicada, através da interação do controle de programa e da lógica dedicada, ou ainda manualmente, a técnica em particular sendo executável pelo implementador, conforme mais especificamente entendido a partir do contexto.
Nas presentes reivindicações, qualquer elemento expresso como um meio para a execução de uma função específica pretende abranger qualquer maneira de se executar aquela função, incluindo, por exemplo, a) uma combinação de elementos de circuito que realizam aquela função, ou b) um software de qualquer forma, incluindo, portanto, um firmware, um micro-código, ou coisa do gênero, combinado com um circuito apropriado para a execução daquele software no sentido de realizar a função. A presente invenção conforme definida por tais reivindicações é inerente ao fato de que as funcionalidades providas pelos diversos meios apresentados são combinadas e reunidas da maneira que as reivindicações sugerem. É, por conseguinte, considerado que qualquer meio que possa prover estas funcionalidades seja equivalente aos mostrados no presente documento.
De acordo com as modalidades dos presentes princípios, um método e aparelho são apresentados que reutilizam os parâmetros de ponderação de camada de aperfeiçoamento. Uma vez que a camada de base é simplesmente a versão subamostrada da camada de aperfeiçoamento, é benéfico que a camada de aperfeiçoamento e a camada de base tenham os mesmos parâmetros de ponderação para a mesma imagem de referência.
Além disso, outras vantagens / aspectos são provi
Petição 870190000002, de 01/01/2019, pág. 14/49
10/32 dos pelos presentes princípios. Uma vantagem / aspecto é que apenas um conjunto de parâmetros de ponderação precisa ser armazenado em cada camada de aperfeiçoamento, o que pode economizar o uso da memória. Além disso, quando o prognóstico de animação inter-camada é usado, o decodificador precisa saber que conjunto de parâmetros de ponderação é usado. Uma tabela de pesquisa pode ser utilizada para armazenar as informações necessárias.
Uma outra vantagem / aspecto é a redução da complexidade tanto no codificador como no decodificador. No decodificador, as modalidades da presente invenção podem reduzir a complexidade da análise e a pesquisa de tabela para localizar o conjunto certo de parâmetros de ponderação. No codificador, as modalidades da presente invenção podem reduzir a complexidade do uso de diferentes algoritmos e deste modo tomar as decisões para a estimativa de parâmetros de ponderação. Quando uma etapa de atualização é usada e ponderações de prognóstico são levadas em consideração, ter múltiplos parâmetros de ponderação para o mesmo índice de imagem de referência tornará mais complicada a derivação das informações de animação em uma etapa de atualização inversa no decodificador e na etapa de atualização no codificador.
Ainda, uma outra vantagem / aspecto está em taxas de bits muito baixas, as modalidades da presente invenção podem também ter uma leve vantagem na eficiência da codificação, uma vez que os parâmetros de ponderação não são explicitamente transmitidos no cabeçalho de fatia para a camada de aperfeiçoamento.
Petição 870190000002, de 01/01/2019, pág. 15/49
11/32
Voltando para a Figura 1, um codificador de Modelo de Vídeo Redimensionável Conjunto Versão 2.0 (JSVM2.0) ao qual a presente invenção se aplica é indicado de modo geral pelo numeral de referência 100. O codificador JSVM2.0 100 usa três camadas espaciais e um filtro temporal compensado de animação. O codificador JSVM 100 inclui um decimador bidimensional (2D) 104, um decimador 2D 106, e um módulo de filtragem temporal compensado de animação (MCTF) 108, cada qual tendo uma entrada para o recebimento de dados de sinal de vídeo 102.
Uma saída do decimador 2D 106 é conectada em comunicação de sinal com uma entrada do módulo MCTF 110. Uma primeira saída do módulo MCTF 110 é conectada em comunicação de sinal com uma entrada de um codificador de animação 112, e uma segunda saída do módulo MCTF 110 é conectado em comunicação de sinal com uma entrada de um módulo de prognóstico 116. Uma primeira saída do codificador de animação 112 é conectado em comunicação de sinal com uma primeira entrada de um multiplexador 114. Uma segunda saída do codificador de animação 112 é conectada em comunicação de sinal com uma primeira entrada de um codificador de animação 124. Uma primeira saída do módulo de prognóstico 116 é conectada em comunicação de sinal com uma entrada de um transformador espacial 118. Uma saída do transformador espacial 118 é conectada em comunicação de sinal com uma segunda entrada do multiplexador 114. Uma segunda saída do módulo de prognóstico 116 é conectada em comunicação de sinal com uma entrada de um interpolador 120. Uma saída do interpolador é conectada em
Petição 870190000002, de 01/01/2019, pág. 16/49
12/32 comunicação de sinal com uma primeira entrada de um módulo de prognóstico 122. Uma primeira saída do módulo de prognóstico 122 é conectada em comunicação de sinal com uma entrada de um transformador espacial 126. Uma saída do transformador espacial 126 é conectada em comunicação de sinal com a segunda entrada do multiplexador 114. Uma segunda saída do módulo de prognóstico 122 é conectada em comunicação de sinal com uma entrada de um interpolador 130. Uma saída do interpolador 130 é conectada em comunicação de sinal com uma primeira entrada de um módulo de prognóstico 134. Uma saída do módulo de prognóstico 134 é conectada em comunicação de sinal com um transformador espacial 136. Uma saída do transformador espacial é conectada em comunicação de sinal com a segunda entrada de um multiplexador 114.
Uma saída do decimador 2D 104 é conectada em comunicação de sinal com uma entrada de um módulo MCTF 128. Uma primeira saída do módulo MCTF 128 é conectada em comunicação de sinal com uma segunda entrada do codificador de animação 124. Uma primeira saída do codificador de animação 124 é conectada em comunicação de sinal com a primeira entrada do multiplexador 114. Uma segunda saída do codificador de animação 124 é conectada em comunicação de sinal com uma primeira entrada de um codificador de animação 132. Uma segunda saída do módulo MCTF 120 é conectada em comunicação de sinal com uma segunda entrada do módulo de prognóstico 122.
Uma primeira saída do módulo MCTF 108 é conectada em comunicação de sinal com uma segunda entrada do codificador de animação 132. Uma saída do codificador de animação
Petição 870190000002, de 01/01/2019, pág. 17/49
13/32
132 é conectada em comunicação de sinal com a primeira entrada do multiplexador 114. Uma segunda saída do módulo MCTF 108 é conectada em comunicação de sinal com uma segunda entrada do módulo de prognóstico 134. Uma saída do multiplexador 114 provê um fluxo de bits de saída 138.
Para cada camada espacial, uma decomposição temporal compensada de animação é feita. Esta decomposição provê um redimensionamento temporal. As informações de animação das camadas espaciais inferiores podem ser usadas para o prognóstico de animação nas camadas superiores. Para a codificação de textura, o prognóstico espacial entre sucessivas camadas espaciais pode ser aplicado para remover redundância. O sinal residual resultante do intra-prognóstico ou do inter-prognóstico compensado em animação é codificado em transformação. Uma camada de base de qualidade residual provê uma qualidade de reconstrução mínima em cada camada espacial. Esta camada de base de qualidade pode ser codificada em um fluxo correspondente padrão H.264 se nenhum prognóstico inter-camada for aplicado. Para um redimensionamento de qualidade, as camadas de aperfeiçoamento de qualidade são também codificadas. Estas camadas de aperfeiçoamento podem ser escolhidas de modo a prover um redimensionamento de qualidade de grão grosso ou fino (SNR).
Voltando para a Figura 2, um decodificador de vídeo redimensionável exemplar ao qual a presente invenção pode ser aplicada é indicado de modo geral pelo numeral de referência 200. Uma entrada de um demultiplexador 202 é disponível como uma entrada para o decodificador de vídeo redi
Petição 870190000002, de 01/01/2019, pág. 18/49
14/32 mensionável 200, para o recebimento de um fluxo de bits redimensionável. Uma primeira saída do demultiplexador 202 é conectada em comunicação de sinal com uma entrada de um decodificador de entropia redimensionável SNR de transformação 5 inversa espacial 204. Uma primeira saída do decodificador de entropia redimensionável SNR de transformação inversa espacial 204 é conectada em comunicação de sinal com uma primeira entrada de um módulo de prognóstico 206. Uma saída do módulo de prognóstico 206 é conectada em comunicação de sinal 10 a uma primeira entrada de um módulo MCTF inverso 208.
Uma segunda saída do decodificador de entropia redimensionável SNR de transformação inversa espacial 204 é conectada em comunicação de sinal com uma primeira entrada de um decodificador de vetor de movimento (MV) 210. Uma saí15 da do decodificador MV é conectada em comunicação de sinal com uma segunda entrada do módulo MCTF inverso 208.
Uma segunda saída do demultiplexador 202 é conectada em comunicação de sinal a uma entrada de um decodificador de entropia redimensionável SNR de transformação inversa 20 espacial 212. Uma primeira saída do decodificador de entropia redimensionável SNR de transformação inversa espacial 212 é conectada em comunicação de sinal com uma primeira entrada de um módulo de prognóstico 214. Uma primeira saída do módulo de prognóstico 214 é conectada em comunicação de si25 nal a uma entrada de um módulo de interpolação 216. Uma saída do módulo de interpolação 216 é conectada em comunicação de sinal a uma segunda entrada do módulo de prognóstico 206.
Uma segunda saída do módulo de prognóstico 214 é conectada
Petição 870190000002, de 01/01/2019, pág. 19/49
15/32 em comunicação de sinal a uma primeira entrada de um módulo MCTF inverso 218.
Uma segunda saída do decodificador de entropia redimensionável SNR de transformação inversa espacial 212 é 5 conectada em comunicação de sinal a uma primeira entrada de um decodificador MV 220. Uma primeira saída do decodificador MV 220 é conectada em comunicação de sinal a uma segunda entrada do decodificador MV 210. Uma segunda saída do decodificador MV 220 é conectada em comunicação de sinal a uma se10 gunda entrada do módulo MCTF inverso 218.
Uma terceira saída do demultiplexador 202 é conectada em comunicação de sinal a uma entrada de um decodificador de entropia redimensionável SNR de transformação inversa espacial 222. Uma primeira saída do decodificador de entro15 pia redimensionável SNR de transformação inversa espacial 222 é conectada em comunicação de sinal a uma entrada de um módulo de prognóstico 224. Uma primeira saída do módulo de prognóstico 224 é conectada em comunicação de sinal a uma entrada de um módulo de interpolação 226. Uma saída do módu20 lo de interpolação 226 é conectada em comunicação de sinal a uma segunda entrada do módulo de prognóstico 214.
Uma segunda saída do módulo de prognóstico 224 é conectada em comunicação de sinal a uma primeira entrada de um módulo MCTF inverso 228. Uma segunda saída do decodifica25 dor de entropia redimensionável SNR de transformação inversa espacial 222 é conectada em comunicação de sinal a uma entrada de um decodificador MV 230. Uma primeira saída do decodificador MV 230 é conectada em comunicação de sinal com
Petição 870190000002, de 01/01/2019, pág. 20/49
16/32 uma segunda entrada do decodificador MV 220. Uma segunda saída do decodificador MV 230 é conectada em comunicação de sinal a uma segunda entrada do módulo MCTF inverso 228.
Uma saída do módulo MCTF inverso 228 é disponível como uma saída do decodificador 200 para a emissão de um sinal 0 de camada. Uma saída do módulo MCTF inverso 218 é disponível como uma saída do decodificador 200 para a emissão de um sinal 1 de camada. Uma saída do módulo MCTF inverso 208 é disponível como uma saída do decodificador 200 para a emissão de um sinal 2 de camada.
Em uma primeira modalidade exemplar de acordo com a presente invenção, não é usada uma nova sintaxe. Nesta primeira modalidade exemplar, a camada de aperfeiçoamento reutiliza os pesos da camada de base. A primeira modalidade exemplar pode ser implementada, por exemplo, como uma limitação de perfil ou de nível. A exigência pode ser também indicada na seqüência ou definições de parâmetro de imagem.
Em uma segunda modalidade exemplar de acordo com a presente invenção, um elemento de sintaxe, base_pred_weight_table_flag, é introduzido na sintaxe de cabeçalho de fatia na extensão conforme mostrada na Tabela 1, de modo que o codificador possa adaptativamente selecionar que modo é usado para o prognóstico ponderado em uma base de fatia. Quando a base_pred_weigh_table_flag não se encontra presente, a base_pred_weight_table_flag será inferida para ser igual a 0. Quando a base_pred_weight_table_flag é igual a 1, isto indica que a camada de aperfeiçoamento reutiliza a pred_weight_table() da sua camada anterior.
Petição 870190000002, de 01/01/2019, pág. 21/49
17/32
A tabela 1 ilustra a sintaxe para o prognóstico ponderado para a codificação de vídeo redimensionável.
Tabela I
|
slice header in scalable extensíon() { ' |
C |
Descriptor |
|
first mb in slice |
2 |
ue(v) |
|
slice type |
2 |
ue(v) |
|
picj>arameter set id |
2 |
ue(v) |
|
if( slice typc =» PR) { |
|
|
|
num jnbs in slice minusl |
2 |
ue(v) |
|
lu ma chro ma sep flag |
2 |
u(l) |
|
} ' |
|
|
|
fratne num |
2 |
u(v) |
|
if( tfranie nibs only flag) { |
|
|
|
field pic flag |
2 |
«ÍD |
|
if( field picjElag ) |
|
|
|
bottom fieJd flag |
2 |
u(l) |
| |
|
|
|
if( nal unít type = 21 ) |
|
|
|
idr pie id |
2 |
ue(v) |
|
if( píc order cnt type == 0) { |
|
|
|
pic order cnt lsb |
2 |
u(v) |
|
if( pic order present flag && lííeld pic flag ) |
|
|
|
deltajpjc order cnt bottom |
2 |
se(v) |
|
} |
|
|
|
if( pic ordcr cnt type = = 1 && Ideltajrícjarderjüways zero flag ) { |
|
|
|
de]ta pic order cnt[ 0 ] |
2 |
se(y) |
|
íf( pic ordej pressjit flag && !íield pic flag) . |
|
|
|
delta pic prder cnt[ 1 ] |
2 |
se(v) |
|
} |
|
|
|
if( slice_type 1= PR) { |
|
|
|
if( redundant pic cnt present—flag ) |
|
♦ |
|
j&djmdanLpic cnt . . „ ......... ,. |
2 |
UC(v). |
|
jf( slice type = ” EB ) |
|
|
|
diiect spatial mv predflag |
2 |
u(l) |
|
key jiicture flag |
2 |
u(l) |
|
decompositlon stages |
2 |
ue(v) |
|
base íd plusl |
2 |
ue(v) |
|
ίίζ base íd plusl != 0 ) { ' |
|
|
|
adaptivejprediction flag |
2 |
u(l) |
Petição 870190000002, de 01/01/2019, pág. 22/49
18/32
|
} |
|
|
|
if( slíce type = = EP | j slice type “ = EB) { |
|
|
|
num ref idx active override flag |
2 |
u(l) |
|
if( num ref idx active ovemde flag) { |
|
|
|
num ref idx lQ active niinusI |
2 |
ue(v) |
|
' ifÇ slice type = = ÈB ) |
|
|
|
nnm ref idx ll actíve mlnusl . |
2 |
ue(v) |
|
} |
|
|
|
} |
|
|
|
ref pic list reordering() |
2 |
|
|
for( decLvl = temporal levei; decLvl < decomposition stages; decLvl-H-)
í ' . ..... |
|
|
|
num refJdx update lO activel decLvl + 1 ] |
2 |
u«(v) |
|
, num ref idx update Il active[ decLvl + 1 ] |
2 |
ue(v) |
|
) |
|
|
|
if( ( weighted pred flag && slice type > = EP ) | ]
(weigbted bipred ide == 1 && slice type == EB)) |
|
|
|
í |
|
|
|
if ((base id plusl 1= 0) && ( adaptivc prediction flag = *= 1) ) |
|
|
|
base pred weight table flag |
2 |
u(l) |
|
if (basc pred weight table flag = = 0) |
|
|
|
pred weight table( ) |
2 |
|
|
} |
|
|
|
if( nal ref idc t= Ò ) |
|
|
|
dec refjpic marking{ ) |
2 |
|
|
iíÇ entropy coding mode flag && slice type 1= EI) |
|
|
|
cabac init ídc |
2 |
ue(v) |
|
} |
|
|
|
slice qp delta , |
2 |
se(v) |
|
if( deblocking íilter control present flag ) { . |
|
|
|
disable deblocking íilter idc |
2 |
ue(v) |
|
if( disable deblockingj51ter idc 1= 1) { |
|
|
|
slice alpha c0 offset div2 |
2 |
se(v) . |
|
slice beta offset div2 ' |
2 |
se(v) |
| |
|
|
|
} |
|
|
|
if( slice type != PR) |
|
|
|
ií(nunrslice_groups_minusl>0 &&
slice group map typc>=3 && slice group map type<=5) |
|
|
|
slice grwp change cycle |
2 |
u(v) |
|
if( slice type 1= PR && cxtended spatial scalability > 0) { |
|
|
|
if (chroma format idc > 0 ) { . |
|
|
|
base chroma phase xjplusl |
2 |
u(2) |
|
base chroma phase y plusl |
2 |
u(2) |
|
} . |
|
|
Petição 870190000002, de 01/01/2019, pág. 23/49
19/32
|
, if( extended spatial scaiabili1y = = 2 ) { |
|
|
|
scaled base left offset · |
2 |
se(v) |
|
scaled base top offset |
2 |
se(v) |
|
scaled base right offset |
2 |
se(v) |
|
sca]ed base bottom offset |
2 |
se(y) |
|
} |
|
|
|
} |
|
|
|
SpatialScalabilityType = spatial scalability type() |
|
|
|
} |
|
|
No decodificador, quando a camada de aperfeiçoamento deve reutilizar as ponderações da camada de base, um re-mapeamento da pred_weight_table() é feito a partir da camada de base (ou camada anterior) para a pred_weight_table() na camada de aperfeiçoamento corrente. Este processo é utilizado para os seguintes casos: em um primeiro caso, o mesmo índice de imagem de referência na camada de base e a camada de aperfeiçoamento indica uma imagem de referência diferente; ou em um segundo caso, a imagem de referência usada na camada de aperfeiçoamento não tem uma correspondência na camada de base. No primeiro caso, o número de contagem de ordem de imagem (POC) é usado para mapear os parâmetros de ponderação a partir da camada de base para o índice de imagem de referência direita na camada de aperfeiçoamento. Quando múltiplos parâmetros de ponderação são usados na camada de base, os parâmetros de ponderação com o menor índice de imagem de referência são de preferência, porém não necessariamente, mapeados primeiro. No segundo caso, presume-se que a base_pred_weight_table_flag é definida em 0 para a imagem de referência que não se encontra disponível na camada de aperfeiçoamento. O re-mapeamento de pred_weight_table() a partir da camada de base (ou camada
Petição 870190000002, de 01/01/2019, pág. 24/49
20/32 anterior) para pred_weight_table() na camada de aperfeiçoamento corrente é derivado como se segue. O processo é referido como um processo de herança para pred_weight_table().^Em particular, este processo de herança é invocado quando base_pred_weight_table_flag é igual a 1. Os resultados deste processo são como se segue:
- luma_weight_LX[](com X sendo 0 ou 1)
- luma_offset_LX[] (com X sendo 0 ou 1)
- chroma_weight_LX[] (com X sendo 0 ou 1)
- chroma_offset_LX[] (com X sendo 0 ou 1)
- luma_log2_weight_denom
- chroma_log2_weight_denom
O processo de derivação para as imagens de base é invocado com basePic como resultado. Para X sendo substituído por 0 ou 1, o seguinte se aplica:
- Considere que _luma_weigth_LX[] seja o valor do elemento de sintaxe luma_weight_LX[] o valor da imagem de base basePic.
- Considere que _luma_offset_LX[] seja o valor do elemento de sintaxe luma_offset_LX[] da imagem de base basePic.
- Considere que base_chroma_weight_LX[] seja o valor do elemento de sintaxe chroma_weight_LX[] da imagem de base basePic.
- Considere que base_chroma_offset_LX[] seja o valor do elemento de sintaxe chroma_offset_LX[] o valor da imagem de base basePic.
- Considere que base_luma_log2_weight_denom seja o
Petição 870190000002, de 01/01/2019, pág. 25/49
21/32 valor do elemento de sintaxe luma_log2_weight_denom o valor da imagem de base basePic.
- Considere que base_chroma_log2_weight_denom seja o valor do elemento de sintaxe chroma_log2_weight_denom da imagem de base basePic.
- Considere que BaseRefPicListX seja a lista de índice de referência RefPicListX da imagem de base basePic.
- Para cada índice de referência refldxLX da lista de índice de referência de fatia corrente RefPicListX (loop de 0 para num_ref_idx_IX_active_minus1), os seus parâmetros de ponderação associados na fatia corrente são herdados como se segue:
- Considere que RefPic seja a imagem que é referida por refldxLX
- Considere que refPicBase, a imagem de referência da camada de base correspondente, seja considerada para existir se houver uma imagem para a qual todas as seguintes condições são verdadeiras.
- O elemento de sintaxe dependency_id para a imagem refPicBase é igual à variável DependencyIdBase da imagem refPic.
- O elemento de sintaxe quality_level para a imagem refPicBase é igual à variável QualityLevelBase da imagem refPic.
- O elemento de sintaxe fragment_order para a imagem refPicBase é igual à variável FragmentOrderBase da imagem refPic.
- O valor de PicOrderCnt( refPic ) é igual ao vaPetição 870190000002, de 01/01/2019, pág. 26/49
22/32 lor de PicOrderCnt( refPicBase ).
- Existe um índice baseRefldxLX igual ao índice de referência disponível de valor mais baixo na lista de índice de referência de camada de base correspondente BaseRefPi- cListX que faz referência à refPicBase.
- Se uma refPicBase existir, o seguinte se aplica:
- baseRefkdxKX é marcada como indisponível para as etapas subseqüentes do processo.
Iuma_log2_weight_denom basejuma_log2_weight_denom (1) chromajog2_weight_denom = base_chroma_log2_weight_denom (2) luma_weight_LX[refldxLX] = baseJuma_welght_LX[baseRefldxLX] (3) luma_offset_LX[refldxLX] = base_luma_offset_LX[baseRefldxLX] (4) chroma_weight__LX[refldxLXJ[0] base_chroma_weight_LX[baseRefldxLX][O] (5) chroma_pffset_LX[refldxLX][0] = base_chroma_offset_LX[baseRefldxLX][0] (6) chroma_weight_LX[refldxLX][1] = base_chroma_weight__LX[baseRefldxLX][1] chroma_offset_LX[refldxLX][1] = base_chroma_offset_LX[baseRefldxLX][1] (7) (8)
- De outra forma, luma_log2_welght_denom = base_lumajog2_weight_denom (9) chroma_Jog2_welght_denom = base_chroma_log2_weight_denom (W)
Petição 870190000002, de 01/01/2019, pág. 27/49
23/32 luma_weight_LX[refldxLX] = 1«luma_log2_weight_denom (11) luma_offset_LX[refldxLX] = 0 chroma_weight_LX[refldxLX][OJ = «chroma_log2_weight_denom chroma_offset__LX[refldxLX][0] = 0 chrorr»a_weight_LX[refldxl_X][1] = «chroma_log2_weight_denom chroma_offset_LX[refldxLX][1] = 0 (12) (13) (14) (15) (16)
O seguinte é um método exemplar para implementar o processo de herança:
Para ( baseRefldxLX = 0; baseRefldxLX <= base_num_ref_idx_JX„active_minus1; baseRefldxLX ++) base_ref_avail[baseRefÍdxLX ] = 1 para (^fldxlLX - 0; refldxLX <= num_refJdx_JX_active_minus1; refldxLX ++) { base_weights_avail_flag[refídxLX ] = 0 para (baseRefldxLX =0; baseRefldxLX <= base_num_ref_ldx_IX_active_minus1;
baseRefldxLX ++) { (base_ref_avail[baseRefldxLX ] && (PicOrderCnt(RefPicListX[refldxLX ]) PlcOrderCnt(BaseRefPicListX[baseRefldxLX jj
)){ aplicar equações (1) a (8) b as e_ref_a va il [base RefldxLX ] = 0 base_weights_avail_flag[refldxLX ] = 1 break;
} }
if (base_weights_avaíl_flag[refldxLX ] = = 0) { apply equations (9) to (16) } (17)
Se a imagem de camada de aperfeiçoamento e a ima
Petição 870190000002, de 01/01/2019, pág. 28/49
24/32 gem de camada de base têm a mesma divisão de fatia, o remapeamento de pred_weight_table() da camada de base (ou inferior) para pred_weight_table() na camada de aperfeiçoamento corrente pode ser feito em fatia. No entanto, se a camada de aperfeiçoamento e a camada de base tiverem uma divisão de fatia diferente, o re-mapeamento de pred_weight_table() da camada de base (ou inferior) para pred_weight_table() na camada de aperfeiçoamento corrente precisará ser feito em termos de macrobloco. Por exemplo, quando a camada de base e a camada de aperfeiçoamento têm as mesmas duas divisões de fatia, o processo de herança poderá ser chamado uma vez por fatia. Em contrapartida, se a camada de base tiver duas divisões e a camada de aperfeiçoamento tiver três divisões, neste caso o processo de herança é chamado em uma base de macrobloco.
Voltando para a Figura 3, um método exemplar para a codificação de vídeo redimensionável de um bloco de imagem usando o prognóstico ponderado é indicado de modo geral pelo numeral de referência 300.
Um bloco de início 305 começa a codificação de uma imagem de camada de aperfeiçoamento corrente (EL), e passa o controle para um bloco de decisão 310. O bloco de decisão 310 determina se uma imagem de camada de base (BL) está presente ou não para a imagem EL corrente. Caso positivo, o controle é então passado para um bloco de função 350. De outra forma, o controle é passado para um bloco de função 315.
O bloco de função 315 obtém as ponderações da imagem BL, e passa o controle para um bloco de função 320. O
Petição 870190000002, de 01/01/2019, pág. 29/49
25/32 bloco de função 320 re-mapeia pred_weight_table() da imagem
BL para pred_weight_table() da camada de aperfeiçoamento, e passa o controle para um bloco de função 325. O bloco de função 325 define base_pred_weight_table_flag igual a verda5 deiro, e passa o controle para um bloco de função 330. O bloco de função 330 pondera a imagem de referência com as ponderações obtidas, e passa o controle para uma bloco de função 335. O bloco de função 335 escreve base_pred_weight_table_flag no cabeçalho de fatia, e passa o controle para um bloco de decisão 340. O bloco de decisão
340 determina se a base_pred_weight_table_flag é igual ou não a verdadeiro. Caso positivo, o controle é passado para um bloco de função 345. De outra forma, o controle é passado para um bloco de função 360.
O bloco de função 350 calcula as ponderações para a imagem EL e passa o controle para um bloco de função 355.
O bloco de função 355 define base_pred_weight_table_flag igual a falso e passa o controle para um bloco de função 330.
O bloco de função 345 codifica a imagem EL usando a imagem de referência ponderada e passa o controle para um bloco de finalização 365.
O bloco de função 360 escreve as ponderações no cabeçalho de fatia, e passa o controle para o bloco de fun25 ção 345.
Voltando para a Figura 4, um método exemplar para a decodificação de vídeo redimensionável de um bloco de imagem usando um prognóstico ponderado é indicado de modo geral
Petição 870190000002, de 01/01/2019, pág. 30/49
26/32 pelo numeral de referência 400.
Um bloco de início 405 começa a decodificação de uma imagem de camada de aperfeiçoamento corrente (EL) e passa o controle para um bloco de função 410. O bloco de função 410 analisa a base_pred_weight_table_flag no cabeçalho de fatia e passa o controle para um bloco de decisão 415. O bloco de decisão 415 determina se a base_pred_weight_table_flag é igual a um. Caso positivo, o controle é passado para um bloco de função 420. De outra forma, o controle é passado para um bloco de função 435.
O bloco de função 420 copia as ponderações a partir da imagem de camada de base correspondente (BL) para a imagem EL e passa o controle para um bloco de função 425. O bloco de função 425 re-mapeia pred_weight_table() da imagem BL para pred_weight_table() da imagem EL e passa o controle para um bloco de função 430. O bloco de função 430 decodifica a imagem EL com as ponderações obtidas e passa o controle para um bloco de finalização 440.
O bloco de função 435 analisa os parâmetros de ponderação e passa o controle para o bloco de função 430.
Voltando para a Figura 5, um método exemplar para a decodificação das sintaxes level_idc e profile_idc é indicado de modo geral pelo numeral de referência 500.
Um bloco de início 505 passa o controle para um bloco de fundição 510. O bloco de função 510 analisa as sintaxes level_idc e profile_idc e passa o controle para um bloco de função 515. O bloco de função 515 determina a limitação do prognóstico ponderado para a camada de aperfeiçoa
Petição 870190000002, de 01/01/2019, pág. 31/49
27/32 mento baseada na análise feita pelo bloco de função 510, e passa o controle para um bloco de finalização 520.
Voltando para a Figura 6, um método exemplar para a decodificação de uma limitação de prognóstico ponderado 5 para uma camada de aperfeiçoamento é indicado pelo numeral de referência 600.
Um bloco de início 605 passa o controle para um bloco de fundição 610. O bloco de função 610 analisa a sintaxe para o prognóstico ponderado para a camada de aperfei10 çoamento e passa o controle para um bloco de finalização 615.
Será feita a seguir uma descrição das muitas vantagens e aspectos auxiliares da presente invenção, alguns dos quais tendo sido mencionados acima. Por exemplo, uma 15 vantagem / aspecto é um codificador de vídeo redimensionável, que inclui um codificador para a codificação de um bloco em uma camada de aperfeiçoamento de uma imagem por meio da aplicação de um mesmo parâmetro de ponderação para uma imagem de referência de camada de aperfeiçoamento que o 20 aplicado a uma imagem de referência de camada inferior em particular usada para codificar um bloco em uma camada inferior da imagem, em que o bloco na camada de aperfeiçoamento corresponde ao bloco na camada inferior, e a imagem de referência de camada de aperfeiçoamento corresponde à imagem de 25 referência de camada inferior em particular. Uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador codifica o bloco na camada de aperfeiçoamento por meio da seleção entre
Petição 870190000002, de 01/01/2019, pág. 32/49
28/32 um modo de parâmetro de ponderação explícito e um modo de parâmetro de ponderação implícito. Ainda, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador impõe a limitação de que o mesmo parâmetro de ponderação seja sempre aplicado à imagem de referência de camada de aperfeiçoamento que o aplicado à imagem de referência de camada inferior em particular, quando o bloco na camada de aperfeiçoamento corresponde ao bloco da camada inferior, e a imagem de referência de camada de aperfeiçoamento corresponde à imagem de referência de camada inferior em particular. Além disso, uma outra vantagem / aspecto é o codificador de vídeo redimensionável tendo a limitação conforme descrito acima, em que a limitação é definida como uma limitação de perfil ou de nível, ou é sinalizada em um parâmetro de imagem de seqüência definido. Além disso, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador adiciona uma sintaxe em um cabeçalho de fatia, para uma fatia na camada de aperfeiçoamento, de modo a seletivamente aplicar o mesmo parâmetro de ponderação à imagem de referência de camada de aperfeiçoamento ou um parâmetro de ponderação diferente. Ainda, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador realiza um remapeamento de uma sintaxe pred_weight_table() a partir da camada inferior para uma sintaxe pred_weight_table() para a camada de aperfeiçoamento. Além disso, uma outra vantagem / aspecto é codificador de vídeo redimensionável com o rePetição 870190000002, de 01/01/2019, pág. 33/49
29/32 mapeamento conforme descrito acima, em que o codificador usa uma contagem de ordem de imagem para re-mapear os parâmetros de ponderação a partir da camada inferior para um índice de imagem de referência correspondente na camada de aperfeiçoa5 mento. Além disso, uma outra vantagem / aspecto é codificador de vídeo redimensionável com o re-mapeamento usando a contagem de ordem de imagem conforme descrito acima, em que os parâmetros de ponderação com um índice de imagem de referência menor são re-mapeados primeiro. Além disso, uma outra 10 vantagem / aspecto é codificador de vídeo redimensionável com o re-mapeamento conforme descrito acima, em que o codificador define um campo weighted_pred_flag em zero para uma imagem de referência usada na camada de aperfeiçoamento que é indisponível na camada inferior. Ainda, uma outra vantagem 15 / aspecto é codificador de vídeo redimensionável com o remapeamento conforme descrito acima, em que o codificador envia, em um cabeçalho de fatia, parâmetros de ponderação para um índice de imagem de referência correspondente a uma imagem de referência usada na camada de aperfeiçoamento, quando 20 a imagem de referência usada na camada de aperfeiçoamento não tem uma correspondência na camada inferior. Além disso, uma outra vantagem / aspecto é o codificador de vídeo redimensionável com o re-mapeamento conforme descrito acima, em que o codificador realiza o re-mapeamento em uma base de fa25 tia quando a imagem tem a mesma divisão de fatia em ambas a camada de aperfeiçoamento e a camada inferior, e o codificador realiza o re-mapeamento em uma base de macrobloco quando a imagem tem uma divisão de fatia diferente na camada de
Petição 870190000002, de 01/01/2019, pág. 34/49
30/32 aperfeiçoamento com relação à camada inferior. Além disso, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador realiza um re-mapeamento de uma sintaxe pred_weight_table() da camada inferior para uma sintaxe pred_weight_table() para a camada de aperfeiçoamento, quando o codificador aplica o mesmo parâmetro de ponderação à imagem de referência de camada de aperfeiçoamento que o aplicado na imagem de referência de camada inferior em particular. Ainda, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador salta a realização da estimativa de parâmetros de ponderação, quando o codificador aplica o mesmo parâmetro de ponderação para a imagem de referência de camada de aperfeiçoamento que o aplicado à imagem de referência de camada inferior em particular. Ainda, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador armazena apenas um conjunto de parâmetros de ponderação para cada índice de imagem de referência, quando o codificador aplica o mesmo parâmetro de ponderação à imagem de referência de camada de aperfeiçoamento que o aplicado à imagem de referência de camada inferior em particular. Além disso, uma outra vantagem / aspecto é o codificador de vídeo redimensionável conforme descrito acima, em que o codificador estima os parâmetros de ponderação, quando o codificador aplica um parâmetro de ponderação diferente ou a camada de aperfeiçoamento não tem a camada inferior.
Estes e outros aspectos e vantagens da presente
Petição 870190000002, de 01/01/2019, pág. 35/49
31/32 invenção podem ser prontamente obtidas por uma pessoa com habilidade simples na técnica em questão com base nos presentes ensinamentos. Deve-se entender que os ensinamentos da presente invenção podem ser implementados em várias formas 5 de hardware, software, firmware, processadores de uso especial, ou suas combinações.
Mais preferivelmente, os ensinamentos da presente invenção são implementados como uma combinação de um hardware e um software. Além disso, o software pode ser implemen10 tado como um programa de aplicação tangivelmente incorporado em uma unidade de armazenamento de programa. O programa de aplicação pode ser transferido para, e executado por, uma máquina que compreende qualquer arquitetura adequada. De preferência, a máquina é implementada em uma plataforma de 15 computador tendo um hardware, como, por exemplo, uma ou mais unidades de processamento central (CPU), uma memória de acesso aleatório (RAM), e interfaces de entrada / saída (I/O). A plataforma de computador pode também incluir um sistema operacional e um código de micro-instrução. Os vá20 rios processos e funções descritos no presente documento podem fazer parte de um código de micro-instrução ou de um programa de aplicação, ou qualquer combinação dos mesmos, que possam ser executados por uma unidade CPU. Além disso, várias outras unidades periféricas podem ser conectadas à 25 plataforma de computador, como, por exemplo, uma unidade de armazenamento de dados adicional ou uma unidade de impressão.
Deve-se entender que, uma vez que alguns dos comPetição 870190000002, de 01/01/2019, pág. 36/49
32/32 ponentes e métodos do sistema constituinte ilustrado nos desenhos em anexo são de preferência implementados em um software, as conexões em questão entre os componentes de sistema e os blocos de função de processo podem diferir dependen5 do da maneira na qual a presente invenção é programada. Dados os ensinamentos da presente invenção, uma pessoa com habilidade simples na técnica em questão será capaz de contemplar estas implementações ou implementações e configurações similares às da presente invenção.
Embora as modalidades ilustrativas tenham sido descritas no presente documento com referência aos desenhos em anexo, deve-se entender que a presente invenção não se limita a estas precisas modalidades, e que várias mudanças e modificações podem ser feitas por uma pessoa com habilidade 15 simples na técnica pertinente sem se afastar do âmbito ou espírito da presente invenção. Todas estas mudanças e modificações pretendem estar incluídas dentro do âmbito da presente invenção conforme apresentada nas reivindicações em apenso.