Was ist schneller auf einem FPGA für die Bildverarbeitung: Faltung oder FFT?

Gast #1203974
Lesenswert?

Hallo!

Ich möchte auf einem FPGA ein Bild falten. Der Faltungskern ist 7 
Elemente hoch und 1 Element breit.

Eigentlich sollte dies keine schwere Sache sein: Das Bild wird (in 
diesem Fall über sechs) Zeilenpuffer gespeichert und - nach einer 
gewissen Latenzzeit - wird mit jedem Takt ein Pixel als Resultat 
ausgespuckt (so wie in Figur 5 gezeigt ( 
http://www.cs.qub.ac.uk/~D.Crookes/HardwareSkeletons.htm  ).

Ein wenig Rechnerche hat ergeben, dass falls so eine Faltung auf einer 
CPU berechnet werden soll, man sich recht häufig der schnellen 
Fouriertransforamtion (FFT) bedient, um Bererchnungen einzusparen.

Ich kenne mich mit der FFT leider nicht aus. Könnte mir daher jemand 
sagen, ob die FFT in Hardware noch schneller ist als der zuerst 
genannete Ansatz? Ich kanns mir eigentlich nicht vorstellen, da im 
obigen Ansatz mit bereits jedem Takt ein Ergebnis erzeugt wird und 
auch sonst nicht viel Overhead erzeugt wird.

Stimmt meine Vermutung, dass die FFT nur auf (seriellen) CPU's einen 
Geschwindigkeitsvorteil bringt (da man sich ja dort keine Zeilenpuffer 
bauen kann ;-) )?

Vielen Dank & Grüße,
Dito
Persönliche Seite #1204379
Lesenswert?

Das Dokument scheint doch shcon auf die Implementierung in FPGAs 
einzugehen... Ne FFT kann schneller sein, aber im zweifel mußt du das 
ganze nach der Berechnung auch wieder rücktransformieren.
Ne FFT läßt sich wenn die Rahmenbedingungen bekannt sind in Hardware 
sehr schön parralellisieren, aber wenn dein Verfahren shcon gut so 
funktioniert warum die Sache dann komplizierter machen als nötig?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren