Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Motivation Analoge Aufnahme von Sprache, Bildern Digitale Speicherung durch Diskretisierung + Quantisierung Informationsverlust Diskretisierung und Quantisierung Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester 2008 G. Greiner, U. Rüde FAU Erlangen-Nürnberg G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 2 Diskretisierung Diskretisierung: Abtastung einer (mehrdimensionalen) Funktion an diskreten Werten (der unabhängigen Variablen) Quantisierung: Darstellung/Approximation der (reellen) Funktionswerte durch eine endliche Zahl von Repräsentanten Standardfall: Approximation der reellen Zahlen bzw. reellwertigen Vektoren durch Gleitpunktzahlen. Überblick Diskretisierung und Quantisierung Diskretisierung Faltung Fourier Transformation Abtasttheorem Aliasing Moiré-Effekt Quantisierung Diskrete Approximation reeller Werte Beispiel: Quantisierung von Farbwerten Vektorquantisierung G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 3 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 4
Faltung I Für Funktionen f, g : D C ist die Faltung definiert durch Anschaulich: mathematischer Operator, welcher für zwei Funktionen f und g eine dritte Funktion liefert, die die "Überlappung" zwischen f und einer gespiegelten verschobenen Version von g angibt. Diskrete Faltung Faltung II Die Faltung ist ein geeignetes Modell zur Beschreibung zahlreicher physikalischer Vorgänge. Die lineare Filterung eines Signals ist die Faltung der Original-Funktion mit der Impulsantwort dar. Bei optischen Abbildungen stellt das Bild die Faltung der originalen Bildfunktion mit der Punkt-Verbreiterungs- Funktion (Point Spread Function oder PSF) dar. Diffusions-Prozesse lassen sich durch die Faltung ebenfalls beschreiben. Wenn X und Y zwei statistisch unabhängige Zufallsprozesse mit den Verteilungsdichtefunktionen f und g sind, dann ist die Verteilungsdichtefunktion des Summenprozesses X+Y gegeben als f * g. G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 5 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 6 Faltung III Beispiel: Kantendetektion I Implementierung für Bild: Maske läuft über das Bild Glättung: Faltungskern z.b. diskrete Gaussfunktion Kantendetektion: Faltungskern z.b. Sobeloperator G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 7 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 8
Kantendetektion II: Sobeloperator Fourier Transformation (FT) FT / Inverse FT einer Funktion f Original Sobel Sobel horizontal vertikal Kombination Die Fouriertransformierte wird auch Spektralfunktion von genannt k ist Wellenzahl, Wellenlänge λ = (2 π) / k Entwicklung/Superposition einer Funktion nach einem vollständigen Satz orthogonaler Funktionen G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 9 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 10 Fourier Transformation - Beispiele Tiefpass und sinc Abtasten und Dirac-Funktion Die Dirac-Funktion: Gaussfunktion Die Kamm-Funktion Fouriertransformation von Kamm ist wieder Kamm Dirac und Kamm Abtasten = Multiplikation mit Kamm G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 11 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 12
Faltungssatz Die Fourier-Transformation macht aus der Faltung eine Multiplikation und aus der Multipikation eine Faltung: Diskretisierung einer Funktion Die Diskretisierung einer Funktion wird mathematisch durch Multiplikation mit einem Deltakamm (Nagelbrettfunktion) beschrieben Gleiches gilt für f r die Inverse Fourier Transformation Dabei ist r m = mh mit m Z, und Maschenweite h > 0 Im Frequenzraum entspricht diese Operation: Faltung der Fouriertransformierten mit der F- Transformierten des Deltakamms.! Letzteres ist wieder ein Deltakamm! Somit ergibt sich eine periodische Überlagerung G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 13 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 14 Beispiel zum Faltungssatz Signal Spektralfunktion Beispiel zum Faltungssatz Signal Spektralfunktion G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 15 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 16
Abtasttheorem Ist das Spektrum einer kontinuierlichen Funktion d.h. und wird mit einer Schrittweite abgetastet. Dann kann exakt rekonstruiert werden. bandbegrenzt, Abtasttheorem - Beweis Rekonstruktion mit sinc Aufgrund der Voraussetzung gilt und nach Rücktransformation Die maximale Wellenzahl, die ohne Fehler abgetastet werden kann, wird Als Nyquist-Wellenzahl oder Grenzwellenzahl bezeichnet. oder Merkregel: Abtastfrequenz mind. doppelt so groß wie maximale Frequenz G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 17 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 18 Beispiel zum Faltungssatz Signal Spektralfunktion Beispiel zum Faltungssatz Signal Spektralfunktion G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 19 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 20
Fourier und Faltung in 2D bzw. 3D Tensorproduktansatz Diskrete Fourier Transformation (DFT) DFT / Inverse DFT eines n-dimensionalen Vektors f Separierbare Filterkerne Schnelle Berechnung durch FFT : O(n log(n)! e.g. Gaussfilter G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 21 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 22 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 24 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 25
G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 26 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 27 Aliasing I Dieser Effekt kann auftreten, wenn das zu messende Signal von einem weiteren, höherfrequenten Signal überlagert wird. Dabei wird durch die hohe Frequenz eine nicht vorhandene, tiefere Frequenz vorgetäuscht. G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 28 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 33
Aliasing II Aliasing III Linie in schrägem Winkel gezacktes Erscheinungsbild = Aliasing Antialiasing: Pixel in der Nähe der Linie werden mit verschiedenen Zwischentönen von Linienfarbe und Hintergrundfarbe versehen. werden. Glättung der Linie (oder Kante) für das Auge. Reference image Aliasing Filtered image G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 34 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 35 Moiré Effekt I Moiré Effekt III Optische Täuschung, die den Eindruck von Helligkeitsschwankungen und Verzerrungen erzeugt. Der Moiré-Effekt tritt auf, wenn sich Raster oder Linien überlagern, also bei entsprechend dargestellten Bildern (etwa: Halbbilder). G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 36 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 38
Moiré Effekt IV Überblick Diskretisierung und Quantisierung Diskretisierung Faltung Fourier Transformation Abtasttheorem Aliasing Moiré-Effekt Quantisierung Diskrete Approximation reeller Werte Beispiel: Quantisierung von Farbwerten Vektorquantisierung G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 39 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 40 Quantisierung Diskretisierung: Abtastung einer (mehrdimensionalen) Funktion an diskreten Werten (der unabhängigen Variablen) Quantisierung: Darstellung/Approximation der (reellen) Funktionswerte durch eine endliche Zahl von Repräsentanten Standardfall: Approximation der reellen Zahlen bzw. reellwertigen Vektoren durch Gleitpunktzahlen. Diskrete Approximation reeller Werte I Zu approximieren r R, r min r r max Wertebereich W := [r min, r max ] Zerlegung in disjunkte, gleich grosse Teilintervalle L = 2 B Teilintervalle [w j, w j+1 ] Kodierung mit j [1,2 B -1] Repräsentant r j [w j, w j+1 ], z.b: r j := r min + j d, d = (r max -r min )/L Quantisierung: Q: r r j falls r w j Beobachtung: nicht optimal! G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 41 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 42
Diskrete Approximation reeller Werte II Verbesserung: w j nicht äquidistant w j+1 w j = d j Ist r Realisierung einer Zufallsvariablen mit Dichte p(ζ), d.h. Diskrete Approximation reeller Werte III Satz: (1) wird miminiert durch p(ζ) = 0 für ζ < r min oder ζ > r max Mittlerer quadratischer Fehler Ziel: Minimierung des Fehlers Beweis G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 43 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 44 Quantisierung von Farbwerten Approximation Vektoren: Vektorquantisierung Mehrdimensionaler Fall: Zu approximieren r = [r 1,, r n ] IR n, r i,min r i r i,max, i [1,, n] Beispiel 2D: Wertebereich W := [w 1,min,w 1,max] [w 2,min,w 2,max ] Quantisierung in Rechtecke i.a. nicht optimal! 24bpp 8bpp 4bpp L Vektoren r i als Repräsentanten (Codewörter) für disjunkte Teilgebiete w i Quantisierungsfehler (p(r) ist r-dim. Dichte) G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 45 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 46
Vektorquantisierung II Satz: (1) wird für gegebene Repräsentanten r i, i = 1,, L minimiert wenn mit r w i Ist eine Zerlegung von W in disjunkte W i gegeben, dann gilt für die Repräsentanten Vektorquantisierung III Gegeben: Menge von M k-dim. Trainingsvektoren T = {x 1,,x M } Menge von L k-dim. Codevektoren C = {r 1, r L } Zu den Codevektoren gehörige Partition P = {p 1,,p L } des R k Funktion Q: R k R k, die jedem Trainingsvektor einen Codevektor zuordnet Falls ein Trainingsvektor x i in p j liegt, wird er durch Q(x i ) = r j approximiert Ziel: Minimiere den Fehler Berechnung der optimalen Vektorquantisierung läuft iterativ! G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 47 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 48 Vektorquantisierung IV Optimalitätskriterien Nearest Neighbor Condition Vektorquantisierung IV: LBK- Algorithmus 1. Berechne Startlösung 2. Splitting der Codebook-Vektoren Centroid Condition Startlösung 3. Zuordnung der Samples zu Codebook-Vektoren 4. Berechnung der neuen Codebook-Vektoren 5. Falls Fehler groesser als Schranke, gehe zu 3 6. Gehe zu 2, falls gewünschte Anzahl der Codebook-Vektoren noch nicht erreicht G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 49 G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 50
Vektorquantisierung IV: Ergebnisse G. Greiner, U. Rüde Algorithmik III, Sommer 2008 FAU Erlangen-Nürnberg 51