|
Acadêmico(a): Rafael Leonhardt |
Título: Aplicação de Técnicas de Antialising com Processamento Distribuído |
|
Introdução: |
Com a evolução da informática, as quantidades de informações a serem processadas pelos computadores são cada vez maiores. Conseqüentemente, o tempo necessário para processar estas informações é cada vez maior. E devido à dinâmica de mercado estas informações necessitam ser obtidas mais rapidamente. O desenvolvimento de processadores mais poderosos tem contribuído para minimizar o tempo de processamento das informações. Contudo, os custos deste tipo de hardware continuam relativamente altos, o que intensifica a procura de soluções eficientes embutidas no próprio software ou mesmo utilizando-se de hardwares combinados entre si. Observando a área gráfica, verifica-se que esta gera um grande número de informação a ser processada, como por exemplo, fotos de satélites digitalizadas, fotos aéreas, entre outras. Porém o processo de digitalização de imagens leva a degradações que podem criar efeitos visuais indesejáveis não existentes na cena original, chamados em inglês de aliasing. Métodos para reduzir os efeitos do aliasing são chamados de algoritmos de antialiasing. As abordagens mais comuns de antialiasing são a de Pós-Filtragem, Pré-Filtragem, Superamostragem e Monte Carlo (Jittering), porém sendo relevante ao trabalho proposto somente às últimas duas. A Superamostragem foi a primeira técnica de antialiasing baseada na integração numérica, envolvendo uma amostragem uniforme da cena a uma resolução mais alta que a desejada para a saída. Estas superamostragens são então transformadas numa média em grupos para a saída. As técnicas de Monte Carlo não utilizam amostragens periódicas e deste modo não podem produzir os padrões de aliasing periódicos. Através delas introduz-se um ruído aleatório na saída. A magnitude deste ruído pode ser reduzida incrementando-se o número de amostras. Este ruído aleatório causa menos distúrbios visuais do que padrões regulares. Atualmente, existem bons editores gráficos que aplicam técnicas de antialiasing, como o Corel PhotoPaint e o Adobe Photoshop, mas a grande maioria não possui soluções eficientes para aplicar determinadas técnicas sobre imagens de grandes proporções em tempo hábil. Ou seja, o tempo de processamento é bastante longo, para as imagens que ocupam grande área de memória, como por exemplo, as imagens de satélites. Efetuando-se o processamento das informações, com o conceito de processamento paralelo, seria possível minimizar este tempo, devido estas serem processadas simultaneamente em vários computadores. Segundo Strack (1984) a idéia de incluir paralelismo nas aplicações é tão antiga quanto os computadores eletrônicos. Trabalhos desenvolvidos por von Neumann na década de 40 já discutiam a possibilidade de algoritmos paralelos para a solução de equações diferenciais. Nas Universidades e nos centros de pesquisa, computação paralela e distribuída tem merecido um papel de destaque dentre os projetos de pesquisa em desenvolvimento. As técnicas de emprego de paralelismo estão sendo desenvolvidas e aplicadas paulatinamente ao longo dos anos. Um importante marco foi a introdução dos processadores de Entrada e Saída (Canais) nos computadores de Segunda Geração. Isso motivou o aparecimento dos conceitos de concorrência, comunicação e sincronização: uma vez que dois processadores estão operando simultaneamente, surge a necessidade de prover mecanismos para sincronizá-los para estabelecer um canal de comunicação entre eles. Então em 1989 nos laboratórios da Emory University e Oak Ridge National Laboratory, surgiu o Parallel Virtual Machine (PVM), que nasceu com o objetivo de criar e executar aplicações paralelas em um hardware já existente. Atualmente oferece como principal característica a interoperabilidade entre máquinas com sistema operacional UNIX. O PVM teve grande difusão e foi aceito facilmente, contando com milhares de usuários e tornando-se, assim, um padrão de fato devido a sua flexibilidade, pois habilita uma coleção de computadores heterogêneos a comportarem-se como se fosse um único recurso computacional expansível e concorrente. Assim, grandes problemas computacionais podem ser resolvidos através da agregação e compartilhamento de processadores e memórias de outros computadores com um custo efetivo menor. Surge então o WPVM, uma biblioteca derivada da própria PVM, porém sendo possível utilizar em computadores com o sistema operacional Windows mantendo total interoperabilidade com a biblioteca PVM utilizada em computadores com sistema operacional UNIX. Considerando o fato, de que algumas ferramentas gráficas disponibilizam o recurso de plug-in, pode-se desenvolver um plug-in utilizando-se o conceito de processamento paralelo. Segundo Alspach (1995) plug-in é uma ferramenta incorporada ao programa, visando à inclusão de novos métodos e técnicas para aprimorar, facilitar e incluir novos recursos ao respectivo software. A ferramenta gráfica Adobe Photoshop, é um software amplamente utilizado pelos profissionais da área gráfica e possibilita a inclusão de plug-ins externos ao mesmo, sendo assim este trabalho propõe desenvolver um plug-in para esta ferramenta, que irá aplicar as técnicas de antialiasing Superamostragem e Monte Carlo com o conceito de processamento paralelo. O plug-in a ser implementado permitirá a distribuição da informação entre computadores através da biblioteca WPVM, os quais irão processar a informação recebida em paralelo para então retornar o resultado ao plug-in para que o mesmo efetue a junção destas informações, chegando ao resultado desejado, com performance superior aquela obtida utilizando um único computador mono-processador. |
|
|