Rapide de convolution 2D pour les DSP

Je veux mettre en œuvre quelques algorithmes de traitement d'images qui sont conçus pour s'exécuter sur un beagleboard. Ces algorithmes utilisent circonvolutions largement. J'essaie de trouver un bon C la mise en œuvre de convolution 2D (probablement à l'aide de la transformée de Fourier Rapide). Je veux aussi que l'algorithme pour être en mesure d'exécuter sur la beagleboard DSP, parce que j'ai entendu dire que la DSP est optimisée pour ces types d'opérations (avec ses multipliez-accumuler de l'instruction).

Je n'ai aucune expérience dans le domaine donc je pense que ce ne sera pas une bonne idée pour mettre en œuvre le produit de convolution de moi-même (j'ai probablement ne le fera pas aussi bon que quelqu'un qui comprend toutes les mathématiques derrière elle). Je crois qu'un bon C la convolution de la mise en œuvre de la DSP existe quelque part, mais je n'ai pas pu le trouver?

Quelqu'un pourrait-il aider?

EDIT: s'avère que le noyau est assez petit. Ses dimensions sont soit 2X2 ou 3X3. Donc je suppose que je ne suis pas à la recherche d'une FFT de mise en œuvre. J'étais à la recherche pour le produit de convolution sur le web pour voir sa définition afin que je puisse la mettre en œuvre directement (je ne sais pas vraiment ce que la convolution). Tout ce que j'ai trouvé est quelque chose avec multiplié les intégrales et je n'ai aucune idée de comment le faire avec des matrices. Quelqu'un pourrait me donner un morceau de code (ou de pseudo-code) pour le 2X2 noyau cas?

en.wikipedia.org/wiki/Convolution#Discrete_convolution
Merci, mais ils parlent le 1D cas là, rien de convolution 2D
2d circonvolutions (dans le traitement de l'image) sont souvent séparable, alors il peut être utilisé comme 2 1-d circonvolutions dans la séquence. Cela rend le traitement de l'exigence beaucoup plus petite. Pouvez-vous donner des exemples de types de grains que vous souhaitez utiliser?

OriginalL'auteur snakile | 2010-10-20