Kompression
“But life is short and information endless...”
Aldous Huxley
A
Überblick Einführung & Grundlagen Dekorrelation
DCT (JPEG) DWT (JPEG2000)
Quantisierung Entropiekodierung
Huffman Run Length Encoding Arithmetische Codes Bitplane Coding Predictive Coding
Fraktale Kompression Videokompression
Einführung
Rasterung und Abtastung einer Intensitätsfunktion von Licht erzeugt große Datenmengen
→ hohe Anforderungen an die Datenspeicherung Datenübertragung
Wunsch nach kompakterer Darstellung/ Repräsentation digitaler Bilder und Videos
Einführung
Multimedia Data Grösse/DauerBits/Pixel bzw.
Bits/SampleUnkomprimierte Größe (in bytes)
Übertragungs-bandbreite (in
bits)
1 Seite Text A4variable
Auflösung4-8 kB
32-64 kbit/Seite
Telefon (Sprachqualität)
10 sec 8 bps 80 kB 64 kbit/s
Graustufenbild 512x512 8 bps 262 kB 2.1 Mbit/Bild
Farbbild 512x512 24 bpp 786 kB 6.29 Mbit/Bild
Medizinische Bilddaten 2048x2048 12 bpp 5.16 MB 41.3 Mbit/Bild
7.2 Megapixel Bild 3000x2400 24 bpp 20.59 MB 165 MBit/Bild
SD-Video(PAL Auflösung)
720x576, 1 min, 25 FPS
24 bpp933.12 MB
(1 min.)124.42 Mbit/s
HD-Video1920x1080 (interlaced)
24 bpp9.33 GB (1 min.)
1.24 GBit/s
Einführung
Problemstellungen: Reduktion der Daten zur Repräsentation einer
gegebenen Menge an visueller Information
Elimination von RedundanzAlgorithmische Transformation in einen statistisch
unkorrellierten Datensatz und anschließender Kodierung
Reduktion von Information, die für eine bestimmte Anwendung nicht interessant ist
Elimination von IrrelevanzVerringerung der Genauigkeit der Darstellung
Grundlagen
Information: Reduktion von Unsicherheit (Claude Shannon) Die minimale Anzahl an ja/nein Fragen um eine
Information eindeutig zu bestimmen
Informationsgehalt einer Information mit der Auftrittswahrscheinlichkeit p
12log)( ppI
Grundlagen
Shannon Entropie: Maß zur statistischen Bestimmung des Informationsgehaltes einer
Informationsquelle erlaubt die Bestimmung der minimalen Länge einer kodierten
“Nachricht”
Entropie einer Quelle dessen Alphabet aus den Symbolen i mit Auftrittswahrscheinlichkeit pi besteht
Annahme: Statistische Unabhängigkeit der Symbole
ii
i ppH 2log
Grundlagen
Daten Mittel zur Darstellung von Information Folgen von 0 und 1 Existenz mehrerer verschiedener Datendarstellungen
für dieselbe Information Teile der Daten enthalten keine Information
Datenredundanz
Kompression
Modell
Klassifikation
Verlustlose KompressionVerlustbehaftete Kompression
Kompression
KomprimierteDaten
Dekompression
Originaldaten
Rekonstruktion
Rate-Distortion-Theory: Rate
Datenrate
Kompressionsrate
Redundanz
CodeBits
SourceBitsr n
nC
RCd
r
11
(nBits-Source: Quell-Wortlänge , nBits-Code: Kodierungs-Wortlänge)
][bpsn
nR
Samples
Bits
Rate-Distortion-Theory: Distortion Größe des „Fehlers“ der durch die Kompression entstanden
ist Äussert sich in Form von Kompressionsartefakten Gemessen durch Vergleich einer Rekonstruktion mit dem
Original durch eine Metrik Typische Metrik: Mean Squared Error (MSE)
Abgeleitete Qualitätsmetrik: Peak Signal to Noise Ratio (PSNR)
Faustregel: 1 bpp mehr an Datenrate 6dB mehr an Qualität
Rate-Distortion-Theory: R/D - Kurve
Redundanzen
Kodierungen Nachbarschaftsbeziehungen
räumlichzeitlich (Video)
Nachbarschaftsbeziehungen
Histogramm Histogramm
Psychovisuelle Eindrücke
Wahrnehmungsmodell des Menschen→ z.B. Farbauflösung des menschlichen Auges
Abhängig von der Anwendung
Psychovisuelle Eindrücke
256 Graustufen 16 Graustufen (normal) 16 Graustufen mit Improved Gray-Scale Quantization (IGS)
KompressionspipelineKompression
KomprimierteDaten
Dekompression
Originaldaten Farbtrafo QuantisierungDekorrelationsTransformation
EntropieKodierung
Ratenallozierung
Rekonstruktion InverseFarbtrafo Dequantisierung
InverseDekorrelationsTransformation
EntropieDekodierung
Farbtransformation
RGB YCbCr Effekte:
DekorrelationAnpassung an Psychovisuelle Eindrücke
Gröbere Darstellung der FarbkanäleSubsampling in JPEG
Dekorrelation: Wahl der Transformation
Fourier Discrete Cosine Transform
(JPEG) Walsh-Hadamard Discrete Wavelet Transform
(JPEG 2000)
Dekorrelation: DCT in JPEG
DCT:
Pseudofrequenzdarstellung Exzellente Datendekorrelation
Energie im Direct Current Koeffizient konzentriert Alternating Current Koeffizienten üblicherweise klein
Koeffizienten enthalten keine Ortsinformation Aufteilung in Blöcke erforderlich
Effiziente SW, beschleunigte HW
01
0,2
1
f
fC f
n
ftpC
nG
n
ttff 2
)12(cos
2 1
0
Dekorrelation: DCT in JPEG
Differenzsignal
Dekorrelation: DCT in JPEG
Dekorrelation: DWT in JPEG2000 (Kontinuierliche) Wavelet-Transformation:
mit „Mutter“-Wavelet:
Verwandt mit Fourier-Transformation, aber mit lokalem Support durch „Fensterung“!
Beispiele für Mutter-Wavelets
Dekorrelation: DWT in JPEG2000 Diskrete Wavelet-Transformation kann als „Multi-
skalenfilter“ implementiert werden→ Diskretisierung der Parameter a und b!
Originalbild 1. Iteration 2. Iteration …
Dekorrelation: DWT in JPEG2000
DWT vs. DCT
Quantisierung Quantisierung: Abbildung einer wertkontinuierlichen
Quelle in eine wertdiskrete Quelle
Dequantisierung:Rekonstruktion der wertkontinuierlichen Quelle aus einer wertdiskreten Quelle
Reduktion von Irrelevanz (Verlustbehaftet!)
Quantisierung: Schwellwert-Kodierung
691636 543 203301429 161211
12 63 95 8110694 17 -39
-7 -26 -4 2957 17 -8
0 -1 0 -0-11 -1 0
8 6 -6 -1-93 0 14
-1 1 1 013 0 1
-6 -2 -3 431 4 -11
0 0 -0 002 6 1
691636543 203301429 161211
63 95 8110694 -39
-26 29
Standard-Basis(Ortsbereich)
Transformierte Basis(„Frequenzbereich“)
Transformation
Quantisierung
Rücktransformation
→ resultierender Fehler im Ortsbereich: ~37.4
Quantisierung in JPEG
691636543 203301429 161211
12 63 95 8110694 17 -39
-7 -26 -4 2957 17 -8
0 -1 0 -0-11 -1 0
8 6 -6 -1-93 0 14
-1 1 1 013 0 1
-6 -2 -3 431 4 -11
0 0 -0 002 6 1
Standard-Basis(Ortsbereich)
Transformierte Basis („Frequenzbereich“)
Transformation
Quantisierung
Rücktransformation
10 15 25 665137 82 100
15 19 28 675239 83 101
25 28 35 725845 88 105
100101105 130119111 142156
37 35 45 796654 94 111
82 83 88 11410394 127142
51 52 58 897666 103119
66 67 72 1018979 114130
690630550 198306444 164200
15 57 84 6710478 0 0
0 -28 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
69 42 22 3612 2 2
1 3 3 122 0 0
0 -1 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0
0 0 0 000 0 0 Dequantisierung
Quantisierung in JPEG
© Girod – Video and Image Compression
Quantisierung in JPEG
25%
50% 5640 byte
3815 byte75% 8065 byte
10% 2334 byte
5% 1685 byte
1% 1310 byte100% 31810 byte
Original 142738 byte
Entropiekodierung
Variable-Length CodingHuffman CodeArithmetischer Code
Bit-Plane CodingBit-Plane Slicing / Run-Length Coding
Predictive Coding
Entropiekodierung: Huffman Code
Codewörter variabler Länge (ganzzahlige Anzahl von Bits)
Repräsentation von Zeichen mit größerer Wahrscheinlichkeit durch kürzere Codewörter
Codierung durch Erzeugen eines Huffman-Codebaumes
Präfix-Eigenschafteindeutige Dekodierung
Anwendung in JPEG
Entropiekodierung: Huffman Code
0.36
0.12
0.22
0.10
0.08
0.02
0.06
0.04
a7
a3
a5
a4
a6
a0
a1
a2
a2,a5,a6,a7
a2,a5,a6,a7
0.60
0.40
a0,a2,a5,a6,a7
a1,a3,a4
0.40
0.24
0.36
a1,a3,a4
a0
0.36
0.22
0.24
0.18a3,a4
a0
a1
0.36
0.18
0.22
0.12
0.12
a3,a4
a5,a6,a7
a0
a1
a2
0.36
0.12
0.22
0.10
0.08
0.06
0.06a6,a7
a0
a1
a2
a3
a4
a5
0.36
0.12
0.22
0.12
0.10
0.08
a5,a6,a7
a0
a1
a2
a3
a4
Entropiekodierung: Huffman Code
0.36
0.12
0.22
0.10
0.08
0.02
0.06
0.04
0.36
0.12
0.22
0.10
0.08
0.06
0.06
0.36
0.12
0.22
0.12
0.10
0.08
0.36
0.18
0.22
0.12
0.12
0.36
0.22
0.24
0.18
0.40
0.24
0.36
0.60
0.400
1
1
00
01
00
01
10
11
00
11
10
010
011
000000
101010
010 010 010
011
110
111
110 110
111 111
0111
01100110
01110
01111
a3,a0,a4,a0,a2 1100011100010
a7
a3
a5
a4
a6
a0
a1
a2
aufwendige Konstruktion !
Entropiekodierung: Arithmetischer Code
Codierung der gesamten Nachricht als ein Codewort
keine Diskrepanz zwischen Codewortlänge und Informationsgehalt
Repräsentation eines Codewortes durch ein Intervall reeller Zahlen zwischen 0.0 und 1.0
Codierung durch sukzessive Verkleinerung des Intervalls
Anwendung eines binären adaptiven arithmetischen Coders (MQ-Coder) in JPEG2000
Entropiekodierung: Arithmetischer Code
a7
a3
a5
a4
a6
a0
a1
a2
0
0.36
0.58
0.70
0.80
0.88
0.94
1 a7
a3
a5
a4
a6
a0
a1
a2
0.7
0.736
0.758
0.77
0.78
0.788
0.794
0.8 a7
a3
a5
a4
a6
a0
a1
a2
0.7
0.71296
0.72088
0.7252
0.7288
0.73168
0.73384
0.736 a7
a3
a5
a4
a6
a0
a1
a2
0.7288
0.7298368
0.7304704
0.730816
0.731104
0.7313344
0.7315072
0.73168 a7
a3
a5
a4
a6
a0
a1
a2
0.7288
0.729173248
0.729401344
0.72952576
0.72962944
0.729712384
0.729774592
0.7298368
a3 a0a4a0 a2
0.7295
Entropiekodierung: Run-Length Coding
3 4 4 21 6
Binärbild Kodierung Ausnutzung der Redundanz benachbarter Pixel
3 3 2110 3 10 3 3
2 Bit Code
0
3 Bit Code
3 4 214 6
24 bit
20 bit
18 bit
Entropiekodierung: Bit-Plane Coding
Bit-Plane Slicing
Entropiekodierung: Bit-Plane Coding
Bit-Plane Slicing: Binäre Kodierung
1 → 00002 → 00013 → 00104 → 0011
…
Entropiekodierung: Bit-Plane Coding
Bit-Plane Slicing: Gray Code
1 → 00002 → 00013 → 00114 → 00105 → 0110
…
Entropiekodierung: Bit-Plane Coding
Graycode Graycode
Entropiekodierung: Bit-Plane Coding in JPEG2000 (EBCOT)
DWT+ Quantisierung
Bitplane Coding + Binäre adaptive
arithmetische Kodierung (MQ-Coder)
Berechnung von
Datenrate / Distortion
Sortierung nach Rate/Distortion
Verhältnis
Komprimierter Datenstrom
Entropiekodierung: Bit-Plane Coding in JPEG2000 (EBCOT) Embedded Block Coding with Optimal Truncation
A posteriori Ratenallozierung Implizierte Quantisierung durch Weglassen von einzelnen
Bitplanes Abbruch des Kodierens/Dekodierens an einem beliebigen
Zeitpunkt: Optimale Beschreibung des Bildes für gegebene Datenrate
Ideal für Progressive Decoding (z.B. Erzeugung von Thumbnails)
Entropiekodierung: Predictive Coding
PredictorNearestInteger
SymbolEncoderImage
CompressedImage
+
_
SymbolDecoder
Predictor
ImageCompressed
Image
+
+
Entropiekodierung: Predictive Coding
6218. 1347.
H 6 93. H 4 83.
Weitere
Lempel-Ziv-Welch-Algorithmus (LZW)GIF,TIFF, … “Online”-CodebucherstellungKombination von Variable Length und Run-
Length Coding Löschen niederwertiger Bits beim Bit-plane
coding
Fraktale Kompression Nutzung von Redundanz in Bildern durch
Selbstähnlichkeit Fraktale - Selbstähnliche Geometrische Figuren:
… und in der Natur
Künstlich erzeugt …
Fraktale Kompression Prinzip Kodierung:
(1) Modelliere das Bild als Resultat eines iterativen Kopiervorgangs(= iteriertes Funktionensystem)
Fraktale Kompression Prinzip Kodierung:
(2) Ermittle die Parameter der Kopiermaschine.
Suche für alle Blöcke in Domain
den best-passenden Block in Range, unter
Nutzung erlaubter Transformationen
(z.B. Rotation, Helligkeitsanpassung,
Spiegelung, …)
iT
Fraktale Kompression Das komprimierte Bild besteht nur aus den Parametern
der in der Kodierung gefundenen Transformationen Dekodierung: Kopiere wiederholt ein Ausgangsbild mit
der Kopiermaschine
Fraktale Kompression
Fraktale Kompression vs JPEG
Fraktal Komprimiert (72:1) JPEG Komprimiert (71:1)
Fraktale Kompression Weitere Varianten: Quadtree-Zerlegung, … Hohe Kompressionsraten erzielbar (bis zu 1000:1) Asymmetrisches Verfahren: Kodierung wesentlich
aufwendiger als Dekodierung Dekodierung vom Ausgangsbild abhängig Fractal Image Format (FIF) Keine Durchsetzung am Markt, u.a. wegen Patentschutz
und mangelnder Verbreitung im Internet Moderne verwandte Verfahren: Bild-Interpolation (Up-
scaling)
Video
Folge von Einzelbilder PAL-Format
720x576 Pixel - 24 Bit Farbtiefe25 Bildern pro SekundeY (Helligkeitsinformation), Cb (blau-gelb-
Balance) und Cr (rot-grün-Balance) YCbCr 4:2:2 240 MBit/s oder 30 MByte/s drastische Reduzierung der Datenmenge
notwendig
Einzelbildkompression JPEG/JPEG2000 für jedes Bild?
JPEG-Video, Motion-JPEG, Moving JPEG JPEG 2000 – Part 3: Motion JPEG 2000 (Digitales Kino)
Kompressionsraten bis zu 1:20 Kompression / Dekompression mit gleichem
Zeitaufwand Zugriff auf jedes Einzelbild unmittelbar möglich
Kompression von Bildgruppen Intraframekompression
Einzelbildkompression (räumlichen Redundanz) Interframekompression
Kompression durch Vergleich aufeinanderfolgender Bilder (zeitlichen Redundanz)
Gruppenaufteilung (Group of Pictures – GOP) Gruppen von Bildern, die zusammenhängend komprimiert werden
Bildgruppen
Intrapicture (I-Bild) komprimiert / dekomprimiert wie einzelnes Standbild Referenz für nachfolgende P-Bilder sowie vorhergehende und
nachfolgende B-Bilder Predicted picture (P-Bild)
Interframe-Kodierung mit Bezug auf vorhergehendes I-Bild bzw. P-Bild (Referenzbild)
Speicherung des Verschiebungsvektor eines Bildbereiches Bidirectional picture (B-Bild)
Bezug auf vorhergehendes und nachfolgendes Bild Idee: Bewegliche Bildteile verdecken Hintergrund (in I-Bild zu
finden) oder geben ihn frei (in P-Bild zu finden)
B-Frames Bilder können durch vorausgegangene und nachfolgende
Frames geschätzt werden.
Beispiel: In Frame n+1 kann das schwarze Objekt nicht aus Frame n, aber aus Frame n+2 geschätzt werden (wegen Verdeckung).
Frame n Frame n+1 Frame n+2
… …
B-Frame Kodierung
Videokompression
Transformationskodierung Bewegungskompensation
Beispiel MPEG2
Datenrate von 2 bis 6 MBit üblich GOP = 12 Bilder Standardformat bei DVD, DVB Kompressionsrate bis zu 1:60 Nachfolger ist MPEG4 + H.264 (HDTV)
Erweiterung von MPEG2, u.a. mit Objektkodierung, Zerlegung des Bildes in Szenenelemente, …