Image Compression
Image Compression
Image Compression
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Image</strong> <strong>Compression</strong><br />
Vorlesung FH-Hagenberg<br />
DSB<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Kompression<br />
Encoder<br />
Decoder<br />
Beseitigung der unnötigen Daten<br />
... Redundanz<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Inhalte<br />
• Redundanz<br />
• Loss-less <strong>Compression</strong><br />
– Hufmann Coding<br />
– Runlength Coding<br />
• Lossy <strong>Compression</strong><br />
– Transform Coding<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Redundanz<br />
• Daten Information<br />
• Kompressionsrate= n1 /n2 –n1 , n2 Anzahl der Info-Träger<br />
• Relative Redundanz<br />
– R D =1-(1/C R )<br />
• n1 =n2 RD =0, n2
Coding-Redundanz<br />
r p( r ) Code 1 l ( r ) Code 2 l ( r )<br />
1 0,19 000 3 11 2<br />
2 0,25 001 3 01 2<br />
3 0,21 010 3 10 2<br />
4 0,16 011 3 001 3<br />
5 0,08 100 3 0001 4<br />
6 0,06 101 3 00001 5<br />
7 0,03 110 3 000001 6<br />
8 0,02 111 3 000000 6<br />
L = ∑l( r)<br />
⋅ p(<br />
r)<br />
r<br />
L=2,7bit<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Interpixel-Redundanz<br />
• Threshold<br />
•Run-length<br />
•1024x343<br />
•~12.000 runs/ 11 bit<br />
•C R =2.63<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Psychovisuelle Redundanz<br />
(a) 256, (b) 16 gleichverteilt, (c ) 16 quantisiert<br />
Graustufen<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Literatur<br />
• http://datacompression.info/<br />
• comp.compression FAQ (part2)<br />
• University of Western Australia algorithms course<br />
– http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/huffman.html<br />
• http://compression.graphicon.ru/download/articles/huff/huffman_1952_mi<br />
nimum-redundancy-codes.pdf<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Informationstheorie<br />
• I(E)=log(1/p(E))=-log(p(E)) Selbstinformation<br />
– sicheres Ereignis p(E)=1 I(E)=0<br />
• Beispiel : Text bestehend aus einem Buchstaben<br />
– unwahrscheinliches Ereignis p(E)>1 I(E) >>0<br />
• Beispiel: “normal-verteilter” Text<br />
• Durchschnittliche Selbstinfo = Entropie<br />
H<br />
( z)<br />
=<br />
−<br />
J<br />
∑<br />
j=<br />
1<br />
p(<br />
a<br />
j<br />
) log( p(<br />
a<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder<br />
j<br />
))
Huffman: Source Reduction<br />
• Häufigkeit der Quellsymbole wird ermittelt<br />
• zwei Symbole mit niedrigster Wahrscheinlichkeit werde<br />
zusammengefaßt<br />
• Reduktion auf zwei Gruppen<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Huffman: Codierung<br />
• Oberstes Level: Zuweisung der Symbole 0,1<br />
• Aufspaltung der zusammengesetzen Gruppe<br />
• Resulierender Code:<br />
– eindeutig, instant, minimale Redundanz (optimal)<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Decodierung<br />
• Baum wird von oben<br />
nach unten durchlaufen<br />
• Dekodiertes Symbol am<br />
Ende eines Zweiges<br />
• Symbole eindeutig<br />
(binärer Baum)<br />
• Codelänge<br />
unterschiedlich für<br />
Symbole<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Run-length Coding<br />
• Verfahren für Fax<br />
• Zeilenweise Verarbeitung<br />
• Codierung (Grauwert, Anzahl)<br />
• Binär: Längen von weiß und schwarz<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Bitplane-Coding<br />
Bits 7-4 Bits 3-0<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Bitplane Decomposition & Coding<br />
• Decomposition eines Grauwertes mit m-<br />
Bit/Pixel<br />
a<br />
m−1<br />
m−2<br />
m −12<br />
+ am−22<br />
+ ⋅⋅⋅+<br />
a0<br />
• Codierung mit exklusiv oder (XOR), g i<br />
neuer Code<br />
g<br />
g<br />
m−1<br />
i<br />
=<br />
=<br />
a<br />
i<br />
a<br />
m−1<br />
⊕a<br />
i+<br />
1<br />
• zB. 127={0111 1111} a ={0100 0000} g<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder<br />
2<br />
0
Transformations Coding<br />
• Einteilung in Sub-<strong>Image</strong>s (8x8)<br />
• Transformation<br />
• Quantisierung<br />
• Code-Generierung<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Transformation: Motivation<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Beispiel: DCT 1 Koeffizient<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Beispiel: DCT 3 Koeffizienten<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Transform Coding:<br />
Maskengröße<br />
(a) DCT 25%<br />
(b) Differenz 8x8 Maske<br />
(c) original<br />
(d) 2x2<br />
(e) 4x4<br />
(f) 8x8<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Quantisierung<br />
Auswahl der Koeffizienten<br />
• Zonale Masken<br />
• Threshold<br />
– Global<br />
– Adaptiv<br />
– Maskiert<br />
• Codierung<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Quantisierung:Masken<br />
(a) Zonale Maske<br />
(b) gespeicherte Bits<br />
(c) Threshold Mask<br />
(d) Koeffizienten-<br />
Anordnung<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Transform Coding:<br />
Quantisierung<br />
Threshold Coding<br />
(links)<br />
Zonen-Maske<br />
(rechts)<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Threshold und JPEG-Maske<br />
T(u,v)=round(T(u,v)/M(u,v))<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Quantisierung<br />
JPEG Maske<br />
(links)<br />
4xMaske<br />
(rechts)<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
JPEG-Verfahren<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Farbtransformation<br />
• RGB -> YUV ->YCbCr<br />
– Cb Abweichung Blau-Gelb<br />
– Cr Abweichnung Rot-Cyan<br />
• Komponenten in YUV geringer korreliert<br />
• Farbebenen werden getrennt komprimiert<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Down-Sampling<br />
• Farbkomponente wird komprimiert<br />
• Luninanz-Signal bleibt erhalten<br />
4:2:0-Abtastung PAL-DV Standard<br />
z.B. 2x2 Block: Original 4x3=12 Werte<br />
Komprimiert: 4+2=6 Werte = 50% reduziert<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Downsampling Schema<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Transformation<br />
• Bildung von 8x8 Blöcken<br />
• Diskrete Cosinustransformation<br />
– Basis-Funktionen<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Quantisierung<br />
• Gewichtung eines jeden Koeffizieneten der<br />
DCT<br />
G'(<br />
u,<br />
v)<br />
=<br />
round<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder<br />
⎛<br />
⎜<br />
⎝<br />
G(<br />
u,<br />
v)<br />
q(<br />
u,<br />
v)<br />
Quantisierungs-Tabelle<br />
• eine Tabelle pro Farbebene<br />
• für jeden Koeffizienten eine Qualitätswert<br />
• niedrige Werte -> geringer Verlust<br />
⎞<br />
⎟<br />
⎠
Quantisierungstabelle<br />
Beispiel:<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Codierung<br />
Umordnen der 8x8 Maske zu einem linearen Array:<br />
Zigg-Zagg-Ordering:<br />
Durch starke<br />
Quantisierung der<br />
hohen Frequenzen,<br />
entstehen lange<br />
Nullfolgen<br />
•Huffman coding<br />
•Runlength Coding<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder
Zusammenfassung:<br />
• Farbtransformation<br />
• Downsampling<br />
• Diskrete Cosinus-Transformation<br />
• Quantisierung<br />
• Codierung<br />
Orange markierte Schritte komprimieren Daten<br />
Digitale Signal & Bildverarbeitung Werner Backfrieder