transform coding - Lehrstuhl Technische Informatik der MLU Halle ...
transform coding - Lehrstuhl Technische Informatik der MLU Halle ...
transform coding - Lehrstuhl Technische Informatik der MLU Halle ...
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