40
Technische Universit¨ at Kaiserslautern Fachbereich Elektro- und Informationstechnik Lehrstuhl f¨ ur Nachrichtentechnik Prof. Dr.-Ing. R. Urbansky Versuch: Bild- und Videosignalverarbeitung

Versuch: Bild- und Videosignalverarbeitungnt.eit.uni-kl.de/fileadmin/lehre/nt-lab/anleitung/Bild-Videosignalverarbeitung.pdf · 1 Digitale Bildsignale Digitale Bilder bestehen aus

Embed Size (px)

Citation preview

Technische Universitat Kaiserslautern

Fachbereich Elektro- und Informationstechnik

Lehrstuhl fur Nachrichtentechnik Prof. Dr.-Ing. R. Urbansky

Versuch:

Bild- und

Videosignalverarbeitung

1 Digitale Bildsignale

Digitale Bilder bestehen aus einer Ebene von einzelnen Bildpunkten (Pi-xel) mit unterschiedlicher Farbintensitat. In den meisten Fallen werden di-gitale Bilder in Matrixnotation dargestellt. In einem Graustufenbild wirdjedem Feld ein Grauwert zugeordnet. Der Wertebereich ist dabei von derQuantisierung abhangig. Beispielsweise werden bei einem 8 Bit Graustufen-bild Werte zwischen 0 und 255 unterschieden.Bei Farbbildern gibt es mehrere Darstellungsmoglichkeiten (Farbsysteme).Diese konnen in drei Kategorien aufgeteilt werden.

• WahrnehmungsorientierteSysteme, die Farben durchMerkmale wie Helligkeit,Sattigung und Farbton be-schreiben, wie zum Beispieldas HSV-Farbsystem (Hue,Saturation, Value) nachAbbildung 1.1.

Abb. 1.1: HSV-Farbraum

• Technisch-physikalische Systeme, die auf der Mischung von Grund-farben beruhen, wie zum Beispiel der in Abbildung 1.2 dargestellteRGB-Farbraum (Rot Grun Blau).

Abb. 1.2: RGB-Farbraum

• Spezielle Systeme fur Leuchteigenschaften, beispielsweise von Bild-schirmen zur Darstellung von Rontgenbildern und Plasmabildschir-men.

1

1 Digitale Bildsignale

Da der RGB-Farbraum auf dem Prinzip der additiven Farbmischung beruhtkonnen die Farbanteile von Rot, Grun und Blau in drei Matrizen getrenntwerden. In Matlab entsteht so die in Abbildung 1.3 veranschaulichte dreidi-mensionale Matrix.

Abb. 1.3: RGB-Matrixdarstellung in Matlab

Die drei Farbsignale konnen somit separat bearbeitet werden, weswegen imFolgenden alle Bildverarbeitungsmechanismen anhand eines Graustufenbil-des erlautert werden. Diese konnen dann auf jede der Farbkomponenteneinzeln angewendet werden.Ein Video besteht aus einer Folge von Einzelbildern, die mit konstanter Ge-schwindigkeit von, in Europa meist 25 Bildern, oder 50 Halbbildern, proSekunde nacheinander angezeigt werden.In Matlab kann somit ein Video als Folge von Bildmatrizen gespeichert wer-den. Es entsteht so ein vierdimensionales Array.

2

2 Faltung

Signalverarbeitungssysteme lassen sich, wie in Abbildung 2.1 gezeigt,als Ubertragungsstrecke darstellen. Ein Eingangssignal x(t) wird durch dasUbertragungssystem in ein Ausgangssignal y(t) umgewandelt.Die fur die Transformation zustandige Funktion ist die Impulsantwort h(t)des Ubertragungssystems. Diese ergibt sich als Ausgangssignal bei Anlegeneines Dirac-Impulses an den Systemeingang.Die Operation, durch die y(t) aus x(t) und h(t) entsteht, wird Faltung ge-nannt. Sie wird mit

y(t) = x(t) ∗ h(t)

bezeichnet.

Abb. 2.1: Ubertragungsstrecke

Die Faltungsoperation soll im Folgenden anhand eines einfachen Beispielsverdeutlicht werden.Abbildung 2.2 bis 2.6 dienen zur graphischen Veranschaulichung der Fal-tungsoperation.

3

2 Faltung

Beispiel:Es soll das Signal s(t) mit dem Signal h(t) gefaltet werden.

Abb. 2.2: links: Signal s(t), rechts: Signal h(t)

Dazu werden die Signale uber der Integrationsvariablen τ aufgetragen.Eines der Signale wird an der y-Achse gespiegelt (im Beispiel h(t)) und vonlinks nach rechts uber das andere Signal geschoben.Fur jede Position wird das Produkt s(τ) ·h(t−τ) gebildet. Dadurch entstehtallgemein das Faltungsintegral

y(t) =

−∞

(s(τ) · h(t− τ))dτ

Im Beispiel mussen drei Integrationsbereiche unterschieden werden.Fur t < t1 und t > t2 + T werden die Integrale gleich Null.

1.Bereich:Fur t1 < t < t1 + T :

y(t) =t∫

t1

(s(τ) · h(t− τ))dτ

Abb. 2.3: Bereich 1

4

2 Faltung

2.Bereich:Fur t1 + T < t < t2:

y(t) =t∫

t−T

(s(τ) · h(t− τ))dτ

Abb. 2.4: Bereich 2

3.Bereich:Fur t2 < t < t2 + T :

y(t) =t2∫

t−T

(s(τ) · h(t− τ))dτ

Abb. 2.5: Bereich 3

Es ergibt sich das Ausgangssignaly(t) nach Abbildung 2.6

Abb. 2.6: y(t) = x(t) ∗ h(t)

In der Digitaltechnik werden nur zeit- und wertdiskrete Signale verwendet.Die Umwandlung eines zeitkontinuierlichen in ein zeitdiskretes Signal er-folgt durch Abtastung (Abb. 2.7 (2)). Dabei muss das Abtasttheorem ein-gehalten werden, das heißt die Abtastfrequenz muss doppelt so hoch seinwie die hochste im Signal vorkommende Frequenz. Ein wertdiskretes Signalentsteht durch Quantisierung (Abb. 2.7(3)). Das Ergebnis ist ein zeit- undwertdiskretes Signal, welches auch als Digitalsignal bezeichnet wird.

5

2 Faltung

Abb. 2.7: Digitalisierung eines kontinuierlichen Signals

Durch diese Diskretisierung ist der Grenzubergang zum Faltungsintegralnicht mehr notig (siehe [4]). Es ergibt sich als Ergebnis der Faltung zweierSignalfolgen die diskrete Faltungssumme.

y(n) =M−1∑

µ=0

h(µ) · s(n− µ)

Fur zweidimensionale Signale, wie in der digitalen Bildverarbeitung, gilt furdie Faltungssumme:

y(m,n) =

M−1∑

µ=0

N−1∑

ν=0

h(µ, ν) · s(m− µ, n− ν)

Das Verfahren der diskreten Faltung soll am folgenden, eindimensionalenBeispiel verdeutlicht werden.

Beispiel:Es sollen die Signalfolgen s(ν) = 1, 2, 3 und h(ν) = 1, 0,−1 gefaltet werden.Dazu wird ahnlich wie beim Faltungsintegral das eine Signal uber das An-dere geschoben.

s(ν) h(ν)

1 2 3 · 11 2 3 · 0

1 2 3 ·(−1)

1 2 2 -2 -3

In jeder Zeile werden die Werte von s(ν) einzeln mit dem zugehorigen Wertvon h(ν) multipliziert. Dann werden die Ergebniswerte spaltenweise addiert.

6

3 Fourier-Transformation

Die Fourier-Transformation ermoglicht die Darstellung des Spektrumseines Signals.Fur die digitale Bildverarbeitung und vor allem die Filterung ist das Arbei-ten im Frequenzbereich von großer Bedeutung, da Filter oftmals uber ihrFrequenzverhalten definiert werden. Außerdem ist so eine sehr schnelle Fil-terung moglich.Die Fourier-Transformierte S(f) eines Signals s(t) lasst sich wie folgt berech-nen:

s(t) c sS(f) =

∞∫

−∞

s(t) · e−j2πftdt.

Analog dazu gilt fur die diskrete Fourier-Transformation (DFT):

s(n) c sS(ν) =N−1∑

n=0

s(n) · e−j2πnν

N , ν = 0, 1, 2..., N − 1

Aus der Faltung im Zeitbereich wird im Frequenzbereich eine einfache Mul-tiplikation. Somit wird aus

y(t) = s(t) ∗ h(t)

im FrequenzbereichY (f) = S(f) ·H(f).

H(f) wird als Ubertragungsfunktion gezeichnet. Sie gibt das Frequenzver-halten des Ubertragungssystems an. Die DFT lasst sich leicht auf mehrdi-mensionale Raume erweitern, indem sie in jede Koordinatenrichtung einmalangewendet wird. Fur den zweidimensionale Fall der Bildverarbeitung gilt:

s(n,m) c sS(ν, µ) =

N−1∑

ν=0

M−1∑

µ=0

s(n,m) · e−j2πnν

N · e−j2πmµ

M .

Ein Beispiel soll mit der graphischen Darstellung der Fourier-Transformationin Matlab vertraut machen.

Beispiel:Bearbeitet wird das in Abbildung 3.1 dargestellte Bild, das in Matlab er-zeugt wurde. Es besteht aus Linien in vier verschiedene Richtungen mit

7

3 Fourier-Transformation

sinusformigen Intensitatswechseln.Die Matrixwerte liegen zwischen ’0’(schwarz) und ’1’(weiß).

Abb. 3.1: Linienbild

Die Bildmatrix wird mit

>>spektrum=fft2(bild);

in den Fourierbereich transformiert.Abbildung 3.2 zeigt das komplexe zweidimensionale Spektrum. Um die In-tensitatsverteilung graphisch darzustellen wird der Betrag gebildet, auf 1normiert und mit dem imtool angezeigt.Mit dem Vorfaktor (hier 10) kann die Helligkeit beliebig verandert werden,um die Maxima besser erkennen zu konnen.Die Funktion fftshift vertauscht die vier Quadranten des Spektrums, umden Gleichanteil in der Bildmitte zu zentrieren.

>>imtool(10*abs(fftshift(spektrum))/max(max(spektrum)));

8

3 Fourier-Transformation

Abb. 3.2: Spektrum

Nun konnen bestimmte Anteile im Spektrum mit Hilfe der in Abbildung3.3 gezeigten Loschmatrix entfernt werden. Dabei wird jeder Eintrag mit ’1’oder ’0’ multipliziert, um entweder erhalten oder geloscht zu werden.Es ergibt sich das in Abbildung 3.4 dargestellte, veranderte Spektrum.

>>spektrum del=spektrum.*loesch;

Bei der Loschmatrix ist zu beachten, dass auch hier fur das Anzeigen dieQuadranten vertauscht wurden.

Abb. 3.3: Loschmatrix Abb. 3.4: Spektrum nach demLoschen

9

3 Fourier-Transformation

Nach der Rucktransformation

>>bild del=ifft2(spektrum del);

sind die Anteile der diagonalen Linien nicht mehr im Bild enthalten (sieheAbbildung 3.5).

Abb. 3.5: Linienbild nach der Rucktransformation

10

4 Optische Filter

Im vorangegangenen Kapitel wurden Punktoperationen an einem Bildvorgenommen. Dabei wurde jeder Bildpunk unabhangig vom restlichen Bildverandert, indem er beispielsweise um den Faktor 10 verstarkt oder mit ’1’bzw. ’0’ multipliziert wurde.Optische Filter verhalten sich anders. Sie gehoren zu den Nachbarschaftsope-ratoren. Der Wert eines gefilterten Bildpunktes wird aus den umliegendenBildpunkten berechnet. Die Filtermatrix der Große m×n wandert Pixel furPixel uber das Eingangsbild und berechnet den Ergebniswert jedes Pixelsaus den m× n unter der Filtermatrix liegenden Pixeln.Da bei geradzahligen Filterdimensionen kein mittleres Pixel existiert, undso eine Verschiebung des Ergebnisbildes bei solch einem Filter stattfindet,werden hier ungerade Filter betrachtet.Ein Problem bei der Anwendung von Nachbarschaftsoperatoren sind dieRandbereiche des Bildes. Dort sind keine 9 umliegenden Pixel vorhanden,wie sie Beispielsweise fur ein 3× 3 Filter benotigt werden.Zur Losung dieses Problems gibt es mehrere Ansatze.

• Die Pixelwerte außerhalb des Bildbereiches werden, vergleichbar miteiner periodischen Fortsetzung, vom gegenuberliegenden Bildrand ge-nommen. Diese Methode findet jedoch selten Anwendung.

• Der Bildrand wird bei der Filterung weggelassen und im Ergebnis-bild mit schwarzen Pixeln gefullt. Dies ist bei sehr hohen Pixelzahlendurchaus ein vertretbarer Fehler.

• Die Pixelwerte der fur die Filterung benotigten Pixel außerhalb desBildbereiches werden mit Nullen (schwarz) gefullt.

• Die Pixelwerte der fur die Filterung benotigten Pixel außerhalb desBildbereiches werden aus den Werten der Randpixel abgeleitet.

Da alle diese Methoden fehlerbehaftet sind sollte, um Fehler zu vermeiden,keines der interessierenden Objekte im Bild naher als die halbe Filterbreiteam Rand liegt.

4.1 Lineare Filter

Die lineare Filtergleichung eines Filters hM×N (M,N ungerade) lautet furein Bild s:

11

4.1 Lineare Filter

y(m,n) =

M−1∑

µ=0

N−1∑

ν=0

h(M − µ,N − ν) · s(m− a+ µ, n− b+ ν).

a und b geben die mittlere Position in der Filtermatrix an.

a =M − 1

2, b =

N − 1

2

h kann also auch als h2a+1,2b+1 geschrieben werden.m und n geben die Mitte des beeinflussten Bereiches des Eingangsbildes undsomit auch die Position im Ergebnisbild an.Aus der Filtergleichung (Faltungssumme aus Eingangsmatrix und Filter-maske) ist zu erkennen, dass sich die Filterung aus einer komponentenweisenMultiplikation gefolgt von einer Addition der Komponenten ergibt.Dabei ist zu beachten, dass die Filtermatrix in beiden Dimensionen gekipptwird (vergleiche Kap.2).Durch die Koeffizienten der Filtermatrix findet somit auch eine Gewichtungder Bildpunkte statt.Abbildung 4.1 veranschaulicht die zweidimensionale Filterung.

11 h h h

h h h

h h h

22

33

12 13

21 23

31 32

11h h h

h h h

h h h

22

33

1213

2123

3132

11s ......

11 ......

y

ymn

mns

sm-1,n-1 ( s )m-a,n-b

Filtermatrix

Eingangsbild

Ergebnisbild

Abb. 4.1: Prinzip der Filterung

Im Folgenden werden die zwei wichtigsten linearen Filtertypen angespro-chen.

12

4.1.1 Tiefpassfilter

4.1.1 Tiefpassfilter

Tiefpassfilter glatten ein Bild. Sie weisen integrierende Eigenschaften auf.Starke Sprunge zwischen den Werten benachbarter Pixel werde entfernt.Die Bezeichnung Tiefpassfilter wird im Frequenzbereich deutlich, wo sichscharfe Kanten und Spitzen in hohen Frequenzen niederschlagen. Das Tief-passfilter dampft diese hochfrequenten Anteile. Es bleiben im Idealfall nurdie niederfrequenten Anteile ubrig, in denen der Grauwert (oder Farbwert)nur wenig variiert.Aus Symmetriegrunden werden meist quadratische Filtermatrizen verwen-det.Nach [1] ist die charakteristische Eigenschaft eines Tiefpassfilters, dass dieSumme aller Matrixelemente 1 ergeben muss. Fur ein zweidimensionales Fil-ter bedeutet das fur hM×N :

i

j

hi,j = 1 (4.1)

Boxfilter

Das Boxfilter ist das einfachste lineare Filter. Es fuhrt eine Mittelwertbe-rechnung der umliegenden Pixel durch. Dazu werden alle Werte addiert unddurch die Anzahl der beteiligten Pixel geteilt. Die Filtermatrix enthalt nurEinsen, da keine unterschiedliche Gewichtung der Bildpunkte vorgenommenwerden soll. Die Division erfolgt durch den hier separat aufgefuhrten Vor-faktor.Im Falle einer 3× 3 Filtermatrix ware als Vorfaktor 1

9zu wahlen.

h3×3 =1

1 1 11 1 11 1 1

Die Filtermaske dieses Filters ist separabel. Das heißt, sie kann in zwei ein-dimensionale Masken zerlegt werden. So konnen Multiplikationen und Ad-ditionen eingespart werden, was fur die Implementierung wichtig sein kann.

h3×3 =1

1 1 11 1 11 1 1

=1

3·(

1 1 1)

∗1

111

13

4.1.1 Tiefpassfilter

Der Nachteil dieses Filters ist imFrequenzbereich (Abb. 4.2) leichtzu erkennen.Die Ubertragungsfunktion ist einesinc-Funktion.Es ist zu sehen, dass einige Frequen-zen vollstandig unterdruckt werden(Nullstellen). Andere hochfrequenteAnteile hingegen werden durch-gelassen. Es ware erstrebenswerteinen gleichmaßigen Abfall desSpektrums zu erreichen.

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Abb. 4.2: Ubertragungsfunktion ei-nes 3× 3 Box-Filters

Binomialfilter

Ein besseres Frequenzverhalten als das Boxfilter zeigt das Binomialfilter.Fur ein 3× 3 Binomialfiler ergibt sich die Filtermaske

hB =1

16·

1 2 12 4 21 2 1

=1

4·(

1 2 1)

∗1

121

Der Vorfaktor ergibt sich durch die charakteristische Eigenschaft (Gleichung(4.1)).Durch die Separabiltat ist die Entstehung der Koeffizienten aus dem pas-calschen Dreieck leicht nachvollziehbar (Abb. 4.3). In Abbildung 4.4 ist zuerkennen, dass das gaußformige Spektrum keine Nullstellen mehr aufweistund mit steigender Frequenz stetig abfallt.Durch das breitere Spektrum ist die Glattung die dieses Filter bewirkt je-doch schwacher als die des Boxfilters.

11 11 2 11 3 3 11 4 6 4 1

Abb. 4.3: pascalsches Dreieck

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Abb. 4.4: 3× 3 Binomialfilter

14

4.1.2 Hochpassfilter

4.1.2 Hochpassfilter

Hochpassfilter verstarken Kanten in einem Bild, da sich hohe Spektralanteileim Bild als starke Grauwertubergange bemerkbar machen.Die charakteristische Eigenschaft ist hier nach [1]:

i

j

hi,j = 0

Es gibt dazu auch einen zweiten Erklarungsansatz. Die Ableitung des Bildesin beide Koordinatenrichtungen (Gradient) enthalt dort hohe Werte, wo imBild hohe Steigungen (starke Grauwertanderungen) vorhanden sind.Die meisten Hochpassfilter bauen auf dem Prinzip der Differentiation auf.

Differenzbildner

Die einfachste Moglichkeit bietet der Differenzbildner (Abb. 4.5), der mitzwei Filtermasken die partiellen Ableitungen in beide Koordinatenrichtun-gen berechnet. Es ergeben sich fur die Filterung des Bildes aus Abbildung4.5 mit den Filtermasken D1 und D2 die in Abbildung 4.7 und 4.8 gezeigtenBilder, die zusammen das Gesamtergebnis der Filterung nach Abbildung 4.9ergeben.

D1 =

0 0 00 −1 10 0 0

D2 =

0 0 00 −1 00 1 0

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Abb. 4.5: 3× 3 Differenzbildner Abb. 4.6: Original Bild

15

4.1.2 Hochpassfilter

Abb. 4.7: Filterung mit Maske D1 Abb. 4.8: Filterung mit Maske D2

Abb. 4.9: Addition beider Bilder

Mit diesem Filter werden die Kanten in unterschiedlichen Koordnatenrich-tungen unterschiedlich gut extrahiert. Außerdem hat auch Rauschen meisthochfrequente Anteile, die hier ebenfalls ungedampft durchgelassen werden.Dieser Nachteil wird mit dem folgenden Filter verbessert.

Sobeloperator

Der Sobeloperator integriert senkrecht zur Richtung der Ableitung. DieStoranfalligkeit ist damit geringer. Hochfrequente Storungen werden durchdie Bandpass-Charakteristik nicht verstarkt.Die Filtermasken sind:

S1 =

1 0 −12 0 −21 0 −1

S2 =

1 2 10 0 0−1 −2 −1

Somit ergibt sich die in Abbildung 4.10 gezeigte gesamte Ubertragungs-funktion aus S1 und S2 zusammen.Abbildung 4.11 bis 4.13 zeigen die Filterung des zuvor schon verwendeten

16

4.1.2 Hochpassfilter

Bildes.

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

2

4

6

8

10

12

Abb. 4.10: 3× 3 Sobeloperator Abb. 4.11: Filterung mit Maske S1

Abb. 4.12: Filterung mit Maske S2 Abb. 4.13: Summe der Bilder

17

4.1.2 Hochpassfilter

Laplaceoperator

Das Laplacefilter nutzt die Nulldurchgange der zweiten Ableitung, die anExtrempunkten der ersten Ableitung entstehen, zur Kantendetektion.Die Ubertragungsfunktionen sowie Filterergebnisse sind in Abbildung 4.14bis 4.17 zu sehen.

L1 =

0 1 01 −4 10 1 0

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

2

4

6

8

Abb. 4.14: 3× 3 Laplacefilter L1

Eine gleichmaßigere Detektion derKanten aller Koordinatenrichtun-gen wird mit der Maske

L2 =

1 1 11 −8 11 1 1

erzielt.

−1−0.5

00.5

1

−1

−0.5

0

0.5

10

2

4

6

8

10

12

Abb. 4.15: 3× 3 Laplacefilter L2

18

4.2 Nichtlineare Filter

Abb. 4.16: Filterung mit Laplacefil-ter L1

Abb. 4.17: Filterung mit Laplacefil-ter L2

4.2 Nichtlineare Filter

Da eine Vielzahl an nichtlinearen Filtern existiert, sollen hier nur die Rang-ordnungsfilter vorgestellt und mit den linearen Filtern verglichen werden.

4.2.1 Rangordnungsfilter

Rangordnungsfilter haben ahnlich den linearen Tiefpassfiltern den Effekt,hochfrequente Storungen zu unterdrucken. Das meist verwendete Filter isthierbei das Medianfilter.Das Medianfilter sortiert die Pixel eines Bildbereiches (hier 3×3) der Großenach, unabhangig von ihrer Position im Bild. Der Wert an der mittleren Po-sition dieser Rangfolge wird, wie in Abbildung 4.18 gezeigt, als Ergebniswertubernommen.Andere Operatoren, wie Maximums- und Minimumsfilter liefern den letztenoder ersten Wert.

19

4.2.1 Rangordnungsfilter

Abb. 4.18: Prinzip des Medianfilters

Es ist zu erkennen, dass das Ergebnis im Bereich der umliegenden Pixelbleibt. Der hohe Wert 81 wird ignoriert. Der Mittelwert der Summe hinge-gen lage durch die 81 schon bei 19.Im direkten Vergleich (Abb. 4.19 bis 4.23) ist sehr gut der Unterschied vonlinearen und nichtlinearen Filtern zu erkennen. Durch Box- und Binomi-alfilter werden die verrauschten Bildbereiche lediglich verwischt. Dadurchwerden alle Kanten im Bild unscharf.Beim Medianfilter hingegen bleiben die Kanten des Bildes erhalten und dasRauschen wird nahezu vollstandig unterdruckt. Ein Nachteil ist jedoch auchbei diesem Filter , dass sehr feine Strukturen im Bild verloren gehen.

Abb. 4.19: Original Bild Abb. 4.20: Verrauschtes Bild

20

4.2.1 Rangordnungsfilter

Abb. 4.21: gefiltert mit 9× 9 Boxfil-ter

Abb. 4.22: gefiltert mit 9 × 9 Bino-mialfilter

Abb. 4.23: gefiltert mit 3 × 3 Me-dianfilter

21

5 Hardware

Fur diesen Laborversuch wird ein PC verwendet, dessen Grafikkarte uberzwei Ausgange verfugt. An den ersten Ausgang ist der primare Monitor an-geschlossen, der das Signal des PCs (den Windows Desktop) wiedergibt. Dasam zweiten Ausgang angeschlossene FPGA-Board verandert das Signal undgibt es auf dem zweiten Monitor aus.Der zweite Monitor ist im Betriebssystem als Erweiterung konfiguriert, so-dass auf beiden Bildschirmen unabhangig gearbeitet werden kann.

5.1 FPGA

Field Programmable Gate Arrays sind integrierte Schaltungen, die aus ei-ner Vielzahl von Logikelementen bestehen. Bei dem hier verwendeten FPGAder Firma Xilinx bestehen diese Logikelemente aus FlipFlops und LUT’s(Lookup-Tables). Andere Realisierungen werden in [5] angesprochen.Mit LUTs konnen beliebige kombinatorische Funktionen realisiert werden.In den SRAM-Zellen der LUTs werden Wahrheitstabellen angelegt, die je-der Eingangsbelegung einen durch die zu realisierende Funktion definiertenAusgang zuordnen. Meist verfugen die LUTs uber 4 bis 6 Eingange. Da-durch mussen zur Realisierung von Funktionen mit einer großeren Zahl anEingangsvariablen mehrere LUTs zusammengeschaltet werden.Die Verbindungen zwischen den einzelnen Logikblocken werden durch SRAMgesteuerte Transistoren hergestellt.Da es sich hierbei um fluchtige Speicher handelt muss diese Art von FPGAnach jedem Einschalten neu konfiguriert werden. Dies geschieht meist ubereinen Flash-Speicher oder eine Schnittstelle zum PC.Hierdurch ergibt sich die Moglichkeit fur den Anwender, jederzeit neue Auf-gaben zu implementieren, ohne neue Hardware kaufen zu mussen.Im Versuch wird das in Abbildung 5.1 gezeigte Xilinx Spartan 3 Board ver-wendet.

22

5.1 FPGA

Abb. 5.1: Xilinx Spartan 3 Board

Spezifikationen:

• 3,4 mio. Gatter

• 5900 CLBs (Configurable Logic Blocks bestehen aus LUTs und Flip-Flops, die Logik und Speicher implementieren konnen.)

• 2,2 Mbit RAM

• 1 DVI-Eingang

• 1 DVI-Ausgang

• 1 JTAG Programmierschnittstelle

• 1 serielle Schnittstelle zur Steuerung.

23

6 Softwaretools

6.1 Matlab

Matlab steht fur MATrix LABoratory.Es verwendet Matrizen als Rechengrundlage und rechnet numerisch.Abbildung 6.1 zeigt die verwendete Matlab-Oberflache.

Abb. 6.1: Matlab-Oberflache

1 : Hier wird der aktuell verwendete Ordner angegeben.

2 : Der Workspace enthalt alle angelegten Variablen (Matrizen).

3 : Inhalt des aktuellen Ordners. Auf darin enthaltenen Dateien kann ohne

Pfadangaben zugegriffen werden.

4 : Hier sind alle ausgefuhrten Befehle chronologisch aufgelistet. Sie konnen

durch Doppelklick wieder verwendet werden. Zum Verandern konnensie auch ins Command Window gezogen werden.

5 : Hauptfenster zum Ausfuhren aller Befehle und Rechnungen.

Im Folgenden findet sich eine Liste hilfreicher Matlab-Befehle.help ’Befehl’ : Anzeige der Hilfe fur einen Befehl.

demo : Offnet die Rubrik Demos in der Matlab-Hilfe. Dort stehen Ein-stiegshilfen verschiedener Art zur Verfugung.

24

6.1 Matlab

intro : Fuhrt eine beispielhafte Folge von Operationen in Matlab aus.

’A=[1 2 3 4;5 6 7 8]’ : Erzeugt eine Matrix A2x4 mit A =

(

1 2 3 45 6 7 8

)

.

Die Werte einer Zeile werden dabei durch Leer-zeichen, die Zeilen voneinander durch ’;’ getrennt.

’;’ : Steht ein ’;’ am Ende einer Eingabe, so wird die Ergebnisvariable nichtim Command Window angezeigt, was bei großen Matrizen (Bilder)durchaus sinnvoll ist.

’.*’ , ’./’ und ’.∧’ : Komponentenweises Multiplizieren, Dividieren undPotenzieren.z.B.: [1 2].*[3 4]=[1*3 2*4]=[3 8]

A(z,s)) : Schreibt nur einen Wert der Variable A in die Ergebnisvariable.Die Position dieses Wertes ist durch die Platzhalter ’z’ und ’s’

gegeben.z.B. ergibt A(2,3) den dritten Wert der zweiten Spalte aus A.Um Teilmatrizen und -vektoren zu er-halten gibt es mehrere Moglichkeiten:’a:b’ ergibt die Werte von a bis b einer Matrixdimension.’a:end’ ergibt die Werte von a bis zum Ende.’:’ wahlt alle Werte der entsprechenden Dimension (gleichbe-deutend zu 1:end).Somit wird z.B. aus einem 100x100x3-RGB Bild A mit A(:,:,a)ein 100x100 Bild, welches nur das Rot- (a=1), Grun- (a=2) oderBlau- (a=3) Signal enthalt.

read2gray(’Dateiname’): Liest eine Bilddatei ein und wandelt diese ineine Graustufenmatrix um. Die ’ ’ sind zubeachten, da ohne diese der Dateiname alsVariable interpretiert wird. Diese Funktionwurde speziell fur diesen Versuch geschrieben.

imtool(Variablenname): Zeigt eine Matrix als Bild an. Dieses kann dortuber File → save as als Bild abgespeichertwerden.

conv2(A,B) : Zweidimensionale Faltung der Matrix ’A’ mit der Matrix ’B’.

zeros(z,s) : Erzeugt eine Matrix der Große z x s, die aus Nullen besteht.

fft2(Variablenname): Schneller Algorithmus der zweidimensionalendiskreten Fourier-Transformation.

25

6.2 Simulink

ifft2(Variablenname): Schneller Algorithmus der zweidimensionalendiskreten inversen Fourier-Transformation.

showfft(Variablenname): Fur diesen Versuch geschriebene Funktion zumanzeigen eines zweidimensionalen Spektrum.

filter2(h,bild) : Zweidimensionale Filterung der Matrix ’bild’ mit derFiltermatrix ’h’.

rauschen(bild) : Fur diesen Versuch entwickelte Funktion, die zufalligeBildpunkte so verandert, dass ein verrauschtes Bildentsteht.

medfilt2(bild) : Zweidimensionale Filterung der Matrix ’bild’ miteinem 3x3-Medianfilter.

Bei allen Matlab-Befehlen muss auf Groß- und Kleinschreibung geachtetwerden. Somit konnen zum Beispiel auch H und h als unterschiedliche Va-riablen verwendet werden.Eine ausfuhrliche Einfuhrung in MATLAB sind in [2] und [3] zu finden.

6.2 Simulink

Simulink ist ein grafikorientiertes Softwaretool zur Analyse dynamischerSchaltungen. Es stellt eine Erweiterung zu Matlab dar und greift auf dessenLosungsalgorithmen zuruck.Simulink kann durch Eingabe von simulink im Matlab Command Window,durch Anklicken des Simulink Bibliothek Buttons oder uber das MatlabStartmenu gestartet werden.Es erscheint die Simulink Bibliothek (Simulink Library Browser), in deralle Signalverabreitungsblocke zu finden sind.Uber ’File → New → Model’ wird ein neues Simulink-Modell erzeugt.Funktionsblocke konnen aus der Bibliothek per Drag’n’Drop ins Modell ge-zogen werden.Nachdem alle Blocke hinzugefugt wurden, werden diese durch Ziehen ei-ner Verbindungslinie (bei gehaltener linker Maustaste) vom Ausgang einesBlocks zum Eingang des Nachsten verbunden.Durch Anklicken eines Blocks mit der rechten Maustaste konnen Blockein-stellungen geandert werden. Die Parametereinstellungen konnen auch durchDoppelklick geoffnet werden.Die fur diesen Versuch relevanten Blocke sind in Tabelle 6.1 aufgefuhrt.

Tab. 6.1: Benotigte Simulinkblocke

26

6.3 Der Xilinx System Generator

Block Bibliothek Funktion

Liest eine Multimedia-datei ein (z.B. Video).

Generiert eine Konstan-te. Skalar, Vektor oderMatrix sind moglich.

Fuhrt die Filterungeines Signals durch An-gabe einer Filtermatrixdurch.

Zeigt ein zweidimen-sionales Signal (Bild,Video) an.

Abbildung 6.2 zeigt ein einfaches Blockdiagramm der Filterung eines eindi-mensionalen Signals.

Abb. 6.2: Eindimensionale Filterung mit Simulink

6.3 Der Xilinx System Generator

Der Xilinx System Generator bietet eine Vielzahl von Simulink Blocken, mitdenen das graphische Erstellen von FPGA-Konfigurationen moglich ist.Die Verbindung zwischen Simulink- und Xilinx-Blocken wird uber die Gateway

In und die Gateway Out Blocke von Xilinx hergestellt.Diese Blocke geben die Ein- und Ausgange des FPGA an.Um die Ubersichtlichkeit zu erhalten konnen mehrere Blocke gruppiert und

27

6.3.1 Das 2D-FIR Filter Projekt

zu einem Untersystem zusammengefasst werden.Dazu markiert man alle gewunschten Blocke zusammen und wahlt im Drop-downmenu (Rechtsklick) Create Subsystem.Ein Subsytem kann dann durch Doppelklick auf den Block geoffnet werden.Umfassende Beschreibungen und Ubungen zum Xilinx System Generatorsind in [6] und [7] zu finden.

6.3.1 Das 2D-FIR Filter Projekt

Die Projektdatei fir 2d.mdl ist in dem VerzeichnisH:\Labor\pcores\rgb 2d fir plbw v1 00 c\sysgenenthalten.Dieses Projekt ermoglicht es lineare Filter auf dem FPGA zu implementie-ren.Das 5x5-Filter (Subsytem fir 2drgb 2d fir5x5 Filter durch Doppelklickoffnen) enthalt drei Filter, die jeweils das Rot-, Grun- oder Blau-Signal fil-tern.Die Filterkoeffizienten werden im coefficent memory Block erzeugt.Da die Signaldaten durch die Verarbeitung eine Verzogerung erfahren, mussendie Laufzeiten der Steuer- und Adressdaten angepasst werden. Dies uber-nehmen die Blocke Ctrl-Delay und line ctrs.Die einzelnen Filterblocke jeder Farbe enthalten identische Subsystems, indenen die Filterungen durchgefuhrt werden. Das Videosignal liegt hier alsPixelstrom vor. Aus diesem werden jeweils funf Zeilen eingelesen und mitden entsprechenden Filterkoeffizienten gefiltert. Die Ergebnisse dieser eindi-mensionalen Filterungen konnen dann addiert werden. Nach der Gewichtungmit dem Vorfaktor (Gain) ergibt sich am Ausgang das Ergebnis der gesam-ten Filterung.Dieser Prozess wird anschließend, jeweils um eine Zeile nach unten verscho-ben, wiederholt.

6.4 Das Xilinx Platform Studio

Das Xilinx Platform Studio wird hier verwendet, um die in Simulink erzeug-te Netzliste in einen Bitstream zu ubersetzen und diesen anschließend aufdas FGPA zu ubertragen.Ein im Platform Studio geoffnetes Projekt kann uber Device Configuration

- Update Bitstream einer vollstandigen Synthese unterzogen werden. Die-ser Vorgang dauert bei dem vorgesehenen Projekt etwa 15 Minuten.Es entsteht der Bitstream, welcher uber Device Configuration - Download

Bitstream auf das FPGA geladen werden.Anschließend wird uber Debug - Launch XMD eine Konsole geoffnet. Darin

28

6.5 PuTTY

mussen die Befehle ’stop’ ’dow ex.elf’ ’run’ nacheinander eingegebenund jeweils mit ENTER bestatigt werden.Dieser Vorgang ist notwendig um den Mikroprozessor des Boards zu konfi-gurieren. Auf diesen Prozessor wird eine Software geladen, welche die Kon-figuration der Schnittstellen ubernimmt.Der Monitor, der an das FPGA-Board angeschlossen ist zeigt anschließenddas gefilterte Signal.

6.5 PuTTY

PuTTY ist ein Terminal-Client-Programm, das eine direkte Steuerung desauf dem FPGA-Board integrierten Prozessors uber eine serielle Schnittstelleermoglicht.Beim Offnen von PuTTY erscheint das PuTTY Configuration Menu. Dortmuss als Configuration type ’Serial’ ausgewahlt werden.Die zu wahlende Serial line (COM-Port) ist im Geratemanager des PCsunter Anschlusse (COM und LPT) zu finden.Uber den Open-Button wird eine Verbindung hergestellt und ein Steuerungs-terminal geoffnet.

29

7 Versuchsvorbereitung

Aufgabe 1

In Kapitel 4.1.2 wurden Hochpassfilter beschrieben, die aus zwei Filterma-trizen bestehen. Da im Versuch jedoch nur ein Filter verwendet wird mussendiese zu einer Filtermatrix zusammengefasst werden. Dies ist in dieser Auf-gabe fur den Differenzbildner und das Sobelfilter zu tun.Tip: Die mathematische Darstellung der zweifachen Filterung kann mit gel-tenden Gesetzen umgeformt werden.

Aufgabe 2

Bisher wurden nur 3x3-Filtermatrizen betrachtet. Das 2D-FIR-Filter Pro-jekt ist jedoch auf 5x5-Matrizen ausgelegt. In dieser Aufgabe sollen 5x5-Filtermatrizen entworfen werden.

a)

Wie sehen die Filtermatrizen von 5x5- Box- und Binomialfilter aus?

b)

Wie sehen die 3x3-Filtermatrizen von Differenzbildner und Sobelfiltern ausAufgabe 7 aus, wenn diese in eine 5x5-Matrix einbeschrieben werden, um siean diese Große anzupassen? Die effektive Filtergroße von 3x3 soll in diesemFall erhalten bleiben.

Aufgabe 3

Im 2D-FIR-Filter Projekt wird die 5x5-Filtermatrix als eindimensionalerZeilenvektor dargestellt, indem alle Matrixzeilen in einem Vektor hinterein-ander gehangt werden.Das Auslesen erfolgt dann Blockweise mit je 5 Koeffizienten.Wie sind Differenzbildner, Sobelfilter und Laplacefilter in diesem Fall dar-zustellen?

30

8 Versuchsdurchfuhrung

8.1 Matlab

Aufgabe 1

In dieser Aufgabe sollen die Eigenschaften von Faltung und Fourier-Transformationan einer Tiefpassfilterung gezeigt werden.

Dazu muss zuerst Matlab geoffnet und als current Folder (s.Abb. 6.1 1 )’H:\Labor’angegeben werden.Die folgende Aufgabe soll mit zwei Filtern durchgefuhrt und die Ergebnisseverglichen werden.

a) Boxfilter(3x3)b) Binomialfilter(3x3)

• Die Datei Screenshot.jpg soll uber die Funktion read2gray in eineVariable im Workspace eingelesen werden.

• Die Filtermatrizen sollen, wie in Kapitel 4.1.1 beschrieben, angelegtwerden.

Faltung

• Mit der Funktion conv2 soll eine zweidimensionale Faltung durch-gefuhrt werden.

• Das Faltungsergebnis soll mit dem imtool angezeigt und als Bilddateifur die Vergleiche in der Auswertung gespeichert werden.

Fourier-Transformation

• Um bei der Multiplikation im Frequenzbereich zueinander passendeDimensionen von Bild- und Filtermatrix zu erhalten muss die Filter-matrix auf die Große der Bildmatrix erweitert werden.Dazu wird mit der Funktion zeros eine mit Nullen gefullte Filterma-trix mit der Große der Bildmatrix (Workspace: Size) neu erzeugt.In die ersten 9 Felder dieser Matrix wird mit f(1:3,1:3)=h die vorher

31

8.1 Matlab

verwendete 3x3-Filtermatrix (hier mit h bezeichnet) geschrieben.f steht hierbei fur die vorher durch zeros erzeugte Matrix.

• Jetzt sollen Bildmatrix und Filtermatrix nacheinander mit fft2 fourier-transformiert werden.

• Die Transformierte der Bildmatrix sollen mit showfft angezeigt undfur die Auswertung gespeichert werden.

• Das nun durch die Elementweise Multiplikation (.*) von Bildspektrum(Transformierte der Bildmatrix) und Ubertragungsfunktion (Transfor-mierte der Filtermatrix) erzeugte, gefilterte Spektrum soll ebenfallsmit showfft angezeigt und gespeichert werden.

• Mit der Funktion ifft2 soll das gefiltert Spektrum zurucktransfor-miert und das Ergebnis anschließend mit dem imtool gespeichert wer-den.

Auswertung

Die Ergebnisse sind anhand der gespeicherten Bilder zu vergleichen und zuerklaren.Dabei sind aufzuzeigen:

• Vergleich von ungefiltertem und gefiltertem Spektrum.

• Vergleich der gefilterten Spektren von Box- und Binomialfilter.

• Vergleich der Ergebnisse einer Filterung durch Faltung und durchFourier-Transformation.

Aufgabe 2

In diesem Versuchsteil sollen Filter hinsichtlich ihrer Rauschunterdruckungverglichen werden.Dazu wird die Datei EIT.jpg in den Matlab Workspace geladen (siehe Auf-gabe 1). Mit der Funktion rauschen() wird dem Bild zufalliges Rauschenuberlagert. Das Ergebnis kann mit dem imtool gespeichert werden.

32

8.1 Matlab

• Eine Tiefpassfilterung ist mit der Filtermatrix des Boxfilters aus Auf-gabe 1 durchzufuhren. Dafur kann die Funktion filter2 verwendetwerden. Das Ergebnisbild ist zu speichern.

• Eine Tiefpassfilterung ist mit der Filtermatrix des Binomialfilters ausAufgabe 1 durchzufuhren. Das Ergebnisbild ist zu speichern.

• Die Filterung mit einemMedianfilter wird durch die Funktion medfilt2

durchgefuhrt.

Um genauer vergleichen zu konnen werden die Differenzen der Bilder nachTabelle 8.1 berechnet und fur die Auswertung mit Hilfe des imtools gespei-chert. Um ein Maß fur die Energie der Bilddifferenzen zu erhalten werdendie quadrierten Betrage der Differenzbildpixel mitsum(sum((abs(BildX-BildY)).∧2 )) aufsummiert.Die Ergebnisse sind ebenfalls in Tabelle 8.1 einzutragen.

33

8.1 Matlab

Tab. 8.1: Ergebnisse der Rauschfilterung

Differenzbild (BildX - BildY) Differenzenergiemaß

Originalbild - verrauschtes Bild

Originalbild - gefiltert mit Boxfilter

Originalbild - gefiltert mit Binomialfilter

Originalbild - gefiltert mit Medianfilter

verrauschtes Bild - gefiltert mit Boxfilter

verrauschtes Bild - gefiltert mit Binomialfilter

verrauschtes Bild - gefiltert mit Medianfilter

Auswertung

Die Ergebnisse der Filterungen sollen hinsichtlich ihrer Veranderungen amRauschen sowie dem Bild selbst verglichen werden. Die Gute der Filter istanhand der gespeicherten Bilder und berechneten Werte zu beurteilen. Zu-dem sind auch Unterschiede zwischen optischem Eindruck und Rechenwertenzu beachten.

34

8.2 Simulink

8.2 Simulink

Aufgabe 1

In diesem Versuch sollen verschiedene Hochpassfilter anhand einer Videofil-terung verglichen werden.Dazu muss der Simulink Library Browser und ein neues Simulink Modellgeoffnet werden.Die benotigten Blocke aus Tabelle 8.2 werden aus den Bibliotheken in dasModell gezogen und die Parameter wie in Abschnitt 6.2 beschrieben ange-passt.

Tab. 8.2: Simulinkblocke fur Aufgabe 1

Benotigte Blocke: zu andernde Parameter

From Multimedia File

’File name’:Uber ’Browse...’ die DateiH:\Labor\viplanedeparture.aviauswahlen.

’Image signal’:Separate color signals

auswahlen.’Data Types’: Datentyp ’double’ auswahlen.

Constant

’Constant value’:Filtermatrix a), b), c)in der Form[1 1 1;1 1 1;1 1 1]

eintragen.

2-D FIR Filter (3 Stuck) ’Coefficient source’: ’Input port ’ wahlen.

Video Viewer(2 Stuck)’Image signal’:Separate color signals

auswahlen.

Video To Workspace

’Variable name’: Unterschiedliche Namenfur jeden Versuchsteil wahlen,damit die Variablen in Matlabnicht uberschrieben werden.

’Number of inputs’: ’3’ eintragen.

a) Differenzbildner(3x3).b) Sobelfilter(3x3).c) Laplacefilter(3x3).

35

8.2 Simulink

Nach dem Einstellen aller Parameter mussen die Blocke miteinander ver-bunden werden.Die Ausgange des From Multimedia File Blocks werden an je einen I-Eingang der 2-D FIR Filter gezogen.Die H-Eingange der 2-D FIR Filter werde mit dem Ausgang des ConstantBlocks verbunden. Die Ausgange der 2-D FIR Filter werden jeweils mitdem R, G oder B Eingang des ersten Video viewers verbunden. Diese Verbin-dungen mussen zu den Verbindungen der Filter mit dem From Multimedia

File passen.Um auch das Original-Video anzuzeigen werden die Eingange des zweitenVideo viewers passend auf die Verbindungslinien direkt hinter dem From

Multimedia File gefuhrt.Fur die spatere Auswertung des Versuchs sollen zuletzt noch die Eingangedes Video To Workspace Blocks passend mit den Verbindungen hinter denFilterblocken verbunden werden. Dadurch kann das Ausgangssignal gleich-zeitig angezeigt und in den Matlab Workspace gespeichert werden.

Die Simulation wird uber Start simulation gestartet.Es sollen nun drei verschiedene Filter verglichen werden, indem die Constantvalue des Constant Blocks fur jedes Filter geandert wird. Dabei ist auf un-terschiedliche Variablennamen des Video To Workspace Blocks zu achten.Fur die Auswertung konnen einzelne Bilder der nun im Workspace gespei-cherten Videos angezeigt (imtool(vout(:,:,:,1))) und als Bilddatei ex-portiert werden (File → Save as).

Auswertung

Die Filterungen sind anhand der aufgezeichneten Bilder zu vergleichen undzu beurteilen, dabei ist vor allem die Richtung der erkannten Kanten zuberucksichtigen.

36

8.3 FPGA

8.3 FPGA

Aufgabe 1

Die Projektdatei fir 2d.mdl aus dem VerzeichnisH:\Labor\pcores\rgb 2d fir plbw v1 00 c\sysgen ist in Simulink zu offnen.Die in Aufgabe 7 ermittelten Filterkoeffizienten mussen als Initial Value

Vector in den Parametern der Single Port RAMs eingegeben werden. Umdie Filter direkt miteinander vergleichen zu konnen wurde hier fur jedenFarbkanal ein eigenes Single Port RAM angelegt.Fur das Rotsignal (Single Port RAM ROT) soll der Differenzbildner,fur das Grunsignal (Single Port RAM GRUEN) das Sobelfilter undfur das Blausignal (Single Port RAM BLAU) das Laplacefilter, verwendetwerden.Die Single Port RAMs sind in der Untermaske des coefficient memory,der im 5x5 Filter enthalten ist, zu finden.Um die Intensitaten der Filter aneinander anzupassen mussen Differenzbild-ner und Laplacefilter mit dem Faktor 2 verstarkt werden. Der Vorfaktor istunter Constant Value des Blocks Constant gain der entsprechenden Fil-ter einzutragen.In den Einstellungen des System Generator Blocks im rgb 2d fir Sub-stytem wird nun die Synthese des System-Generator Subsystems uber denGenerate-Button gestartet.Nach Abschluss der Synthese wird die Datei system.xmp aus dem Verzeich-nis H:\Labor im Xilinx Platform Studio geoffnet.Der Bitstream wird wie in Kapitel 6.4 beschrieben erzeugt.Da dieser Vorgang etwa 15 Minuten dauert sollte wahrenddessen der Simulink-

Teil aus Aufgabe 8.3 bearbeitet werden.

Anschließend wird er auf das FPGA-Board geladen.Auf dem Monitor, der das gefilterte Signal anzeigt soll nun das BildBootssteg.jpg aus dem Verzeichnis H:\Labor geoffnet werden. Dieses Bildwurde in drei unterschiedlich farbige Bereiche geteilt (rot, grun, blau), so-dass die Filter, die jeweils eine der Farbkomponenten filtern, direkt vergli-chen werden konnen.

Auswertung

Beim Vergleich ist besonders auf die Details des Bildes wie z.B. Kanten derStegplanken zu achten. Wie werden die unterschiedlichen Objekte im Bilddurch die einzelnen Filter wiedergegeben?

37

8.3 FPGA

Aufgabe 2

SimulinkIn dieser Aufgabe sollen die Rechenleistungen von PC und FPGA vergli-chen werden. Dazu liegt das Video Campuscooking-Auflosung.mpeg in un-terschiedlichen Auflosungen vor. Zuerst werden die Videos mit dem Simu-link Videofilter aus Aufgabe 8.2 getestet. Der Video to Workspace Blockwird hierfur entfernt und als Filtermatrix das Sobelfilter aus Aufgabe 8.2beingestellt. Anschließend wird mit Durchfuhrung der Simulation die Vi-deoauflosung gesucht, bei der keine Verarbeitung in Echtzeit mehr moglichist.Anschließend wird der selbe Vorgang mit dem FPGA wie folgt wiederholt.

FPGADazu wird eine Steuerungsverbindung uber PuTTY zum FPGA aufgebaut(siehe Kapitel 6.5), und durch Neustarten des Boards die auf dem Flash-speicher vorliegende Filterdemo geladen. In der PuTTY-Konsole erscheinteine Programmauswahl. Hier ist ’1’ (DVI Pass-through Demo) zu wahlenund anschließend mit einer beliebigen Taste zu bestatigen. Durch Eingabevon ’f’ (2D FIR Menu) gelangt man ins Auswahlmenu der Filter. Hier wirdfur den direkten Vergleich mit Simulink das Sobel XY-Filter (5) gewahlt.Nacheinander werden nun die Videodateien am PC mit dem Windows Media

Player geoffnet und auf dem erweiterten Bildschirm, der das gefilterte Si-gnal anzeigt, im Vollbildmodus abgespielt.

Auswertung

Die Rechenleistungen sind anhand der Testergebnisse zu vergleichen und zuerklaren.

38

Literaturverzeichnis

[1] Bernd Jahne: Digitale Bildverarbeitung. 6. Auflage Springer Verlag,2005.

[2] Helmut Bode: MATLAB-SIMULINK, Analyse und Simulation

dynamischer Systeme. 2. Auflage Teubner Verlag, 2006.

[3] Martin Werner: Digitale Signalverarbeitung mit MATLAB. 3.Auflage Vieweg Verlag, 2006.

[4] Prof.Dr.-Ing.R.Urbansky: Skript zur Vorlesung Grundlagen der

Informationsubertragung.

[5] Prof.Dr..Ing.N.Wehn: Skript zur Vorlesung Mikroelektronik fur

Nichtvertiefer.

[6] Xilinx: System Generator for DSP User Guide. Release 10.1.1, 2008.http://www.xilinx.com/support/documentation/sw manuals/sysgen user.pdf

(Oktober 2010).

[7] Xilinx: System Generator for DSP Getting Started Guide. Release10.1.1, 2008.http://www.xilinx.com/support/documentation/sw manuals/sysgen gs.pdf

(Oktober 2010).

39