Uma área importante para o processamento digital de imagens é a filtragem de ruídos, que está sendo cada vez mais requisitada devido as melhorias dos novos equipamentos de captação, e o consequente aumento da resolução da imagem, que propicia o aparecimento dessas perturbações. A filtragem de ruídos é amplamente estudada nos campos de tratamento de imagens e visão computacional, focando em reduzir os ruídos sem que se remova os detalhes da imagem original. Várias abordagens foram propostas para filtragem de ruídos, uma delas é o método não-local, proposto por Buades, Coll e Morel em 2004, chamado de Non-Local Means (NLM), que não só utiliza as informações locais, mas a imagem inteira, destaca-se como o estado da arte, porém, há um problema neste método, que é a sua alta complexidade computacional, que o torna praticamente inviável de ser utilizado em aplicações em tempo real, até mesmo para imagens pequenas. A proposta deste trabalho é estudar o algoritmo non-local means sugerido em (BUADES, COLL e MOREL,2005) e propor técnicas para otimizar e implementar o referido algoritmo visando sua aplicação em tempo real. Ao todo são sugeridas duas alternativas de implementação. A primeira trata do desenvolvimento de uma placa aceleradora para computadores que possuam Barramento PCI, que contém um hardware especializado que implementa o Filtro NLM. A segunda alternativa de implementação é a de utilizar o ambiente densamente multiprocessado CUDA, existente nas controladoras de vídeo da NVIDIA. As duas propostas aceleraram significativamente o algoritmo NLM, mantendo a mesma qualidade visual das implementações tradicionais em software, tornando possível sua utilização em tempo real.