Hardware Reference
In-Depth Information
»1« abgedeckten Bildpunktwerte sind zu subtrahieren und die mit »0« ab-
gedeckten Werte sind zu ignorieren. Weiterhin sind die Filter so aufgebaut,
dass für jeden Filter etwa dieselbe Anzahl von Bildwerten addiert und subtra-
hiert werden. Eine betragsmäßig größere Filterantwort erlaubt so ohne weitere
Nachbearbeitung einen Rückschluss auf eine größere geometrische Ähnlichkeit
mit dem Kantenverlauf in der Filtermaske, bei einer positiven Filterantwort
mit dem Maskenbild selbst und bei einer negativen Filterantwort mit dem
Negativ des Maskenbilds.
Der skizzierte Algorithmus ist extrem rechenzeitintensiv. Es sind etwa 10
bis 20 Millionen Bildpunkte je Sekunde zu klassifizieren. Für jeden Bildpunkt
und jede Filterantwort sind 25 Indexrechnungen für Daten- und Koe zienten-
adressen und 25 bedingte Additions-Subtraktions-Operationen auszuführen.
Beim Entwurf der Blockspeicher-Pipeline-Struktur für die Filterberechnung
ist der Engpass genau wie in Abschnitt 5.2 die Speicherbandbreite des lokalen
Blockspeichers für die Daten. Eine nahe liegende Optimierung ist, einmal
gelesene Bildpunktwerte parallel mit allen Maskenwerten zu verknüpfen. Dazu
muss der Koe zientenspeicher bei jedem Zugriff die Koe zientenwerte c p;q
für alle Masken liefern. Des Weiteren sind für jede Filtermaske ein eigenes
Additions-Subtraktions-Werk und ein eigener Akkumulator erforderlich (Abb.
5.14).
Bearbeitungsstand: Ein in Hardware umsetzbarer Algorithmus zur Be-
rechnung der Filterantworten. Durch eine geschickte Koe zientenwahl
wurden die Multiplikationen eingespart und mit einem geschickten
Parallelisierungsschema die Anzahl Blockspeicherzugriffe minimiert.
5.3.4 Entwurf der Filter-Pipeline
Nach dem Vorabschnitt besteht ein Filterberechnungsschritt in der Bestim-
mung der nächsten Blockspeicheradressen für die zu lesenden Koe zienten
und Daten, den Leseoperationen selbst und in Abhängigkeit vom gelesenen
Koe zientenwert in einer bedingten Addition oder Subtraktion des gelesenen
Datenwertes zum Wert des jeweiligen Akkumulationsregisters. Die Blockspei-
cherzugiffe erhalten wie in Abschnitt 5.2.1 eine eigene Pipeline-Phase, die
Adressrechnungen davor und die Akkumulationen danach gleichfalls (Abb.
5.14). Die Filter-Pipeline in Abb. 5.5 besitzt zusätzlich eine Phase für die
Multiplikation, die hier durch die Beschränkung der Filterkoe zientenwerte
mit eingespart wird.
Mit der Skizze der Filter-Pipeline lassen sich die ersten VHDL-Datentypen
und Operationen definieren. Die Filterkoe zienten sind Aufzählungstypen mit
drei Werten:
type tOperation is (add, sub, keine_Operation);
Der gesamte Koe zientenvektor ist ein Feld aus Elementen von diesem Typ:
Search WWH ::




Custom Search