Algorithmik kontinuierlicher Systeme Diskretisierung und Quantisierung (Teil ) Digitalisierung und Quantisierung
Motivation Analoge Aufnahme von Sprache, Bildern, Digitale Speicherung durch Diskretisierung + Quantisierung Informationsverlust!2
Motivation Reproduzierbarkeit: Welche Abtastrate? Abtastrate: Anzahl der Punkte pro Zeit-/Orts-Einheit (!Hz, dpi) hohe Effizienz! möglichst niedrig gute Reproduzierbarkeit (Informationsverlust)! möglichst hoch Sommersemester 206 Prof. G. Greiner Algorithmik kontinuierlicher Systeme!3
Motivation Speichern von Bildern Grauwert wird repräsentiert durch eine (reelle) Zahl zwischen 0 und Grauwertbild: B : [a,b] x [c,d] [0,] Digitalisierung Diskretisierung (Abtasten) des rechteckigen Gebiets Quantisierung der Grauwerte!4
Motivation Grauwertbild: B : [a,b] x [c,d] [0,] Digitale Speicherung durch Diskretisierung + Quantisierung Diskretisierung (Abtasten) des rechteckigen Gebiets Bildschirm, Digitalkamera,... z.b. 024 x 280 Pixel Drucker (dpi = dots per inch), 200dpi entspricht 25400µm/200=2µm Quantisierung der Grauwerte Universell, z.b. uniform (256 Grauwerte) datenabhängig Ortsauflösung vs. Farbauflösung (Dithering)!5
Dithering Drucker können keine Grautöne drucken, nur schwarz oder weiße Punkte Grautöne entstehen indem nur (einige) schwarze Punkte gedruckt werden je mehr/weniger desto dunkler/heller, Dithering-Verfahren: nach welchen Regeln werden die schwarzen Punkte ausgewählt!6
Überblick Diskretisierung Faltung Fourier Transformation Abtasttheorem Aliasing / Anti-Aliasing Quantisierung Diskrete Approximation reeller Werte Beispiel: Quantisierung von Farbwerten Vektor-Quantisierung!7
Faltung Die Faltung ist ein geeignetes (math.) Modell zur Beschreibung zahlreicher physikalischer Vorgänge. Die lineare Filterung eines Signals ist die Faltung der Original-Funktion mit der Impulsantwort des Filters. 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.!8
Faltung () Für Funktionen f, g : D R/C ist die Faltung definiert durch ( f g)( x) = f ( y) g( x y) dy D = R oder D = R + oder D = [0,T] (T-periodisch) D = R : D = R + : ( f g)( x) = f ( y) g( x y) dy ( f g)( x) x = f ( y) g( x 0 y) dy!9
Faltung (2) Für Funktionen f, g : D R/C ist die Faltung definiert durch ( f g)( x) = f ( y) g( x y) dy Anschaulich: mathematischer Operator, welcher für zwei Funktionen f und g eine dritte Funktion liefert indem f (x) mit der Gewichtsfunktion g(-x) gemittelt wird Rolle von f und g kann vertauscht werden (kommutativ): f g = g f auch assoziativ: f ( g h) = ( f g) h!0
Faltung (3) Für Funktionen f, g : D R/C ist die Faltung definiert durch ( f g)( x) = f ( y) g( x y) dy Anschaulich: mathematischer Operator, welcher für zwei Funktionen f und g eine dritte Funktion liefert indem f (x) mit der Gewichtsfunktion g(-x) gemittelt wird Betrachte eine Funktion als "Gewichtsfunktion" (z.b. g ), spiegele diese am Ursprung : g(-y), verschiebe diese gespiegelte Funktion an die Stelle x : g(-(y-x)), mittle die andere Funktion mit diesem (verschobenen) Gewicht. falls die "Gewichtsfunktion" symmetrisch ist, entfällt das Spiegeln!!
Faltung: Beispiel Beispiel f ( x) = 0 falls sonst x 0.5 g( x) = 0.5 falls 0 sonst x 0.25!2
Faltung: Weiteres Beispiel f ( x) = 0 g( x) = 0 x falls x sonst falls x 0.5 sonst!3
Faltung: Weiteres Beispiel!4
Faltung (4) Diskrete Faltung oder Filtern für Zahlenfolgen [f(n)], [g(n)] ( f g)( n) = f ( k) g( n k) Indexmenge: I = Z oder I = N oder I = {0,,2,, N-} (periodisch, modulo N) Interpretation: (diskretes) Signal f wird gemittelt mit Gewichten g(-n) (meist endliche Ausdehnung) z.b. g = [, 2,] = [...,0,0,0.25,0.5,0.25,0,0,...] 4!5
Faltung (5) Rechengesetze: Für die Faltung gelten die gleichen Regeln wie für die gewöhnliche Multiplikation: kommutativ: assoziativ: distributiv: f g = g f ( f g) h = f ( g h) f ( g + h) = f g + f h Beispiel Tiefpass (Mittelung bzw. Glättung) kontin. g( x) = falls x a 2a 0 sonst : ( f g)( t) = 2a t+ a t a f (τ ) dτ diskret g( n) = falls n N 2N + 0 sonst : ( f g)( n) = f ( k) 2N + n + N k = n N!6
Faltung in 2D () Tensorprodukt-Ansatz für bivariate Funktionen Kontinuierlicher Fall: f(s,t) und g(s,t) ; Diskreter Fall: [f(n,m)] und [g(n,m)] ; Falte zunächst in s/n-richtung und dann das Ergebnis in t/m-richtung --- oder umgekehrt kontinuierlich: ( g)( s, t) = f ( s σ, t τ ) g( σ, τ ) dσ dτ τ σ f diskret ( f g)( n, m) = l k f ( n k, m l) g( k, l)!7
Implementierung für Bild: Maske läuft über das Bild Glättung: Faltungskern z.b. Tiefpass-Filter, oder diskrete Gaussfunktion bzw. Bartlett-Filter (=Dreiecksfilter) (positive Gewichte mit Summe = ) Kantendetektion: Faltungskern z.b. Sobeloperator!8 Faltung/Filtern in 2D (2) 9 2 2 4 2 2 6 2 0 0 0 2 0 2 0 2 0
Faltung/Filtern in 2D (2)!9
Beispiel: Kantendetektion ()!20
Faltung/Filtern in 2D (3) Separierbare Filter in 2D Idee: Filtere 2D-array (z.b. Bild) zweimal jede Zeile mit einem D-Filter [u(i)] ; jede Spalte mit einem D-Filter [v(i)] ; Das Ergebnis entspricht einer Filterung mit dem 2D-Filter [w(i,j)] = [u(i) v(j)] Beispiel : ergibt [ u( i)] = [, 0,], [ v( i)] = 4[, 0.25 0 0.25 [ w( i, j)] = 0.5 0 0.5 0.25 0 0.25 2,]!2
Faltung/Filtern in 2D (4) Warum separierbare Filter: Separierbare Filter sind effizient! Aufwand für das Filtern eines 2D-Arrays der Größe N N mit einem Filter der Größe k k : nicht separierbar: k 2 N 2 Multiplikationen separierbar : 2 k N 2 Multiplikationen Wann ist ein Filter separierbar? Genau dann wenn die Filtermaske (als Matrix) Rang hat Beispiele: X 2 2 0 0 0 0 2 4 2 4 6 2 2 0 0 0!22
Beispiel: Kantendetektion (2) Original Sobel Sobel Kombination horizontal vertikal!23
Fourier Transformation (FT) Harmonische Schwingungen sin( x), cos( x), sin( k e ikx = cos( k x), cos( k x) + i sin( k x), komplexe Version (Euler -Formel): x) Joseph Fourier 768-830!24
Fourier Transformation (FT) x) + i sin( k x) Harmonische Schwingungen: k Wellenzahl, λ = (2π)/k Wellenlänge, ν = k/(2π) Frequenz e ikx = cos( k Mathematisches Theorem: Jede (quadratisch integrierbare) Funktion f : R R / C kann man durch Superposition von harmonischen Schwingungen darstellen: ikx f ( x) = ~ f ( k) e dk 2π ~ Die Funktion f ( k ) heißt Spektralfunktion oder Fourier- Transformierte von f(x), es gilt: ~ f ( k) ikx = f ( x) e dx 2π!25
Beispiele Tiefpass!26
Beispiele Gauss-Funktion h σ ( x) 2 2 x ~ σ k = exp h ( ) = exp 2 σ k 2πσ 2σ 2π 2 2!27
Beispiele sinc-funktion sinc sin x x ~ χ ( ) = sinc ( k) = π ( k) x 2 Beachte: ist f gerade (d.h. achsensymmetrisch bzw. f(x) = f(-x) ) dann sind Fouriertransformierte und Inverse Fouriertransformierte von f identisch!!28
Dirac-Funktion Die Dirac-Funktion δ : Für alle Funktionen f gilt : δ a (x) = δ(x-a) : f ( x) δ a ( x) dx = f ( a) f ( x) δ ( x) dx = f (0) Fourier-Transformierte: ~ ~ δ ( k) = δ ( k) exp( ika a = ) Faltung mit δ a = Verschiebung um a ( δ a f ) x) = δ ( y) f ( x y) dy = f ( x 2π ( a) a!29
Faltungssatz Die Fourier-Transformation macht aus der Faltung eine Multiplikation und aus der Multiplikation eine Faltung: Gleiches gilt für die inverse Fourier-Transformation!30
Abtast-Theorem (Nyquist-Shannon) Ist das Spektrum bandbegrenzt, einer kontinuierlichen Funktion d.h. und wählt man eine Schrittweite mit Dann kann aus den Abtastwerten exakt rekonstruiert werden. Die maximale Wellenzahl, die ohne Fehler abgetastet werden kann, wird als Nyquist-Wellenzahl oder Grenzwellenzahl bezeichnet. Merkregel: Abtastrate mind. doppelt so groß wie maximale Frequenz!3
Aliasing () Aliasing: Artefakte die durch falsches Abtasten entstehen Beispiel Schachbrett Erklärung Einfaches Abtasten erst Filtern dann Abtasten Filtern und Supersampling!32
Aliasing (2) Dieser Effekt tritt auf, wenn das zu messende Signal hochfrequente Anteile enthält, die gemäß Abtast- Theorem nicht reproduzierbar sind. Durch (Unter-)Abtasten der hohen Frequenzen wird eine nicht vorhandene, niedere Frequenz vorgetäuscht. Antialiasing: Vor dem Abtasten die höheren Frequenz entfernen: d.h. im Frequenzraum: Multiplikation mit Tiefpass (χ Funktion) im Ortsraum: Falten (= Filtern) mit sinc-funktion!33
Aliasing (4) Aliasing: Linie in schrägem Winkel auf einem Raster-Display.! gezacktes Erscheinungsbild Antialiasing-Strategie: Pixel in der Nähe der Linie werden mit verschiedenen Zwischentönen von Linien- farbe und Hintergrundfarbe versehen. Glättung der Linie (oder Kante) für das Auge.!34
Fourier und Faltung in 2D bzw. 3D Tensorproduktansatz Separierbare Filterkerne e.g. Gaussfilter!35
Diskrete Fourier Transformation (DFT) DFT / Inverse DFT eines n-dimensionalen Vektors f ~ f f k m n = f e = n m= 0 n k= 0 2π i Es gilt der Faltungssatz: m ~ f k e 2π i mk n mk n ^ (f g) = f g; f g = n ^(f g) Bildkompression: jpg (verwendet reelle Variante, sog. DCT) Schnelle Berechnung mit Fast Fourier Transform (FFT) Komplexität : O(n log(n))! (Cooley & Tukey 965) In Verbindung mit dem Faltungssatz erlaubt dies die effiziente Berechnung der Faltung (Filterung)!!36
Zusammenfassung: Diskretisierung Falten kontinuierlich diskret: Filtern separierbare nicht separierbare Filterkerne kont. Fourier-Transformation Dirac Funktion Faltungssatz Abtast-Theorem (Nyquist-Shannon) Aliasing Anti-Aliasing Vor dem Abtasten die hohen Frequenzen entfernen im Frequenzraum: Multiplikation mit χ-funktion im Ortsraum: Faltung mit sinc-function!37