aula5 - Convolução - Continuação

Nesta aula discutimos um pouco sobre algumas respostas da implementação da convolução unidimensional. Vimos que existe várias estratégias de tratamento da borda da imagem e também várias estratégias de otimização procurando utilizar a memória compartilhada. Foi vista também implementação que utiliza a memória de textura, que apesar de não ser abordada no livro texto, ela é muito indicada para a operação de convolução.

Foi visto também os slides referente ao Cap. 6 do livro sobre considerações de desempenho.

Para a próxima aula, foi solicitado o seguinte:

  • Implementar a convolução para o caso bidimensional
  • Explicar como a implementação feita funciona, em particular explicar como é o tratamento de borda na sua implementação e como é o uso de memória compartilhada, se houver.
  • Fazer o teste de desempenho com a ajuda do código e da área montada pelo Lucas. Lembrar que para podermos testar os vários códigos, é importante que seja estabelecido uma sintaxe para o uso das funções e uma definição clara da implementação. Para isto, vamos utilizar como padrão, duas implementações de convolução: a linear, implementada pelo ia636:iaconv e a periódica ia636:iapconv Peço que utilizem imagens de tamanhos variados e peço que comparem os tempos também com as implementações de convolução do numpy.