23.07.2013 Aufrufe

transform coding - Lehrstuhl Technische Informatik der MLU Halle ...

transform coding - Lehrstuhl Technische Informatik der MLU Halle ...

transform coding - Lehrstuhl Technische Informatik der MLU Halle ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Seminar Datenkompression<br />

<strong>transform</strong> <strong>coding</strong><br />

overview<br />

Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

Diskrete Cosinus-Transformation (DCT)<br />

Diskrete Wavelet-Transformation (DWT)<br />

Martin-Luther-Universität <strong>Halle</strong>-Wittenberg<br />

Institut für <strong>Informatik</strong><br />

Sommersemester 2002<br />

generated with L AT E X<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 1


Einleitung<br />

Grundsätzlich existieren zwei Klassen von Komprimierungsverfahren:<br />

• verlustlose (lossless) Komprimierung<br />

• verlustbehaftete (lossy) Komprimierung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 2


Einleitung<br />

verlustlose (lossless) Komprimierung<br />

• geeignet für alle Arten von Daten<br />

• Kompressionsraten 2:1 bis 6:1


Einleitung<br />

verlustlose (lossless) Komprimierung<br />

• geeignet für alle Arten von Daten<br />

• Kompressionsraten 2:1 bis 6:1<br />

• bekannteste Vertreter:<br />

⋆ LZW (gif, tiff)<br />

⋆ Huffmann-Kodierung<br />

⋆ arithmetische Kodierung


Einleitung<br />

verlustlose (lossless) Komprimierung<br />

• geeignet für alle Arten von Daten<br />

• Kompressionsraten 2:1 bis 6:1<br />

• bekannteste Vertreter:<br />

⋆ LZW (gif, tiff)<br />

⋆ Huffmann-Kodierung<br />

⋆ arithmetische Kodierung<br />

durchschnittliche Komprimierung liegt bei 3:1<br />

d. h. Bild (640x480x24 = 1 MB) immer noch zu groß für z. B. Internetübertragung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 3


Einleitung<br />

verlustbehaftete (lossy) Komprimierung seit 1970<br />

• ungeeignet für Texte und Programme<br />

• bis ca. 100:1 (auch höher)<br />

• bekanntester Vertreter:<br />

⋆ cosinus-Transformation (MP3-, MPEG-, JPEG-Standard)<br />

⋆ wavelet-Transformation (JPEG2000-Standard)


Einleitung<br />

verlustbehaftete (lossy) Komprimierung seit 1970<br />

• ungeeignet für Texte und Programme<br />

• bis ca. 100:1 (auch höher)<br />

• bekanntester Vertreter:<br />

⋆ cosinus-Transformation (MP3-, MPEG-, JPEG-Standard)<br />

⋆ wavelet-Transformation (JPEG2000-Standard)<br />

• Was ist Verlust?


Einleitung<br />

verlustbehaftete (lossy) Komprimierung seit 1970<br />

• ungeeignet für Texte und Programme<br />

• bis ca. 100:1 (auch höher)<br />

• bekanntester Vertreter:<br />

⋆ cosinus-Transformation (MP3-, MPEG-, JPEG-Standard)<br />

⋆ wavelet-Transformation (JPEG2000-Standard)<br />

• Was ist Verlust?<br />

Nur Informationen filtern, die nicht/wenig wahrgenommen werden!<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 4


Dieser Vortrag behandelt:<br />

Inhalt des Vortrages<br />

• Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

• Diskrete Cosinus-Transformation (DCT)<br />

• Diskrete Wavelet-Transformation (DWT)


Dieser Vortrag behandelt:<br />

Inhalt des Vortrages<br />

• Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

• Diskrete Cosinus-Transformation (DCT)<br />

• Diskrete Wavelet-Transformation (DWT)<br />

genereller Ablaufplan<br />

✬<br />

✫<br />

Bild → Transformation → Quantisierung → Kodierung → . . .<br />

dieser Vortrag<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 5<br />

✩<br />


vorher: Begriffsklärung<br />

Frequenz und Frequenzüberlagerung<br />

bekannt aus Physik<br />

Begriffsklärung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 6


Was ist eine Transformation<br />

• mathematisch: Basiswechsel<br />

Begriffsklärung<br />

• vereinfacht: eine an<strong>der</strong>e Darstellungsweise<br />

• Bild: Bildpunkte → Frequenzen und Amplituden<br />

⋆ Frequenzen: wie schnell än<strong>der</strong>t sich die Farbe in einem Bild<br />

⋆ Amplitude: Stärke <strong>der</strong> Verän<strong>der</strong>ung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 7


Begriffsklärung<br />

Bsp. (1)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 8


Begriffsklärung<br />

Bsp. (2)


Bsp. (3)<br />

Begriffsklärung<br />

Bsp. (2)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 9


Filter<br />

Was sind Filter?<br />

• Selektion von Frequenzen<br />

• Ausblenden von Frequenzen<br />

Begriffsklärung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 10


Motivierung<br />

• interne Darstellung überlegen<br />

Motivierung


Motivierung<br />

• interne Darstellung überlegen<br />

Motivierung<br />

• viele Transformationen für viele Anwendungsfälle möglich<br />

⋆ Mediziner ↣ gute Qualität<br />

⋆ Webdesigner ↣ geringen Speicherbedarf


Motivierung<br />

• interne Darstellung überlegen<br />

Motivierung<br />

• viele Transformationen für viele Anwendungsfälle möglich<br />

⋆ Mediziner ↣ gute Qualität<br />

⋆ Webdesigner ↣ geringen Speicherbedarf<br />

• außerdem muss overhead beachtet werden


Motivierung<br />

• interne Darstellung überlegen<br />

Motivierung<br />

• viele Transformationen für viele Anwendungsfälle möglich<br />

⋆ Mediziner ↣ gute Qualität<br />

⋆ Webdesigner ↣ geringen Speicherbedarf<br />

• außerdem muss overhead beachtet werden<br />

gesucht wir ein allgemeines praxistaugliches Verfahren<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 11


Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

auch “Principal Component Analysis“ (PCA) o<strong>der</strong> Karhunen-Loeve-Analyse<br />

• eine Methode zur Suche <strong>der</strong> geeigneter Daten<strong>transform</strong>ation<br />

• größtmögliche Separierbarkeit <strong>der</strong> einzelnen Klassen<br />

• Minimierung <strong>der</strong> geometrischen Varianz


Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

auch “Principal Component Analysis“ (PCA) o<strong>der</strong> Karhunen-Loeve-Analyse<br />

• eine Methode zur Suche <strong>der</strong> geeigneter Daten<strong>transform</strong>ation<br />

• größtmögliche Separierbarkeit <strong>der</strong> einzelnen Klassen<br />

• Minimierung <strong>der</strong> geometrischen Varianz<br />

bestmögliche Kompression (beste bekannte Datenkompression)


Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

Diskrete Karhunen-Loeve-Transformation (DKLT)<br />

auch “Principal Component Analysis“ (PCA) o<strong>der</strong> Karhunen-Loeve-Analyse<br />

• eine Methode zur Suche <strong>der</strong> geeigneter Daten<strong>transform</strong>ation<br />

• größtmögliche Separierbarkeit <strong>der</strong> einzelnen Klassen<br />

• Minimierung <strong>der</strong> geometrischen Varianz<br />

bestmögliche Kompression (beste bekannte Datenkompression)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 12


Definition<br />

Definition<br />

• zu segmentierende Region S (unterteilt in R(ed), G(reen), B(lue))<br />

• Kovarianzmatrix 1 K <strong>der</strong> Verteilung von R, G, B in S<br />

• Eigenwerte 2 (λi) i∈{1,2,3} von K<br />

• zu λi gehörende Eigenvektoren Ωi von K<br />

⋆ Ωi = (ωi R , ωi G , ωi B ) T mit ||Ωi|| = 1<br />

1<br />

Was ist⎛Kovarianzmatrix? Cov(X1, X1) . . .<br />

Cov(X) = ⎝ .<br />

. . .<br />

⎞<br />

Cov(X1, Xn)<br />

. ⎠ = (Cov(Xi, Xj))ij<br />

Cov(Xn, X1) . . . Cov(Xn, Xn)<br />

Covarianz: Cov(X1, X2) = E((X1 − E(X1))(X2 − E(X2)))<br />

2<br />

Was sind Eigenwerte?<br />

λ ist Eigenwert einer Martix A, wenn gilt: A · x = λ · x. x ist <strong>der</strong> zugehörige Eigenvektor.<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 13


Definition<br />

Dann ergeben sich die Farbmerkmale Ai aus:<br />

⎛<br />

⎝ A1<br />

A2<br />

A3<br />

A = Φ · S<br />

⎞ ⎛<br />

⎠ =<br />

⎝ ω1 ω1 ω1 R G B<br />

ω2 ω2 ω2 R G B<br />

ω3 R ω3 G ω3 B<br />

⎞<br />

⎠ ·<br />

⎛<br />

⎝ R<br />

⎞<br />

G⎠<br />

B


Definition<br />

Dann ergeben sich die Farbmerkmale Ai aus:<br />

⎛<br />

⎝ A1<br />

A2<br />

A3<br />

A = Φ · S<br />

⎞ ⎛<br />

⎠ =<br />

⎝ ω1 ω1 ω1 R G B<br />

ω2 ω2 ω2 R G B<br />

ω3 R ω3 G ω3 B<br />

⎞<br />

⎠ ·<br />

⎛<br />

⎝ R<br />

⎞<br />

G⎠<br />

B<br />

Die Drehmatrix Φ muss mitgesendet werden ↦→ kann gesamten Gewinn<br />

wie<strong>der</strong> aufheben!<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 14


Idee ↗ Tafel: Bild in Graustufen<br />

• suche Mittelwerte mx und my<br />

Idee


Idee ↗ Tafel: Bild in Graustufen<br />

• suche Mittelwerte mx und my<br />

Idee<br />

• suche Maximum <strong>der</strong> Varianz <strong>der</strong> Werte entlang allen Winkeln


Idee ↗ Tafel: Bild in Graustufen<br />

• suche Mittelwerte mx und my<br />

Idee<br />

• suche Maximum <strong>der</strong> Varianz <strong>der</strong> Werte entlang allen Winkeln<br />

• Transformation und Translation des Koordinatensystems


Idee ↗ Tafel: Bild in Graustufen<br />

• suche Mittelwerte mx und my<br />

Idee<br />

• suche Maximum <strong>der</strong> Varianz <strong>der</strong> Werte entlang allen Winkeln<br />

• Transformation und Translation des Koordinatensystems<br />

Die Drehung des Koordinatensystems wird durch die Drehmatix Φ repräsentiert.<br />

−→ x-Achse (1. Hauptkomponente 3 ) repräsentiert größte unkorrelierte Spektralunterschiede<br />

• . . . (weitere Schritte)<br />

3 zusammengesetzte Hauptkomponenten ergeben wie<strong>der</strong> Bild<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 15


Erweiterbarkeit<br />

Idee<br />

Idee leicht erweiterbar zu n-Dimensionen und Farbbil<strong>der</strong>n (Farbkanäle meist<br />

unkorreliert)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 16


Algorithmus in Pseudocode<br />

zu komprimierendes Bild Be in RGB<br />

Algorithmus in Pseudocode<br />

Berechne KL-Matrix BKLT aus Be<br />

Berechne Kovarianzmatrix K aus Be<br />

Berechne geordnete (λ1 < λ2 < λ3) Eigenwerte<br />

λ1, λ2, λ3 aus Kovarianzmatrix K<br />

forall λi do<br />

Berechne Eigenvektor ωi von λi<br />

Normiere Eigenvektor ωi<br />

Berechne Ausgangspunkt Ai = ωi R ·R+ωi G ·G+ωi B ·B<br />

od<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 17


dynamische Karhunen-Loeve Transformation<br />

dynamische Karhunen-Loeve Transformation<br />

• Yu-Ichi Ohta (1980): Suche nach optimaler Separierbarkeit<br />

• Verwendung auch an<strong>der</strong>er Darstellungen {(R, G, B), (X, Y, Z), (L, a, b), . . .}<br />

• auffallend war:<br />

Eigenvektor Ω1 des größten Eigenwertes λi:<br />

ähnlich bei Ω2 und Ω3<br />

Ω1 ≈<br />

T 1<br />

Ω2 ≈ ± , 0, −1<br />

2 2<br />

T 1 1 1<br />

, ,<br />

3 3 3<br />

Ω3 ≈<br />

<br />

− 1<br />

T 1<br />

, , −1<br />

4 2 4<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 18


dynamische Karhunen-Loeve Transformation<br />

Nach Otha sind die Eigenvektoren unabhängig von den Testbil<strong>der</strong>n!<br />

−→ nimm diese Werte


dynamische Karhunen-Loeve Transformation<br />

Nach Otha sind die Eigenvektoren unabhängig von den Testbil<strong>der</strong>n!<br />

−→ nimm diese Werte<br />

−→ bestmögliche generische Transformation bzgl. <strong>der</strong> Separierbarkeit von<br />

Farbklassen:<br />

⎛<br />

⎝ A1<br />

⎛<br />

1<br />

⎞<br />

⎜<br />

3<br />

A2⎠<br />

= ⎜<br />

⎜±<br />

A3 ⎝<br />

1<br />

3<br />

1<br />

3<br />

1<br />

2<br />

0 ∓ 1<br />

−<br />

2<br />

1<br />

4<br />

1<br />

2 −1<br />

⎞<br />

⎟<br />

⎠<br />

4<br />

·<br />

⎛<br />

⎝ R<br />

⎞<br />

G⎠<br />

B<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 19


Anwendung<br />

Anwendung <strong>der</strong> Karhunen-Loeve Transformation<br />

• Graubil<strong>der</strong>, wenn Grauwerte innerhalb <strong>der</strong> Spektralkanäle stark korrelieren<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 20


Fazit<br />

• (wahrscheinlich) beste Komprimierung<br />

• sehr aufwendig<br />

• nur nutzbar für Graubil<strong>der</strong><br />

• wenig Anwendung in <strong>der</strong> Praxis<br />

Fazit<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 21


Diskrete Cosinus-Transformation (DCT)<br />

Diskrete Cosinus-Transformation (DCT)<br />

• Grundlage bildet die Fourier<strong>transform</strong>ation<br />

⋆ Fourier<strong>transform</strong>ation: 2-dimensional (Frequenz und Zeit)<br />

⋆ Cosinus-Transformation: 3-dimensional (Frequenz, Zeit und Farbwert)<br />

entscheiden<strong>der</strong> Unterschied: 3-dimensionaler Raum<br />

• beim DCT werden immer kleine Blöcke betrachtet (JPEG-Standard: 8x8)<br />

⋆ das 2-dimensionale DCT ist eine Kombination des 1-dimensionalen DCT über<br />

die Zeilen und Spalten<br />

• größere Blöcke möglich, aber aufwendiger<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 22


1-dimensionale DCT<br />

Basisvektoren für die 1-dimensionale DCT<br />

• Bild 0: gleichmäßige Strukturen werden abgetastet (große Flächen)<br />

• . . . Verfeinerung <strong>der</strong> abgetasteten Strukturen . . .<br />

• Bild 7: feinste Strukturen werden abgetastet (Kanten)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 23


2-dimensionale DCT<br />

Basismatrizen für die 2-dimensionale DCT (analog)<br />

• rechte obere Ecke: Abtastung <strong>der</strong> groben Strukturen (Flächen)<br />

• linke untere Ecke: Abtastung <strong>der</strong> feinen Strukturen (Kanten)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 24


Grundlage<br />

Grundlage <strong>der</strong> Cosinus-Transformation: beliebig genaue Darstellung für<br />

alle Funktionen (in einem festen Intervall) durch eine Folge von Sinus- und<br />

Cosinus-Transformationen möglich.<br />

Voraussetzung: Korrelation zwischen Signalen muss existieren!<br />

DCT kann unter Umständen die DKLT approximieren<br />

−→ erreicht damit annähernd gleiche Kompression<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 25


n · Cu · Cv · n−1<br />

i=0 j=0<br />

Formel<br />

Formel zur Berechnung des Ausgangsbilds<br />

Auv = 2<br />

<br />

n−1 π·u(2i+1) π·v(2i+1)<br />

Eij ·<br />

·<br />

Für die Normierungskonstanten<br />

Ck(k ∈ {0, 1, . . . , n − 1}) gilt:<br />

Ck =<br />

1<br />

√2<br />

falls k = 0<br />

1 sonst<br />

2n<br />

2n<br />

Transformationsmatrix berechnet sich aus:<br />

C =<br />

<br />

1n · cos (2j+1)·i·Π<br />

2n<br />

2n · cos (2j+1)·i·Π<br />

2n<br />

E ij : <strong>der</strong> Farbwert des Pixels in <strong>der</strong> i-ten Matrixzeile und <strong>der</strong> j-ten Matrixspalte<br />

1. Spalte<br />

an<strong>der</strong>e Spalten<br />

Auv : <strong>der</strong> <strong>transform</strong>ierte Wert in <strong>der</strong> u-ten Zeile und <strong>der</strong> v-ten Spalte <strong>der</strong> <strong>transform</strong>ierten Matrix<br />

n : Anzahl <strong>der</strong> Zeilen/Spalten <strong>der</strong> Matrix (im JPEG-Standard ist n = 8)<br />

u und v : geben dabei den Offset innerhalb <strong>der</strong> DCT-Matrix an<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 26


Beispiel<br />

Bsp.: Umwandlung von einem Bild in Matrixdarstellung (Helligkeitsmatrix Θ)<br />

⎛<br />

⎞<br />

Θ =<br />

⎜<br />

⎝<br />

10 10 10 20 20 10 10 10<br />

10 20 20 20 20 20 20 10<br />

20 20 30 20 20 30 20 20<br />

20 20 20 20 20 20 20 20<br />

20 20 30 20 20 30 20 20<br />

20 20 20 30 30 20 20 20<br />

10 20 20 20 20 20 20 10<br />

10 10 10 20 20 10 10 10<br />

⎟<br />


Beispiel<br />

Bsp.: Umwandlung von einem Bild in Matrixdarstellung (Helligkeitsmatrix Θ)<br />

⎛<br />

⎞<br />

Θ =<br />

⎜<br />

⎝<br />

10 10 10 20 20 10 10 10<br />

10 20 20 20 20 20 20 10<br />

20 20 30 20 20 30 20 20<br />

20 20 20 20 20 20 20 20<br />

20 20 30 20 20 30 20 20<br />

20 20 20 30 30 20 20 20<br />

10 20 20 20 20 20 20 10<br />

10 10 10 20 20 10 10 10<br />

⎟<br />


Beispiel<br />

Bsp.: Umwandlung von einem Bild in Matrixdarstellung (Helligkeitsmatrix Θ)<br />

⎛<br />

⎞<br />

Θ =<br />

⎜<br />

⎝<br />

10 10 10 20 20 10 10 10<br />

10 20 20 20 20 20 20 10<br />

20 20 30 20 20 30 20 20<br />

20 20 20 20 20 20 20 20<br />

20 20 30 20 20 30 20 20<br />

20 20 20 30 30 20 20 20<br />

10 20 20 20 20 20 20 10<br />

10 10 10 20 20 10 10 10<br />

⎟<br />

⎠<br />

gleiche Werte im Bild, gleiche Werte in Matrix<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 27


Beispiel<br />

Es entsteht folgende Matrix:<br />

⎛<br />

147<br />

⎜ 0<br />

⎜<br />

⎜−28<br />

⎜<br />

A = ⎜ 1<br />

⎜<br />

⎜−12<br />

⎜ −2<br />

⎝ 3<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−19<br />

1<br />

−7<br />

−3<br />

3<br />

2<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−2<br />

−3<br />

7<br />

4<br />

7<br />

1<br />

10<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

2<br />

−10<br />

−3<br />

1<br />

−2<br />

2<br />

⎞<br />

0<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0⎠<br />

3 0 0 0 −9 0 9 0<br />

Konzentration von betragsmäßig großen Werte links oben und kleinen rechts<br />

unten.


Beispiel<br />

Es entsteht folgende Matrix:<br />

⎛<br />

147<br />

⎜ 0<br />

⎜<br />

⎜−28<br />

⎜<br />

A = ⎜ 1<br />

⎜<br />

⎜−12<br />

⎜ −2<br />

⎝ 3<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−19<br />

1<br />

−7<br />

−3<br />

3<br />

2<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−2<br />

−3<br />

7<br />

4<br />

7<br />

1<br />

10<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

2<br />

−10<br />

−3<br />

1<br />

−2<br />

2<br />

⎞<br />

0<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0 ⎟<br />

0⎠<br />

3 0 0 0 −9 0 9 0<br />

Konzentration von betragsmäßig großen Werte links oben und kleinen rechts<br />

unten.<br />

diese Transformation führt zu keinem Informationsverlust!<br />

Außer Rundungsfehlern und diskreten Charakter.<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 28


Ausblick: Quantisierung<br />

Ausblick: Quantisierung<br />

Setzen <strong>der</strong> unteren Werte auf null, bewirkt wenig Informationsverlust, aber<br />

relativ viel Speicherplatzgewinn.<br />

Bsp. (1)


Ausblick: Quantisierung<br />

Ausblick: Quantisierung<br />

Setzen <strong>der</strong> unteren Werte auf null, bewirkt wenig Informationsverlust, aber<br />

relativ viel Speicherplatzgewinn.<br />

Bsp. (1)


Ausblick: Quantisierung<br />

Ausblick: Quantisierung<br />

Setzen <strong>der</strong> unteren Werte auf null, bewirkt wenig Informationsverlust, aber<br />

relativ viel Speicherplatzgewinn.<br />

Bsp. (1)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 29


Zusammenfassung<br />

• Vorteil:<br />

⋆ hohe Kompression möglich<br />

⋆ angemessener Aufwand<br />

Zusammenfassung


Zusammenfassung<br />

• Vorteil:<br />

⋆ hohe Kompression möglich<br />

⋆ angemessener Aufwand<br />

• Nachteil:<br />

⋆ Artefaktbildung<br />

Zusammenfassung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 30


Break<br />

Break<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 31


Wie<strong>der</strong>holung: Diskrete Cosinus-Transformation<br />

Wie<strong>der</strong>holung: Diskrete Cosinus-Transformation (für Bil<strong>der</strong>)<br />

• basierend auf 3 dimensionaler Darstellung<br />

• Zerlegung in Blöcke<br />

• Filterung von Strukturen<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 32


Wie<strong>der</strong>holung: 2-dimensionale DCT<br />

Basismatrizen für die 2-dimensionale DCT<br />

• rechte obere Ecke: Abtastung <strong>der</strong> groben Strukturen (Flächen)<br />

• linke untere Ecke: Abtastung <strong>der</strong> feinen Strukturen (Kanten)<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 33


Zusammenfassung<br />

• Vorteil:<br />

⋆ hohe Kompression möglich<br />

⋆ angemessener Aufwand<br />

Wie<strong>der</strong>holung: Zusammenfassung


Zusammenfassung<br />

• Vorteil:<br />

⋆ hohe Kompression möglich<br />

⋆ angemessener Aufwand<br />

• Nachteil:<br />

⋆ Artefaktbildung<br />

Wie<strong>der</strong>holung: Zusammenfassung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 34


Diskrete Wavelet-Transformation<br />

Diskrete Wavelet-Transformation<br />

• Ausgangspunkt: DCT<br />

• Ziel: Vermeidung von Blockartefakten


Diskrete Wavelet-Transformation<br />

Diskrete Wavelet-Transformation<br />

• Ausgangspunkt: DCT<br />

• Ziel: Vermeidung von Blockartefakten<br />

• Anwendung <strong>der</strong> Transformation nicht nur auf Block, son<strong>der</strong>n auf gesamtes Bild<br />

Blockgröße aus algorithmischen Gründen nicht beliebig vergrößerbar.


Diskrete Wavelet-Transformation<br />

Diskrete Wavelet-Transformation<br />

• Ausgangspunkt: DCT<br />

• Ziel: Vermeidung von Blockartefakten<br />

• Anwendung <strong>der</strong> Transformation nicht nur auf Block, son<strong>der</strong>n auf gesamtes Bild<br />

Blockgröße aus algorithmischen Gründen nicht beliebig vergrößerbar.<br />

• suche Algorithmus, <strong>der</strong> keine Blöcke braucht<br />

−→ Wavelet-Transformation<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 35


Kurzabriss<br />

• relativ neu<br />

Kurzabriss<br />

• Ende 80er: entwicklet aus Geophysik und Mathematik (Yves Meyer)<br />

• Weiterentwicklung: Uni NY und BELL Labs −→ Verbindungen zur Signalverarbeitung<br />

• weitere Anwendungsgebiete<br />

⋆ Statistik<br />

⋆ Behandlung von Differentialgleichungen<br />

⋆ Erforschung von Fraktalen<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 36


Idee<br />

• redundante Informationen filtern<br />

Idee<br />

• c’t: “den Wald und die Bäume gleichzeitig zu sehen“


Idee<br />

• redundante Informationen filtern<br />

Idee<br />

• c’t: “den Wald und die Bäume gleichzeitig zu sehen“<br />

• Unterscheidung in Wahrnehmung von groben und feinen Details<br />

→ Trennung <strong>der</strong> groben von den feinen Strukturen durch “Schärfeneinstellung“<br />

• Unschärfe = Glättung, also Mittelwertbildung


Idee<br />

• redundante Informationen filtern<br />

Idee<br />

• c’t: “den Wald und die Bäume gleichzeitig zu sehen“<br />

• Unterscheidung in Wahrnehmung von groben und feinen Details<br />

→ Trennung <strong>der</strong> groben von den feinen Strukturen durch “Schärfeneinstellung“<br />

• Unschärfe = Glättung, also Mittelwertbildung<br />

Darstellung wie<strong>der</strong> als Funktion<br />

aber: keine unendlich ausgebreiteten Sinusschwingungen, son<strong>der</strong>n<br />

kompakte Schwingungen<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 37


Was sind kompakte Schwingungen?<br />

Bsp.:<br />

kompakte Schwingungen


Was sind kompakte Schwingungen?<br />

Bsp.:<br />

kompakte Schwingungen<br />

Wavelet: little waves, Wellchen<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 38


Aufbau eines Wavelets<br />

Aufbau eines Wavelets<br />

→ Muster eines Wavelets ist ein Basiswavelet/-skalierungsfunktion.<br />

• Signal wird aus gedehnten, gestauchten und verschobenen Versionen des<br />

Basis-Wavelets zusammengesetzt<br />

• Haar-Basis ist einfachste Waveletbasis (1910)<br />

↗ Tafel: Verfeinerung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 39


Grundprinzip: Filterung<br />

zwei Arten von Filtern nötig:<br />

• Details werden herausgefiltet 4<br />

Filter<br />

Natürlich dürfen durch Filter keine Informationen verloren gehen!<br />

Energie- o<strong>der</strong> Informationserhaltung


Grundprinzip: Filterung<br />

zwei Arten von Filtern nötig:<br />

• Details werden herausgefiltet 4<br />

Filter<br />

Natürlich dürfen durch Filter keine Informationen verloren gehen!<br />

Energie- o<strong>der</strong> Informationserhaltung<br />

• gefilterte Informationen lassen sich durch einen Differenzenfilter 5 wie<strong>der</strong>herstellen<br />

Bsp.<br />

↗ Tafel<br />

4 Tiefpass<br />

5 Hochpass-/Bandpass<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 40


Schnelle Wavelet-Transformation<br />

Schnelle Wavelet-Transformation<br />

• Ziel: möglichst gute Qualität bei geringem Speicherplatz<br />

• viele Durchläufe → hoher Aufwand


Schnelle Wavelet-Transformation<br />

Schnelle Wavelet-Transformation<br />

• Ziel: möglichst gute Qualität bei geringem Speicherplatz<br />

• viele Durchläufe → hoher Aufwand<br />

Lösung: rekursive Wavelet-Transformation → dyadische Wavelets<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 41


dyadische Wavelets<br />

Schnelle Wavelet-Transformation<br />

• “downsampling by 2 after filtering“, “lifting“ (Aufspaltung in Pixel an geraden/ungeraden<br />

Indizes, lazy wavelet) → je<strong>der</strong> Schritt ist doppelt so schnell wie<br />

<strong>der</strong> vorhergehende<br />

→ Aufwand geringer<br />

Entdeckung dyadischer Wavelets (1986, Stéphane Mallat und Yves Meyer)<br />

entscheidend für Signalverarbeitung<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 42


Beispiel


Beispiel


Beispiel


Beispiel<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 43


wichtigste Klassen von Wavelets<br />

• bi-orthogonale Wavelets<br />

• orthogonale Wavelets<br />

Klassen von Wavelets<br />

Spricht man von Wavelets ohne weitere Präzisierung, so sind meistens die<br />

orthogonalen Wavelets gemeint.<br />

weitere Einteilungen<br />

• Riesz-Wavelets<br />

• dyadische Wavelets<br />

• einfache Wavelets<br />

• semi-orthogonale Wavelets<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 44


Vorteile <strong>der</strong> Wavelets gegenüber DCT<br />

Vorteile <strong>der</strong> Wavelets gegenüber DCT<br />

• Komprimierung liefert qualitativ bessere Ergebnisse<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 45


Vergleich<br />

Vergleich Cosinus-Transformation und Wavelet-Transformation bei<br />

Komprimierungsfaktor 10<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 46


Vergleich<br />

Vergleich Cosinus-Transformation und Wavelet-Transformation bei<br />

Komprimierungsfaktor 25<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 47


Vergleich<br />

Vergleich Cosinus-Transformation und Wavelet-Transformation bei<br />

Komprimierungsfaktor 50<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 48


Vergleich<br />

Vergleich Cosinus-Transformation und Wavelet-Transformation bei<br />

Komprimierungsfaktor 100<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 49


Vorteile <strong>der</strong> Wavelets<br />

• Komprimierung liefert gute Ergebnisse<br />

Vorteile <strong>der</strong> Wavelets<br />

• lossy und lossless in einem Algorithmus auswählbar<br />

• Vorschaufunktion möglich (stufenweise)<br />

• Dateigröße bitgenau angebbar<br />

• Aufwand: linear (bei konstanter Anzahl von Transformationsleveln) (zum Vergleich:<br />

Karhunen-Loeve-Transformation O(n 3 ))


Vorteile <strong>der</strong> Wavelets<br />

• Komprimierung liefert gute Ergebnisse<br />

Vorteile <strong>der</strong> Wavelets<br />

• lossy und lossless in einem Algorithmus auswählbar<br />

• Vorschaufunktion möglich (stufenweise)<br />

• Dateigröße bitgenau angebbar<br />

• Aufwand: linear (bei konstanter Anzahl von Transformationsleveln) (zum Vergleich:<br />

Karhunen-Loeve-Transformation O(n 3 ))<br />

−→ gute Gründe die Wavelet-Transformation als Grundlage für den<br />

JPEG2000-Standard zu nutzen.<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 50


Quellen<br />

Quellen<br />

1. Introduction to Data Compression, K. Sayood, Morgan Kaufmann Publishers,<br />

1996<br />

2. Wavelets and Subband Coding, M. Vetterli, J. Kovacevic, 1995<br />

Karhunen-Loeve<br />

1. http://www.augusta.de/˜ hafner/diss/node66.html<br />

2. http://ivvgeo.uni-muenster.de/Vorlesung/FE Script/kapitel3/main3-5.html<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 51


Cosinus-Transformation<br />

Quellen<br />

1. http://www.samstagsuni.de/schueler-info/bild1 dct/vortrag1.pdf<br />

2. http://www.ztt.fh-worms.de/de/sem/ws95 96/kompressionsalgorithmen/<br />

3. http://picasso.gm.fh-koeln.de/˜ stroh/DV/MPEG/Funktion/funktion.html<br />

4. http://user.cs.tu-berlin.de/˜ magus/dct/aufgabe.html<br />

5. http://www.prz.tu-berlin.de/docs/Publications/TUB-PRZ-W-1243/<br />

6. http://www.comnets.rwth-aachen.de/˜ adsl/vorlesung/DCT Son<strong>der</strong>vorlesung.pdf<br />

Wavelets<br />

1. Dr. Wilhelm Berghorn, Tobias Boskamp, Steven Schönfeld, Prof. Dr. Hans-Georg Stark: Winzig<br />

mit Wavelets, c’t 11/99<br />

2. http://i31www.ira.uka.de/docs/semin94/Seminar.html<br />

3. Adaptive construction of wavelets for image compression, H. Thielemann,<br />

<strong>MLU</strong> <strong>Halle</strong>, Diplomarbeit 2001<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 52


weiterführende Quellen<br />

Quellen<br />

1. Visualisierung des Quantisierungseffekts<br />

2. Diskrete Cosinus-Transformation in C<br />

3. Ausführliche Vergleichsbeispiele zu Wavelet und Cosinus-Transformation<br />

4. Yu-Ichi Ohta, Takeo Kanade und Toshiyuki Sakai: Color Information for Region Segmentation.<br />

Computer Graphics and Image Processing, (13):222-241, 1980<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 53


Question Time<br />

?<br />

Fragen?


Question Time<br />

?<br />

Fragen?<br />

Note: This presentation is not generated using Microsoft PowerPoint.


Question Time<br />

?<br />

Fragen?<br />

Note: This presentation is not generated using Microsoft PowerPoint.<br />

Vortrag beenden<br />

Andreas Both, Seminar Datenkompression, <strong>MLU</strong> <strong>Halle</strong> ❂ ⇐ ⇐ ▲ ▼ ⇒ ⇒ Toggle: Fullscreen Präsentation beenden 54

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!