mikrocontroller.net

Forum: FPGA, VHDL & Co. Was ist schneller auf einem FPGA für die Bildverarbeitung: Faltung oder FFT?


Autor: Dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einer Länge von 7 lohnt sich eine Faltung mit FFT garantiert nicht, 
egal ob FPGA oder CPU.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.