"MÉTODO E APARELHO PARA ESTIMATIVA DE ANIMAÇÃOUSANDO BI-PREDIÇÃO DE REFERÊNCIAS COMBINADAS"
REFERÊNCIA CRUZADA COM PEDIDOS RELACIONADOS
O presente pedido reivindica o beneficio do Pedidode Patente Provisório dos Estados Unidos N. de Série 60/764452, depositado em 02 de fevereiro de 2006, incorporado àguisa de referência ao presente documento em sua totalidade.
CAMPO DA INVENÇÃO
A presente invenção refere-se, de modo geral, auma codificação de video e, mais particularmente, a ummétodo e aparelho para a estimativa de animação usando umabi-prediçao de referência combinada.
FUNDAMENTOS DA INVENÇÃO
É bem conhecido que a compensação de animação demúltiplas hipóteses, conforme descrita em uma primeiraabordagem da técnica anterior, pode oferecer consideráveisbenefícios dentro dos codificadores e decodificadores devídeo compensados por animação. Em termos mais específicos,fatias bi-preditivas (B) (ou imagens bi-preditivas empadrões ou recomendações mais antigas), que consideram 2hipóteses, são, em geral, as fatias codificadas maiseficazes dentro do Codec para a Organização Internacionalpara a Comissão de Padronização / Internacional deEletrotécnica (ISO/IEC) do Grupo de Especialistas em Imagensde Animação-4 (MPEG-4) da União de TelecomunicaçãoInternacional / padrão de Codificação de Vídeo Avançado(AVC) Parte 10, da recomendação H.264 do Setor deTelecomunicações (ITU-T) (doravante o padrão MPEG-4 AVC).Este comportamento se deve a estas fatias que conseguem maiseficientemente explorar a correlação temporal que existedentro de uma seqüência por meio da combinação linear deduas ou mais hipóteses em conjunto, de modo a reduzir o seuerro associado. Em termos mais específicos, nas fatias B, ummacrobloco ou bloco é codificado de tal modo que o mesmopossa ser predito por uma predição (lista0 ou listai) oupela combinação linear de duas predições (lista0 e listai),embora ponderações associadas a cada lista possam proverbenefícios adicionais na presença de fades ou cross-fades.Para realizar esta predição, o decodificador requer queapenas 1 ou 2 vetores de animação (MV) , dependendo do tipode predição, e suas referências associadas (uma para cadalista associada), sejam transmitidos dentro do fluxo debits, ou que estes sejam inferidos como no caso de modosdiretos.
Aparentemente, em muitos codificadores, tais como,por exemplo, na versão JM7.4 do Software de Referência doTime Conjunto de Vídeo (Joint Video Team) (JVT) do softwarede referência JM atual, a estimativa de animação para asfatias B (e para a codificação de múltiplas hipóteses emgeral) considera cada referência de candidato dentro daslistas de predição disponíveis separadamente durante umaestimativa de animação e não faz nenhuma presunçãoespecífica para uma bi-predição (ou para uma predição demúltiplas hipóteses, respectivamente). Para cada lista depredição, um codificador calcula os melhores vetores deanimação de predição única e, em seguida, estes vetores deanimação candidatos bi-preditivos que serão mais adianteusados dentro de uma decisão de modo final, que decidiráqual modo (predição única ou múltipla ou mesmo intra) seráusado.
Voltando à Figura 1, um codificador de video queusa uma bi-predição é indicado de modo geral pelo numerai dereferência 100. Uma entrada não invertida de um combinador105, uma primeira entrada de uma Decisão de Modo (MD) &Compensação de Animação (MC) 175, uma primeira entrada de umestimador de animação (ME) 165, e uma primeira entrada de umestimador de animação 170 encontram-se disponíveis comoentradas no codificador de vídeo. Uma saída do combinador105 é conectada em comunicação de sinal a uma entrada de umtransformador 110. Uma saída do transformador 110 éconectada em comunicação de sinal a uma entrada de umquantizador 115. Uma saída do quantizador 115 é conectada emcomunicação de sinal a uma entrada de um codificador detamanho variável (VLC) 120. Uma saída do codificador VLCencontra-se disponível como uma saída do codificador devídeo 100.
A saída do quantizador 115 é também conectada emcomunicação de sinal a uma entrada de um quantizador inverso125. Uma saída do quantizador inverso 125 é conectada emcomunicação de sinal a uma entrada de um transformadorinverso 130. Uma saída de preferência transformador inverso130 é conectada em comunicação de sinal a uma primeiraentrada não invertida de um combinador 180. Uma saída docombinador 180 é conectada em comunicação de sinal a umaentrada de um armazenador de referência de imagem 14 0. Umasaída do armazenador de imagem de referência 140 é conectadaem comunicação de sinal a uma entrada de um armazenadortemporário de referência ListO 145 e a uma entrada de umarmazenador temporário de referência Listl 150. Uma primeirasaída do armazenador temporário de referência ListO 145 éconectada em comunicação de sinal a uma primeira entrada deum multiplicador 155. Uma primeira saída do armazenadortemporário de referência Listl 150 é conectada emcomunicação de sinal a uma primeira entrada de ummultiplicador 160. Uma segunda saída do armazenadortemporário de referência ListO 145 e uma segunda saída doarmazenador temporário de referência Listl 150 sãoconectadas em comunicação de sinal a uma segunda entrada doMD&MC 175.
Uma saída, do multiplicador 155 é conectada emcomunicação de sinal a uma segunda entrada do estimador deanimação 165. Uma saída do multiplicador 160 é conectada emcomunicação de sinal a uma segunda entrada do estimador deanimação 170. Uma primeira saída do MD&MC 175 é conectada emcomunicação de sinal a uma entrada invertida do combinador105. Uma segunda saída do MD&MC 175 é conectada emcomunicação de sinal a uma segunda entrada não invertida docombinador 180.
O método acima se baseia na suposição que estesvetores de animação são bons o suficiente para serem usadosdentro da bi-predição. Infelizmente, esta suposição nemsempre é verdade, potencialmente resultando em uma perdasignificativa da eficiência. Isto é particularmenteverdadeiro na presença de cross-fades (se dissolve) quandoobjetos sobrepostos a partir destas imagens podem tercaracterísticas de luminância consideravelmente diferentes epossivelmente animação, e a consideração de cada listaseparadamente pode potencialmente resultar em um desempenhorelativamente fraco. Sendo assim, seria altamente desejávelpoder se considerar em conjunto as referências candidatasdisponíveis dentro da fase de estimativa de animação, quepoderiam resultar em uma maior eficiência de codificação.Por outro lado, isto não implica que cada referência nãodeva ser considerada separadamente, uma vez que uma prediçãoúnica poderia ainda prover bons resultados, especialmente aoconsiderar que apenas um único conjunto de vetores deanimação (mv0 e mvl para as referências x e y,respectivamente) precisa ser transmitido neste caso, o que émuito importante em baixas taxas de bit.
É bem conhecido que a estimativa de animação paraum único candidato é ele mesmo muito caro em termoscomputacionais. Quando uma abordagem de pesquisa completa éusada com uma janela de pesquisa de (+N,+M), isto implicariaque pontos de verificação (2N+1)χ(2M+1) seriam testados.Obviamente, a força bruta e, em um sentido, a abordagemótima para uma bi-predição requereria que pontos deverificação (2N+1)2x(2M+1)2, o que é proibido em qualquerarquitetura. No caso mais geral de múltiplas hipóteses (k-predição), isto significaria que (2N+1)κχ(2M+1)K precisa sertestado. Em uma alternativa, consideravelmente mais simples,uma arquitetura foi apresentada na abordagem da técnicaanterior acima mencionada, na qual, ao invés do método deforça bruta, uma abordagem iterativa foi usada, na qual cadahipótese é examinada e refinada seqüencialmente aoconsiderar a hipótese previamente estimada.
Este método pode, para um caso bi-preditivo, serresumido como segue: Suponha que a imagem corrente seja z, eas duas referências sob consideração são as imagens χ e y.
Em tais imagens, as ponderações a e b são respectivamenteselecionadas para uma predição ponderada (isto é, para umabi-predição normal a=b=l/2) . MvO e mvl são os vetores deanimação necessários para uma compensação de animaçãocorrespondente às referências χ e y (ou às suascontrapartidas ponderadas), respectivamente. Para fins desimplificação, os desvios ponderados são ignorados nesteprocesso, embora uma consideração similar possa se aplicar.No procedimento a seguir, SAD (soma da diferença absoluta) éusada como uma medida de distorção.
Etapa 1. Definir mvO = mv'0 = mvl - mv'1 = 0Etapa 2. Formar imagem de referência como axEtapa 3. Realizar estimativa de animação em axpara refinar os vetores de animação mvO usando a distorçãoSAD=Iz-ax(mvO)-by(mv' 1)Etapa 4. Definir mv'0=mv0Etapa 5. Formar imagem de referência como byEtapa 6. Realizar estimativa de animação em bypara encontrar vetores de animação mvl usando a distorçãoSAD=Iz-by(mvl)-ax(mv'0)|Etapa 7. Se (mvl=mv'l) sairEtapa 8. Definir mv'l=mvlEtapa 9. Refinar vetores de animação mvO em axusando distorção SAD=|z-ax(mvO)-by(mv'1)|Etapa 10. Se (mv0=mv'0) sairEtapa 11. Definir mv'0=mv0Etapa 12. Ir para Etapa 6
Isto pode ser generalizado para o caso demúltiplas hipóteses. O problema com este método é que omesmo pode ainda requerer um grande número de iterações.
Além disso, embora seja muito provável que o desempenho sejaaperfeiçoado, é também possível que a predição final possanão ser a melhor possível, especialmente se o esquemaestiver aprisionado em um local mínimo. A implementaçãodesta arquitetura é também muito complicada, especialmenteconsiderando que é necessário reconstruir uma nova hipóteseusando uma compensação de animação para cada iteração doalgoritmo. Uma abordagem alternativa, porém muito similar éproposta na abordagem da primeira técnica anterior acimamencionada, na qual os vetores de animação zero iniciais daetapa 1 são substituídos pelos vetores de animação geradosao considerar cada lista independentemente.
Os codificadores e decodificadores de compactaçãode vídeo ganham muito de sua eficiência de compactação aoformar uma predição da imagem corrente (ou fatia) PCUrrent quedeve ser codificada, e ao codificar ainda a diferença entreesta predição e a imagem em questão. Quanto maisproximamente correlacionada estiver a predição à imagemcorrente, menos bits serão necessários para compactar aimagem. É, portanto, desejável que a melhor predição deimagem possível seja formada. Esta predição pode ser geradaatravés de métodos espaciais de predição (intra-codificação)ou por métodos temporais (inter-codificação).
Os métodos temporais de predição basicamenteempregam técnicas compensadas de animação a fim de gerar areferência de predição. Isto é geralmente feito por meio dadivisão da imagem fonte em blocos não sobrepostos de umtamanho NxM e ao encontrar a melhor combinação dentro de umaimagem de referência Preference, usando técnicas deestimativa de animação. Esta melhor combinação é associada aum conjunto de parâmetros de animação também codificadosdentro do fluxo de bits. Padrões mais novos, tais como opadrão MPEG-4 AVC,também permitem a consideração demúltiplas imagens de referência para a estimativa e seleçãoda melhor predição, ao sinalizar o índice da referênciausada com os parâmetros de animação. Estes codificadores edecodificadores de múltiplas referências usam um armazenadortemporário de referência, no qual cada referência candidatapotencial é armazenada e acessada durante a codificação oudecodificação.
Um método alternativo que pode consideravelmentemelhorar o desempenho é considerar não somente uma imagem dereferência única de uma vez, mas sim a possibilidade de usarcombinações de múltiplas hipóteses, como é feito, emparticular, para uma imagem bi-preditiva (B) / codificaçãode fatias. Neste caso, a predição pode ser gerada novamenteao se considerar uma única referência selecionada a partirde um conjunto de múltiplas referências, mas também por meioda combinação linear (isto é, realizando uma médiaponderada) de duas referências disponíveis. Isto tambémrequer que, quando necessário, dois conjuntos de parâmetrosdiferentes sejam estimados e transmitidos, correspondentes acada referência. Este conceito pode ser generalizado noscodificadores que consideram mais de duas hipóteses,conforme descrito na abordagem da primeira técnica anterioracima mencionada. Outros parâmetros que também podemaperfeiçoar o desempenho incluem a consideração de umapredição ponderada conforme sugerido em uma segundaabordagem da técnica anterior, na qual um fator deponderação diferente pode ser aplicado a cada hipótese, emodelos de animação mais complicados, tais como as técnicasde compensação de animação global, são usados.
Embora a consideração de uma compensação deanimação de múltiplas hipóteses possa aperfeiçoar odesempenho de um codec de vídeo, uma estimativa apropriadados parâmetros de animação para este caso é um problemamuito complicado.
Em particular, a solução ótima pode serencontrada ao examinar todas as combinações possíveis depredição com as referências disponíveis, ou seja, examinarcada vetor de animação possível em uma referência a todos osoutros vetores de animação e suas combinações nasreferências restantes, o que obviamente computacionalmenteproibido.
SUMÁRIO DA INVENÇÃOEstas e outras falhas e desvantagem da técnicaanterior são tratadas por meio dos presente princípios,direcionados a um método e aparelho para uma estimativa deanimação usando uma predição de referência combinada.
De acordo com um aspecto da presente invenção, éprovido um aparelho. O aparelho inclui um codificador paracodificar uma imagem de multi-predição a partir de umacombinação de duas ou mais imagens de referência aorespectivamente predizer um vetor de animação para umaimagem em particular dentre duas ou mais imagens dereferência em um processo de estimativa de animação,enquanto se inicializa vetores de animação no sentido demanter algumas dentre duas ou mais imagens de referência emum valor predefinido para uso por meio do processo deestimativa de animação.
De acordo com um outro aspecto da presenteinvenção, é provido um método. 0 método inclui a codificaçãode uma imagem de multi-predição a partir de uma combinaçãode duas ou mais imagens de referência ao respectivamentepredizer um vetor de animação para uma imagem em particulardentre duas ou mais imagens em referência de um processo deestimativa de animação, enquanto se inicializa os vetores deanimação de modo a manter uma imagem dentre duas ou maisimagens de referência em um valor predefinido para uso pormeio do processo de estimativa de animação.
Estes e outros aspectos, recursos e vantagens dapresente invenção tornar-se-ão aparentes a partir dadescrição detalhada a seguir de modalidades exemplares, quedevem ser lidas com relação aos desenhos em anexo.
BREVE DESCRIÇÃO DOS DESENHOS
A presente invenção pode ser melhor entendida deacordo com as figuras exemplares a seguir, nas quais:
A Figura 1 mostra um diagrama para um codificadorde video que usa bi-predição, de acordo com a técnicaanterior;
A Figura 2 mostra um diagrama para um codificadorde video exemplar que usa bi-predição com consideração desubtração, de acordo com uma modalidade da presenteinvenção; e
A Figura 3 mostra um método exemplar para acodificação de um macrobloco usando bi-predição, de acordocom uma modalidade da presente invenção;
A Figura 4 mostra um método exemplar paraestimativa de animação usando bi-predição de referênciacombinada, na qual são feitas iterações paralelas a fim deotimizar a hipótese restante, de acordo com uma modalidadeda presente invenção;
A Figura 5 mostra um método exemplar para aestimativa de animação usando uma bi-predição de referênciacombinada, na qual vetores de animação são iterativamenterefinados com base em uma melhor referência de acordo comuma modalidade da presente invenção;
A Figura 6 mostra um método exemplar para umaestimativa de animação que considera todas as hipóteses comotendo vetores de animação idênticos, de acordo com umamodalidade da presente invenção;
A Figura 7 mostra um método exemplar para arealização de uma estimativa de animação usando uma bi-predição de referência combinada, na qual cada referência (xou y) é considerada separadamente como sendo estacionária emcomparação a uma imagem fonte x, de acordo com a umamodalidade da presente invenção;
A Figura 8 mostra um método exemplar para arealização de uma estimativa de animação usando uma bi-predição de referência combinada, na qual apenas umareferência é considerada como sendo estacionária emcomparação a uma imagem fonte, de acordo com uma modalidadeda presente invenção; e
A Figura 9 mostra um método exemplar para arealização de uma estimativa de animação que usa uma bi-predição de referência, na qual ambas as referências sãocombinadas presumindo uma animação zero entre asreferências, de acordo com uma modalidade da presenteinvenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
A presente invenção trata de um método e aparelhopara uma estimativa de animação usando uma bi-predição dereferência combinada.
A presente descrição ilustra a presente invenção,será, portanto, apreciado que os versados na técnica serãocapazes de conceber várias disposições que, embora nãoexplicitamente descritas ou mostradas no presente documento,incorporam a presente invenção e são incluídas no seuespírito e âmbito de aplicação.
Todos os exemplos e linguagem condicional aquiapresentados pretendem, para fins pedagógicos, ajudar oleitor no entendimento dos princípios da presente invenção edos conceitos contribuídos pela presente invenção no sentidode fomentar a técnica, e devem ser construídos como tais,sem se limitarem aos exemplos e condições especificamenteapresentados.
Além disso, todas as explicações no presentedocumento que descrevem os princípios, os aspectos, e asmodalidades da presente invenção, assim como os exemplosespecíficos da mesma, pretendem abranger seus equivalentesestruturais e funcionais. Adicionalmente, é um objetivo quetais equivalentes incluam os equivalentes tantocorrentemente conhecidos como os equivalentes a seremdesenvolvidos no futuro, isto é, quaisquer elementosdesenvolvidos que realizem a mesma função, independentementede sua estrutura.
Sendo assim, por exemplo, será apreciado pelosversados na técnica que os diagramas em bloco aquiapresentados representam visões conceituais de um circuitoilustrativo que incorpora os princípios da presenteinvenção. De maneira similar, será apreciado que quaisquerpainéis, fluxogramas, diagramas de transição de estado,pseudo-códigos, ou coisa do gênero representam váriosprocessos que podem ser substancialmente representados em ummeio legível em computador e assim executados por umcomputador ou processador, quer ou não tal computador ouprocessador seja explicitamente mostrado.
As funções dos vários elementos mostrados nasfiguras podem ser providas através do uso de um hardwarededicado, assim como através de um hardware capaz deexecutar um software em associação com o apropriadosoftware. Quando providas por um processador, as funçõespodem ser providas por meio de um processador dedicado, pormeio de um único processador compartilhado, ou por meio deuma pluralidade de processadores individuais, alguns dosquais podendo ser compartilhados. Além disso, o usoexplicito do termo "processador" ou "controladora" não deveser construído no sentido exclusivo de um hardware capaz deexecutar um software, e pode implicitamente incluir, semlimitação, um hardware de processador de sinais digitais("DSP"), uma memória de leitura ("ROM") para armazenar osoftware, uma memória de acesso aleatório ("RAM"), e umarmazenamento não volátil.
Outros hardwares, convencionais e/oupersonalizados, podem também ser incluídos. De maneirasimilar, quaisquer comutadores mostrados nas figuras sãoapenas conceituais. Suas funções podem ser executadasatravés da operação de uma lógica de programa, através deuma lógica dedicada, através da interação do controle deprograma e da lógica dedicada, ou ainda manualmente, atécnica em particular sendo executável pelo implementador,conforme mais especificamente entendido a partir docontexto.Nas presentes reivindicações, qualquer .elementoexpresso como um meio para a execução de uma funçãoespecifica pretende abranger qualquer maneira de se executaraquela função, incluindo, por exemplo, a) uma combinação deelementos de circuito que realiza aquela função, ou b) umsoftware de qualquer forma, incluindo, portanto, umfirmware, um micro-código, ou coisa do gênero, combinado comum circuito apropriado para a execução daquele software nosentido de realizar a função.
A presente invenção conformedefinida por tais reivindicações é inerente ao fato de queas funcionalidades providas pelos diversos meiosapresentados são combinadas e reunidas da maneira que asreivindicações sugerem. É, por conseguinte, considerado quequalquer meio que possa prover estas funcionalidades sejaequivalente aos mostrados no presente documento.
Referência, no relatório descritivo, ao termo "umamodalidade" da presente invenção significa que um aspecto,estrutura, característica em particular, e assim por diante,descrito com relação à modalidade é incluído em pelo menosuma modalidade da presente invenção. sendo assim, ascitações à expressão "em uma modalidade" que aparecem emvários lugares em todo o relatório descritivo não se referemtodas necessariamente à mesma modalidade.
Deve-se apreciar que um pseudocódigo provido nopresente documento se presta para fins ilustrativos, e,deste modo, dados os ensinamentos da presente invenção, aquiprovidos, uma pessoa com habilidade simples nesta e emtécnicas relacionadas contemplará que as seguintesseqüências de pseudocódigo, assim como suas variações, semantêm no âmbito de aplicação da presente invenção.
Voltando para a Figura 2, um codificador de videoexemplar usando bi-predição com consideração de subtração éindicado de modo geral pelo numerai de referência 200.
Uma entrada não invertida de um combinador 205,uma primeira entrada de uma Decisão de Modo (MD) &Compensação de Animação (MC) 275, uma primeira entrada de umestimador de animação (ME) 265, uma primeira entrada de umestimador de animação 270, e uma entrada não invertida de umcombinador 286, e uma entrada não invertida de um combinador288 encontram-se disponíveis como entradas em um codificadorde vídeo. Uma saída de um combinador 205 é conectada emcomunicação de sinal a uma entrada de um transformador 210.Uma saída do combinador 205 é conectada em comunicação desinal a uma entrada de um transformador 210. Uma saída dotransformador 210 é conectada em comunicação de sinal a umaentrada de um quantizador 215. Uma saída do quantizador 215é conectada em comunicação de sinal a uma entrada de umcodificador de tamanho variável (VLC) 220. Uma saída docodificador VLC 220 encontra-se disponível como uma saída docodificador de vídeo 200.
A saída do quantizador 215 é também conectada emcomunicação de sinal a uma entrada de um quantizador inverso225. Uma saída do quantizador inverso 225 é conectada emcomunicação de sinal a uma entrada de um transformadorinverso 230. Uma saída do transformador inverso 230 éconectada em comunicação de sinal a uma primeira entrada nãoinvertida de um combinador 280. Uma saída do combinador 280é conectada em comunicação de sinal a uma entrada de umfiltro de Ioop 235. Uma saída do filtro de Ioop 235 éconectada em comunicação de sinal a uma entrada de umarmazenador de referência de imagem 240. Uma saída doarmazenador de imagem de referência 240 é conectada emcomunicação de sinal a uma entrada de um armazenadortemporário de referência ListO 245 e a uma entrada de umarmazenador temporário de referência Listl 150. Uma primeirasaída do armazenador temporário de referência ListO 245 éconectada em comunicação de sinal a uma primeira entrada deum multiplicador 255. Uma primeira saída do armazenadortemporário de referência Listl 250 é conectada emcomunicação de sinal a uma primeira entrada de ummultiplicador 260. uma segunda saída do armazenadortemporário de referência ListO 245 e uma segunda saída doarmazenador temporário de referência Listl 250 sãoconectadas em comunicação de sinal a uma segunda entrada doMD&MC 275. Uma saída do multiplicador 255 é conectada emcomunicação de sinal a uma segunda entrada do estimador deanimação 265. Uma saída do multiplicador 260 é conectada emcomunicação de sinal a uma segunda entrada do estimador deanimação 270. Uma primeira saída do MD&MC 275 é conectada emcomunicação de sinal a uma entrada invertida do combinador205. Uma segunda saída do MD&MC 275 é conectada emcomunicação de sinal a uma segunda entrada não invertida docombinador 280.A saida do multiplicador 255 é também conectada emcomunicação de sinal a uma primeira entrada do estimador deanimação 284 e a uma entrada invertida do combinador 286. Asaida do multiplicador 260 é também conectada em comunicaçãode sinal a uma entrada invertida do combinador 288 e a umaprimeira entrada de um estimador de animação 282. Uma saidado combinador 28 6 é conectada em comunicação de sinal a umasegunda entrada invertida do estimador de animação 282. Umasaida do estimador de animação 284 é conectada emcomunicação de sinal a uma terceira entrada do MD&MC 275.
Uma saida do estimador de animação 282 é conectada emcomunicação de sinal a uma quarta entrada do MD&MC 275.
De acordo com a presente invenção, um método eaparelho são descritos, os quais podem significativamenteaumentar o desempenho de codificação de imagens bi-preditivas ou fatias dentro de uma arquitetura decodificação de video. Embora a presente invenção sejabasicamente descrita com relação ao padrão MPEG-4 AVC, deve-se apreciar que a presente invenção não se limita apenas aopadrão acima, e pode ser utilizada com relação a outrospadrões de codificação de video e a recomendações, e aindamanter o âmbito de aplicação da presente invenção.
Em uma modalidade da presente invenção, considera-se uma imagem de referência adicional dentro do processo deestimativa de animação, que é basicamente uma combinaçãolinear de duas outras referências. Esta nova referênciapermite se refinar ainda mais a referência de prediçãodentro das imagens bi-preditivas (B) (a bi-predição dereferência combinada), uma vez que uma consideração maisprecisa de uma bi-predição é realizada, levando a umaeficiência de codificação maior. Em uma modalidade dapresente invenção, uma extensão deste método em uma prediçãode múltiplas hipóteses é provida. Com vantagem, a modalidadediminui a complexidade da estimativa de animação demúltiplas hipóteses sem afetar adversamente a qualidade dequalquer grau significante.
Na abordagem da primeira técnica anterior acimamencionada, a estimativa de animação para uma compensação deanimação de múltiplas hipóteses é feita usando um métodoiterativo no qual, em cada iteração, os vetores de animaçãode uma referência em particular ou hipótese são refinados aomesmo tempo considerando os vetores de animação estimadosanteriores de todas as outras listas de referência ouhipóteses. É igualmente sugerido que, como uma estimativainicial, os vetores de animação (MV) de predição únicapossam ser usados.
Em uma modalidade da presente invenção, propõe-seo uso de um método diferente para a estimativa dos vetoresde animação de uma referência em particular, que, emboraainda baseados em um método iterativo, podem melhor estimaros vetores de animação para cada referência, e ainda podemser muito mais simples sob algumas condições ou arquiteturasde implementar.
Uma modalidade se baseia na suposição de queimagens adjacentes tendem a incluir um grande percentual deregiões estacionárias, mesmo durante fades e cross-fades.Diferentemente da abordagem da primeira técnica anterioracima mencionada, na qual é feita uma seqüência de iteraçõesno sentido de estimar os vetores de animação de umareferência em particular com base nos vetores de animaçãocalculados de todas as outras referências já estimadas. Emuma primeira modalidade, primeiramente considera-se apredição dos vetores de animação de cada referência ao suporque todas as outras referências restantes são estacionárias(vide Figura 2). Sendo assim, permite-se separar melhor asregiões estacionárias e as não estacionárias e, portanto,pode-se aumentar a precisão da estimativa de animação ou aconvergência de um esquema iterativo, como feito naabordagem da primeira técnica anterior. Maisespecificamente, esta solução apresenta diversaspossibilidades alternativas.
Em uma modalidade, uma primeira abordagem deacordo com a presente invenção para a realização de umaestimativa de animação usando uma bi-predição de referênciacombinada envolve a realização de iterações paralelas a fimde otimizar as hipóteses restantes. A paralelização é feitaao iniciar o desempenho da estimativa de animação comdiferentes índices de referência, ao mesmo tempo presumindoos vetores de animação para os demais índices de referênciacomo 0. este conceito pode ser explicado ao estudar oseguinte pseudocódigo, que pode ser usado para cada bloco epressupondo que se térmico N números de hipóteses. Nopseudocódigo a seguir, as seguintes designações são usadas:xi, que indica a imagem de referência com um índiceinterface; wi que indica a sua ponderação associada a umapredição ponderada; mvj,k,i indica o vetor de animaçãocomputado para a referência com o índice j, se ME forrealizado começando pelo índice de referência i; e k={0,l} éusado para verificar ' se qualquer mudança nos vetores deanimação ocorreu durante o processo de iteração e se oalgoritmo precisa terminar ou não. Em particular, se N=2,tem-se o seguinte:
para (i = 0; i < 2; i++){
mvO,0,i=mv0,1,i=mvl,0,i=mvl,t,i=(0,0) ;/ realiza início de ME usando o índice dereferência i
referência = wl * xi;se (i==0)j=l;ainda j = 0;
fonte = ζ - wj * χ j ;
//! Realiza ME usando referência para refinarvetores de animação mvi,0
//! Usando distorção SAD = | fonte - referência(mvm,0,i)I.
Motion_Estimation(source, reference, mvi,0,i,
minSADi)
Fazer{
para (m=0; m<2; m++){
referência = Wm * Xm;fonte=z;se (m==0)j=l;ainda j=0;
fonte = ζ - wj * xj(mvj,0,i);
//! Realiza ME usando referência para refinar
mvm,O,i
//! usando distorção SAD = | fonte - referência(mvm,O,i)I.
Motion_Estimation(source, reference, mvi,0,i,
minSADi)
}
para (j =0; j <2/ j++){
se (mvj,0,i!=mvj,1,i){
iterate=l
mvj,1,i=mvj,0,i
break;}
ainda iterate=0}
}
enquanto (iterate==l)}
0 pseudocódigo acima resulta em potencialmente 2combinações de vetores de animação para cada hipótesediferente. Pode-se então selecionar a melhor combinaçãousando o que leva à menor distorção, ou seja:se (minSADO<minSADl){
best_mv={mvO,O,O, mvl,0,0}minSAD= minSADO; }
ainda{
best_mv={mvO,O,1, mvl,0,l}minSAD= minSADl;
O algoritmo mais geral para N hipóteses é comosegue:
para (i = 0; i < N; i++){
referência = wj * xi; fonte = ζ
para (j = 0; j < N;j++){
mvj,0,i=mvj,1,i=(0,0);
se (j!=i) source=source wj * wj(mvj,O,i); }
//! Realiza ME usando referência para refinarvetores de animação mvi,0,i
//! usando distorção SAD = I fonte - referência(mvm,0,i)I.
Motion_Estimation(source, reference, mvi,0,i,minSADi)
Fazer{para (m=0; m<N; m++){
referência = Wm * Xm;fonte=z;
para (j = D; j < N; j++){
se (j!=m) source=source - wj * xj(mvj,0,i);}
//! Realiza ME usando referência para refinarmvm, 0
//! usando distorção SAD = | sourcereference(mvm,0,i)|.
Motion_Estimation(source, reference, mvm,0,i,minSADi) }
para (j =0; j < N; j++){
se (mvj,0,i!=mvj,1,i){
iterate=l
mvj,1,i=mvj,0,i
break;}
ainda iterate=0
}
}
enquanto (iterate==l)}Neste caso, pode-se ter até N combinaçõespossíveis de vetores de animação para cada hipótesediferente. Pode-se então selecionar a melhor combinaçãousando o seguinte método:
minSAD=minSADO;
best_mv={mv0,0,0, mv1,0,0, ...,mvm,0,0, ...,mvN-1,0,0}
para (i = 1; j < N-1; i++)
{
se (minSADi < minSAD)
{
minSAD=minSADi;
best_mv={ mv0,0,i, mv1,0,i, ..., mvm,0,i, ..., mvN-1,0,i}}
}
Esta decisão pode também ser feita dentro doprocesso de decisão de modo (usando a Soma do Erro Quadrado(SSE) como a métrica da distorção, combinado com os bits emquestão requeridos para codificar os vetores de animação comum dado parâmetro Lagrangiano), enquanto se pode tambémpermitir combinações de vetores de animação a partir de cadaconjunto, ou mesmo de outros preditores, ou vetores deanimação previamente estimados, tais como os vetores deanimação diretos espaciais / temporais, os vetores deanimação de direção única, os vetores de animação zero, osvetores de animação colocados temporariamente, e assim pordiante, os quais podem levar a hipóteses extras dentro dadecisão de modo. Observa-se que, dependendo daimplementação, o número máximo de iterações, ou mesmo onúmero de refinamentos paralelos feitos, pode serpredefinido, reduzindo, assim, a complexidade de um dadosistema.
Em uma modalidade, uma segunda abordagem de acordocom a presente invenção para a realização de uma estimativade animação usando bi-predição de referência combinada serádescrita a seguir. Deve-se apreciar que a realização detodas as iterações possíveis conforme descritas na primeiraabordagem de acordo com a presente invenção é ainda muitocomplexa, a segunda abordagem, de acordo com a presenteinvenção, envolve a realização apenas da primeira etapa paracada hipótese; e em seguida a realização de um refinamentoiterativo com base apenas no melhor (com base em um critériode distorção mínima).
Isto pode reduzir consideravelmente acomplexidade, e ainda obter um desempenho similar. 0pseudocódigo para a segunda abordagem é como segue:
para (i = 0; i < N; i++)
{
referência = wi * xi;
fonte = z;
para (j = 0 < N; j++)
{
mvj,0,j =mvj,1,i=(0,0);
se (j!=i) source=source wj * wj(mvj,0,i);
}
//! Realiza ME usando referência para refinarvetores de animação mvi,//! usando distorção SAD = | fonte - referência(mvm, 0, i) I.
Motion_Estimation(source, reference, mvi,0,i,minSADi)
}
minSAD= minSADi;
best_mv={mvo,o,or 0,0}
best_ref=0;
para (i = 1; I < N-I; i++){
se (minSADi < minSAD){
minSAD= minSADi;best_mv={ 0, 0, mvi,o,i,0,0}
best_ref=i;}
fazer{
para (m=0; m< N; m++){
referência = Wm * Xm;fonte=z;
para (j = 0; j < N; j++){
se (j!=m) source=source- wj * wj(mvj,0, best_ref);}
//! Realiza ME usando referência para refinarvetores de animação mvi,0//! usando distorção SAD = | fonte - referência(mvm, 0, i) I.
Motion_Estimation(source, reference,
mvm,0,best_ref, minSADbest_ref)}
para (j = 0; j < N; j++){
se (mvj,0,best_ref!=mvj,1,best_ref){
iterate=l
mvj,1,best_reef=mvj,0,best_refi
break;}
ainda iterate=0
} :
}
enquanto (iterate==l)minSAD=minSADbest_ref;
best_mv={mv0,0,best_refí niVi,o,best_ref/ mvm, 0,best_ref r · · · rItlV1I-Xi o,best_ref }
A seleção de referência inicial pode também sebasear em quão similar (ou mais especificamente dissimilar)é uma referência para a imagem fonte. Por exemplo, pode-seiniciar o refinamento da referência com a mais altadistorção em comparação à fonte, enquanto todos os outrossão inicialmente considerados estacionários, e as etapas deiteração são feitas conforme previamente descritas comrelação à primeira abordagem de acordo com a presenteinvenção.
Em uma modalidade, uma terceira abordagem deacordo com a presente invenção para a realização de umaestimativa de animação usando bi-predição de referênciacombinada será descrita a seguir. Observa-se que foramconsiderados vetores de animação zero para a etapa inicialdo algoritmo exemplar nas duas abordagens acima de acordocom a presente invenção, no entanto, é possível considerartambém os vetores de animação previamente gerados (porexemplo, único ou qualquer número M de hipóteses) comosoluções alternativas e selecionar o melhor para o processode refinamento.
Isto pode ser feito examinando qual dentreestes preditores, tais como os vetores de animação diretostemporais / espaciais, os vetores de animação de direçãoúnica, os vetores de animação zero, os vetores de animaçãocolocados temporariamente, e assim por diante, os quaispodem resultar em uma imagem fonte com a menor distorção comrelação à referência inicial sem a necessidade de realizaretapas adicionais de estimativa / compensação. Este preditoré em seguida usado no lugar do preditor zero em todas asetapas anteriores para o refinamento de todos os demaisvetores de animação.
Em uma modalidade, uma quarta abordagem de acordocom a presente invenção para a realização de uma estimativade animação usando bi-predição de referência combinada serádescrita a seguir. A quarta modalidade representa umaabordagem mais simples que pode, no entanto, resultar emcerta perda de eficiência em comparação com os métodosacima, e envolve a consideração de todas as hipóteses comotendo uma animação idêntica (isto é, todas as referênciassão associadas aos mesmos vetores de animação idênticos) eno refinamento de sua predição em conjunto em comparação àimagem fonte. Isto pode ser feito como segue:
referência = 0;fonte = z;
para (j = 0 < N; j++){
mvj,0,j=mvj,l,i=(0,0);
reference=reference + wj * xj(mvj,0,i);}
//! Realiza ME usando referência para refinarvetores de animação mvi,0
//! usando distorção SAD = I fonte - referência(mv)I.
Motion_Estimation(source, reference, mvi,0,i,minSADi)
best_mv={mv,mv, ..., mv}
Destaca-se que os algoritmos exemplares acimaestimam os vetores de animação de combinação potencialmentemelhores quando N referências são usadas. No entanto, umcodificador pode escolher o número de referências para umdado macrobloco, desde que possa resultar em um melhordesempenho, ou devido a uma melhor predição ou devido a umoverhead reduzido. Obviamente, embora este processo possa serepetir para todas as combinações de referência possíveis,no fim, no entanto, a combinação de referência que leva a ummelhor desempenho poderá ser selecionada usando umdeterminado critério. Em particular, quando o número dereferências / hipóteses possíveis é dois, então, baseado nodito acima, pode-se considerar os seguintes três casos.
Com relação ao primeiro caso relativo à quartaabordagem, de acordo com a presente invenção, considera-secada referência (x ou y) separadamente como sendoestacionária em comparação a uma imagem fonte z, (caso 1 semnenhuma iteração), computando a animação da outra referênciausando a seguinte métrica de distorção, embora aindaconsiderando as ponderações apropriadas (a e b,respectivamente) a partir do processo de estimativa deponderação, como segue:
_SAD=| ( z-by) -ax (mv2) I,SAD=I (z-ax)-by (mv3) |.
Durante a decisão de modo, pode-se considerar osseguintes vetores de animação / modos: predição única; modobi-preditivo usando mvo e mvi computados usando uma prediçãoúnica ME; modo direto; modo bi-preditivo usando mv2 e (0,0);modo bi-preditivo usando (0,0) e mv3; modo bi-preditivousando mv2 e mv3; e consideração opcional de modos bi-preditivos usando mv2 e mvi, ou mv0, e mv3, ou aindacombinações com vetores de animação diretos.
Com relação ao segundo caso relativo à quartaabordagem de acordo com a presente invenção, considera-seapenas uma referência como sendo estacionária em comparaçãoà imagem fonte, sendo computada a animação da outrareferência (caso 1 limitado, sem nenhuma iteração), usando aseguinte métrica de distorção, considerando também asponderações apropriadas a partir do processo de estimativade ponderação, como segue:
SAD=I(z-ax)-by(mv)|.
Durante a decisão de modo, pode-se considerar osseguintes vetores de animação / modos: predição única; modobi-preditivo usando mvo e mvi computados usando uma prediçãoúnica ME; modo direto; modo bi-preditivo usando mv paraambas as referências; e consideração opcional (recomendada)de modos bi-preditivos usando mv e mvi, ou mvo, e mv, ouainda combinações com vetores de animação diretos.
Voltando para a Figura 3, um método exemplar paraa codificação de um macrobloco usando bi-predição é indicadode modo geral com o numerai de referência 300. O método 300inclui um bloco de inicialização 305 que passa o controlepara um bloco de função 350 e para um bloco de limite deIoop 310.
O bloco de função realiza uma decisão intra-modos,registra a medida de distorção, e passa o controle para umbloco de função 330.
O bloco de limite de laço 310 começa um laço sobretodos os inter-modos, e passa o controle para um bloco defunção 315. O bloco de função 315 realiza uma estimativa deanimação ao considerar em conjunto todas as hipóteses, epassa o controle para um bloco de função 320. 0 bloco defunção 315 realiza a estimativa de animação ao considerarjunto todas as hipóteses, e passa o controle para um blocode limite de laço 325 que finaliza o laço e passa o controlepara o bloco de função 330.
O bloco de função 330 define o modo de codificaçãopara ser uma medida com a menor medida de distorção, e passao controle para um bloco de função 335. O bloco de função335 codifica o macrobloco em questão, e passa o controlepara um bloco de finalização 399.
Voltando para a Figura 4, um método exemplar paraa estimativa de animação usando uma bi-predição dereferência combinada, na qual iterações paralelas são feitasno sentido de otimizar a hipótese restante, e é indicado demodo geral com o numerai de referência 400.
O método 400 inclui um bloco de inicialização 405que passa o controle para um bloco de função 410, um blocode função 415, e um bloco de função 420.
O bloco de função 410 inicia a realização daestimativa de animação pelo Índice de referência 0,pressupondo vetores de animação para outros índices dereferência como 0 ou algum valor predefinido, e passa ocontrole para um bloco de função 425. O bloco de função 425refina os vetores de animação iterativamente para todas asreferências, salva os vetores de animação como {mv0,0,0,mv1,0,0, mvm,0,0, ... , mvn-1,0,0} e a distorção como minsado, epassa o controle para um bloco de função 445.
O bloco de função 415 inicia a realização daestimativa de animação para o índice de referência m,presumindo que os vetores de animação para os outros índicesde referência são 0 ou algum valor predefinido, e passa ocontrole para um bloco de função 430. O bloco de função 430refina os vetores de animação iterativamente para todas asreferências, salva os vetores de animação como {mv0,o,m/ItiVii0lll,, nwm,o,Oi · · · , mvn_i,0,m} ® a distorção como minsadm, epassa o controle para o bloco de função 445.
O bloco de função 420 inicia a realização daestimativa de animação para o indice de referência N-l,presumindo que os vetores de animação para outros índices dereferência são 0 ou algum valor predefinido, e passa ocontrole para um bloco de função 440. O bloco de função 440refina os vetores de animação iterativamente para todas asreferências, salva os vetores de animação como {mv0,ofN-i/mvi t Q1 N-i, mvm, o,N-i/ ... / mvN-i,o,N-i} e a distorção como minSADN_i, e passa o controle para o bloco de função 445.
O bloco de função 445 seleciona a melhorcombinação de vetores de animação com um valor minSADmínimo, e passa o controle para um bloco de finalização 499.
Voltando para a Figura 5, um método exemplar paraa estimativa de animação usando uma bi-predição dereferência combinada, na qual vetores de animação sãoiterativamente refinados com base em uma melhor referência,é indicado de modo geral pelo numerai de referência 500.
O método 500 inclui um bloco de inicialização 505que passa o controle para um bloco de função 510, um blocode função 515, e um bloco de função 520.
O bloco de função 510 inicia a realização daestimativa de animação para o índice de referência 0,pressupondo vetores de animação para outros índices dereferência como 0 ou algum valor predefinido, e passa ocontrole para um bloco de função 525.
0 bloco de função 515 inicia a realização daestimativa de animação para um índice de referência m,pressupondo vetores de animação para outros índices dereferência como 0 ou algum valor predefinido, e passa ocontrole para o bloco de função 525.
0 bloco de função 520 inicia a realização daestimativa de animação para o índice de referência N-l,pressupondo vetores de animação para outros índices dereferência como 0 ou algum valor predefinido, e passa ocontrole para o bloco de função 525.
O bloco de função 525 seleciona a melhorreferência (best_ref) com um valor minSAD mínimo, e passa ocontrole para um bloco de função 530. O bloco de função 530refina os vetores de animação iterativamente para todas asreferências, salva os vetores de animação como {mv0,o ,best refrmVií Q1 best_ref / mvm, 0,best_ref r ··· r niVu-i, 0, best_ref} / S passa Ocontrole para um bloco de finalização 599.
Voltando para a Figura 6, um método exemplar paraa estimativa de animação, considerando todas as hipótesescom tendo vetores de animação idênticos, é indicado de modogeral pelo numerai de referência 600.
O método 600 inclui um bloco de inicialização 605que passa o controle para um bloco de função 610. 0 bloco defunção 610 adiciona todas as imagens de referência juntaspara formar uma única imagem de referência, e passa ocontrole para o bloco de função 615. 0 bloco de função 615realiza a estimativa de animação na imagem de referênciarecém-formada, e passa o controle para um bloco de função 620.
O bloco de função 620 define o vetor de animaçãoresultante para a imagem de referência recém-formada como osvetores de animação para todas as imagens de referência, epassa o controle para um bloco de finalização 699.
Voltando para a Figura 7, um método exemplar paraa realização de uma estimativa de animação usando uma bi-predição de referência combinada, na qual cada referência (xou y) é considerada separadamente como sendo estacionária emcomparação a uma imagem fonte x, é indicado de modo geralpelo numerai de referência 700.
0 método 700 inclui um bloco de inicialização 705que passa o controle para um bloco de função 710. O bloco defunção 710 realiza uma estimativa de animação (que gera ovetor de animação mv0) para a referência x, e passa ocontrole para um bloco de função 715. 0 bloco de função 715realiza a estimativa de animação (que gera o vetor deanimação mvi) para a referência y, e passa o controle paraum bloco de função 720. 0 bloco de função 720 realiza aestimativa de animação (que gera o vetor de animação mv2)usando SAD=I (z-by)-ax(mv2) I, e passa o controle para umbloco de função 725. 0 bloco de função 725 realiza aestimativa de animação (mv2) usando SAD=I (z-ax)-by(mv3) |, epassa o controle para o bloco de função 730. 0 bloco defunção 730 realiza a decisão de modo, e passa o controlepara um bloco de função 735. Com relação à decisão de modorealizada pelo bloco de função 730, tal decisão de modo podeser feita considerando, por exemplo: uma predição única; ummodo bi-preditivo usando mvo e mvi; um modo direto; um modobi-preditivo usando mv2 e (0,0); um modo bi-preditivo usando(0,0) e mv3,· um modo bi-preditivo usando mv2 e mv3; e aconsideração opcional de modos bi-preditivos usando mv2 eITiv1, ou mv0, e mv3, ou ainda combinações com vetores deanimação diretos.
As considerações precedentes sãoexemplares e, por conseguinte, dados os ensinamentos dapresente invenção aqui providos, estas e outrasconsiderações podem também ser utilizadas com relação àdecisão de modo feita pelo bloco de função 730, ao mesmotempo mantendo o âmbito de aplicação da presente invenção.
O bloco de função 735 seleciona o modo com umamedida de distorção mínima, e passa o controle para um blocode finalização 799.
Voltando para a Figura 8, um método exemplar paraa realização de uma estimativa de animação usando uma bi-predição de referência combinada, na qual apenas umareferência é considerada como sendo estacionária emcomparação a uma imagem fonte, é indicado de modo geral pelonumerai de referência 800. 0 método 800 inclui um bloco deinicialização 805 que passa o controle para um bloco defunção 810. O bloco de função 810 realiza uma estimativa deanimação (que gera o vetor de animação mvo) para areferência x, e passa o controle para um bloco de função815. O bloco de função. 815 realiza a estimativa de animação(que gera o vetor de animação mvi) para a referência y, epassa o controle para um bloco de função 820. 0 bloco defunção 820 realiza a estimativa de animação (que gera ovetor de animação mv2) usando SAD=I (z-by) -ax (mv2) I, e passao controle" para um bloco de função 825. O bloco de função825 realiza a decisão de modo, e passa o controle para obloco de função 830. Com relação à decisão de modo realizadapelo bloco de função 830, tal decisão de modo pode ser feitaconsiderando, por exemplo: uma predição única; um modo bi-preditivo usando mv0 e mvi; um modo direto; um modo bi-preditivo usando mv2 e (0,0); e uma consideração opcional demodos bi-preditivos usando Itiv2 e mvi, ou ainda combinaçõescom vetores de animação diretos. As consideraçõesprecedentes são exemplares e, por conseguinte, dados osensinamentos da presente invenção aqui providos, estas eoutras considerações podem também ser utilizadas com relaçãoà decisão de modo feita pelo bloco de função 825, ao mesmotempo mantendo o âmbito de aplicação da presente invenção.
O bloco de função 830 seleciona o modo com umamedida de distorção mínima, e passa o controle para um blocode finalização 899.
Voltando para a Figura 9, um método exemplar paraa realização de uma estimativa de animação usando uma bi-predição de referência combinada, na qual ambas asreferências são combinadas, pressupondo uma animação zeroentre as referências, é indicado de modo geral pelo numeraide referência 900. O método 900 inclui um bloco deinicialização 905 que passa o controle para um bloco defunção 910. O bloco de função 910 realiza uma estimativa deanimação (que gera o vetor de animação mv0) para areferência x, e passa o controle para um bloco de função925. 0 bloco de função 925 realiza a estimativa de animação(que gera o vetor de animação Ittv1) para a referência y, epassa o controle para um bloco de função 920. O bloco defunção 920 realiza a estimativa de animação (que gera ovetor de animação mv) usando SAD=I(z-by)-ax(mv)|, e passa ocontrole para um bloco de função 925. O bloco de função 925realiza a decisão de modo, e passa o controle para o blocode função 930.
Com relação à decisão de modo realizada pelobloco de função 930, tal decisão de modo pode ser feitaconsiderando, por exemplo: uma predição única; um modo bi-preditivo usando mvo e Inv1; um modo direto; um modo bi-preditivo usando mv para ambas as referências; e aconsideração opcional de modos bi-preditivos usando mv emvi, ou mvo e mv, ou ainda combinações com vetores deanimação diretos. As considerações precedentes sãoexemplares e, por conseguinte, dados os ensinamentos dapresente invenção aqui providos, estas e outrasconsiderações podem também ser utilizadas com relação àdecisão de modo feita pelo bloco de função 925, ao mesmotempo mantendo o âmbito de aplicação da presente invenção.
0 bloco de função 930 seleciona o modo com umamedida de distorção mínima, e passa o controle para um blocode finalização 999.
Será feita a seguir uma descrição de algumasvantagens / características auxiliares da presente invenção,sendo que algumas destas já forma acima mencionadas. Porexemplo, uma vantagem / característica é um aparelho queinclui um codificador para codificar uma imagem de multi-predição a partir de uma combinação de duas ou mais imagensde referência ao se predizer respectivamente um vetor deanimação para uma imagem particular dentre duas ou maisimagens de referência em um processo de estimativa deanimação enquanto se inicializa os vetores de animação demodo a manter algumas dentre duas ou mais imagens dereferência em um valor predefinido para uso pelo processo deestimativa de animação.
Uma outra vetor de animação / caracter!stica é oaparelho tendo o codificador conforme descrito acima, cujocodificador prediz o vetor de animação para uma referênciaparticular dentre duas ou mais referências ao considerar asdemais imagens dentre duas ou mais imagens de referênciacomo estacionárias.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme descrito acima, cujocodificador prediz os vetores de animação para cada qualdentre duas ou mais referências nas respectivas porçõesparalelas de um primeiro dentre múltiplos processositerativos, e refina os vetores de animação nos subseqüentesprocessos dentre os múltiplos processos iterativos. Ainda,uma outra vantagem / característica é o aparelho tendo ocodificador que prediz os vetores de animação para cada qualdentre duas ou mais referências nas respectivas porçõesparalelas de um primeiro processo dentre múltiplos processositerativos conforme acima descrito, cujo codificadorseleciona uma melhor combinação de vetor de animaçãoresultante dos múltiplos processos iterativos com base emuma medida de distorção.
Além disso, uma outra vantagem / característica éo aparelho tendo o codificador conforme descrito acima, noqual pelo menos um vetor dentre os vetores de animação parapelo menos uma imagem dentre duas ou mais imagens dereferência é inicializado no valor predefinido com base nosvetores de animação previamente computados para a pelo menosuma dentre as restantes duas ou mais imagens de referência.
Ainda, uma outra vantagem / característica é o aparelhotendo o codificador, no qual o pelo menos um vetor dentre osvetores de animação para o a pelo menos uma das imagensrestantes dentre duas ou mais imagens de referência éinicializado com base nos vetores de animação previamentecomputados para pelo menos uma imagem restante dentre duasou mais imagens de referência conforme descrito acima, emque os vetores de animação previamente computadoscompreendem pelo menos um vetor de animação direto e umvetor de animação previamente computado a partir dacombinação de um número menor de imagens de referência doque o das duas ou mais imagens de referência, em que o pelomenos um vetor de animação direto inclui pelo menos umdentre pelo menos um vetor de animação direto temporal epelo menos um vetor de animação direto espacial. Ainda, umaoutra vantagem / característica é o aparelho tendo ocodificador, no qual o pelo menos um dos vetores de animaçãopara a pelo menos uma das imagens restantes dentre duas oumais imagens de referência é inicializado com base nosvetores de animação previamente computados para a pelo menosuma das imagens restantes dentre duas ou mais imagens dereferência conforme descrito acima, cujo dito codificadorutiliza um processo iterativo a fim de predizer os vetoresde animação para as duas ou mais imagens de referência, esintetiza uma decisão relativa aos vetores de animação aserem inicialmente usados no processo iterativo, a partir depelo menos um vetor dentre os vetores de animaçãoinicializados no valor predefinido e os vetores de animaçãopreviamente computados, com base em uma métrica decorrelação.
Adicionalmente, uma outra vantagem /característica é o aparelho tendo o codificador conformedescrito acima, no qual o codificador prediz os vetores deanimação para as duas ou mais imagens de referência usando oprocesso iterativo conforme acima descrito, em que ocodificador limita um número máximo de iterações realizadaspelo processo iterativo. Além disso, uma outra vantagem /característica é o aparelho tendo o codificador que predizos vetores de animação para as duas ou- mais imagens dereferência usando o processo interativo conforme acimadescrito, cujo codificador limita um número máximo dentreduas ou mais imagens de referência a serem testadas emparalelo pelo processo iterativo.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador estima os vetores de animação para as duas oumais imagens de referência com base nas ponderações usadaspara as duas ou mais imagens de referência de um processo deestimativa de ponderação anterior.
Adicionalmente, uma outra vantagem /característica é o aparelho tendo o codificador conformeacima descrito, cujo codificador estima os vetores deanimação para as duas ou mais imagens de referência usandomúltiplos processos iterativos em paralelo, os múltiplosprocessos iterativos tendo diferentes pontos deinicialização, correspondendo, respectivamente, a diferentesimagens dentre duas ou mais imagens de referência. Alémdisso, uma outra vantagem / característica é o aparelhotendo o codificador que realiza os múltiplos processositerativos conforme acima descrito, em que o codificadorrealiza um primeiro dentre múltiplos processos iterativos afim de prover valores iniciais para os vetores de animaçãopara cada qual dentre duas ou mais imagens de referência,seleciona a melhor referência inicial dentre duas ou maisreferências com base na menor medida de distorção, e realizaos subseqüentes processos dentre os múltiplos processositerativos de modo a refinar os valores iniciais obtidospara a melhor referência inicial dentre duas ou maisreferências.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador prediz informações de animação para a imagem demulti-predição com base nos vetores de animação para duas oumais imagens de referência idênticas e refina, em conjunto,os vetores de animação comparados à imagem de multi-predição.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador estima informações de vetor de animação para aimagem de multi-predição ao combinar as duas ou mais imagensde referência em uma imagem de referência combinada, e aousar animação zero entre as duas ou mais imagens dereferência.
Adicionalmente, uma outra vantagem /característica é o aparelho tendo o codificador conformeacima descrito, cujo codificador prediz um respectivo vetorde animação para cada qual dentre duas ou mais imagens dereferência ao considerar separadamente as demais imagensdentre duas ou mais imagens de referência como sendoestacionárias em comparação à imagem de multi-predição.Ademais, uma outra vantagem / característica é o aparelhotendo o codificador que prediz o respectivo vetor deanimação para cada qual dentre duas ou mais imagens dereferência ao considerar, separadamente, as demais imagensdentre duas ou mais imagens de referência como sendoestacionárias em comparação à imagem de multi-prediçãoconforme descrita acima, em que o codificador prediz orespectivo vetor de animação para cada qual dentre duas oumais imagens de referência por meio da seleção de umarespectiva ponderação para as mesmas.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador realiza uma decisão de modo para a imagem demulti-predição a fim de selecionar um modo com uma medida dedistorção mínima dentre um modo preditivo único, um modopreditivo direto, um modo bi-preditivo usando os vetores deanimação para as duas ou mais imagens de referênciarespectivamente calculadas usando uma predição única, pelomenos um modo bi-preditivo usando um vetor de animaçãorefinado para uma imagem dentre duas ou mais imagens dereferência e um vetor de animação estacionário, e um modobi-preditivo usando um respectivo vetor de animação refinadopara cada qual dentre duas ou mais imagens de referência, emque os vetores de animação para cada qual dentre duas oumais imagens de referência são respectivamente calculadoscom base nos vetores de animação para os restantes dentreduas ou mais imagens de referência separadamenteconsideradas como estacionárias. Ainda, uma outra vantagem /característica é o aparelho tendo o codificador que realizaa decisão de modo conforme acima descrito, cujo codificadorseleciona ainda o modo com a medida de distorção mínimadentre pelo menos um modo bi-preditivo usando o vetor deanimação para uma imagem dentre duas ou mais imagens dereferência, e o vetor de animação refinado para uma imagemdentre duas ou mais imagens de referência, e pelo menos umacombinação incluindo pelo menos um vetor de animação direto.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador prediz um respectivo vetor de animação para cadaqual dentre duas ou mais imagens de referência ao considerarapenas uma imagem dentre duas ou mais imagens de referênciacomo sendo estacionárias em comparação à imagem de multi-predição. Adicionalmente, uma outra vantagem /característica é o aparelho tendo o codificador que prediz orespectivo vetor de animação para cada qual dentre duas oumais imagens de referência ao considerar apenas uma imagemdentre duas ou mais imagens de referência como sendoestacionárias em comparação à imagem de multi-prediçãoconforme acima descrito, em que o codificador prediz orespectivo vetor de animação para cada qual dentre duas oumais imagens de referência ao selecionar uma respectivaponderação para as mesmas.
Ainda, uma outra vantagem /característica é o aparelho tendo o codificador que prediz orespectivo vetor de animação para cada qual dentre duas oumais imagens de referência ao considerar apenas uma imagemdentre duas ou mais imagens de referência como sendoestacionárias em comparação à imagem de multi-prediçãoconforme descrita acima, em que apenas uma imagem dentreduas ou mais imagens de referência é selecionada com base empelo menos uma dentre uma lista de referência particular àqual a apenas uma imagem dentre duas ou mais imagens dereferência corresponde, em termos de proximidade temporal, ede maior similaridade, à imagem de multi-predição.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador realiza uma decisão de modo para a imagem demulti-predição a fim de selecionar um modo com uma medida dedistorção mínima dentre um modo preditivo único, um modopreditivo direto, um modo bi-preditivo usando os vetores deanimação para as duas ou mais imagens de referênciarespectivamente calculadas usando uma predição única, ummodo bi-preditivo usando um vetor de animação estacionário eum vetor de animação refinado, no qual um respectivo vetordentre os vetores de animação para apenas uma imagem dentreduas ou mais imagens de referência é calculado com base emum vetor de animação estacionário que é usado para as demaisimagens dentre duas ou mais imagens de referência. Ainda,uma outra vantagem / característica é o aparelho tendo ocodificador que realiza a decisão de modo conforme acimadescrita, em que o codificador seleciona ainda o modo com amedida de distorção mínima dentre pelo menos um modo bi-preditivo usando um vetor dentre os vetores de animação deuma imagem dentre duas ou mais imagens de referência e ovetor de animação refinado, e pelo menos uma combinação deum vetor de animação de direção e o vetor de animaçãocalculado de acordo com a meídida de distorção.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador computa, em conjunto, os vetores de animaçãopara as duas ou mais imagens de referência com base nas duasou mais imagens de referência tendo animação idêntica comrelação à imagem de multi-predição a ser codificada. Alémdisso, uma outra vantagem / característica é o aparelhotendo o codificador que, em conjunto, computa os vetores deanimação para as duas ou mais imagens de referência conformeacima descrito, em que o codificador computa, em conjunto,os vetores de animação para as duas ou mais imagens dereferência por meio da seleção de uma respectiva ponderaçãopara as mesmas.
Ainda, uma outra vantagem / característica é oaparelho tendo o codificador conforme acima descrito, cujocodificador realiza uma decisão de modo para a imagem demulti-predição a fim de selecionar um modo com uma medida dedistorção mínima dentre um modo preditivo único, um modopreditivo direto, um modo bi-preditivo usando os vetores deanimação para as duas ou mais imagens de referênciarespectivamente calculadas usando uma predição única, ummodo bi-preditivo usando um respectivo vetor de animaçãorefinado para cada qual dentre duas ou mais imagens dereferência, e um modo de predição usando um vetor deanimação para uma combinação das duas ou mais imagens dereferência calculadas ao se considerar os vetores deanimação para as duas ou mais imagens de referência setornarem idênticas.
Adicionalmente, uma outra vantagem /característica é o aparelho tendo o codificador que realizaa decisão de modo conforme acima descrito, cujo codificadorseleciona ainda o modo com a medida de distorção mínimadentre pelo menos um modo bi-preditivo usando um vetordentre os vetores de animação de uma imagem dentre duas oumais imagens de referência, e o vetor de animação calculadoao considerar os vetores de animação para as duas ou maisimagens de referência se tornarem idênticas, e pelo menosuma combinação de um vetor de animação direto e o vetor deanimação calculado ao considerar os vetores de animação paraas duas ou mais imagens de referência se tornarem idênticas.
Estas e outras características e vantagens dapresente invenção podem ser prontamente obtidas por umapessoa com habilidade simples na técnica com base nospresentes ensinamentos. Deve-se entender que os ensinamentosda presente invenção podem ser implementados em váriasformas de hardware, software, firmware, processadores de usoespecial, ou suas combinações.
Mais preferivelmente, os ensinamentos da presenteinvenção são implementados como uma combinação de umhardware e um software. Além disso, o software pode serimplementado como um programa de aplicação tangivelmenteincorporado em uma unidade de armazenamento de programa. 0programa de aplicação pode ser transferido para, e executadopor, uma máquina que compreenda qualquer arquiteturaadequada. De preferência, a máquina é implementada em umaplataforma de computador tendo um hardware, como, porexemplo, uma ou mais unidades de processamento central("CPU"), uma memória de acesso aleatório ("RAM"), einterfaces de entrada / saída ("1/0"). A plataforma decomputador pode também incluir um sistema operacional e umcódigo de micro-instrução. Os vários processos e funçõesdescritos no presente documento podem fazer parte de umcódigo de micro-instrução ou de um programa de aplicação, ouqualquer combinação dos mesmos, que possam ser executadospor uma unidade CPU. Além disso, várias outras unidadesperiféricas podem ser conectadas à plataforma de computador,como, por exemplo, uma unidade de armazenamento de dadosadicional ou uma unidade de impressão.
Deve-se entender que, uma vez que alguns doscomponentes e métodos de sistema constituintes ilustradosnos desenhos em anexo são de preferência implementados em umsoftware, as conexões em questão entre os componentes desistema e os blocos de função de processo podem diferirdependendo da maneira na qual a presente invenção éprogramada. Dados os ensinamentos da presente invenção, umapessoa com habilidade simples na técnica em questão serácapaz de contemplar estas implementações ou implementações econfigurações similares às da presente invenção.
Embora as modalidades ilustrativas tenham sidodescritas no presente documento com referência aos desenhosem anexo, deve-se entender que a presente invenção não selimita a estas precisas modalidades, e que várias mudanças emodificações podem ser feitas por uma pessoa com habilidadesimples na técnica pertinente sem se afastar do âmbito ouespirito da presente invenção. Todas estas mudanças emodificações pretendem estar incluídas dentro do âmbito dapresente invenção conforme apresentada nas reivindicações emapenso.