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
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.