SEGMENTAÇÃO E PARALELIZAÇÃO DE VÍDEOS EM SISTEMAS MULTIPROCESSADOS

  • João Felipe Roque Moraes
  • Fábio Duncan de Souza
Palavras-chave: Processamento Paralelo, Segmentação de Vídeo

Resumo

Programação paralela é uma estratégia para a obtenção de ganhos de desempenho em aplicações que demandam alto poder de processamento. Tal estratégia vem sendo crescentemente utilizada visando aproveitar o poder computacional disponibilizado pelos processadores multi-core, tecnologia amplamente difundida no mercado. Este projeto visa paralelizar o código de uma aplicação que realiza a segmentação automática em tomadas de vídeo, com o objetivo principal de reduzir seu tempo de processamento. A estratégia utilizada para paralelizar a aplicação de segmentação de vídeo consiste na divisão de partes do vídeo pelos diferentes núcleos do processador do sistema. Cada uma destas partes é avaliada para que os segmentos do vídeo sejam detectados. Esta técnica de paralelização, conhecida como paralelismo de dados, possibilita aproveitar o poder de processamento disponibilizado pelos processadores multi-core. Para viabilizar a implementação dessa técnica de paralelização na aplicação de segmentação, foram pesquisados módulos de multiprocessamento para a linguagem python, sendo selecionados para testes os módulos parallel python, multiprocessing e threading. As implementações realizadas no código da aplicação de segmentação de vídeos através dos módulos parallel python e threading apresentaram problemas, retornando assim resultados insatisfatórios. A implementação realizada através do módulo multiprocessing obteve sucesso e os seus resultados apresentaram um bom ganho de desempenho quando comparados com a aplicação sequencial. Em um ambiente composto pelo sistema operacional Linux Ubuntu 11.04 e pelo processador Intel Core i5, a aplicação sequencial segmentou cinco vídeos em um total de 63,9 megabytes em 122 segundos, enquanto a aplicação paralela segmentou os mesmos vídeos em 69 segundos, obtendo um ganho de desempenho de aproximadamente 43%. A paralelização do código da aplicação de segmentação de vídeos possibilitou alcançar o objetivo principal do projeto, que era reduzir o tempo de processamento da aplicação. Desse modo a aplicação paralela implementada pelo módulo multiprocessing foi escolhida para ser a representante do projeto.
Publicado
06-06-2013