BR112016015614B1 - Dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento - Google Patents

Dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento Download PDF

Info

Publication number
BR112016015614B1
BR112016015614B1 BR112016015614-5A BR112016015614A BR112016015614B1 BR 112016015614 B1 BR112016015614 B1 BR 112016015614B1 BR 112016015614 A BR112016015614 A BR 112016015614A BR 112016015614 B1 BR112016015614 B1 BR 112016015614B1
Authority
BR
Brazil
Prior art keywords
frame
base
base frame
previous
frames
Prior art date
Application number
BR112016015614-5A
Other languages
English (en)
Other versions
BR112016015614A2 (pt
Inventor
Anton Veselov
Marat Gilmutdinov
Original Assignee
Intel Corporation
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority claimed from PCT/IB2014/000377 external-priority patent/WO2015118370A1/en
Publication of BR112016015614A2 publication Critical patent/BR112016015614A2/pt
Publication of BR112016015614B1 publication Critical patent/BR112016015614B1/pt

Links

Abstract

DISPOSITIVO PARA A CONVERSÃO PARA UM VALOR SUPERIOR DE UMA TAXA DE FOTOGRAMAS DE VÍDEO DE MOVIMENTO. Geralmente, várias modalidades se direcionam para técnicas para a determinação sobre se deve ser usado ou não um fotograma interpolado ou repetido um fotograma de base na conversão para um valor superior da taxa de fotogramas de um fluxo de vídeo de base para a geração de um fluxo de vídeo convertido para um valor superior. Um dispositivo para a conversão para um valor superior de uma taxa de fotogramas inclui um componente de análise para analisar um par de fotogramas de base temporalmente adjacentes e um vetor de movimento associado ao movimento de um objeto entre o par de fotogramas de base para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado, e um componente de seleção para a comparação do grau de artefatos visuais com um limiar e a seleção do fotograma interpolado para a inserção entre o fotograma de base anterior e o fotograma de base seguinte na conversão para um valor superior de uma taxa de fotogramas do fluxo de vídeo de base para a geração de um fluxo de vídeo (...).

Description

HISTÓRICO
[0001] O uso cada vez mais comum de displays de painel plano operados em taxas de atualização sempre altas incitou um uso crescente correspondente de conversão para um valor superior da taxa de fotogramas para o aumento das taxas de fotogramas de fluxos de vídeo de fotogramas de vídeos de movimento para corresponder a essas taxas de atualização. Várias formas de interpolação de vídeo foram planejadas para gerar os fotogramas adicionais requeridos nessas conversões para um valor superior.
[0002] As formas anteriores de interpolação de vídeo empregaram grandemente várias técnicas de cálculo da média para a geração de valores de cor de pixel para os pixels de fotogramas interpolados dos pixels correspondentes de fotogramas de base adjacentes. Era esperado que o movimento de objetos entre fotogramas de base adjacentes pudesse ser acomodado por essas técnicas de cálculo da média. Todavia, os aumentos das taxas de movimento de objetos em vídeos de movimento típicos acoplados nos aumentos da resolução de pixels nos vídeos de movimento e displays tornaram essas abordagens menos desejáveis devido aos artefatos visuais resultantes.
[0003] Desse modo, as formas atuais de interpolação de vídeo empregam várias técnicas para detectar e caracterizar especificamente o movimento de objetos entre fotogramas de base adjacentes. Em particular, as mudanças na posição da localização de valores de cor de pixel determinadas para representar objetos em movimento são detectadas entre fotogramas de base adjacentes, e são derivados vetores de movimento para descrever essas mudanças. Esses vetores de movimento são depois empregues para determinar as posições corretas entre os pixels de fotogramas interpolados nos quais se podem localizar esses valores de cor de pixel em um esforço para posicionar corretamente os objetos em movimento nos fotogramas interpolados.
[0004] Contudo, podem ocorrer erros nessas abordagens à interpolação de vídeo, incluindo erros nos quais são determinadas incorretamente áreas de valores de cor de pixel relativamente quase correspondentes para representar objetos em movimento, nos quais não são determinados outros valores de cor de pixel que representam objetos em movimento para representar objetos em movimento, e/ou nos quais os vetores de movimento indicam inexatamente a direção e/ou a magnitude do movimento. Esses erros podem causar vários artefatos visuais nos fotogramas interpolados, incluindo falta de inclusão de alguns ou todos entre um objeto em movimento, inclusão de porções duplicadas de um objeto em movimento, um aparente esticamento de um objeto em movimento, uma aparente separação de um objeto em movimento, etc.
[0005] Dadas as taxas de fotogramas muitas vezes significantemente altas nas quais os vídeos de movimento são convertidos para um valor superior, a apresentação visual de alguns desses artefatos pode passar despercebida. Todavia, o sistema visual humano (HVS - Human Visual System) faz um uso considerável da detecção de margens como parte da identificação de objetos, de modo que a apresentação visual de artefatos que adicionam e/ou removem margens que um objeto habitualmente teria seja muitas vezes facilmente notada e possa ser bastante distrativa.
BREVE DESCRIÇÃO DOS DESENHOS
[0006] A FIG. 1 ilustra uma modalidade de um sistema de processamento de vídeo.
[0007] A FIG. 2 ilustra uma modalidade alternativa de um sistema de processamento de vídeo.
[0008] A FIG. 3 ilustra uma modalidade de conversão para um valor superior de uma taxa de fotogramas de um vídeo de movimento.
[0009] Cada uma das FIGs. 4A a E ilustra um exemplo de geração de um fotograma interpolado.
[0010] A FIG. 5 ilustra uma modalidade de seleção de um fotograma de conversão para um valor superior.
[0011] Cada uma das FIGs. 6 a 8 ilustra um exemplo de análise de resultados de interpolação.
[0012] A FIG. 9 ilustra uma porção de uma modalidade.
[0013] A FIG. 10 ilustra um fluxo lógico de acordo com uma modalidade.
[0014] A FIG. 11 ilustra uma arquitetura de processamento de acordo com uma modalidade.
[0015] A FIG. 12 ilustra outra modalidade alternativa de um sistema de processamento de gráficos.
[0016] A FIG. 13 ilustra uma modalidade de um dispositivo.
DESCRIÇÃO DETALHADA
[0017] Geralmente, várias modalidades se direcionam para técnicas para a determinação sobre se deve ser usado ou não um fotograma interpolado ou repetido um dos fotogramas de base desde os quais o fotograma interpolado pode ser derivado na conversão para um valor superior da taxa de fotogramas de um fluxo de vídeo de base de fotogramas de um vídeo de movimento para a geração de um fluxo de vídeo convertido para um valor superior. Os fotogramas de base desde os quais o fotograma interpolado pode ser derivado e os vetores de movimento representando o movimento de objetos determinados para ocorrerem entre esses fotogramas de base são analisados em conjunto para a determinação sobre se a apresentação visual do fotograma interpolado irá ou não envolver a apresentação visual de artefatos visuais que são demasiado distrativos dadas as características do HVS. Se o grau dessa distração for determinado como se encontrando abaixo de um limiar predeterminado, o fotograma interpolado é usado no fluxo de vídeo convertido para um valor superior. Todavia, se o grau dessa distração for demasiado grande, o fotograma de base que precede ou segue a posição temporal a ser ocupada pelo fotograma interpolado no fluxo de vídeo convertido para um valor superior é repetido e usado nessa posição em vez do fotograma interpolado.
[0018] Na realização da conversão para um valor superior nas taxas de fotogramas do fluxo de vídeo de base para o fluxo de vídeo convertido para um valor superior, é analisado um par de fotogramas de base temporalmente adjacentes no fluxo de vídeo de base por um componente de interpolação para a detecção de objetos que se movem entre os mesmos usando qualquer uma de uma variedade de técnicas de detecção. Quando for determinado que esses objetos em movimento se encontram presentes, são gerados vetores de movimento indicando a direção de movimento, a extensão de movimento e/ou os pixels associados a esse movimento.
[0019] O componente de interpolação pode depois empregar os vetores de movimento para a geração de um fotograma interpolado para ser inserido temporalmente entre os dois fotogramas de base do par de fotogramas de base temporalmente adjacentes como parte da geração do fluxo de vídeo convertido para um valor superior. O componente de interpolação pode empregar qualquer um de uma variedade de algoritmos para a geração do fotograma interpolado com base, pelo menos em parte, nos vetores de movimento. Contudo, em algumas modalidades, o componente de interpolação pode aguardar a recepção de um sinal indicando se esse fotograma interpolado será ou não assim inserido antes de empregar recursos de processamento e/ou armazenamento para o gerar.
[0020] Cada um dos dois fotogramas de base é analisado juntamente com os vetores de movimento para a determinação da multiplicidade de uso dos valores de cor de pixel de cada um dos respectivos pixels. Como é familiar para os peritos na técnica, o uso de vetores de movimento na geração de um fotograma interpolado resulta muitas vezes em valores de cor de pixel de alguns pixels de um fotograma de base sendo usado mais de uma vez no fornecimento dos valores de cor de pixel dos pixels do fotograma interpolado e/ou dos valores de cor de pixel de outros pixels de um fotograma de base não sendo usado de modo algum. Os pixels de um fotograma de base do qual os valores de cor de pixel não são usados de modo algum definem uma ou mais zonas que são muitas vezes referidas como “lacunas” nesse fotograma de base. Os pixels de um fotograma de base do qual os valores de cor de pixel são usados mais de uma vez definem uma ou mais zonas que são muitas vezes referidas como “colisões” nesse fotograma de base.
[0021] Cada um dos dois fotogramas de base é igualmente analisado para identificar pixels coincidentes com margens nas quais existe um grau relativamente elevado de mudança nos valores de cor de pixel representando um grau relativamente elevado de mudança na cor e/ou no brilho. Qualquer um de uma variedade de algoritmos pode ser empregue para a identificação dessas margens.
[0022] Dentro de cada um dos dois fotogramas de base, as localizações de quaisquer margens, lacunas e/ou colisões são analisadas para a identificação das quantidades de pixels nos quais as margens coincidem com lacunas e das quantidades de pixels nos quais as margens coincidem com colisões. Essas quantidades são depois empregues em um cálculo para derivar um valor indicativo do ponto até ao qual os artefatos visuais distrativos que envolvem margens de um objeto em movimento se encontram ou se encontrarão presentes no fotograma interpolado. Esse valor é depois comparado com o limiar predeterminado para a determinação sobre se o fotograma interpolado será ou não usado por se encontrar temporalmente inserido entre os dois fotogramas de base no fluxo de vídeo convertido para um valor superior, ou se um dos dois fotogramas de base será ou não repetido no fluxo de vídeo convertido para um valor superior. Nas modalidades nas quais a geração do fotograma interpolado pelo componente de interpolação é condicionada nessa determinação, o componente de interpolação pode ser sinalizado com uma indicação dessa determinação.
[0023] Com referência geral às notações e à nomenclatura aqui usadas, as porções da descrição detalhada que se segue podem ser apresentadas em termos de procedimentos de programa executados em um computador ou uma rede de computadores. Essas representações e descrições procedimentais são usadas pelos peritos na técnica para transmitir mais eficazmente a substância do seu trabalho a outros peritos na técnica. Um procedimento é aqui, e geralmente, concebido para ser uma sequência autoconsistente de operações que conduzem a um resultado desejado. Essas operações são as que requerem manipulações físicas de quantidades físicas. Usualmente, embora não necessariamente, essas quantidades assumem a forma de sinais elétricos, magnéticos ou ópticos que podem ser armazenados, transferidos, combinados, comparados e, por outro lado, manipulados. Por vezes, parece conveniente, principalmente por razões de uso comum, se referir a esses sinais como bits, valores, elementos, símbolos, caracteres, termos, números ou afins. Todavia, deve ser notado que todos esses termos e similares devem ser associados às quantidades físicas apropriadas e são meramente rótulos convenientes aplicados a essas quantidades.
[0024] Ademais, essas manipulações são muitas vezes referidas em termos, como por exemplo adição ou comparação, que são geralmente associados a operações mentais efetuadas por um operador humano. Contudo, nenhuma capacidade dessas de um operador humano é necessária, ou desejável na maioria dos casos, em qualquer uma das operações aqui descritas que fazem parte de uma ou mais modalidades. Preferivelmente, essas operações são operações de máquina. As máquinas úteis para a realização de operações de várias modalidades incluem computadores digitais de uso geral, uma vez que a ativação ou configuração de modo seletivo por um programa de computador aí armazenado é efetuada de acordo com os ensinamentos aqui apresentados, e/ou incluem aparelhos especialmente construídos para a finalidade desejada. Várias modalidades se referem igualmente a aparelhos ou sistemas para efetuar essas operações. Esses aparelhos podem ser especialmente construídos para a finalidade desejada ou podem incluir um computador de uso geral. A estrutura requerida para uma variedade dessas máquinas será revelada na descrição fornecida.
[0025] Em seguida, é feita referência aos desenhos, em que são usados números de referência iguais para referir elementos iguais. Na descrição seguinte, para efeitos de explicação, são apresentados numerosos detalhes específicos de modo a fornecer uma compreensão meticulosa dos mesmos. Todavia, pode ser evidente que as novas modalidades podem ser praticadas sem esses detalhes específicos. Em outros casos, as estruturas e os dispositivos bem conhecidos são ilustrados na forma de diagrama de blocos para facilitar uma descrição dos mesmos. A intenção é abranger a totalidade das modificações, dos equivalentes e das alternativas dentro do escopo das reivindicações.
[0026] A FIG. 1 ilustra um diagrama de blocos de uma modalidade de um sistema de processamento de vídeo 1000 incorporando um ou mais entre um dispositivo de origem 100, um dispositivo de computação 300 e um dispositivo de visualização 600. No sistema de processamento de vídeo 1000, a taxa de fotogramas de um fluxo de base de fotogramas de dados de vídeo de base 100 representando imagens de vídeo de movimento 880 é convertida para um valor superior pelo dispositivo de computação 300 para a geração de um fluxo convertido para um valor superior de fotogramas de dados de vídeo convertidos para um valor superior 630 que representam igualmente as imagens de vídeo de movimento 880, mas em uma taxa de fotogramas mais elevada. Os dados de vídeo de base 100 podem ser recebidos pelo dispositivo de computação 300 desde o dispositivo de origem 100. Os dados de vídeo convertidos para um valor superior 630 podem ser armazenados dentro do dispositivo de computação 300 e visualmente apresentados pelo dispositivo de computação 300, e/ou transmitidos ao dispositivo de visualização 600 para serem visualmente apresentados pelo dispositivo de visualização 600. Cada um desses dispositivos de computação pode ser qualquer um de uma variedade de tipos de dispositivo de computação, incluindo sem limitação, um sistema de computador de secretária, um terminal de entrada de dados, um laptop, um netbook, um tablet, um assistente de dados pessoal de mão, um smartphone, óculos inteligentes, um relógio de pulso inteligente, uma câmera digital, um dispositivo de computação junto ao corpo incorporado nas roupas, um dispositivo de computação integrado em um veículo (p. ex., um automóvel, uma bicicleta, uma cadeira de rodas, etc.), um servidor, um cluster de servidores, um farm de servidores, etc.
[0027] Como representado, esses dispositivos de computação 100, 300 e 600 trocam sinais transmitindo dados de vídeo de base e convertidos para um valor superior representando o vídeo de movimento 880 e/ou dados relacionados por via de uma rede 999. Contudo, um ou mais desses dispositivos de computação podem trocar outros dados inteiramente não relacionados com o vídeo de movimento 880 uns com os outros e/ou ainda com outros dispositivos de computação (não ilustrados) por via da rede 999. Em várias modalidades, a rede 999 pode ser uma única rede possivelmente limitada a se estender dentro de um único edifício ou outra área relativamente limitada, uma combinação de redes conectadas possivelmente se estendendo por uma distância considerável, e/ou pode incluir a Internet. Desse modo, a rede 999 pode se basear em qualquer uma de uma variedade (ou combinação) de tecnologias de comunicação mediante as quais podem ser trocados sinais, incluindo, sem limitação, tecnologias com fios empregando cabos elétrica e/ou opticamente condutivos e tecnologias sem fios empregando infravermelhos, radiofrequência ou outras formas de transmissão sem fios.
[0028] Em várias modalidades, o dispositivo de origem 100 (se presente) incorpora uma interface 190 para o acoplamento do dispositivo de origem 100 no dispositivo de computação 300 para equipar o dispositivo de computação 300 com os dados de vídeo de base 130. Como representado, a interface 190 pode acoplar o dispositivo de origem 100 no dispositivo de computação 300 por via da mesma rede 999 como acopla o dispositivo de computação 300 no dispositivo de visualização 600. Todavia, em outras modalidades, o dispositivo de origem 100 pode ser acoplado no dispositivo de computação 300 de uma maneira completamente diferente. Pelo menos uma porção dos dados de vídeo de base 130 pode ter sido criada por via do dispositivo de origem 100, p. ex., em que o dispositivo de origem 100 corresponde a, ou incorpora, uma câmera de modo que os dados de vídeo de base 100 incluam representações dos fotogramas do vídeo de movimento 880 capturado pelo dispositivo de origem 100. Em alternativa ou adicionalmente, pelo menos uma porção dos dados de vídeo de base 130 pode simplesmente ser armazenada no dispositivo de origem 100 para a transmissão posterior ao dispositivo de computação 300 após a respectiva recepção de ainda outro dispositivo.
[0029] Em várias modalidades, o dispositivo de computação 300 incorpora um ou mais entre um componente de processador 350, um armazenamento 360, um controlador 400, um display 380 e uma interface 390 para o acoplamento do dispositivo de computação 300 na rede 999. O armazenamento 360 armazena um ou mais entre uma rotina de controle 340, os dados de vídeo de base 130 e os dados de parâmetros 370. O controlador 400 incorpora um ou mais entre um componente de processador 450 e um armazenamento 460. O armazenamento 460 armazena um ou mais entre uma rotina de controle 440, dados de vetor de movimento 230, dados de vídeo interpolados 330, dados de margem 430, dados de multiplicidade 530 e os dados de vídeo convertidos para um valor superior 630.
[0030] A rotina de controle 340 incorpora uma sequência de instruções operacionais no componente de processador 350 na respectiva função como um componente de processador principal do dispositivo de computação 300 para a implementação de lógica para efetuar várias funções. Na execução da rotina de controle 340 em algumas modalidades, o componente de processador 350 pode receber os dados de vídeo de base 130 representando o vídeo de movimento 880 do dispositivo de origem 100, e pode armazenar, pelo menos, um subconjunto do mesmo no armazenamento 360. Deve ser notado que os dados de vídeo de base 130 podem ser armazenados no armazenamento 360 durante um período de tempo considerável antes de ser feito qualquer uso dos mesmos, incluindo a conversão para um valor superior, a apresentação visual e/ou a transmissão dos mesmos. Quando os dados de vídeo de base 130 se encontram na forma comprimida, o componente de processador 350, na execução da rotina de controle 340, pode os descomprimir. Quando os dados de vídeo de base 130 requerem conversão de espaço de cor na preparação para serem convertidos para um valor superior, visualmente apresentados e/ou transmitidos, o componente de processador 350, na execução da rotina de controle 340, pode converter o respectivo espaço de cor. Em seguida, o componente de processador 350 fornece os dados de vídeo de base 130 ao controlador 400 para serem comprimidos.
[0031] A rotina de controle 440 incorpora uma sequência de instruções operacionais no componente de processador 450 na respectiva função como um componente de processador de controlador do controlador 400 do dispositivo de computação 300 para a implementação de lógica para efetuar várias funções. Na execução da rotina de controle 440, o componente de processador 450 converte para um valor superior a taxa de fotogramas dos dados de vídeo de base 130 representando o vídeo de movimento 880 para a geração dos dados de vídeo convertidos para um valor superior 630 que representam igualmente o vídeo de movimento 880, mas em uma taxa de fotogramas mais elevada.
[0032] A FIG. 3 representa uma modalidade de exemplo de conversão para um valor superior da taxa de fotogramas de um fluxo de base 131 dos dados de vídeo de base 130 para a geração de um fluxo convertido para um valor superior 631 correspondente dos dados de vídeo convertidos para um valor superior 630 pelo componente de processador 450 na execução de, pelo menos, uma porção da rotina de controle 440. Como representado, o fluxo de base 131 é constituído por uma série de fotogramas de base 132 dispostos em uma ordem temporal que representa o vídeo de movimento 880 em uma taxa de fotogramas de base. O fluxo convertido para um valor superior 631 inclui os mesmos fotogramas de base 132 na mesma ordem temporal, mas entre cada par de fotogramas de base adjacentes 132 é inserido um fotograma de conversão para um valor superior 632 para fornecer ao fluxo convertido para um valor superior 631 uma taxa de fotogramas convertidos para um valor superior que seja o dobro da taxa de fotogramas de base.
[0033] Como ainda representado, o componente de processador 450 pode empregar cada par de fotogramas de base adjacentes 132 para, pelo menos parcialmente, efetuar a geração de um fotograma interpolado 332 dos dados de vídeo interpolados 330. O componente de processador 450 efetua uma análise para a determinação do ponto até ao qual existem ou existirão artefatos visuais distrativos que envolvem margens de um ou mais objetos em movimento no fotograma interpolado 332. O componente de processador 450 depois determina se deve ser usado ou não esse fotograma interpolado 332 ou repetido um dos fotogramas de base 132 do qual derivou esse fotograma interpolado 332 para fornecer o fotograma de conversão para um nível superior 632 correspondente com base no fato de esse ponto exceder ou não um limiar predeterminado. O limiar predeterminado pode ser obtido pelo componente de processador 450 desde os dados de parâmetros 370, que podem ser recebidos desde o dispositivo de origem 100 e/ou podem ser fornecidos ao controlador 400 pelo componente de processador 350.
[0034] Deve ser notado que essa representação de um exemplo de duplicação de uma taxa de fotogramas é somente um exemplo de conversão para um valor superior da taxa de fotogramas e não deve ser considerado como limitativo. Mais especificamente, são possíveis outras modalidades nas quais existem outras relações de taxas de fotogramas entre o fluxo de base 131 e o fluxo convertido para um valor superior 631. Em particular, são possíveis modalidades nas quais podem ser inseridas diferentes quantidades de fotogramas de conversão para um valor superior 632 entre os fotogramas de base 132 de pares adjacentes dos fotogramas de base 132 no fluxo convertido para um valor superior 631.
[0035] As FIGs. 4A a 4E representam exemplos de possíveis resultados de geração de um fotograma interpolado 332 dos dados de vídeo interpolados 330 desde um par dos fotogramas de base 132 dos dados de vídeo de base 130, especificamente, um fotograma de base 132p que antecede a posição temporal do fotograma interpolado 332 e outro fotograma de base 132f que segue essa posição temporal. A FIG. 4A representa essa ordem temporal quando um objeto (p. ex., uma bola ou outro objeto com um contorno circular definido pelas respectivas margens associadas) se move entre duas posições diferentes na progressão temporal desde o fotograma de base 132p até ao fotograma de base 132f. Deve ser notado que esses fotogramas de base de exemplo 132p e 132f, bem como cada um dos exemplos do fotograma interpolado 332 daí gerado, são deliberadamente exemplos altamente simplificados aqui apresentados para facilitar a descrição e a compreensão e não devem ser considerados como limitando o que é aqui apresentado a essas situações simplistas. Deve ser compreendido que mais fotogramas de exemplo típicos do vídeo de movimento 880 podem conter conteúdo visual muito mais complexo que pode perfeitamente incluir múltiplos objetos em movimento que podem se mover em múltiplas direções diferentes.
[0036] A FIG. 4A representa um exemplo do que pode ser considerada uma geração bem-sucedida do fotograma interpolado 332 desde os fotogramas de base 132p e 132f. Especificamente, a bola é representada no fotograma interpolado 332 em uma localização ao longo de uma trajetória entre as respectivas localizações em cada um dos fotogramas de base 132p e 132f sem nenhuns (ou relativamente poucos) artefatos visuais que envolvam as margens da bola. Mais precisamente, o formato da bola, como definido pelas respectivas margens, é pelo menos aparentemente inalterado. Não existiu nenhuma falha na apresentação visual da bola para que todas as suas margens estejam em falta, a bola não foi dividida em porções apresentadas visualmente em separado para existirem mais margens do que o suposto, e o formato da bola não foi distorcido para que exista uma quantidade diferente de margens do que o suposto e/ou margens em posições incorretas umas em relação às outras. Apesar da sensibilidade do sistema visual humano (HVS) a mudanças nas margens como resultado da respectiva confiança na detecção de margens para identificar objetos, a relativa falta de mudança nas margens que definem a bola no fotograma interpolado 332 apresentará provavelmente pouca ou nenhuma distração a um HVS típico, uma vez que o fotograma de base anterior 132p, o fotograma interpolado 332 e o fotograma de base seguinte 132f são observados pela ordem temporal.
[0037] Em oposição, cada uma das FIGs. 4B a E representa um exemplo de uma geração menos bem-sucedida do fotograma interpolado 332 desde os fotogramas de base 132p e 132f. Em cada um desses exemplos, a interpolação para gerar o fotograma interpolado 332 introduziu artefatos visuais que envolvem as margens que definem a bola. Mais especificamente, a quantidade de margens e/ou das posições relativas das margens da bola é erradamente alterada na apresentação visual da bola em cada um desses exemplos do fotograma interpolado 332 até um ponto que se torna provavelmente distrativo para um HVS típico durante a visualização. Deve ser notado que a representação dos exemplos das FIGs. 4B a E não pretende fornecer uma apresentação exaustiva de todos os artefatos visuais possíveis envolvendo margens de um objeto em movimento que possa resultar da interpolação.
[0038] Em relação à FIG. 4B, a bola está completamente em falta nesse exemplo do fotograma interpolado 332. Como resultado, todas as margens que definem a bola não aparecem, o que é provavelmente distrativo, uma vez que o fotograma de base anterior 132p, o fotograma interpolado 332 e o fotograma de base seguinte 132f são observados pela ordem temporal por um HVS típico.
[0039] Em relação à FIG. 4C, a bola foi esticada em uma orientação que segue a trajetória desde a respectiva posição no fotograma de base anterior 132p até à respectiva posição no fotograma de base seguinte 132f. Essa mudança no formato corresponde a um aumento em todo o comprimento das margens que definem a bola, bem como a mudanças na posição de, pelo menos, algumas margens em relação a outras, o que pode ser distrativo quando observado por um HVS típico.
[0040] Em relação à FIG. 4D, a bola foi dividida em dois pedaços, um geralmente na localização da bola no fotograma de base anterior 132p e o outro geralmente na localização da bola no fotograma de base seguinte 132f. Essa divisão da bola em múltiplos pedaços introduz margens adicionais em posições nas quais nenhumas margens deveriam estar presentes para que o formato da bola seja efetivamente alterado. Ademais, é provável que todo o comprimento das margens definindo a bola tenha mudado. Provavelmente, essas mudanças nas margens são distrativas quando observadas por um HVS típico.
[0041] Em relação à FIG. 4E, a bola foi replicada para que a mesma seja visualmente apresentada na respectiva localização no fotograma de base anterior 132p e na respectiva localização no fotograma de base seguinte 132f. Essa replicação da bola duplica efetivamente a quantidade de margens, o que pode ser distrativo quando observado por um HVS típico.
[0042] Como tem sido descrito, para lidar com a possibilidade de ocorrências de artefatos visuais, como por exemplo os representados nas FIGs. 4B a E em um ou mais dos fotogramas interpolados 332 dos dados de vídeo interpolados 330, o componente de processador 450 efetua uma análise para determinar se deve ser usado ou não cada um dos fotogramas interpolados 332 ou repetido um dos fotogramas de base 132 do qual deriva cada um dos fotogramas interpolados 332. A FIG. 5 representa uma modalidade de exemplo dessa análise e determinação resultantes da execução da rotina de controle 440 em maior detalhe. Como representado, a rotina de controle 440 pode incorporar um ou mais entre um componente de interpolação 441, um componente de análise 442 e um componente de seleção 447.
[0043] Na execução do componente de interpolação 441, o componente de processador 450 analisa um par adjacente dos fotogramas de base 132 do fluxo de base 131 dos dados de vídeo de base 130 para a identificação de objetos que se movem na progressão temporal entre o par dos fotogramas de base 132. Mais especificamente, a análise envolve um dos fotogramas de base designado um fotograma de base anterior 132p e outro dos fotogramas de base designado um fotograma de base seguinte 132f. Em seguida, o componente de processador 450 gera vetores de movimento bilaterais indicativos da direção e/ou da extensão do movimento dos objetos em movimento identificados desde o fotograma de base 132p até ao fotograma de base 132f, bem como os pixels em cada um dos fotogramas de base 132p e 132f que se encontram associados a esse movimento. Qualquer um de uma variedade de algoritmos pode ser empregue para a geração dos vetores de movimento, incluindo e não se limitando à técnica de estimativa de movimento bidirecional descrita por Choi et al. no documento “New Frame Rate Up- Conversion Using Bi-Directional Motion Estimation”, IEEE Transactions on Consumer Electronics, 2000, vol. 46, páginas 603 a 609. O componente de processador 450 armazena esses vetores de movimento como os dados de vetor de movimento 230.
[0044] Na execução suplementar do componente de interpolação 441, o componente de processador 450 pode usar esses vetores de movimento para a geração de um dos fotogramas interpolados 332 desde os fotogramas de base 132p e 132f que corresponda a uma posição temporal entre esses dois fotogramas de base 132p e 132f no fluxo convertido para um valor superior 631 dos dados de vídeo convertidos para um valor superior 630. Em algumas modalidades, o componente de processador 450 pode assim gerar esse fotograma interpolado 332 sem aguardar primeiro por uma indicação sobre se esse fotograma interpolado 332 será ou não usado no fluxo convertido para um valor superior 631. Em outras modalidades, o componente de processador 450 pode condicionar a geração desse fotograma interpolado 332 por causa dessa indicação.
[0045] Na execução do componente de análise 442, o componente de processador 450 analisa os fotogramas de base 132p e 132f em conjunto com os mesmos vetores de movimento dos dados de vetor de movimento 230 para a determinação sobre se o fotograma interpolado 332 inclui (ou incluirá, se gerado) ou não artefatos visuais envolvendo margens de um ou mais objetos em movimento. Uma vantagem da realização dessa análise com base nos vetores de movimento e nos fotogramas de base 132p e 132f, em vez de com base no fotograma interpolado 332, é o fato de a geração do fotograma interpolado 332 poder ser adiada até se saber se o fotograma interpolado 332 será ou não usado. Desse modo, o uso de recursos de processamento, armazenamento e/ou de potência para a geração do fotograma interpolado 332 pode ser inteiramente evitado se for determinado (como resultado da análise) que o fotograma interpolado 332 não será usado.
[0046] O componente de processador 450 analisa cada um dos fotogramas de base 132p e 132f para a identificação de pixels coincidentes com margens definidas por um grau relativamente elevado de mudança nos valores de cor de pixel representando um grau relativamente elevado de mudança na cor e/ou no brilho. Qualquer um de uma variedade de algoritmos pode ser empregue para a identificação dessas margens, incluindo, mas não se limitando a, abordagens baseadas em gradiente analisando graus de diferença entre valores de cor de pixel de pixels adjacentes, como por exemplo um operador Sobel. O componente de processador 450 pode gerar e armazenar nos dados de margem 430 mapas de margens separados 432p e 432f para cada um dos fotogramas de base 132p e 132f, respectivamente, que indicam que pixels em cada um desses fotogramas de base correspondem às localizações dessas margens identificadas.
[0047] O componente de processador 450 analisa cada um dos vetores de movimento dos dados de vetor de movimento 230 para a determinação da multiplicidade com a qual os valores de cor de pixel de cada pixel em cada um dos fotogramas de base 132p e 132f são usados (ou serão usados) na geração de valores de cor de pixel para pixels do fotograma interpolado 332. Novamente, esses vetores de movimento são vetores de movimento bilaterais indicativos de movimento de objetos em movimento identificados desde o fotograma de base 132p até ao fotograma de base 132f. Os pixels de um fotograma de base do qual os valores de cor de pixel não são usados no fornecimento de um valor de cor de pixel para qualquer pixel do fotograma interpolado 332 são determinados para terem uma multiplicidade de zero. Esses pixels são referidos como definindo uma ou mais zonas constituídas por um ou mais pixels nesse fotograma de base referidas como “lacunas” desse fotograma de base. Correspondentemente, os pixels de um fotograma de base do qual os valores de cor de pixel são usados no fornecimento de valores de cor de pixel para mais de um pixel do fotograma interpolado 332 são determinados para terem uma multiplicidade superior a um. Esses pixels são referidos como definindo uma ou mais zonas constituídas por um ou mais pixels nesse fotograma de base referidas como “colisões” desse fotograma de base. O componente de processador 450 pode gerar e armazenar nos dados de multiplicidade 530 mapas de lacunas separados 532ph e 532fh (mapas de pixels tendo uma multiplicidade de zero), e mapas de colisões separados 532pc e 532fc (mapas de pixels tendo uma multiplicidade superior a um) para cada um dos fotogramas de base 132p e 132f, respectivamente, que indicam que pixels em cada um desses fotogramas de base fazem parte de uma zona de um ou mais pixels definindo uma lacuna ou uma colisão. Indicado de modo diferente, o componente de processador 450 pode gerar indicações de que pixels de cada um dos fotogramas de base 132p e 132f têm um valor de multiplicidade diferente de um.
[0048] Para cada um dos fotogramas de base 132p e 132f, o componente de processador 450 compara o mapa de margens com cada um dos mapas de lacunas e colisões para derivar as quantidades de pixels em localizações onde uma margem coincide com uma lacuna ou uma colisão. Especificamente, o mapa de margens 432p é comparado com o mapa de lacunas 532ph e o mapa de colisões 532pc para o fotograma de base 132p, e o mapa de margens 432f é comparado com o mapa de lacunas 532fh e o mapa de colisões 532fc para o fotograma de base 132f. Para cada um dos fotogramas de base 132p e 132f, essas quantidades de pixels nessas localizações são somadas para a geração de valores de critério separados para cada um dos fotogramas de base 132p e 132f. O maior desses dois valores de critério é depois comparado com um limiar predeterminado para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado como o fotograma de conversão para um valor superior 632 na posição temporal entre os fotogramas de base 132p e 132f no fotograma convertido para um valor superior 631, ou um dos fotogramas de base 132p e 132f deve ser ou não repetido na posição temporal como o fotograma de conversão para um valor superior 632. Indicado de modo diferente, a maior das somas das quantidades de pixels situados em cada um dos fotogramas de base 132p e 132f onde as margens coincidem com lacunas ou com colisões é comparada com um limiar para a determinação sobre se existe (ou existirá) ou não um grau demasiado grande de artefatos visuais envolvendo margens de objetos em movimento no fotograma interpolado 332 para o fotograma interpolado 332 a ser usado.
[0049] Em algumas modalidades, a quantidade Qeh de pixels em localizações nas quais as lacunas e as margens coincidem em cada um dos fotogramas de base 132p e 132f pode ser derivada como se segue:
[0050] Essa quantidade Qeh representa a soma de pixels em um fotograma de base de altura H e largura W em todas as localizações (i,j) nas quais existe uma margem e nas quais a multiplicidade de uso do valor de cor de pixel do pixel na geração de um fotograma interpolado é de 0 (p. ex., em que o valor de cor de pixel não é usado), em que i = 1 ^ H, e em que j = 1 ^ W. Similarmente, a quantidade Qec de pixels em localizações nas quais as colisões e as margens coincidem em cada um dos fotogramas de base 132p e 132f pode ser derivada como se segue:
[0051] Essa quantidade Qec representa a soma de pixels no mesmo fotograma de base de altura H e largura W em todas as localizações (i,j) nas quais existe uma margem e nas quais a multiplicidade de uso do valor de cor de pixel do pixel na geração do mesmo fotograma interpolado é superior a 1 (p. ex., o valor de cor de pixel é usado mais de uma vez) , em que i = 1 ^ H, e em que j = 1 ^ W.
[0052] A seguir a essa derivação das quantidades Qeh e Qec para cada um dos fotogramas de base 132p e 132f, um valor de critério C para cada um dos fotogramas de base pode ser derivado como se segue:
[0053] Esse valor de critério C representa a soma da quantidade Qeh multiplicada por α e a quantidade Qec multiplicada por β, em que a soma é depois dividida pela quantidade de pixels no mesmo fotograma de base de altura H e largura W em todas as localizações (i,j) nas quais existe uma margem, em que i = 1 ^ H, e em que j = 1 ^ W. O maior entre o valor de critério C do fotograma de base 132p e o valor de critério C do fotograma de base 132f é depois selecionado e comparado com o limiar predeterminado para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado como o fotograma de conversão para um valor superior 632.
[0054] Os fatores de multiplicação α e β, bem como o limiar predeterminado, podem ser todos especificados nos dados de parâmetros 370. Os fatores de multiplicação α e β e o limiar predeterminado podem ser derivados por experimentação para determinar pesos relativos a fornecer a cada uma das quantidades Qeh e Qec, bem como para determinar se o limiar que separa um grau de artefatos envolvendo margens de um objeto em movimento em um fotograma é demasiado distrativo para um HVS típico. Em outras palavras, podem ser realizadas experiências para a determinação sobre se os artefatos visuais envolvendo uma falta errada de apresentação visual de margens de objetos em movimento são mais ou menos distrativos para um HVS típico que os artefatos visuais envolvendo uma apresentação visual errada de mais margens de objetos em movimento do que deveria ser visualmente apresentado. Em seguida, os fatores de multiplicação α e β podem ser selecionados para refletir os resultados dessa experimentação para melhorar a precisão com a qual os fotogramas interpolados 332 são determinados para terem um grande grau de artefatos visuais envolvendo margens de objetos em movimento a serem usados. Em algumas modalidades, os fatores de multiplicação α e β podem ser especificados por vídeo de movimento ou por categoria de vídeo de movimento como resultado de experimentação por vídeo de movimento ou por categoria de vídeo de movimento, e o limiar predeterminado pode ser especificado para uma variedade relativamente grande de vídeos de movimento de múltiplas categorias.
[0055] Em algumas modalidades, uma indicação sobre se o fotograma interpolado 332 deve ser ou não usado é transmitida do componente de análise 442 ao componente de interpolação 441 para implementar a determinação sobre se o fotograma interpolado 332 deve ser ou não usado. Como anteriormente descrito, isso pode controlar se o fotograma interpolado 332 é ou não realmente gerado. Em outras modalidades, o componente de processador 450, na execução do componente de seleção 447 pode copiar o fotograma interpolado 332 desde os dados de vídeo interpolados 330 ou pode copiar um dos fotogramas de base 132p ou 132f para o fluxo convertido para um valor superior 631 dos dados de vídeo convertidos para um valor superior 630 como o fotograma de conversão para um valor superior 632 para implementar a determinação sobre se o fotograma interpolado 332 deve ser ou não usado.
[0056] As FIGs. 6, 7 e 8 representam exemplos de análise de um par de exemplo dos fotogramas de base 132p e 132f, bem como vetores de movimento associados, para a determinação sobre se devem ser ou não usados diferentes exemplos representados do fotograma interpolado 332 daí gerado. Mais precisamente, o mesmo par de fotogramas de base adjacentes 132p e 132f é representado em cada uma das FIGs. 6 a 8 nas quais um objeto representado por um quadrado de 2x2 pixels se move entre duas posições diferentes na progressão temporal desde o mesmo fotograma de base 132p até ao mesmo fotograma de base 132f. Todavia, em cada uma das FIGs. 6 a 8, é derivado um conjunto de exemplo diferente de vetores de movimento desde os fotogramas de base 132p e 132f (p. ex., pelo componente de interpolação 441), originando um exemplo diferente do fotograma interpolado 332 que é gerado (ou que pode ser gerado) com base nesses fotogramas de base e nesses vetores de movimento. Novamente, em cada uma das FIGs. 6 a 8, se o fotograma interpolado 332 for selecionado para o uso, o mesmo será inserido no fluxo de vídeo convertido para um valor superior 631 em uma posição temporalmente entre os fotogramas de base 132p e 132f. Cada uma das FIGs. 6 a 8 representa aspectos da análise efetuada para a determinação sobre se o fotograma interpolado 332 de exemplo representado deve ser ou não usado. Deve ser notado que o par de exemplo de fotogramas de base 132p e 132f usado na totalidade das três FIGs. 6 a 8, bem como cada um dos diferentes exemplos do fotograma interpolado 332 daí gerado, são deliberadamente exemplos altamente simplificados aqui apresentados para facilitar a descrição e a compreensão, e não devem ser considerados como limitando o que é aqui apresentado a essas situações simplistas. Especificamente, cada um dos fotogramas representado nas FIGs. 6 a 8 tem apenas uma resolução de 4x8 pixels, e deve ser compreendido que mais fotogramas de exemplo típicos do vídeo de movimento 880 podem, cada um deles, ter uma resolução muito maior.
[0057] A FIG. 6 representa um exemplo do que pode ser considerada uma geração bem-sucedida dos vetores de movimento desde fotogramas de base 132p e 132f permitindo um exemplo de geração bem-sucedida do fotograma interpolado 332 aqui representado. Especificamente, o objeto é representado no fotograma interpolado 332 em uma localização ao longo da trajetória entre as respectivas localizações em cada um dos fotogramas de base 132p e 132f sem nenhuns artefatos visuais que envolvam as margens do objeto. Mais precisamente, os vetores de movimento bilateral que representam a mudança na posição de cada um dos quatro pixels do quadrado de 2x2 pixels do objeto desde o fotograma de base 132p ao fotograma de base 132f foram corretamente derivados, e esses vetores de movimento bilateral corretamente derivados permitem uma representação correta do objeto no fotograma interpolado 332.
[0058] Como anteriormente descrito, a análise para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado inclui a análise de cada um dos fotogramas de base 132p e 132f para localizar as margens entre valores de cor de pixel dos pixels de cada. Em cada um dos fotogramas de base 132p e 132f, o objeto de 2x2 pixels é o único objeto aqui representado, e os valores de cor de pixel dos respectivos quatro pixels são facilmente distinguidos dos valores de cor de pixel de todos os outros pixels. Por conseguinte, como representado, os mapas de margens 432p e 432f derivados dos fotogramas de base 132p e 132f, respectivamente, indicam as únicas margens em cada um desses fotogramas de base como sendo os que definem o formato desse único objeto de 2x2 pixels.
[0059] A análise para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado inclui igualmente a análise, pelo menos, dos vetores de movimento em conjunto com cada um dos fotogramas de base 132p e 132f para localizar lacunas e colisões de cada. Mais precisamente, a multiplicidade com a qual os valores de cor de pixel dos pixels de cada um desses fotogramas de base é determinada para identificar pixels pertencentes a lacunas (p. ex., pixels tendo uma multiplicidade de uso dos respectivos valores de cor de pixel de zero) e/ou colisões (p. ex., pixels tendo uma multiplicidade de uso dos respectivos valores de cor de pixel superior a um). Em cada um desses fotogramas de base 132p e 132f, os vetores de movimento fazem com que os valores de cor de pixel do conjunto de 2x2 pixels do objeto sejam usados na representação do objeto no fotograma interpolado 332. Desse modo, os valores de cor de pixel do conjunto de 2x2 pixels no centro de cada um desses fotogramas de base, que são os pixels que correspondem aos pixels do fotograma interpolado 332 no qual o objeto é representado, não são usados no fornecimento de valores de cor de pixel de qualquer pixel do fotograma interpolado 332. Desse modo, em cada um dos fotogramas de base 132p e 132f, o conjunto de 2x2 pixels no centro de cada define uma lacuna em cada um dos fotogramas de base, como indicado nos mapas de lacunas 532ph e 532fh, respectivamente. Contudo, enquanto existem lacunas em cada um dos fotogramas de base 132p e 132f, não existem nenhumas colisões associadas a nenhum desses fotogramas de base como indicado nos mapas de colisão 532pc e 532fc, respectivamente, uma vez que nenhum dos pixels de qualquer um desses fotogramas de base inclui pixels dos quais os valores de cor de pixel são usados mais de uma vez.
[0060] Igualmente como descrito anteriormente, depois de identificadas as localizações de margens, as lacunas e as colisões associadas a cada um dos fotogramas de base 132p e 132f, são feitas comparações dessas localizações. Especificamente, para cada um desses fotogramas de base, as localizações de margens são comparadas com as localizações de lacunas para derivar a quantidade de pixels nas localizações nas quais as margens e as lacunas coincidem (p. ex., a quantidade Qeh), e as localizações das margens são comparadas com as localizações das colisões para derivar a quantidade de pixels nas localizações nas quais as margens e as colisões coincidem (p. ex., a quantidade Qec). Para cada um dos fotogramas de base 132p e 132f, essas quantidades são somadas para a geração de um valor de critério (p. ex., o valor de critério C) para cada um desses fotogramas de base e, em seguida, o mais alto desses dois valores de critério é comparado com um liminar predeterminado. Se o mais alto desses dois valores de critério for superior ao limiar predeterminado, o fotograma interpolado 332 não é usado.
[0061] Dado que uma comparação dos mapas de margens 432p e 432f com os mapas de lacunas 532ph e 532fh, respectivamente, não revela nenhuma coincidência entre as localizações das margens e as localizações das lacunas, a quantidade de pixels nas localizações dessa coincidência corresponde a zero para cada um dos fotogramas de base 132p e 132f. Ademais, dado que não existem nenhumas colisões de modo algum indicadas como presentes nos mapas de colisões 532pc ou 532fc, a quantidade de pixels na localização na qual as margens e as colisões coincidem corresponde igualmente a zero para cada um dos fotogramas de base 132p e 132f. Como resultado, o valor de critério para cada um dos fotogramas de base 132p e 132f corresponde igualmente a zero. Presumindo que o limiar predeterminado é um valor não zero positivo de algum tipo, nenhum dos valores de critério de zero o irá exceder, e o fotograma interpolado 332 de exemplo da FIG. 6 é selecionado para uso.
[0062] A FIG. 7 representa um exemplo do que pode ser considerada uma geração mal sucedida dos vetores de movimento desde fotogramas de base 132p e 132f originando um exemplo de geração mal sucedida do fotograma interpolado 332 como aqui representado. Para facilitar uma melhor compreensão dessa descrição da FIG. 7, as representações dos fotogramas de base 132p e 132f, o fotograma interpolado 332, os mapas de lacunas 532ph e 532fh e os mapas de colisões 532pc e 532fc foram munidos de um sistema de coordenadas comum no qual as linhas são designadas com as letras w a z, e as colunas são designadas com as letras a a h. Dessa forma, cada posição na qual um pixel se encontra pode ser especificamente nomeada nessa descrição. Igualmente, foram fornecidas indicações em cada um dos mapas de lacunas 532ph e 532fh e em cada um dos mapas de colisões 532pc e 532fc da multiplicidade de uso dos valores de cor em posições específicas para facilitar ainda mais uma melhor compreensão.
[0063] Ao contrário dos resultados da derivação bem- sucedida de vetores na FIG. 6, na qual um exemplo correto do fotograma interpolado 332 pode ser derivado, o objeto de 2x2 pixels é erradamente não representado totalmente no fotograma interpolado 332 na FIG. 7. Mais precisamente, foram derivados vetores de movimento errados que fizeram com que os valores de cor de pixel de pixels diferentes dos do objeto de 2x2 pixels em cada um dos fotogramas de base 132p e 132f fossem erradamente usados na determinação de valores de cor de pixel do que deveria corresponder a pixels do objeto de 2x2 pixels no fotograma interpolado 332. Ademais, não foram derivados nenhuns vetores de movimento que originassem qualquer uso dos valores de cor de pixel dos pixels que constituem o objeto de 2x2 pixels em qualquer um dos fotogramas de base 132p ou 132f. Desse modo, os valores de cor de pixel dos pixels nas posições (b,x), (b,y), (c,x) e (c,y) do fotograma de base 132p, que correspondem aos pixels com os valores de cor de pixel que representam o objeto de 2x2 pixels no fotograma de base 132p, não são usados na determinação de qualquer valor de cor de pixel de qualquer pixel no fotograma interpolado 332. Correspondentemente, os valores de cor de pixel dos pixels nas posições (f,x), (f,y), (g,x) e (g,y) do fotograma de base 132f, que correspondem aos pixels com os valores de cor de pixel que representam o objeto de 2x2 pixels no fotograma de base 132f, não são igualmente usados na determinação de qualquer valor de cor de pixel de qualquer pixel no fotograma interpolado 332.
[0064] Em relação à análise para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado, o fato de os mesmos dois fotogramas de base 132p e 132f serem usados em todos os exemplos representados nas FIGs. 6 a 8 faz com que os mapas de margens 432p e 432f sejam idênticos aos da FIG. 6.
[0065] Uma vez que os valores de cor de pixel dos pixels representando o objeto de 2x2 pixels em cada um dos fotogramas de base 132p e 132f não são usados de modo algum na determinação dos valores de cor de pixel de qualquer pixel do fotograma interpolado 332, as localizações desses mesmos pixels definem um subconjunto das localizações das lacunas dos fotogramas de base 132p e 132f, como representado nos mapas de lacunas 532ph e 532fh. Contudo, os mesmos vetores de movimento errados fazem igualmente com que os valores de cor de pixel dos pixels em outras localizações nos fotogramas de base 132p e 132f não sejam igualmente usados de modo algum na determinação de qualquer valor de cor de pixel de qualquer pixel dos fotogramas interpolados. Desse modo, as lacunas do fotograma de base 132p são definidas pelas posições (b,x), (b,y), (c,x), (c,y), (g,x) e (g,y) do fotograma de base 132p (como representado pelo mapa de lacunas 532ph). Correspondentemente, as lacunas do fotograma de base 132f são definidas pelas posições (b,x), (b,y), (f,x), (f,y), (g,x) e (g,y) do fotograma de base 132f (como representado pelo mapa de lacunas 532fh). Novamente, o fato de não serem usados nenhuns valores de cor de pixel nessas localizações é ainda indicado pela marcação explícita do valor de multiplicidade de “0” em cada uma dessas posições nesses mapas de lacunas.
[0066] Ademais, o múltiplo uso errado de outros pixels, incluindo alguns que são adjacentes ao objeto de 2x2 pixels em cada um dos fotogramas de base 132p e 132f, resulta na existência de colisões nesses fotogramas de base definidos pelas localizações desses pixels erradamente usados, como representado nos mapas de colisões 532pc e 532fc. Especificamente, os valores de cor de pixel dos pixels nas posições (a,x), (a,y), (d,x) e (d,y) do fotograma de base 132p (como representado pelo mapa de colisões 532pc) e dos pixels nas posições (e,x), (e,y), (h,x) e (h,y) do fotograma de base 132f (como representado pelo mapa de colisões 532fc) são erradamente usados múltiplas vezes como resultado dos vetores de movimento erradamente derivados.
[0067] Como indicado no mapa de colisões 532pc, o valor de cor de pixel do pixel do fotograma de base 132p na posição (a,x) é usado para determinar três valores de cor de pixel do fotograma interpolado 332, especificamente, os valores de cor de pixel dos pixels nas posições (a,x), (b,x) e (c,x) no fotograma interpolado 332. O uso desse valor de cor de pixel no fotograma de base 132p na determinação dos valores de cor de pixel nas duas posições (b,x) e (c,x) no fotograma interpolado 332 surge como resultado de dois dos vetores de movimento errados, e é um suplemento ao uso correto desse mesmo valor de cor de pixel na determinação do valor de cor de pixel na posição (a,x) no fotograma interpolado 332, que não se encontra associado a nenhum vetor de movimento. Desse modo, como indicado com a marcação de “3” na posição (a,x) na tabela de colisões 532pc, o valor de cor de pixel do pixel na posição (a,x) no fotograma de base 132p é erradamente usado três vezes, quando deveria ter sido usado somente uma vez. O valor de cor de pixel do pixel na posição (a,y) no fotograma de base 132p, e os valores de cor de pixel dos pixels nas posições (h,x) e (h,y) no fotograma de base 132f são similarmente usados de modo errado três vezes, quando cada um deles deveria ter sido usado somente uma vez.
[0068] Como igualmente indicado no mapa de colisões 532pc, o valor de cor de pixel do pixel do fotograma de base 132p na posição (d,x) é usado para a determinação de dois valores de cor de pixel do fotograma interpolado 332, especificamente, os valores de cor de pixel dos pixels nas posições (d,x) e (f,x) no fotograma interpolado 332. O uso desse valor de cor de pixel no fotograma de base 132p na determinação dos valores de cor de pixel na posição (f,x) no fotograma interpolado 332 surge como resultado de um dos vetores de movimento errados, e é um suplemento ao uso correto desse mesmo valor de cor de pixel na determinação do valor de cor de pixel na posição (d,x) no fotograma interpolado 332, que não se encontra associado a nenhum vetor de movimento. Desse modo, como indicado com a marcação de “2” na posição (d,x) na tabela de colisões 532pc, o valor de cor de pixel do pixel na posição (d,x) no fotograma de base 132p é erradamente usado duas vezes, quando deveria ter sido usado somente uma vez. O valor de cor de pixel do pixel na posição (d,y) no fotograma de base 132p, e os valores de cor de pixel dos pixels nas posições (e,x) e (e,y) no fotograma de base 132f são similarmente usados de modo errado duas vezes, quando cada um deles deveria ter sido usado somente uma vez.
[0069] Na comparação das localizações das margens e lacunas para cada um dos fotogramas de base 132p e 132f, a análise revela que quatro pixels em cada um desses fotogramas de base se encontram em localizações nas quais as margens e as lacunas coincidem. Todavia, uma comparação das localizações das margens e colisões para cada um dos fotogramas de base 132p e 132f não revela nenhuns pixels nas localizações nas quais as margens e as colisões coincidem para qualquer um desses fotogramas de base. Desse modo, os valores de critério resultantes para cada um dos fotogramas de base 132p e 132f iriam refletir as quantidades iguais de pixels em localizações nas quais as margens e as lacunas coincidem. Dado o grau bastante alto de artefatos visuais na representação do objeto de 2x2 no fotograma interpolado 332, que inclui a falta de representação de todas as margens do objeto de 2x2, o valor de critério associado a qualquer um dos fotogramas de base 132p ou 132f pode exceder o limiar predeterminado. Como resultado, o fotograma interpolado 332 de exemplo da FIG. 7 pode não ser selecionado para uso.
[0070] A FIG. 8 representa um exemplo do que pode ser considerada outra geração mal sucedida dos vetores de movimento desde fotogramas de base 132p e 132f originando outro exemplo de geração mal sucedida do fotograma interpolado 332 como aqui representado. Especificamente, o objeto de 2x2 pixels é representado de uma maneira na qual o mesmo é erradamente esticado ao longo da trajetória entre as respectivas localizações em cada um dos fotogramas de base 132p e 132f. Mais precisamente, foram derivados vetores de movimento errados que fazem com que os valores de cor de pixel de dois dos quatro pixels do objeto de 2x2 pixels em cada um dos fotogramas de base 132p e 132f sejam erradamente usados duas vezes na determinação de valores de cor de pixel dos pixels no fotograma interpolado 332, de modo que a quantidade de pixels do fotograma interpolado 332 empregue na representação do objeto seja erradamente duplicada. Ademais, não foram derivados nenhuns vetores de movimento que originassem qualquer uso dos valores de cor de pixel de um par de conjuntos de 1x2 pixels em cada um dos fotogramas de base 132p e 132f. Novamente, metade dos vetores de movimento foi desenhada com linhas sólidas e metade com linhas tracejadas para facilitar a distinção dos mesmos.
[0071] Em relação à análise para a determinação sobre se o fotograma interpolado 332 deve ser ou não usado, o fato de os mesmos dois fotogramas de base 132p e 132f serem usados em todos os exemplos representados nas FIGs. 6 a 8 faz com que os mapas de margens 432p e 432f sejam idênticos aos das FIGs. 6 e 7. Como descrito acima, os valores de cor de pixel de um par de conjuntos de 1x2 pixels em cada um desses fotogramas de base não são usados de modo algum na determinação dos valores de cor de pixel de qualquer pixel do fotograma interpolado 332, e isso é indicado nos mapas de lacunas 532ph e 532fh. Ademais, o múltiplo uso errado de dois dos quatro pixels do objeto de 2x2 pixels em cada um dos fotogramas de base 132p e 132f resulta na existência de colisões definidas pelas localizações desses dois dos quatro pixels do objeto em cada um desses fotogramas de base, e isso é indicado nos mapas de colisões 532pc e 532fc.
[0072] Na comparação das localizações das margens e lacunas para cada um dos fotogramas de base 132p e 132f, a análise revela que nenhuns pixels em qualquer um desses fotogramas de base se encontram em localizações nas quais as margens e as lacunas coincidem. Todavia, uma comparação das localizações das margens e colisões para cada um dos fotogramas de base 132p e 132f revela que dois pixels em cada um desses fotogramas de base se encontram em localizações nas quais as margens e as colisões coincidem. Desse modo, os valores de critério resultantes para cada um dos fotogramas de base 132p e 132f iriam refletir as quantidades iguais de pixels em localizações nas quais as margens e as colisões coincidem. Dado o grau bastante alto de artefatos visuais na representação do objeto de 2x2 no fotograma interpolado 332, que inclui a adição de modo significante a todo o comprimento das margens que o definem duplicando o respectivo tamanho, o valor de critério associado a qualquer um dos fotogramas de base 132p ou 132f pode exceder o limiar predeterminado. Como resultado, o fotograma interpolado 332 de exemplo da FIG. 8 pode não ser selecionado para uso.
[0073] Em relação à FIG. 1, em várias modalidades, o dispositivo de visualização 600 (se presente) incorpora um ou mais entre um componente de processador 650, um armazenamento 660, um display 680 e uma interface 690 para o acoplamento do dispositivo de visualização 600 na rede 999. O armazenamento 660 armazena uma rotina de controle 640 e os dados de vídeo convertidos para um valor superior 630. A rotina de controle 640 incorpora uma sequência de instruções operacionais no componente de processador 650 na respectiva função como um componente de processador principal do dispositivo de visualização 600 para a implementação de lógica para efetuar várias funções. Na execução da rotina de controle 640 em algumas modalidades, o componente de processador 650 pode receber os dados de vídeo convertidos para um valor superior 630 representando o vídeo de movimento 880 do dispositivo de computação 300, e pode apresentá-los visualmente no display 680.
[0074] A FIG. 2 ilustra um diagrama de blocos de uma modalidade alternativa do sistema de processamento de vídeo 1000 que inclui uma modalidade alternativa do dispositivo de computação 300. A modalidade alternativa do sistema de apresentação de vídeo 1000 da FIG. 2 é similar à modalidade da FIG. 1 de muitas maneiras e, desse modo, são usados números de referência iguais para fazer referência a elementos iguais. Todavia, ao contrário do dispositivo de computação 300 da FIG. 1, o dispositivo de computação 300 da FIG. 2 não incorpora o controlador 400. Desse modo, contrariamente ao dispositivo de computação 300 da FIG. 1, no dispositivo de computação 300 da FIG. 2, é o componente de processador 350 que executa a rotina de controle 440 em vez de ser um componente de processador 450 a fazê-lo. Por consequência, na modalidade alternativa do sistema de apresentação de vídeo 1000 da FIG. 2, o componente de processador 350 pode converter para um valor superior a taxa de fotogramas da representação do vídeo de movimento 880 dos dados de vídeo de base 130 para a geração dos dados de vídeo convertidos para um valor superior 630.
[0075] Em várias modalidades, cada um dos componentes de processador 350, 450 e 650 pode incluir qualquer um de uma grande variedade de processadores comercialmente disponíveis. Ademais, um ou mais desses componentes de processador podem incluir múltiplos processadores, um processador de múltiplos threads, um processador de múltiplos núcleos (quer os múltiplos núcleos coexistam nos mesmos dies (retículos) ou em dies separados), e/ou uma arquitetura de múltiplos processadores de alguma outra variedade pela qual múltiplos processadores fisicamente separados se encontram de algum modo conectados.
[0076] Embora cada um dos componentes de processador 350, 450 e 650 possa incluir qualquer um de uma variedade de tipos de processador, se prevê que o componente de processador 450 do controlador 400 (se presente) possa ser de certa forma especializado e/ou otimizado para efetuar tarefas relacionadas com gráficos e/ou vídeo. Mais amplamente, se prevê que o controlador 400 incorpora um subsistema de gráficos do dispositivo de computação 300 para permitir o desempenho de tarefas relacionadas com renderização de gráficos, compressão de vídeo, redimensionamento de imagens, etc., usando componentes separados e distintos do componente de processador 350 e dos respectivos componentes mais intimamente relacionados.
[0077] Em várias modalidades, cada um dos armazenamentos 360, 460 e 660 pode se basear em qualquer um de uma vasta variedade de tecnologias de armazenamento de informações, possivelmente incluindo tecnologias voláteis requerendo o fornecimento ininterrupto de energia elétrica, e possivelmente incluindo tecnologias implicando o uso de meios de armazenamento legíveis por máquina que possam ou não ser removíveis. Desse modo, cada um desses armazenamentos pode incluir qualquer um de uma grande variedade de tipos (ou combinação de tipos) de dispositivo de armazenamento, incluindo, sem limitação, memória somente de leitura (ROM - Read-Only Memory), memória de acesso aleatório (RAM - Random-Access Memory), RAM dinâmica (DRAM - Dynamic RAM), DRAM de Taxa de Transferência Dobrada (DDR-DRAM - Double-Data-Rate DRAM), DRAM síncrona (SDRAM - Synchronous DRAM), RAM estática (SRAM - Static RAM), ROM programável (PROM - Programmable ROM), ROM programável apagável (EPROM - Erasable Programmable ROM), ROM programável apagável eletricamente (EEPROM - Electrically Erasable Programmable ROM), memória flash, memória de polímero (p. ex., memória de polímero ferroelétrica), memória ovônica, memória ferroelétrica ou de mudança de fase, memória SONOS (Silicon-Oxide-Nitride-Oxide-Silicon - Silício-Óxido-Nitreto-Óxido-Silício), placas magnéticas ou ópticas, uma ou mais unidades de disco ferromagnéticas individuais ou uma pluralidade de dispositivos de armazenamento organizados em um ou mais arranjos (p. ex., múltiplas unidades de disco ferromagnéticas organizadas em um arranjo de Conjunto Redundante de Discos Independentes ou um arranjo RAID). Deve ser notado que, embora cada um desses armazenamentos seja representado como um único bloco, um ou mais desses pode incluir múltiplos dispositivos de armazenamento que podem se basear em diferentes tecnologias de armazenamento. Desse modo, por exemplo, um ou mais desses armazenamentos representados pode representar uma combinação de uma unidade óptica ou um leitor de cartões de memória flash por via dos quais os programas e/ou dados podem ser armazenados e transmitidos em alguma forma de meios de armazenamento legíveis por máquina, uma unidade de disco ferromagnética para o armazenamento de programas e/ou dados localmente durante um período de tempo relativamente prolongado, e um ou mais dispositivos de memória de estado sólido voláteis permitindo um acesso relativamente rápido aos programas e/ou dados (p. ex., SRAM ou DRAM). Deve ser igualmente notado que cada um desses armazenamentos pode ser constituído por múltiplos componentes de armazenamento com base na tecnologia de armazenamento idêntica, mas que pode ser mantido em separado como resultado de especialização em uso (p. ex., alguns dispositivos DRAM empregues como um armazenamento principal enquanto outros dispositivos DRAM empregues como um buffer de fotogramas distinto de um controlador de gráficos).
[0078] Em várias modalidades, as interfaces 190, 390 e 690 podem empregar qualquer uma de uma grande variedade de tecnologias de sinalização permitindo que esses dispositivos de computação sejam acoplados em outros dispositivos como foi descrito. Cada uma dessas interfaces inclui um conjunto de circuitos providenciando, pelo menos, algumas das funcionalidades requisitas para permitir esse acoplamento. Todavia, cada uma dessas interfaces pode igualmente ser, pelo menos parcialmente, implementada com sequências de instruções executadas pelos correspondentes componentes de processador (p. ex., para a implementação de uma pilha de protocolos ou outras funcionalidades). Independente de serem empregues cabos elétrica e/ou opticamente condutivos, essas interfaces podem empregar sinalização e/ou protocolos em conformidade com qualquer uma de uma variedade de normas da indústria, incluindo, sem limitação, RS-232C, RS-422, USB, Ethernet (IEEE-802.3) ou IEEE-1394. Quando o uso da transmissão de sinais sem fios for implicado, essas interfaces podem empregar sinalização e/ou protocolos em conformidade com qualquer uma de uma variedade de normas da indústria, incluindo, sem limitação, IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20 (habitualmente referidas como “Mobile Broadband Wireless Access” (Acesso Móvel de Banda Larga Sem Fios)); Bluetooth; ZigBee; ou um serviço de radiotelefone celular, como por exemplo GSM com GPRS (General Packet Radio Service - Serviço de Rádio de Pacote Geral) (GSM/GPRS), CDMA/1xRTT, Taxas de Dados Ampliadas para a Evolução Global (EDGE - Enhanced Data Rates for Global Evolution), Dados de Evolução Somente/Otimizados (EV-DO - Evolution Data Only/Optimized), Evolução para Dados e Voz (EV-DV - Evolution For Data and Voice), Acesso aos Pacotes de Alta Velocidade (HSDPA - High Speed Downlink Packet Access), Acesso aos Pacotes de Ligação Ascendente de Alta Velocidade (HSUPA - High Speed Uplink Packet Access), 4G LTE, etc.
[0079] A FIG. 9 ilustra um diagrama de blocos de uma porção de uma modalidade do sistema de processamento de vídeo 1000 da FIG. 1 ou FIG. 2 em maior detalhe. Mais especificamente, a FIG. 9 representa aspectos do ambiente operacional do dispositivo de computação 300 no qual os componentes de processador 350 e/ou 450, na execução das rotinas de controle 340 e/ou 440, convertem para um valor superior a taxa de fotogramas dos dados de vídeo de base 130 representando o vídeo de movimento 880 para a geração dos dados de vídeo convertidos para um valor superior 630. Como pode ser reconhecido pelos peritos na técnica, as rotinas de controle 340 e 440, incluindo os componentes pelos quais cada uma é composta, são selecionadas para serem operacionais em qualquer tipo de processador ou processadores que são selecionados para a implementação de componentes de processador 350 ou 450 aplicáveis.
[0080] Em várias modalidades, cada uma das rotinas de controle 340 e 440 pode incluir um ou mais entre um sistema operacional, controladores de dispositivo e/ou rotinas ao nível da aplicação (p. ex., os chamados “pacotes de software" fornecidos nos meios de disco, "applets" (miniaplicações) obtidas desde um servidor remoto, etc.). Quando se encontra incluído um sistema operacional, o sistema operacional pode ser qualquer um de uma variedade de sistemas operacionais disponíveis apropriados para quaisquer componentes de processador 350 ou 450 correspondentes. Quando se encontram incluídos um ou mais controladores de dispositivo, esses controladores de dispositivo podem fornecer suporte para qualquer um de uma variedade de outros componentes, quer componentes de hardware quer de software, do dispositivo de computação 300 ou do controlador 400.
[0081] A rotina de controle 340 pode incluir um componente de comunicações 349 executável por quaisquer componentes de processador 350 ou 450 para operar a interface 390 para a transmissão e recepção de sinais por via da rede 999, como foi descrito. Entre os sinais recebidos podem existir sinais transmitindo os dados de vídeo de base 130 e/ou os dados de vídeo convertidos para um valor superior 630 entre um ou mais dos dispositivos de computação 100, 300 ou 600 por via da rede 999. Como será reconhecido pelos peritos na técnica, o componente de comunicações 349 é selecionado para ser operável com qualquer tipo de tecnologia de interface selecionada para a implementação da interface 390.
[0082] A rotina de controle 440 pode incluir o componente de interpolação 441 executável pelo componente de processador 350 e/ou 450 para analisar pares adjacentes dos fotogramas de base 132 do fluxo de base 131 dos dados de vídeo de base 130 para a geração de vetores de movimento dos dados de vetor de movimento 230 e/ou fotogramas interpolados 332 correspondentes, como foi descrito. Como foi descrito, o componente de interpolação 441 pode condicionar a respectiva geração de cada fotograma interpolado 332 na recepção de uma indicação de que o fotograma interpolado 332 se encontra selecionado para o uso.
[0083] A rotina de controle 440 pode incluir o componente de análise 442 executável pelo componente de processador 350 e/ou 450 para analisar os pares adjacentes dos fotogramas de base 132 juntamente com os vetores de movimento correspondentes gerados pelo componente de interpolação 441 para a determinação sobre se o fotograma interpolado 332 correspondente será ou não usado. Como representado, o componente de análise 442 pode incorporar um detector de margens 4424, um detector de multiplicidade 4425 e um componente de comparação 4426. O detector de margens 4424 pode analisar cada fotograma de base 132 de um par de fotogramas de base adjacentes 132 no fluxo de base 131 para a determinação de localizações de margens definidas por valores de cor de pixel de pixels de cada um desses fotogramas de base, e pode armazenar indicações das localizações dessas margens (p. ex., os mapas de margens 432p e/ou 432f) como os dados de margens 430. O detector de multiplicidade 4425 pode analisar, pelo menos, as indicações dos vetores de movimento armazenados como os dados de vetor de movimento 230 para a determinação da multiplicidade de uso dos valores de cor de pixel de cada pixel de cada fotograma de base 132 do par de fotogramas de base adjacentes 132 para determinar quais desses pixels pertencem a lacunas (p. ex., que pixels têm uma multiplicidade de uso de zero) e/ou colisões (p. ex., que pixels têm uma multiplicidade de uso superior a um) de cada um desses fotogramas de base. O detector de multiplicidade 4425 pode armazenar indicações das localizações dessas lacunas (p. ex., os mapas de lacunas 532ph e/ou 532fh) e/ou colisões (p. ex., os mapas de colisões 532pc e/ou 532fc) como os dados de multiplicidade 530. Em alternativa, o detector de multiplicidade 4425 pode armazenar um único mapa para cada um dos fotogramas de base 132 do par de fotogramas de base (p. ex., os fotogramas de base 132p e 132f) indicando os valores de multiplicidade para cada pixel.
[0084] Como foi descrito, o componente de interpolação 441 pode condicionar a respectiva geração de cada fotograma interpolado 332 na recepção de uma indicação de que o fotograma interpolado 332 se encontra selecionado para o uso. Nessas modalidades, o componente de análise 442 pode sinalizar o componente de interpolação 441 com uma indicação dessas. Em alternativa ou adicionalmente, a rotina de controle 440 pode incluir um componente de seleção 447 executável pelo componente de processador 350 e/ou 450 para selecionar, para cada par de fotogramas de base adjacentes 132, o fotograma interpolado correspondente 332 ou uma repetição de um dos fotogramas de base 132 do par de fotogramas de base adjacentes 132 para a inserção entre o par de fotogramas de base adjacentes 132 no fluxo convertido para um valor superior 631 dos dados de vídeo convertidos para um valor superior 630.
[0085] A rotina de controle 340 pode incluir um componente de apresentação 348 executável pelo componente de processador 350 para operar o display 380 de modo a apresentar visualmente o vídeo de movimento 880 com a taxa de fotogramas convertida para um valor superior permitida pelo fluxo convertido para um valor superior representando o vídeo de movimento 880 nos dados de vídeo convertidos para um valor superior 630. Em alternativa, como tem sido descrito, os dados de vídeo convertidos para um valor superior 630 podem ser transmitidos para outro dispositivo (p. ex., o dispositivo de visualização 600) para um armazenamento remoto e/ou apresentação visual.
[0086] A FIG. 10 ilustra uma modalidade de um fluxo lógico 2100. O fluxo lógico 2100 pode ser representativo de algumas ou todas as operações executadas por uma ou mais modalidades aqui descritas. Mais especificamente, o fluxo lógico 2100 pode ilustrar operações efetuadas pelo componente de processador 350 ou 450 na execução, pelo menos, da rotina de controle 440, e/ou efetuadas por outros componentes do dispositivo de computação 300 ou do controlador 400, respectivamente.
[0087] Em 2110, um componente de processador de um dispositivo de computação (p. ex., o componente de processador 350 do dispositivo de computação 300, ou o componente de processador 450 do controlador 400) analisa um par de fotogramas de base que são temporalmente adjacentes um em relação ao outro em um fluxo de vídeo de base (p. ex., um par de fotogramas de base 132 do fluxo de base 131, como por exemplo os fotogramas de base 132p e 132f) para derivar vetores de movimento. Como anteriormente descrito, qualquer um de uma variedade de algoritmos pode ser empregue para analisar pares de fotogramas de base adjacentes para detectar um ou mais do que parecem ser objetos em movimento entre os dois fotogramas de base e para derivar um ou mais vetores de movimento indicativos de uma extensão de movimento, uma direção de movimento e os pixels dos dois fotogramas de base que estão associados ao movimento. Como também descrito anteriormente, os vetores de movimento são vetores de movimento bilateral indicando a direção e a extensão de movimento do que foi identificado como objetos em movimento. Contudo, como foi igualmente descrito, cada um desses algoritmos é conhecido por, pelo menos ocasionalmente, identificar erradamente objetos em movimento e gerar assim vetores de movimento errados.
[0088] Em 2120, o par de fotogramas de base e os vetores de movimento são analisados em conjunto para a determinação da multiplicidade de uso de valores de cor de pixel de cada um dos pixels de cada um dos fotogramas de base na geração de valores de cor de pixel de um fotograma interpolado que é gerado (ou que pode ser gerado) desde o par de fotogramas de base e dos vetores de movimento. Os mapas de lacunas indicando pixels com valores de cor de pixel que não são usados de modo algum (p. ex., a respectiva multiplicidade de uso corresponde a zero) e/ou os mapas de colisões indicando pixels com valores de cor de pixel que são usados mais de uma vez (p. ex., a respectiva multiplicidade é superior a um) podem ser gerados para fornecer indicações das localizações dessas lacunas e colisões.
[0089] Em 2130, o par de fotogramas de base é analisado para a determinação de localizações de margens indicadas por graus relativamente altos de diferença em valores de cor de pixel de pixels adjacentes em cada um dos fotogramas de base. Como anteriormente descrito, qualquer um de uma variedade de algoritmos pode ser empregue para a determinação das localizações de margens em cada um dos fotogramas de base do par de fotogramas de base. Os mapas de margens indicando que pixels coincidem com as localizações de margens podem ser gerados para cada um dos fotogramas de base.
[0090] Em 2140, o mapa de margens e o mapa de lacunas de cada um dos fotogramas de base são comparados para a determinação da quantidade de pixels de cada um dos fotogramas de base que se encontram em localizações onde as margens e as lacunas coincidem. Correspondentemente, em 2150, o mapa de margens e o mapa de colisões de cada um dos fotogramas de base são comparados para a determinação da quantidade de pixels de cada um dos fotogramas de base que se encontram em localizações onde as margens e as colisões coincidem.
[0091] Em 2160, um valor de critério é derivado para cada um dos fotogramas de base desde a soma da quantidade de pixels localizados onde as margens e as lacunas coincidem e da quantidade de pixels localizados onde as margens e as colisões coincidem. Como anteriormente descrito, os valores de critério são indicativos do grau de artefatos visuais envolvendo margens de objetos em movimento que se encontram presentes em um fotograma interpolado gerado desde (ou que possa ser gerado desde) o par de fotogramas de base e os vetores de movimento.
[0092] Em 2170, o maior dos dois valores de critério é comparado com um limiar predeterminado. Se o limiar não for excedido em 2180, o fotograma interpolado gerado desde (ou a ser gerado desde) o par de fotogramas de base e os vetores de movimento é usado na geração de um fluxo de vídeo convertido para um valor superior desde o fluxo de vídeo de base em 2182. Todavia, se o limar for excedido em 2180, um dos fotogramas de base do par de fotogramas de base é repetido, e essa repetição desse fotograma de base é usada na geração do fluxo de vídeo convertido para um valor superior desde o fluxo de vídeo de base em 2190.
[0093] A FIG. 11 ilustra uma modalidade de uma arquitetura de processamento exemplar 3000 adequada para a implementação de várias modalidades como anteriormente descrito. Mais especificamente, a arquitetura de processamento 3000 (ou variantes da mesma) pode ser implementada como parte de um ou mais dos dispositivos de computação 100, 300 ou 600, e/ou como parte do controlador 400. Deve ser notado que são atribuídos aos componentes da arquitetura de processamento 3000 números de referência nos quais os últimos dois dígitos correspondem aos últimos dois dígitos de números de referência de, pelo menos, alguns dos componentes anteriormente representados e descritos como parte dos dispositivos de computação 100, 300 e 600, bem como o controlador 400. Isso é efetuado como uma ajuda na correlação de componentes de cada.
[0094] A arquitetura de processamento 3000 inclui vários elementos geralmente empregues no processamento digital, incluindo, sem limitação, um ou mais processadores, processadores de múltiplos núcleos, coprocessadores, unidades de memória, chipsets, controladores, periféricos, interfaces, osciladores, dispositivos de cronometragem, placas de vídeo, placas de áudio, componentes multimídia de entrada/saída (E/S), fontes de alimentação, etc. Como usado nesse pedido, os termos “sistema” e “componente” pretendem se referir a uma entidade de um dispositivo de computação no qual o processamento digital é realizado, essa entidade sendo hardware, uma combinação de hardware e software, software ou software em execução, cujos exemplos são providenciados por essa arquitetura de processamento exemplar representada. Por exemplo, um componente pode ser, mas não é limitado a ser, um processo em execução em um componente de processador, o próprio componente de processador, um dispositivo de armazenamento (p. ex., uma unidade de disco rígido, múltiplas unidades de armazenamento em um arranjo, etc.) que podem empregar um meio de armazenamento óptico e/ou magnético, um objeto de software, uma sequência executável de instruções, um thread de execução, um programa e/ou um dispositivo de computação inteiro (p. ex., um computador inteiro). Como ilustração, tanto uma aplicação em execução em um servidor como o servidor podem ser um componente. Um ou mais componentes podem residir dentro de um processo e/ou thread de execução, e um componente pode ser localizado em um dispositivo de computação e/ou distribuído entre dois ou mais dispositivos de computação. Ademais, os componentes podem ser comunicativamente acoplados uns nos outros por vários tipos de meios de comunicação para a coordenação de operações. A coordenação pode envolver a troca unidirecional ou bidirecional de informações. Por exemplo, os componentes podem comunicar informações na forma de sinais comunicados por via dos meios de comunicação. As informações podem ser implementadas como sinais atribuídos a uma ou mais linhas de sinais. Uma mensagem (incluindo uma mensagem de comando, estado, endereço ou dados) pode ser um desses sinais ou pode ser uma pluralidade desses sinais, e pode ser transmitida em série ou substancialmente em simultâneo por qualquer uma de uma variedade de conexões e/ou interfaces.
[0095] Como representado, na implementação da arquitetura de processamento 3000, um dispositivo de computação inclui, pelo menos, um componente de processador 950, um armazenamento 960, uma interface 990 para outros dispositivos e um acoplamento 959. Como será explicado, dependendo de vários aspetos de um dispositivo de computação implementando a arquitetura de processamento 3000, incluindo o respectivo uso pretendido e/ou condições de uso, esse dispositivo de computação pode ainda incluir componentes adicionais, como por exemplo, sem limitação, uma interface de visualização 985.
[0096] O acoplamento 959 inclui um ou mais barramentos, interconexões ponto-a-ponto, transceptores, buffers, comutadores de ponto de cruzamento, e/ou outros condutores e/ou lógica que acopla comunicativamente, pelo menos, o componente de processador 950 no armazenamento 960. O acoplamento 959 pode ainda acoplar o componente de processador 950 em um ou mais entre a interface 990, o subsistema de áudio 970 e a interface de visualização 985 (dependendo de quais desses e/ou outros componentes se encontrem igualmente presentes). Com o componente de processador 950 sendo assim acoplado por acoplamentos 959, o componente de processador 950 é capaz de efetuar as várias tarefas descritas pormenorizadamente acima para qualquer um dos dispositivos de computação descritos acima que implemente a arquitetura de processamento 3000. O acoplamento 959 pode ser implementado com qualquer uma de uma variedade de tecnologias ou combinações de tecnologias pelas quais os sinais são transmitidos óptica e/ou eletricamente. Ademais, pelo menos porções de acoplamentos 959 podem empregar cronometragens e/ou protocolos em conformidade com qualquer uma de uma grande variedade de normas da indústria, incluindo, sem limitação, Porta Gráfica Acelerada (AGP - Accelerated Graphics Port), CardBus, EISA (Extended Industry Standard Architecture - Arquitetura de Normas da Indústria Alargada), Arquitetura Microcanal (MCA - Micro Channel Architecture), NuBus, Interconector de Componentes Periféricos (Alargado) (PCI-X - Peripheral Component Interconnect (Extended)), PCI Express (PCI-E), barramento PCMCIA (Personal Computer Memory Card International Association), HyperTransport™, QuickPath, e afins.
[0097] Como anteriormente descrito, o componente de processador 950 (correspondente aos componentes de processador 350, 450 e 650) pode incluir qualquer um de uma grande variedade de processadores comercialmente disponíveis, empregando qualquer um de uma grande variedade de tecnologias e implementado com um ou mais núcleos fisicamente combinados em um número qualquer de modos.
[0098] Como anteriormente descrito, o armazenamento 960 (correspondente aos armazenamentos 360, 460 e 660) pode ser constituído por um ou mais dispositivos de armazenamento distintos com base em qualquer uma de uma grande variedade de tecnologias ou combinações de tecnologias. Mais especificamente, como representado, o armazenamento 960 pode incluir um ou mais entre um armazenamento volátil 961 (p. ex., armazenamento de estado sólido com base em uma ou mais formas de tecnologia RAM), um armazenamento não volátil 962 (p. ex., armazenamento de estado sólido, ferromagnético ou outro não requerendo um fornecimento constante de energia elétrica para preservar os respectivos conteúdos), e um armazenamento de meios removíveis 963 (p. ex., disco removível ou armazenamento de cartão de memória de estado sólido pelos quais as informações podem ser transmitidas entre dispositivos de computação). Essa representação do armazenamento 960 como possivelmente incluindo múltiplos tipos distintos de armazenamento se encontra em reconhecimento do uso comum de mais de um tipo de dispositivo de armazenamento nos dispositivos de computação nos quais um tipo fornece capacidades de escrita e leitura relativamente rápidas permitindo uma manipulação mais rápida de dados pelo componente de processador 950 (mais possivelmente usando uma tecnologia “volátil” requerendo constantemente energia elétrica) enquanto outro tipo fornece uma densidade relativamente alta de armazenamento não volátil (mas fornece provavelmente capacidades de escrita e leitura relativamente lentas).
[0099] Dadas as características muitas vezes diferentes dos diferentes dispositivos de armazenamento empregando tecnologias diferentes, é igualmente comum que esses dispositivos de armazenamento diferentes sejam acoplados em outras porções de um dispositivo de computação por diferentes controladores de armazenamento acoplados nos respectivos dispositivos de armazenamento diferentes por via de interfaces diferentes. Como exemplo, quando o armazenamento volátil 961 se encontra presente e se baseia na tecnologia RAM, o armazenamento volátil 961 pode ser comunicativamente acoplado para o acoplamento 959 por um controlador de armazenamento 965a fornecendo uma interface apropriada ao armazenamento volátil 961 que talvez empregue endereçamento de linhas e colunas, e em que o controlador de armazenamento 965a possa efetuar atualização de linhas e/ou outras tarefas de manutenção para ajudar na preservação de informações armazenadas dentro do armazenamento volátil 961. Como outro exemplo, em que o armazenamento não volátil 962 se encontra presente e inclui uma ou mais unidades de disco ferromagnéticas e/ou de estado sólido, o armazenamento não volátil 962 pode ser comunicativamente acoplado para o acoplamento 959 por um controlador de armazenamento 965b fornecendo uma interface apropriada ao armazenamento não volátil 962 que talvez empregue o endereçamento de blocos de informações e/ou de cilindros e sectores. Como outro exemplo ainda, em que o armazenamento de meios removíveis 963 se encontra presente e inclui uma ou mais unidades de disco ópticas e/ou de estado sólido empregando um ou mais pedaços de meio de armazenamento legível por máquina 969, o armazenamento de meios removíveis 963 pode ser comunicativamente acoplado para o acoplamento 959 por um controlador de armazenamento 965c fornecendo uma interface apropriada ao armazenamento de meios removíveis 963 que talvez empregue o endereçamento de blocos de informações, e em que o controlador de armazenamento 965c possa coordenar operações de leitura, eliminação e escrita de uma maneira específica para o prolongamento da duração do meio de armazenamento legível por máquina 969.
[00100] O armazenamento volátil 961 ou o armazenamento não volátil 962 pode incluir uma peça de fabricação na forma de um meio de armazenamento legível por máquina no qual uma rotina incluindo uma sequência de instruções executáveis pelo componente de processador 950 pode ser armazenada, dependendo das tecnologias nas quais cada uma se baseia. Como exemplo, quando o armazenamento não volátil 962 inclui unidades de disco ferromagnéticas (p. ex., as chamadas “unidades de disco rígido”), cada unidade de disco dessas emprega tipicamente um ou mais pratos rotativos nos quais um revestimento de partículas magneticamente responsivas é depositado e magneticamente orientado em vários padrões para o armazenamento de informações, como por exemplo uma sequência de instruções, de uma maneira semelhante ao meio de armazenamento, como por exemplo um disquete. Como outro exemplo, o armazenamento não volátil 962 pode ser constituído por bancos de dispositivos de armazenamento de estado sólido para o armazenamento de informações, como por exemplo sequências de instruções, de uma maneira semelhante a um cartão Compact Flash. Novamente, é comum empregar diferentes tipos de dispositivos de armazenamento em um dispositivo de computação em momentos diferentes para armazenar dados e/ou rotinas executáveis. Desse modo, uma rotina incluindo uma sequência de instruções a ser executada pelo componente de processador 950 pode ser inicialmente armazenada no meio de armazenamento legível por máquina 969, e o armazenamento de meios removíveis 963 pode ser subsequentemente empregue na cópia dessa rotina para o armazenamento não volátil 962 para um armazenamento mais a longo prazo não requerendo a presença continuada do meio de armazenamento legível por máquina 969 e/ou o armazenamento volátil 961 para permitir um acesso mais rápido pelo componente de processador 950 à medida que essa rotina é executada.
[00101] Como anteriormente descrito, a interface 990 (possivelmente correspondendo às interfaces 190, 390 ou 690) pode empregar qualquer uma de uma variedade de tecnologias de sinalização correspondentes a qualquer uma de uma variedade de tecnologias de comunicação que possa ser empregue para acoplar comunicativamente um dispositivo de computação em um ou mais outros dispositivos. Novamente, uma ou ambas de várias formas de sinalização com ou sem fios podem ser empregues para permitir que o componente de processador 950 interaja com dispositivos de entrada/saída (p. ex., o teclado 920 ou a impressora 925 de exemplo representados) e/ou outros dispositivos de computação, possivelmente por via de uma rede (p. ex., a rede 999) ou um conjunto interconectado de redes. No reconhecimento do caráter muitas vezes bastante diferente de múltiplos tipos de sinalização e/ou protocolos que têm de ser frequentemente suportados por qualquer dispositivo de computação, a interface 990 é representada como incluindo múltiplos controladores de interface diferentes 995a, 995b e 995c. O controlador de interface 995a pode empregar qualquer um de uma variedade de tipos de interface em série digital com fios ou interface sem fios de radiofrequência para a recepção de mensagens transmitidas em série desde dispositivos de entrada de usuário, como por exemplo o teclado representado 920. O controlador de interface 995b pode empregar qualquer um de uma variedade de sinalização sem fios ou à base de cabos, cronometragens e/ou protocolos para acessar outros dispositivos de computação por via da rede representada 999 (talvez uma rede constituída por um ou mais links, redes mais pequenas ou talvez a Internet). A interface 995c pode empregar qualquer um de uma variedade de cabos eletricamente condutivos permitindo o uso de transmissão de sinais em série ou em simultâneo para a transmissão de dados à impressora 925 representada. Outros exemplos de dispositivos que podem ser comunicativamente acoplados por um ou mais controladores de interface da interface 990 incluem, sem limitação, um microfone para monitorar sons de pessoas para aceitar comandos e/ou dados sinalizados por essas pessoas por via de voz ou outros sons que elas reproduzam, controles remotos, canetas Stylus, leitores de cartões, leitores de impressões digitais, luvas de interação em realidade virtual, tablets de entrada gráfica, joysticks, outros teclados, scanners de retina, o componente de entrada de toque de écrans táteis, trackballs, vários sensores, uma câmera ou série de câmeras para monitorar o movimento das pessoas para aceitar comandos e/ou dados sinalizados por essas pessoas por via de gestos e/ou expressões faciais, impressoras laser, impressoras a jato de tinta, robôs mecânicos, fresadoras, etc.
[00102] Quando um dispositivo de computação se encontra comunicativamente acoplado em (ou talvez incorpore realmente) um display (p. ex., o display 980 de exemplo representado), esse dispositivo de computação implementando a arquitetura de processamento 3000 pode incluir igualmente a interface de display 985. Embora possam ser empregues tipos mais generalizados de interface no acoplamento de modo comunicativo em um display, o processamento adicional um pouco especializado muitas vezes requerido na apresentação de modo visual de várias formas de conteúdo em um display, bem como a natureza um pouco especializada das interfaces à base de cabos usadas, fornece frequentemente uma interface de visualização distinta desejável. As tecnologias de sinalização com fios e/ou sem fios que podem ser empregues pela interface de visualização 985 em um acoplamento comunicativo do display 980 podem usar a sinalização e/ou os protocolos que se encontram em conformidade com qualquer uma de uma variedade de normas da indústria, incluindo, sem limitação, qualquer uma de uma variedade de interfaces de vídeo analógico, Interface de Vídeo Digital (DVI - Digital Video Interface), DisplayPort, etc.
[00103] A FIG. 12 ilustra uma modalidade de um sistema 4000. Em várias modalidades, o sistema 4000 pode ser representativo de um sistema ou uma arquitetura adequada para o uso com uma ou mais modalidades aqui descritas, como por exemplo o sistema de processamento de gráficos 1000; um ou mais dispositivos de computação 100, 300 ou 600; e/ou um ou mais dos fluxos lógicos 2100 ou 2200. As modalidades não se encontram limitadas a esse respeito.
[00104] Como ilustrado, o sistema 4000 pode incluir múltiplos elementos. Um ou mais elementos podem ser implementados usando um ou mais circuitos, componentes, registros, processadores, sub-rotinas de software, módulos ou qualquer combinação dos mesmos, como desejado para um determinado conjunto de restrições de desenho ou desempenho. Embora a FIG. 12 ilustre um número limitado de elementos em uma certa topologia como exemplo, pode ser entendido que podem ser usados mais ou menos elementos em qualquer topologia adequada no sistema 4000 como desejado para uma determinada implementação. As modalidades não são limitadas nesse contexto.
[00105] Nas modalidades, o sistema 4000 pode ser um sistema de meios, embora o sistema 4000 não seja limitado a esse contexto. Por exemplo, o sistema 4000 pode ser incorporado em um computador pessoal (PC), laptop, ultra-laptop, tablet, touchpad, computador portátil, computador de mão, palmtop, assistente pessoal digital (PDA - Personal Digital Assistant), telefone celular, combinação telefone celular/PDA, televisão, dispositivo inteligente (p. ex., telefone inteligente (smartphone), tablet inteligente ou televisão inteligente), dispositivo de Internet móvel (MID - Mobile Internet Device), dispositivo de mensagens, dispositivo de comunicação de dados, etc.
[00106] Nas modalidades, o sistema 4000 inclui uma plataforma 4900a acoplada em um display 4980. A plataforma 4900a pode receber conteúdo de um dispositivo de conteúdo, como por exemplo dispositivos de serviços de conteúdo 4900c ou dispositivos de distribuição de conteúdo 4900d ou outras fontes de conteúdo similares. Um controlador de navegação 4920 incluindo uma ou mais funcionalidades de navegação pode ser usado para a interação, por exemplo, com a plataforma 4900a e/ou o display 4980. Cada um desses componentes é descrito abaixo em mais detalhe.
[00107] Nas modalidades, a plataforma 4900a pode incluir qualquer combinação de um componente de processador 4950, chipset 4955, unidade de memória 4969, transceptor 4995, armazenamento 4962, aplicações 4940 e/ou subsistema de gráficos 4985. O chipset 4955 pode fornecer intercomunicações entre o circuito de processador 4950, unidade de memória 4969, transceptor 4995, armazenamento 4962, aplicações 4940 e/ou subsistema de gráficos 4985. Por exemplo, o chipset 4955 pode incluir um adaptador de armazenamento (não representado) capaz de providenciar intercomunicação com armazenamento 4962.
[00108] O componente de processador 4950 pode ser implementado usando qualquer dispositivo de processador ou lógico, e pode ser igual ou similar a um ou mais componentes de processador 150, 350, 450 ou 650 e/ou ao componente de processador 950 da FIG. 11.
[00109] A unidade de memória 4969 pode ser implementada usando quaisquer meios legíveis por máquina ou legíveis por computador capazes de armazenar dados, e pode ser igual ou similar aos meios de armazenamento 969 da FIG. 11.
[00110] O transceptor 4995 pode incluir um ou mais rádios capazes de transmitir e receber sinais usando várias técnicas de comunicação sem fios adequadas, e pode ser igual ou similar ao transceptor 995b da FIG. 11.
[00111] O display 4980 pode incluir qualquer display ou monitor tipo televisão, e pode ser igual ou similar a um ou mais dos displays 380 e 680 e/ou ao display 980 da FIG 11.
[00112] O armazenamento 4962 pode ser implementado como um dispositivo de armazenamento não volátil, e pode ser igual ou similar ao armazenamento não volátil 962 da FIG. 11.
[00113] O subsistema de gráficos 4985 pode efetuar o processamento de imagens, como por exemplo estáticas ou de vídeo para visualização. O subsistema de gráficos 4985 pode ser uma unidade de processamento gráfico (GPU - Graphics Processing Unit) ou uma unidade de processamento visual (VPU - Visual Processing Unit), por exemplo. Uma interface analógica ou digital pode ser usada para acoplar comunicativamente o subsistema de gráficos 4985 e o display 4980. Por exemplo, a interface pode ser qualquer uma entre Interface Multimídia de Alta Definição (HDMI - High-Definition Multimedia Interface), DisplayPort, HDMI sem fios e/ou técnicas em conformidade com HD sem fios. O subsistema de gráficos 4985 pode ser integrado no circuito de processador 4950 ou chipset 4955. O subsistema de gráficos 4985 pode ser uma placa autônoma acoplada comunicativamente no chipset 4955.
[00114] As técnicas de processamento de vídeo e/ou gráficos aqui descritas podem ser implementadas em várias arquiteturas de hardware. Por exemplo, a funcionalidade de vídeo e/ou gráficos pode ser integrada dentro de um chipset. Em alternativa, pode ser usado um processador de vídeo e/ou gráficos distinto. Como outra modalidade ainda, as funções de vídeo e/ou gráficos podem ser implementadas por um processador de uso geral, incluindo um processador de múltiplos núcleos. Em uma outra modalidade, as funções podem ser implementadas em um dispositivo eletrônico de consumidor.
[00115] Nas modalidades, os dispositivos de serviços de conteúdo 4900b podem ser hospedados por qualquer serviço nacional, internacional e/ou independente e assim acessível para a plataforma 4900a por via da Internet, por exemplo. Os dispositivos de serviços de conteúdo 4900b podem ser acoplados na plataforma 4900a e/ou no display 4980. A plataforma 4900a e/ou os dispositivos de serviços de conteúdo 4900b podem ser acoplados em uma rede 4999 para comunicar (p. ex., enviar e/ou receber) informações de multimídia de e para a rede 4999. Os dispositivos de distribuição de conteúdo 4900c podem igualmente ser acoplados na plataforma 4900a e/ou no display 4980.
[00116] Nas modalidades, os dispositivos de serviços de conteúdo 4900b podem incluir uma box de televisão por cabo, um computador pessoal, uma rede, um telefone, aparelho ou dispositivos com acesso à Internet capazes de distribuir conteúdo e/ou informações digitais, e qualquer outro dispositivo similar capaz de comunicar conteúdo de modo unidirecional ou bidirecional entre fornecedores de conteúdo e plataforma 4900a e display 4980, por via da rede 4999 ou diretamente. Será entendido que o conteúdo pode ser comunicado de modo unidirecional e/ou bidirecional de e para qualquer um dos componentes do sistema 4000 e um fornecedor de conteúdos por via da rede 4999. Os exemplos de conteúdo podem incluir quaisquer informações de multimídia incluindo, por exemplo, vídeo, música, informações médicas e sobre jogos, etc.
[00117] Os dispositivos de serviços de conteúdo 4900b recebem conteúdo, como por exemplo programação de televisão por cabo, incluindo informações de multimídia, informações digitais e/ou outro conteúdo. Os exemplos de fornecedores de conteúdo podem incluir quaisquer fornecedores de conteúdo de televisão por cabo ou satélite ou rádio ou Internet. Os exemplos fornecidos não pretendem limitar as modalidades.
[00118] Nas modalidades, a plataforma 4900a pode receber sinais de controle do controlador de navegação 4920 com uma ou mais funcionalidades de navegação. As funcionalidades de navegação do controlador de navegação 4920 podem ser usadas para a interação com uma interface de usuário 4880, por exemplo. Nas modalidades, o controlador de navegação 4920 pode ser um dispositivo apontador que pode ser um componente de hardware de computador (especificamente dispositivo de interface humana) que permite ao usuário introduzir dados espaciais (p. ex., contínuos e multidimensionais) em um computador. Muitos sistemas, como por exemplo interfaces gráficas de usuário (GUI - Graphical User Interfaces), e televisões e monitores, permitem ao usuário controlar e fornecer dados ao computador ou à televisão usando gestos físicos.
[00119] Os movimentos das funcionalidades de navegação do controlador de navegação 4920 podem ser refletidos em um display (p. ex., display 4980) por movimentos de um ponteiro, cursor, anel de focagem ou outros indicadores visuais apresentados no display. Por exemplo, sob o controle de aplicações de software 4940, as funcionalidades de navegação situadas no controlador de navegação 4920 podem ser mapeadas para funcionalidades de navegação virtual apresentadas na interface de usuário 4880. Nas modalidades, o controlador de navegação 4920 pode não ser um componente separado, mas integrado na plataforma 4900a e/ou no display 4980. Todavia, as modalidades não são limitadas aos elementos ou no contexto aqui ilustrado ou descrito.
[00120] Nas modalidades, os controladores (não ilustrados) podem incluir tecnologia para permitir que os usuários liguem e desliguem instantaneamente a plataforma 4900a como uma televisão com o toque de um botão após o arranque inicial, quando ativado, por exemplo. A lógica de programa pode permitir que a plataforma 4900a corra conteúdo para adaptadores multimídia ou outros dispositivos de serviços de conteúdo 4900b ou dispositivos de distribuição de conteúdo 4900c quando a plataforma se encontra “desligada”. Além disso, o chipset 4955 pode incluir suporte de hardware e/ou software para áudio de som surround 5.1 e/ou áudio de som surround 7.1 de alta definição, por exemplo. Os controladores podem incluir um controlador de gráficos para plataformas de gráficos integrados. Nas modalidades, o controlador de gráficos pode incluir uma placa gráfica PCI (Peripheral Component Interconnect - Interconexão do Componente Periférico) Express.
[00121] Nas várias modalidades, podem ser integrados qualquer um ou mais dos componentes ilustrados no sistema 4000. Por exemplo, podem ser integrados a plataforma 4900a e os dispositivos de serviços de conteúdo 4900b, ou podem ser integrados a plataforma 4900a e os dispositivos de distribuição de conteúdo 4900c, ou podem ser integrados a plataforma 4900a, os dispositivos de serviços de conteúdo 4900b e os dispositivos de distribuição de conteúdo 4900c, por exemplo. Nas várias modalidades, a plataforma 4900a e o display 4890 podem ser uma unidade integrada. O display 4980 e os dispositivos de serviço de conteúdo 4900b podem ser integrados, ou o display 4980 e os dispositivos de distribuição de conteúdo 4900c podem ser integrados, por exemplo. Esses exemplos não pretendem limitar as modalidades.
[00122] Em várias modalidades, o sistema 4000 pode ser implementado como um sistema sem fios, um sistema com fios ou uma combinação de ambos. Quando implementado como um sistema sem fios, o sistema 4000 pode incluir componentes e interfaces adequados para a comunicação em meios partilhados sem fios, como por exemplo uma ou mais antenas, transmissores, receptores, transceptores, amplificadores, filtros, lógica de controle, etc. Um exemplo de meios partilhados sem fios pode incluir porções de um espectro sem fios, como por exemplo o espectro RF e assim por diante. Quando implementado como um sistema com fios, o sistema 4000 pode incluir componentes e interfaces adequados para a comunicação em meios de comunicação com fios, como por exemplo adaptadores de E/S, conectores físicos para a conexão do adaptador de E/S a um meio de comunicação com fios correspondente, uma placa de interface de rede (NIC - Network Interface Card), controlador de disco, controlador de vídeo, controlador de áudio, etc. Os exemplos de meios de comunicação com fios podem incluir um fio, um cabo, condutores de metal, placa de circuito impresso (PCB - Printed Circuit Board), infraestrutura de integração (backplane), estrutura de comutadores, material semicondutor, par de fios entrançados, cabo coaxial, fibra óptica, etc.
[00123] A plataforma 4900a pode estabelecer um ou mais canais lógicos ou físicos para a comunicação de informações. As informações podem incluir informações de multimídia e informações de controle. As informações de multimídia podem se referir a quaisquer dados representando conteúdo destinado a um usuário. Os exemplos de conteúdo podem incluir, por exemplo, dados de uma conversação de voz, videoconferência, transmissão em fluxo de vídeo, mensagem de correio eletrônico (“email”), mensagem de voz (voice mail), símbolos alfanuméricos, gráficos, imagem, vídeo, texto, etc. Os dados de uma conversação de voz podem ser, por exemplo, informações de voz, períodos de silêncio, ruído de fundo, ruído de conforto, tons, etc. As informações de controle podem se referir a quaisquer comandos de representação de dados, instruções ou palavras de controle destinados a um sistema automatizado. Por exemplo, as informações de controle podem ser usadas para encaminhar informações de multimídia por um sistema, ou dar instruções a um nó para processar as informações de multimídia de uma maneira predeterminada. Contudo, as modalidades não são limitadas aos elementos ou no contexto ilustrado ou descrito na FIG. 12.
[00124] Como descrito acima, o sistema 4000 pode ser incorporado em variados estilos físicos ou fatores de forma. A FIG. 13 ilustra modalidades de um pequeno dispositivo de fator de forma 5000 no qual o sistema 4000 pode ser incorporado. Nas modalidades, por exemplo, o dispositivo 5000 pode ser implementado como um dispositivo de computação móvel com capacidades sem fios. Um dispositivo de computação móvel pode se referir a qualquer dispositivo tendo um sistema de processamento e uma fonte de alimentação móvel, como por exemplo uma ou mas baterias, por exemplo.
[00125] Como descrito acima, os exemplos de um dispositivo de computação móvel podem incluir um computador pessoal (PC), laptop, ultra-laptop, tablet, touchpad, computador portátil, computador de mão, palmtop, assistente pessoal digital (PDA), telefone celular, combinação telefone celular/PDA, televisão, dispositivo inteligente (p. ex., telefone inteligente (smartphone), tablet inteligente ou televisão inteligente), dispositivo de Internet móvel (MID), dispositivo de mensagens, dispositivo de comunicação de dados, etc.
[00126] Os exemplos de um dispositivo de computação móvel podem igualmente incluir computadores que sejam dispostos para serem usados por uma pessoa, como por exemplo um computador de pulso, computador de dedo, computador de anel, computador de óculos, computador de presilha de cinto, computador de braçadeira, computadores de sapato, computadores no vestuário e outros computadores usáveis. Nas modalidades, por exemplo, um dispositivo de computação móvel pode ser implementado como um smartphone capaz de executar aplicações de computador, bem como comunicações de voz e/ou comunicações de dados. Embora algumas modalidades possam ser descritas com um dispositivo de computação móvel implementado como um smartphone como exemplo, deve ser percebido que outras modalidades podem ser implementadas usando igualmente outros dispositivos de computação móveis sem fios. As modalidades não são limitadas nesse contexto.
[00127] Como ilustrado na FIG. 13, o dispositivo 5000 pode incluir um display 5980, um controlador de navegação 5920a, uma interface de usuário 5880, um invólucro 5905, um dispositivo de E/S 5920b e uma antena 5998. O display 5980 pode incluir qualquer unidade de visualização adequada para a apresentação de informações apropriadas para um dispositivo de computação móvel, e pode ser igual ou similar ao display 4980 da FIG. 12. O controlador de navegação 5920a pode incluir uma ou mais funcionalidades de navegação que podem ser usadas para a interação com a interface de usuário 5880, e pode ser igual ou similar ao controlador de navegação 4920 da FIG. 12. O dispositivo de E/S 5920b pode incluir qualquer dispositivo de E/S para a introdução de informações em um dispositivo de computação móvel. Os exemplos para o dispositivo de E/S 5920b podem incluir um teclado alfanumérico, um teclado numérico, um touchpad, teclas de entrada, botões, comutadores, comutadores basculantes, microfones, alto-falantes, software e dispositivo de reconhecimento de voz, etc. As informações podem igualmente ser introduzidas no dispositivo 5000 por via de um microfone. Essas informações podem ser digitalizadas por um dispositivo de reconhecimento de voz. As modalidades não são limitadas nesse contexto.
[00128] Mais geralmente, os vários elementos dos dispositivos de computação aqui descritos e representados podem incluir vários elementos de hardware, elementos de software ou uma combinação de ambos. Os exemplos de elementos de hardware podem incluir dispositivos, dispositivos lógicos, componentes, processadores, microprocessadores, circuitos, componentes de processador, elementos de circuito (p. ex., transistores, resistores, condensadores, indutores, etc.), circuitos integrados, circuitos integrados de aplicação específica (ASIC), dispositivos lógicos programáveis (PLD - Programmable Logic Devices), processadores de sinais digitais (DSP - Digital Signal Processors), arranjo de portas programável em campo (FPGA - Field Programmable Gate Array), unidades de memória, portas lógicas, registros, dispositivo semicondutor, chips, microchips, chipsets, etc.. Os exemplos de elementos de software podem incluir componentes de software, programas, aplicações, programas de computador, programas de aplicação, programas de sistema, programas de desenvolvimento de software, programas de máquina, software de sistema operacional, middleware, firmware, módulos de software, rotinas, sub-rotinas, funções, métodos, procedimentos, interfaces de software, interfaces de programação de aplicações (API - Application Program Interface), conjuntos de instruções, código de computação, código de computador, segmentos de código, segmentos de código de computador, palavras, valores, símbolos ou qualquer combinação dos mesmos. Todavia, a determinação sobre se uma modalidade é ou não implementada usando elementos de hardware e/ou elementos de software pode variar de acordo com um número qualquer de fatores, como por exemplo taxa computacional desejada, níveis de potência, tolerâncias ao calor, provisão do ciclo de processamento, taxas de dados de entrada, taxas de dados de saída, recursos de memória, velocidades de barramento de dados e outras restrições de desenho ou desempenho, como desejado para uma determinada implementação.
[00129] Algumas modalidades podem ser descritas usando a expressão “uma modalidade” juntamente com os respectivos derivados. Esses termos significam que uma determinada funcionalidade, estrutura ou característica descrita em conjunto com a modalidade se encontra incluída, pelo menos, em uma modalidade. A expressão “em uma modalidade” em vários locais no relatório descritivo não se refere sempre necessariamente à mesma modalidade. Ademais, algumas modalidades podem ser descritas usando a expressão “acoplado” e “conectado” juntamente com os respectivos derivados. Esses termos não tencionam ser necessariamente sinônimos uns dos outros. Por exemplo, algumas modalidades podem ser descritas usando os termos “conectado” e/ou “acoplado” para indicar que dois ou mais elementos se encontram em contato direto físico ou elétrico uns com os outros. Contudo, o termo “acoplado” pode igualmente significar que dois ou mais elementos não se encontram em contato direto uns com os outros, mas continuam cooperando ou interagindo uns com os outros. Ademais, podem ser combinados aspectos ou elementos de diferentes modalidades.
[00130] É enfatizado que o Resumo da Revelação é providenciado para permitir a um leitor verificar rapidamente a natureza da revelação técnica. É apresentado com a compreensão de que não será usado para interpretar ou limitar o escopo ou significado das reivindicações. Além disso, na Descrição Detalhada anterior, é possível verificar que várias funcionalidades se encontram agrupadas em conjunto em uma única modalidade com o propósito de simplificar a revelação. Esse método de revelação não deve ser interpretado como refletindo uma intenção de que as modalidades reivindicadas requerem mais funcionalidades que o expressamente referido em cada reivindicação. Preferivelmente, como refletem as seguintes reivindicações, a matéria de discussão inventiva assenta em menos da totalidade das funcionalidades de uma única modalidade revelada. Desse modo, as seguintes reivindicações são aqui incorporadas na Descrição Detalhada, com cada reivindicação se apresentando sozinha como uma modalidade separada. Nas reivindicações apensas, os termos “incluindo” e “no qual” são usados como os equivalentes comuns dos respectivos termos “compreendendo” e “em que”, respectivamente. Além do mais, “primeiro”, “segundo”, “terceiro”, etc. são meramente usados como rótulos e não pretendem impor requisitos numéricos nos respectivos objetos.
[00131] O descrito acima inclui exemplos da arquitetura revelada. Obviamente, não é possível descrever cada combinação concebível de componentes e/ou metodologias, mas um perito na técnica pode reconhecer que são possíveis muitas outras combinações e permutações. Conformemente, a nova arquitetura tenciona abranger todas essas alterações, modificações e variações que façam parte do espírito e escopo das reivindicações apensas. A revelação detalhada se concentra agora em fornecer exemplos que pertençam a outras modalidades. Os exemplos providenciados abaixo não pretendem ser limitativos.
[00132] No Exemplo 1, um dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento inclui um componente de análise para analisar um par de fotogramas de base temporalmente adjacentes de um fluxo de vídeo de base, os fotogramas de base incluindo um fotograma de base anterior e um fotograma de base seguinte, e um vetor de movimento associado ao movimento de um objeto entre o fotograma de base anterior e o fotograma de base seguinte para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado; e um componente de seleção para comparar o grau de artefatos visuais com um limiar e selecionar o fotograma interpolado para a inserção entre o fotograma de base anterior e o fotograma de base seguinte na conversão para um valor superior de uma taxa de fotogramas do fluxo de vídeo de base para a geração de um fluxo de vídeo convertido para um valor superior com base na comparação.
[00133] No Exemplo 2, que inclui a matéria de discussão de Exemplo 1, o componente de seleção pode inserir seletivamente uma cópia do fotograma de base anterior ou do fotograma de base seguinte entre o fotograma de base anterior e o fotograma de base seguinte em vez do fotograma interpolado com base na comparação.
[00134] No Exemplo 3, que inclui a matéria de discussão de qualquer um dos Exemplos 1 e 2, o dispositivo pode incluir um componente de interpolação para a análise do fotograma de base anterior e do fotograma de base seguinte para a geração do vetor de movimento.
[00135] No Exemplo 4, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 3, o componente de interpolação pode receber uma indicação do componente de seleção sobre se o fotograma interpolado é selecionado ou não para a inserção entre o fotograma de base anterior e o fotograma de base seguinte, e pode gerar seletivamente o fotograma interpolado desde o fotograma de base anterior, o fotograma de base seguinte e o vetor de movimento com base na indicação.
[00136] No Exemplo 5, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 4, o componente de análise pode incluir um detector de margens para a determinação de localizações de margens em cada um dos fotogramas de base anterior e seguinte.
[00137] No Exemplo 6, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 5, o componente de análise pode incluir um detector de multiplicidade para a determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um.
[00138] No Exemplo 7, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 6, o componente de análise pode incluir um componente de comparação para a determinação de uma primeira quantidade de pixels em cada um dos fotogramas de base anterior e seguinte nos quais a multiplicidade do uso de valores de cor de pixel corresponde a zero e isso coincide com uma margem, e para a determinação de uma segunda quantidade de pixels em cada um dos fotogramas de base anterior e seguinte, nos quais a multiplicidade do uso de valores de cor de pixel é superior a um e isso coincide com uma margem.
[00139] No Exemplo 8, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 7, o componente de comparação pode determinar um valor de critério para o fotograma de base anterior desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base anterior, pode determinar um valor de critério para o fotograma de base seguinte desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base seguinte, e pode comparar o maior do valor de critério do fotograma de base anterior e do valor de critério do fotograma de base seguinte com o limiar para a determinação sobre se deve ser selecionado ou não o fotograma interpolado para a inserção entre o fotograma de base anterior e o fotograma de base seguinte.
[00140] No Exemplo 9, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 8, o componente de comparação pode multiplicar a primeira quantidade de cada um dos fotogramas de base anterior e seguinte por um primeiro fator e pode multiplicar a segunda quantidade de cada um dos fotogramas de base anterior e seguinte por um segundo fator para o controle da ponderação relativa da primeira e da segunda quantidades na determinação dos valores de critério para cada um dos fotogramas de base anterior e seguinte.
[00141] No Exemplo 10, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 9, o componente de comparação pode dividir o valor de critério do fotograma de base anterior por uma quantidade de pixels do fotograma de base anterior em uma localização coincidente com uma margem, e pode dividir o valor de critério do fotograma de base seguinte por uma quantidade de pixels do fotograma de base seguinte em uma localização coincidente com uma margem.
[00142] No Exemplo 11, que inclui a matéria de discussão de qualquer um dos Exemplos 1 a 10, o dispositivo pode incluir pelo menos um entre um display para apresentar visualmente fotogramas do fluxo de vídeo convertido para um valor superior ou uma interface para transmitir dados de vídeo convertidos para um valor superior incluindo o fluxo de vídeo convertido para um valor superior a um dispositivo de visualização por via de uma rede que segue a conversão para um valor superior do fluxo de vídeo de base para a geração do fluxo de vídeo convertido para um valor superior, o fluxo de vídeo de base e o fluxo de vídeo convertido para um valor superior representando um vídeo de movimento.
[00143] No Exemplo 12, um dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento inclui um componente de análise para analisar um par de fotogramas de base temporalmente adjacentes de um fluxo de vídeo de base e, pelo menos, um vetor de movimento associado ao movimento de um objeto entre um fotograma de base anterior e um fotograma de base seguinte do par de fotogramas de base para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado derivado do par de fotogramas de base e o, pelo menos um, vetor de movimento; e um componente de interpolação para analisar o fotograma de base anterior e o fotograma de base seguinte para gerar, pelo menos, um vetor de movimento e gerar seletivamente o fotograma interpolado desde o par de fotogramas de base e o, pelo menos um, vetor de movimento com base em uma comparação do grau de artefatos visuais com um limiar.
[00144] No Exemplo 13, que inclui a matéria de discussão do Exemplo 12, o componente de análise pode incluir um detector de margens para a determinação de localizações em cada um dos fotogramas de base anterior e seguinte.
[00145] No Exemplo 14, que inclui a matéria de discussão de qualquer um dos Exemplos 12 e 13, o componente de análise pode incluir um detector de multiplicidade para a determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um.
[00146] No Exemplo 15, que inclui a matéria de discussão de qualquer um dos Exemplos 12 a 14, o componente de análise pode incluir um componente de comparação para a determinação de uma primeira quantidade de pixels em cada um dos fotogramas de base anterior e seguinte nos quais a multiplicidade do uso de valores de cor de pixel corresponde a zero e isso coincide com uma margem, e para a determinação de uma segunda quantidade de pixels em cada um dos fotogramas de base anterior e seguinte, nos quais a multiplicidade do uso de valores de cor de pixel é superior a um e isso coincide com uma margem.
[00147] No Exemplo 16, que inclui a matéria de discussão de qualquer um dos Exemplos 12 a 15, o componente de comparação pode determinar um valor de critério para o fotograma de base anterior desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base anterior, pode determinar um valor de critério para o fotograma de base seguinte desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base seguinte, e pode comparar o maior do valor de critério do fotograma de base anterior e do valor de critério do fotograma de base seguinte com o limiar para a determinação sobre se deve ser selecionado ou não o fotograma interpolado para a inserção entre o fotograma de base anterior e o fotograma de base seguinte.
[00148] No Exemplo 17, que inclui a matéria de discussão de qualquer um dos Exemplos 12 a 16, o dispositivo pode incluir pelo menos um entre um display para apresentar visualmente fotogramas do fluxo de vídeo convertido para um valor superior ou uma interface para transmitir dados de vídeo convertidos para um valor superior incluindo o fluxo de vídeo convertido para um valor superior a um dispositivo de visualização por via de uma rede que segue a conversão para um valor superior do fluxo de vídeo de base para a geração do fluxo de vídeo convertido para um valor superior, o fluxo de vídeo de base e o fluxo de vídeo convertido para um valor superior representando um vídeo de movimento.
[00149] No Exemplo 18, Um Método De Implementação Por Computação Para A Conversão Para Um Valor Superior De Uma Taxa De Fotogramas De Vídeo De Movimento Inclui A Análise De Um Par De Fotogramas De Base Temporalmente Adjacentes De Um Fluxo De Vídeo De Base, Os Fotogramas De Base Incluindo Um Fotograma De Base Anterior E Um Fotograma De Base Seguinte, E Um Vetor De Movimento Associado Ao Movimento De Um Objeto Entre O Fotograma De Base Anterior E O Fotograma De Base Seguinte Para A Determinação De Um Grau De Artefatos Visuais Envolvendo Uma Margem Do Objeto Em Um Fotograma Interpolado; E A Inserção De Modo Seletivo Do Fotograma Interpolado Entre O Fotograma De Base Anterior E O Fotograma De Base Seguinte Para A Conversão Para Um Valor Superior De Uma Taxa De Fotogramas Do Fluxo De Vídeo De Base Para A Geração De Um Fluxo De Vídeo Convertido Para Um Valor Superior Com Base Em Uma Comparação Do Grau De Artefatos Visuais Com Um Limiar.
[00150] No Exemplo 19, que inclui a matéria de discussão de Exemplo 18, o método pode incluir seletivamente a inserção de uma cópia do fotograma de base anterior ou do fotograma de base seguinte entre o fotograma de base anterior e o fotograma de base seguinte em vez do fotograma interpolado com base na comparação.
[00151] No Exemplo 20, que inclui a matéria de discussão de qualquer um dos Exemplos 18 e 19, o método pode incluir a análise do fotograma de base anterior e o fotograma de base seguinte para a geração do vetor de movimento.
[00152] No Exemplo 21, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 20, o método pode incluir a geração de modo seletivo do fotograma interpolado desde o fotograma de base anterior, do fotograma de base seguinte e do vetor de movimento com base na comparação.
[00153] No Exemplo 22, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 21, o método pode incluir a análise do fotograma de base anterior e do fotograma de base seguinte para a determinação de localizações de margens em cada.
[00154] No Exemplo 23, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 22, o método pode incluir a geração de um mapa de margens indicativo das localizações das margens para cada um dos fotogramas de base anterior e seguinte.
[00155] No Exemplo 24, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 23, o método pode incluir a análise, pelo menos, do vetor de movimento para a determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um.
[00156] No Exemplo 25, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 24, o método pode incluir a geração de um mapa de lacunas para cada um dos fotogramas de base anterior e seguinte indicativos das localizações de pixels dos quais os valores de cor de pixel não são usados na determinação de qualquer valor de cor de pixel do fotograma interpolado, e a geração de um mapa de colisões para cada um dos fotogramas de base anterior e seguinte indicativos das localizações de pixels dos quais os valores de cor de pixel não são usados na determinação de qualquer valor de cor de pixel do fotograma interpolado.
[00157] No Exemplo 26, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 25, o método pode incluir a determinação de uma primeira quantidade de pixels em cada um dos fotogramas de base anterior e seguinte nos quais a multiplicidade do uso de valores de cor de pixel corresponde a zero e isso coincide com uma margem, e a determinação de uma segunda quantidade de pixels em cada um dos fotogramas de base anterior e seguinte, nos quais a multiplicidade do uso de valores de cor de pixel é superior a um e isso coincide com uma margem.
[00158] No Exemplo 27, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 26, o método pode incluir a determinação de um valor de critério para o fotograma de base anterior desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base anterior, a determinação de um valor de critério para o fotograma de base seguinte desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base seguinte, e a comparação do maior do valor de critério do fotograma de base anterior e do valor de critério do fotograma de base seguinte com o limiar para a determinação sobre se deve ser inserido ou não o fotograma interpolado entre o fotograma de base anterior e o fotograma de base seguinte.
[00159] No Exemplo 28, que inclui a matéria de discussão de qualquer um dos Exemplos 18 a 27, o método pode incluir, pelo menos, uma entre a apresentação de modo visual de fotogramas do fluxo de vídeo convertido para um valor superior e a transmissão de dados de vídeo convertidos para um valor superior incluindo o fluxo de vídeo convertido para um valor superior a um dispositivo de visualização por via de uma rede que segue a conversão para um valor superior do fluxo de vídeo de base para a geração do fluxo de vídeo convertido para um valor superior, o fluxo de vídeo de base e o fluxo de vídeo convertido para um valor superior representando um vídeo de movimento.
[00160] No Exemplo 29, pelo menos um meio de armazenamento legível por máquina inclui instruções que, quando executadas por um dispositivo de computação, fazem com que o dispositivo de computação analise um par de fotogramas de base temporalmente adjacentes de um fluxo de vídeo de base e, pelo menos, um vetor de movimento associado ao movimento de um objeto entre um fotograma de base anterior e um fotograma de base seguinte do par de fotogramas de base para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado derivado do par de fotogramas de base e do, pelo menos um, vetor de movimento, e a seleção de modo seletivo do fotograma interpolado entre o fotograma de base anterior e o fotograma de base seguinte para a conversão para um valor superior de uma taxa de fotogramas do fluxo de vídeo de base para a geração de um fluxo de vídeo convertido para um valor superior com base em uma comparação do grau de artefatos visuais com um limiar.
[00161] No Exemplo 30, que inclui a matéria de discussão de Exemplo 29, é possível fazer com que o dispositivo de computação insira seletivamente uma cópia do fotograma de base anterior ou do fotograma de base seguinte entre o fotograma de base anterior e o fotograma de base seguinte em vez do fotograma interpolado com base na comparação.
[00162] No Exemplo 31, que inclui a matéria de discussão de qualquer um dos Exemplos 29 e 30, é possível fazer com que o dispositivo de computação analise o fotograma de base anterior e o fotograma de base seguinte para a geração do, pelo menos um, vetor de movimento.
[00163] No Exemplo 32, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 31, é possível fazer com que o dispositivo de computação analise o fotograma de base anterior e o fotograma de base seguinte para a determinação de localizações de margens em cada.
[00164] No Exemplo 33, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 32, é possível fazer com que o dispositivo de computação analise pelo menos o, pelo menos um, vetor de movimento para a determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um.
[00165] No Exemplo 34, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 33, é possível fazer com que o dispositivo de computação determine uma primeira quantidade de pixels em cada um dos fotogramas de base anterior e seguinte nos quais a multiplicidade do uso de valores de cor de pixel corresponde a zero e isso coincide com uma margem, e determine uma segunda quantidade de pixels em cada um dos fotogramas de base anterior e seguinte, nos quais a multiplicidade do uso de valores de cor de pixel é superior a um e isso coincide com uma margem.
[00166] No Exemplo 35, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 34, é possível fazer com que o dispositivo de computação determine um valor de critério para o fotograma de base anterior desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base anterior, determine um valor de critério para o fotograma de base seguinte desde uma soma da primeira quantidade e da segunda quantidade do fotograma de base seguinte, e compare o maior do valor de critério do fotograma de base anterior e do valor de critério do fotograma de base seguinte com o limiar para a determinação sobre se deve ser inserido ou não o fotograma interpolado entre o fotograma de base anterior e o fotograma de base seguinte.
[00167] No Exemplo 36, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 35, é possível fazer com que o dispositivo de computação multiplique a primeira quantidade de cada um dos fotogramas de base anterior e seguinte por um primeiro fator, e multiplique a segunda quantidade de cada um dos fotogramas de base anterior e seguinte por um segundo fator para o controle da ponderação relativa da primeira e da segunda quantidades na determinação dos valores de critério para cada um dos fotogramas de base anterior e seguinte.
[00168] No Exemplo 37, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 36, é possível fazer com que o dispositivo de computação divida o valor de critério do fotograma de base anterior por uma quantidade de pixels do fotograma de base anterior em uma localização coincidente com uma margem, e divida o valor de critério do fotograma de base seguinte por uma quantidade de pixels do fotograma de base seguinte em uma localização coincidente com uma margem.
[00169] No Exemplo 38, que inclui a matéria de discussão de qualquer um dos Exemplos 29 a 37, é possível fazer com que o dispositivo de computação transmita os dados de vídeo convertidos para um valor superior incluindo o fluxo de vídeo convertido para um valor superior a um dispositivo de visualização por via de uma rede seguindo a conversão para um valor superior do fluxo de vídeo de base para a geração do fluxo de vídeo convertido para um valor superior, o fluxo de vídeo de base e o fluxo de vídeo convertido para um valor superior representando um vídeo de movimento.
[00170] No Exemplo 39, pelo menos um meio de armazenamento legível por máquina pode incluir instruções que, quando executadas por um dispositivo de computação, fazem com que o dispositivo de computação efetue qualquer uma das ações acima.
[00171] No Exemplo 40, um dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento pode incluir meios para efetuar qualquer uma das ações acima.

Claims (9)

1. Dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento caracterizado pelo fato de que compreende: um componente de análise (442) para analisar um par de fotogramas de base temporalmente adjacentes de um fluxo de vídeo de base, os fotogramas de base compreendendo um fotograma de base anterior (132p) e um fotograma de base seguinte (132f), e um vetor de movimento associado ao movimento de um objeto entre o fotograma de base anterior e o fotograma de base seguinte para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado (332); o componente de análise compreendendo um detector de multiplicidade (4425) para a determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel nos vetores de movimento na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um; o componente de análise compreendendo um componente de comparação (4426) para a determinação respectiva de uma primeira quantidade de pixels (Qeh) em cada um dos fotogramas de base anterior e seguinte pela respectiva contagem do número de pixels em cada fotograma nos quais ambos coincidem com uma margem e tendo a multiplicidade do uso de valores de cor de pixel corresponde a zero, para a determinação respectiva de uma segunda quantidade de pixels (Qec) em cada um dos fotogramas de base anterior e seguinte pela respectiva contagem do número de pixels em cada fotograma nos quais ambos coincidem com uma margem e tendo a multiplicidade do uso de valores de cor de pixel é superior a um, para a determinação de um valor de critério para o fotograma de base anterior desde uma soma da respectiva primeira quantidade de pixels (Qeh) e da respectiva segunda quantidade de pixels (Qec) do fotograma de base anterior, para a determinação de um valor de critério para o fotograma de base seguinte desde uma soma da respectiva primeira quantidade e da respectiva segunda quantidade do fotograma de base seguinte, e para comparar o maior dos valores de critério do fotograma de base anterior e o valor de critério do fotograma de base seguinte para um limiar; e um componente de seleção (447) para selecionar o fotograma interpolado para a inserção entre o fotograma de base anterior e o fotograma de base seguinte na conversão para um valor superior de uma taxa de fotogramas do fluxo de vídeo de base para a geração de um fluxo de vídeo convertido para um valor superior com base na comparação.
2. Dispositivo, de acordo com a reivindicação 1, caracterizado pelo fato de que o componente de seleção para inserir seletivamente uma cópia do fotograma de base anterior ou do fotograma de base seguinte entre o fotograma de base anterior e o fotograma de base seguinte em vez do fotograma interpolado com base na comparação.
3. Dispositivo, de acordo com a reivindicação 1, caracterizado pelo fato de que o componente de comparação para a multiplicação da primeira quantidade de cada um dos fotogramas de base anterior e seguinte por um primeiro fator e para a multiplicação da segunda quantidade de cada um dos fotogramas de base anterior e seguinte por um segundo fator para o controle da ponderação relativa da primeira e da segunda quantidades na determinação dos valores de critério para cada um dos fotogramas de base anterior e seguinte.
4. Método implementado por computador para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento caracterizado pelo fato de que compreende: a análise de um par de fotogramas de base temporalmente adjacentes de um fluxo de vídeo de base, os fotogramas de base compreendendo um fotograma de base anterior (132p) e um fotograma de base seguinte (132f), e um vetor de movimento associado ao movimento de um objeto entre o fotograma de base anterior e o fotograma de base seguinte para a determinação de um grau de artefatos visuais envolvendo uma margem do objeto em um fotograma interpolado (332); determinação de localizações de pixels em cada um dos fotogramas de base anterior e seguinte nos quais uma multiplicidade do uso de um valor de cor de pixel nos vetores de movimento na determinação de um valor de cor de pixel do fotograma interpolado é diferente de um; determinação de uma respectiva primeira quantidade de pixels (Qeh) em cada um dos fotogramas de base anterior e seguinte pela respectiva contagem do número de pixels em cada fotograma nos quais ambos coincidem com uma margem e tendo a multiplicidade do uso de valores de cor de pixel corresponde a zero, determinação de uma respectiva segunda quantidade de pixels (Qec) em cada um dos fotogramas de base anterior e seguinte pela respectiva contagem do número de pixels em cada fotograma nos quais ambos coincidem com uma margem e tendo a multiplicidade do uso de valores de cor de pixel é superior a um, determinação de um valor de critério para o fotograma de base anterior desde uma soma da respectiva primeira quantidade de pixels (Qeh) e da respectiva segunda quantidade de pixels (Qec) do fotograma de base anterior, determinação de um valor de critério para o fotograma de base seguinte desde uma soma da respectiva primeira quantidade e da respectiva segunda quantidade do fotograma de base seguinte, comparação do maior dos valores de critério do fotograma de base anterior e do valor de critério do fotograma de base seguinte para um limiar; e a inserção de um modo seletivo do fotograma interpolado entre o fotograma de base anterior e o fotograma de base seguinte para a conversão para um valor superior de uma taxa de fotogramas do fluxo de vídeo de base para a geração de um fluxo de vídeo convertido para um valor superior com base na comparação.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende a análise do fotograma de base anterior e do fotograma de base seguinte para a geração do vetor de movimento.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que compreende a geração do fotograma interpolado de um modo seletivo desde o fotograma de base anterior, do fotograma de base seguinte e do vetor de movimento com base na comparação.
7. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende a análise do fotograma de base anterior e do fotograma de base seguinte para a determinação de localizações de margens em cada.
8. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que compreende pelo menos uma entre a apresentação visual dos fotogramas do fluxo de vídeo convertido para um valor superior ou a transmissão de dados de vídeo convertidos para um valor superior compreendendo o fluxo de vídeo convertido para um valor superior para um dispositivo de visualização por via de uma rede que segue a conversão para um valor superior do fluxo de vídeo de base para a geração do fluxo de vídeo convertido para um valor superior, o fluxo de vídeo de base e o fluxo de vídeo convertido para um valor superior representando um vídeo de movimento.
9. Mídia de armazenamento legível por máquina, pelo menos uma, caracterizada pelo fato de que compreende instruções que, quando executadas por um componente de processador, fazem com que o componente de processador efetue o método conforme definido em qualquer uma das reivindicações 4-8.
BR112016015614-5A 2014-02-04 Dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento BR112016015614B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2014/000377 WO2015118370A1 (en) 2014-02-04 2014-02-04 Techniques for frame repetition control in frame rate up-conversion

Publications (2)

Publication Number Publication Date
BR112016015614A2 BR112016015614A2 (pt) 2017-08-08
BR112016015614B1 true BR112016015614B1 (pt) 2023-06-13

Family

ID=

Similar Documents

Publication Publication Date Title
CN105874783B (zh) 一种用于对运动视频帧速率进行上变频的设备、方法和计算机可读介质
US9721391B2 (en) Positioning of projected augmented reality content
US9191108B2 (en) Techniques for low power visual light communication
EP2834788A1 (en) Systems, methods, and computer program products for runtime adjustment of image warping parameters in a multi-camera system
US20160154564A1 (en) Electronic device and method for providing desktop user interface
US11127126B2 (en) Image processing method, image processing device, image processing system and medium
WO2019080702A1 (zh) 图像处理方法和装置
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
US20140184658A1 (en) Display device and display system including a plurality of display devices and electronic device using same
KR102450236B1 (ko) 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체
BR112013007715B1 (pt) Aparelho de processamento de informação
US9886734B2 (en) Techniques for graphics data prefetching
KR102248789B1 (ko) 이미지 해상도에 따라 리소스를 공유할 수 있는 애플리케이션 프로세서와 이를 포함하는 장치들
CN113657518B (zh) 训练方法、目标图像检测方法、装置、电子设备以及介质
TW201642115A (zh) 圖示調整方法、圖示調整系統與電子裝置
CN104571904B (zh) 一种信息处理方法及电子设备
CN106030583B (zh) 用于ransac算法的并行执行的技术
US9800801B2 (en) Techniques for processing subtitles
BR112016015614B1 (pt) Dispositivo para a conversão para um valor superior de uma taxa de fotogramas de vídeo de movimento
WO2023055466A1 (en) Techniques for generating data for an intelligent gesture detector
CA3003002A1 (en) Systems and methods for using image searching with voice recognition commands
EP3885949A1 (en) System management mode trust establishment for os level drivers
US20240020082A1 (en) Electronic device and frame sharing method using the same
US20180041564A1 (en) Electronic blackboard system
CN104571799B (zh) 信息处理方法及电子设备