Beruflich Dokumente
Kultur Dokumente
Julius Schöning
6. Dezember 2020
Osnabrück University of Applied Sciences - Faculty of Engineering and Computer Science
Motivation
PNG vs JPEG
PNG vs JPEG
Redundanz, Irrelevanz
Kompressionsansätze
Datenkompression
Lauflängenkodierung
Statistische Verfahren
Tabellengesteuerte Verfahren
Quellenkodierung
Subsampling
Transformationskodierung
Hybridkodierung
2
JPEG
Typische Klausurfragen
3
Grundlagen der Datenkompression
Grundlagen der Datenkompression
Redundanz, Irrelevanz
Anforderungen an Audio-/Video-Kompression
5
Grundlagen der Datenkompression
Begrenzte Auflösung
• Bei bewegten Objekten werden weniger Details wahrgenommen als bei Objekten in
Ruhe
• Bewegte Objekte mit verminderter Schärfe
• Ruhende Objekte mit voller Schärfe
• Langsame Bewegung benötigt nur geringe zeitliche Auflösung
• Schnelle Bewegungen erfordern höhere zeitliche Auflösung
6
Visuelle Wahrnehmung ii
Farbauflösung
7
Akustische Wahrnehmung
Maskierungseffekt (Verdeckung)
• Frequenzmaskierung
• Laute Töne einer bestimmten Frequenz können leisere Töne einer anderen Frequenz
verdecken, so dass diese nicht mehr gehört werden können
• Zeitliche Maskierung
• Spielt man einen lauten Ton der dann plötzlich stoppt, so dauert es eine Weile, bis man
leise Klänge wieder wahrnehmen kann
8
Grundlagen der Datenkompression
Kompressionsansätze
Grundlegende Kompressionsansätze
? !
Kommunikationskanal
Kompres- Dekom-
sion pression
9
Kompressionsablauf — vereinfachte Darstellung
Encoder
Numerische
Eingangssignal Operationen: Codewort- Datenstrom
s(n) • reversibel g (n) zuordnung ...010010...
• irreversibel
Encoder
Numerische
Eingangssignal Operationen: Codewort- Datenstrom
s(n) • reversibel g (n) zuordnung ...010010...
• irreversibel
Inverse Inverse
Datenstrom Ausgangssignal
Codewort- numerische
...010010...
zuordnung g 0 (n) Operationen s 0 (n)
Decoder
Ziel: Finde Code-Wort-Zuordnung für Eingangssignal mit
• minimaler Anzahl an Bits
• eindeutige Rekonstruierbarkeit
11
• kleinster Unterschied zwischen s(n) und s 0 (n) ⇒ min(|s(n) − s 0 (n)|)
Bilddatenkompression — Prinzipien
Redundanzelimination
• Informationen, die aus räumlichen, zeitlichen oder
statistischen Informationen/Abhängigkeiten abgeleitet
werden
• Reversible Kompression, verlustlose Kompression
(Faktor 2)
• ResidualError = 0
Irrelevanzelimination
• Nicht sichtbare (wahrnehmbare) oder unwichtige
Informationen
• Irreversible Kompression, verlustbehaftete Kompression
(Faktor 40)
• ResidualError > 0
Vektor Quantisierung
−1 1 2 3 4 5 • Transformierte Koeffizienten
−1 • Prädiktionswerte
Quantisierung ist das wichtigste Hilfsmittel zur Irrelevanzreduktion
15
Linearer vs. nicht-linearer Quantisierer
4 4
3 3
2 2
1 1
−4 −3 −2 −1 1 2 3 4 −4 −3 −2 −1 1 2 3 4
−1 −1
−2 Eingangssignal −2 Eingangssignal
Ausgangssignal Ausgangssignal
−3 −3
Quantisierungsfehler Quantisierungsfehler
−4 −4
Entscheidungsschwellen Entscheidungsschwellen
16
Linearer vs. nicht-linearer Quantisierer
Nicht-lineare Quantisierung:
Anpassung Quantisierungsrauschen an Signalverlauf und menschliche Wahrnehmung
•Feine Quantisierung für geringe Amplitudenänderung
•Grobe Quantisierung für große Ampitudenänderung
Linearer (uniform) Quantisierer nicht-linearer (non-uniform) Quantisierer
4 4
3 3
2 2
1 1
−4 −3 −2 −1 1 2 3 4 −4 −3 −2 −1 1 2 3 4
−1 −1
−2 Eingangssignal −2 Eingangssignal
Ausgangssignal Ausgangssignal
−3 −3
Quantisierungsfehler Quantisierungsfehler
−4 −4
Entscheidungsschwellen Entscheidungsschwellen
17
Prädiktionsprinzip I
Prädiktion
Aus den Picture Elements (Pels oder Pixel) a, b und c wird ein
a b Mittelwert gebildet.
c s p = (a+b+c)
3
(Vereinfacht: In der Praxis komplexere Schätzfunktionen).
Für Pel s wird ein Schätzfehler (Abweichung) e berechnet:
e =s −p
Übertragen wird nur der Schätzfehler e
Dekorrelation
• Homogene Bereiche: e ∼ 0
• Kanten: e 0
• Hohe Informationskonzentration bei e = 0 & hohe Entropiekodierung
18
Prädiktionsprinzip II
Kompression
• Entropiekodierung Schätzfehler → verlustlos
• Quantisierung Schätzfehler → verlustbehaftet
Coding System
• übertrage Schätzfehler e
a b • Rekonstruktion bei Empfänger mit Prädiktionsschema
c s • nur vorhergehender Wert wird benötigt
• bei Übertragungsfehler
• Rekonstruktion fehlerhafter Werte
• Fehlerfortpflanzung durch Prädiktion
19
Transformationsprinzip
Umformung des Signals in eine andere Darstellungsform
Orts-/Zeitraum Frequenzraum
Transformation
Inverse
Transformation
Annahme
• Daten im Transformationsraum sind leichter zu verarbeiten
Beispiele
• DFT — Diskrete Fourier Transformation
• DCT — Diskrete Cosinus Transformation 20
Subband-Kodierung — Layered Coding
Technik: Einteilung in Frequenzbänder/Farbräume
Subband-Coding Color-Subsampling
F1 Coder1
Multiplexer
Input F2 Coder2 Output 4:4:4 4:2:2
Fn Codern
4:1:1 4:2:0
Anwendung
• Telefon: Frequenzbereich Sprache: 300-3500 Hz
• MPEG-Audio: Filterbank
• Videokodierung: Color-Subsampling
21
Entropiekodierung
22
Entropiekodierung
Prinzip:
• Ersetze Wiederholungen eines Zeichens im Text (Runs) jeweils durch einen Zähler
und das Zeichen
Beispiel
Text: AAABBCDDBBBBDDCCCCAACCCABBBDDCCA
Kodierung: 3A2B1C2D4B2D4C2A3C1A3B2D2C1A
• Eine gute Kompressionsrate ist nur dann zu erzielen, wenn es lange Runs gibt!
• Gegebenenfalls sind Trennzeichen erforderlich
23
Lauflängenkodierung bei Binärdateien
24
Entropiekodierung
Statistische Verfahren:
Morse-Code, Huffman Kodierung, Arithmetische Kodierung
Statistische Pattern Substitution
Prinzip:
Beispiel: Hochschule
Code-Tabelle Hochschule ⇒ HO!2!0U!3
Index 0 1 2 3 (10 Bytes) (9 Bytes)
Pattern SCH ST CH LE Maskierungszeichen: !
• Das Maskierungszeichen zeigt an: Es folgt ein kodiertes Wort; das folgende Byte ist
ein Index zur Repräsentation von einem von 256 möglichen Worten
25
Statistische Pattern Substitution
Prinzip:
• Das Maskierungszeichen zeigt an: Es folgt ein kodiertes Wort; das folgende Byte ist
ein Index zur Repräsentation von einem von 256 möglichen Worten
26
Statistische Pattern Substitution
Komprimierte Daten A B C D E 1 1
27
Beispiel: Morse-Code (S. Morse, 1838)
Idee
• Unterschiedliche Zeichen müssen nicht unbedingt mit gleicher Bitanzahl codiert
werden
Besser:
• Verwende für häufig vorkommende Zeichen wenige Bits
• Verwende für selten vorkommende Zeichen längere Bitfolgen
a ·— ae ·—·— b —· c —·—· ch ———— d —·· e · f ··—·
g ——· h · · ·· i ·· j ·——— k —·— l ·—·· m —— n —·
o ——— oe ———· p ·——· q ——·— r ·—· s ··· t — u ··—
ue ··—— v · · ·— w ·—— x —··— y —·—— z ——··
30
Probleme — Beispiel: Kodierung von a3 a7
Code C: Definition
Zeichen p(aj ) Codewort
Kein kurzes Codewort ist Präfix (Anfangsstück) eines langen
a1 0,40 00
a2 0,15 011 Codeworts.
a3 0,15 010
a4 0,10 100 → Ein kodierter String kann immer eindeutig dekodiert werden.
a5 0,10 101
a6 0,05 110
Mittlere Länge des Codewörtes:
a7 0,04 1110 LC =
a8 0,01 1111
= (0, 4 · 2 + (0, 15 + 0, 15 + 0, 1 + 0, 1 + 0, 05) · 3 + (0, 04 + 0, 01) · 4)
= 2, 65
Beispiel: 0001001101001000101010111
00 010 011 010 010 00 101 010 111
a1 a3 a2 a3 a3 a1 a5 a3 a8 32
Huffman-Kodierung (1952)
c d
33
Huffman-Kodierung (1952)
Code:
• Bilde einen Knoten mit jedem Symbol des Alphabets und versehe ihn mit einem
Gewicht entsprechend seiner Wahrscheinlichkeit
while noch_kein_Baum
Seien L0, L1 die beiden Knoten mit kleinstem Gewicht
Bilde Knoten L01 mit Nachfolgeknoten L0 und L1
// versehe Kanten mit 0 und 1
// Gewicht(L01) = Gewicht(L0) + Gewicht(L1)
end
Hinweis:
• Im Falle identischer Wahrscheinlichkeiten werden die Zeichen zu einem Teilbaum
zusammengefasst, der am wenigsten bereits zusammengefassten Zeichen enthält.
Vorsicht:
• Huffman liefert kein eindeutiges Ergebnis. Das Ergebnis (Codetabelle) hängt davon
ab, wie die Knoten im Codebaum eingefügt werden!
34
: auv 04 2 huffmannTreeCode.m und auv 04 3 huffmannTreeIm.m
Huffman-Kodierung: Beispiel
Code C: a12345678 : 1
Zeichen p(aj ) Codewort
0 1
a1 0,40 0
a2345678 :
a2 0,15 110 a1 : 0, 25
0, 6
a3 0,15 101
0 1
a4 0,10 1110
a5 0,10 1111 a3678 : 0, 25 a245 : 0, 25
a6 0,05 1000
a7 0,04 10010 0 1 0 1
a8 0,01 10011 a678 : 0, 1 a3 : 0, 15 a2 : 0, 15 a45 : 0, 2
Mittlere Codewortlänge: 2,55
0 1 0 1
LC =0, 4 · 1 + (0, 15 + 0, 15) · 3
a6 : 0, 05 a78 : 0, 05 a4 : 0, 1 a5 : 0, 1
+ (0, 1 + 0, 1 + 0, 05) · 4
+ (0, 04 + 0, 01) · 5 0 1
LC =2, 55 a7 : 0, 04 a8 : 0, 01
35
Eigenschaften der Huffman-Kodierung
Vorteile
Nachteile
36
Arithmetische Kodierung
Es sei X = {a, e, i, o, u, !} mit Nachricht: aeii!
Zeichen W-keit Intervall Aufgabe: Finde ein die Nachricht repräsentierendes
a 0,2 [0, 0 0, 2[ Intervall
e 0,3 [0, 2 0, 5[ Startintervall: [0, 1[
i 0,1 [0, 5 0, 6[
o 0,2 [0, 6 0, 8[ Nichts e a i
u 0,1 [0, 8 0, 9[
1
! 0,1 [0, 9 1, 0[ !
Initial [0, 0 1, 0[ u
Nach e → [0, 2 0, 5[ o
a → [0, 2 0, 26[
i
i → [0, 23 0, 236[
i → [0, 233 0, 2336[ e
! → [0, 23354 0, 2336[
a
0
37
Arithmetische Kodierung
Nichts e a i i !
1 0,5 0,26 0,236 0,2336 2,336
! ! ! ! ! !
u u u u u u
Zeichen W-keit Intervall
a 0,2 [0, 0 0, 2[
o o o o o o
e 0,3 [0, 2 0, 5[
i 0,1 [0, 5 0, 6[ i i i i i i
o 0,2 [0, 6 0, 8[
u 0,1 [0, 8 0, 9[
! 0,1 [0, 9 1, 0[
e e e e e e
a a a a a a
0 0,2 0,2 0,23 0,233 2,3354
38
Arithmetische Kodierung — Beispiel TESTSTELLE
0,1474317 39
Arithmetische Kodierung — Beispiel TESTSTELLE
Tabellengesteuerte Verfahren:
Lempel-Ziv-Welsh-Verfahren, LZW
Tabellengesteuerte Verfahren
Wenn Wiederholung vorliegt, wird an Stelle der Textphrase der Index aus dem
Wörterbuch ausgegeben
• Diesem Grundprinzip folgen zahlreiche Varianten, die sich vorrangig durch die
Verwaltung des Wörterbuchs unterscheiden
• Die meisten Archiv-Programme (UNIX compress, gzip, winzip, arj, lha, zip) basieren
auf den Lempel-Ziv Algorithmen
42
Lempel-Ziv-Welch-Eigenschaften
Reduktion in Dateigröße
Art Huffman LZW
C-Files 65% 45%
Maschinencode 80% 55%
Text 50% 30%
Beispiele für Dateigrößen nach der Kompression in Prozent der Ursprungsgröße
Abtaststrukturen und Datenraten: Wandlung RGB → YPbPr (analog) bzw. YCbCr (digital)
DF = 720 · 576 · 3 · 8bit = 9, 95Mbit DF = 1920 · 1080 · 3 · 8bit = 49, 8Mbit DF = 3840 · 2160 · 3 · 8bit = 199, 1Mbit
4:4:4
Csec = DF · 25 s1 = 0, 25 Gbit
s Csec = DF · 25 s1 = 1, 24 Gbit
s Csec = DF · 25 s1 = 4, 98 Gbit
s
DF = 720 · 576 · 2 · 8bit = 6, 6Mbit DF = 1920 · 1080 · 2 · 8bit = 33, 2Mbit DF = 3840 · 2160 · 2 · 8bit = 132, 7Mbit
4:2:2
Csec = DF · 25 s1 = 0, 17 Gbit
s Gb/s Csec = DF · 25 s1 = 0, 83 Gbit
s GB/s Csec = DF · 25 s1 = 3, 32 Gbit
s
DF = 720 · 576 · 1, 5 · 8bit = 4, 98Mbit DF = 1920 · 1080 · 1, 5 · 8bit = 24, 9Mbit DF = 3840 · 2160 · 1, 5 · 8bit = 99, 5Mbit
4:1:1
Csec = DF · 25 s1 = 0, 12 Gbit
s Csec = DF · 25 s1 = 0, 62 Gbit
s Csec = DF · 25 s1 = 2, 49 Gbit
s
DF = 720 · 576 · 1, 5 · 8bit = 4, 98Mbit DF = 1920 · 1080 · 1, 5 · 8bit = 24, 9Mbit DF = 3840 · 2160 · 1, 5 · 8bit = 99, 5Mbit
4:2:0
Csec = DF · 25 s1 = 0, 12 Gbit
s Csec = DF · 25 s1 = 0, 62 Gbit
s Csec = DF · 25 s1 = 2, 49 Gbit
s
47
Quellenkodierung
Transformationskodierung
Transformationsprinzip
Umformung des Signals in eine andere Darstellungsform
Orts-/Zeitraum Frequenzraum
Transformation
Inverse
Transformation
Annahme
• Daten im Transformationsraum sind leichter zu verarbeiten
Beispiele
• DFT — Diskrete Fourier Transformation
• DCT — Diskrete Cosinus Transformation 48
Frequenzen und Bilddetails?
Niedrige Frequenz
Hohe Frequenz
49
DCT transformation of pat
Durchführung der Transformationskodierung - DCT Hohe Frequenzen
Fh
0 10 20 30 0 10 20 30
0 0
30 30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes Frequenskoeffizenten nach der DCT
: auv 04 4 DCT.m 50
DCT transformation of pa
Durchführung der Transformationskodierung - DCT Tiefe Frequnezen
Fh
0 10 20 30 0 10 20 30
0 0
30 30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes Frequenskoeffizenten nach der DCT
: auv 04 4 DCT.m 51
Durchführung der Transformationskodierung - FFT Hohe Frequenzen
0 10 20 30
0
10
20
0 10 20 30
0 30
Amplitudenbild nach der 2D FFT
10 Grundlage für
Effizente Kodierung
der Koeffizienten
20 0 10 20 30
0
30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes 10
20
: auv 04 5 FFT.m 30
Phasenbild nach der 2D FFT
52
Durchführung der Transformationskodierung - FFT Tiefe Frequenzen
0 10 20 30
0
10
20
0 10 20 30
0 30
Amplitudenbild nach der 2D FFT
10 Grundlage für
Effizente Kodierung
der Koeffizienten
20 0 10 20 30
0
30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes 10
20
: auv 04 5 FFT.m 30
Phasenbild nach der 2D FFT
53
Diskrete Cosinus Transformation (DCT)
Zeilenindex u
Zeilenindex i
DCT
Spaltenindex j Spaltenindex v
n−1 n−1
1 XX (2i + 1)uπ (2j + 1)v π
F (u, v ) = √ Cu Cv f (i, j) cos cos
2n i=0 j=0
2n 2n
Coefficient Constants Repeat Repeat Pixel value Vertical basis function Horizontal basis
value at gi- of value for all i for all j at a given generator produces sam- function generator.
1
ven line and √
2
for u and sum and sum line and co- pled cosinus wave. i sets j sets the sample
column in- or v = 0; 1 results results lumn the sample number, u number, v sets the
dex otherwise sets the frequency frequency 54
Interpretation der Koeffizienten
v
u 0 1 2 3 4 5 6 7
0
Jedes Bild lässt sich aus
Steigende Vertikalfrequenz
1
periodischen Hell-Dunkel-Verläufen
zusammensetzen! 2
3
Basisbilder:
4
Jeder beliebige Block eines realen
Bildes kann durch Überlagerung der 5
64 Basisbilder mit 6
unterschiedlichen Amplituden
zusammengesetzt werden 7
Steigende Horizontalfrequenz
×75%
+
×50%
+
×25%
56
DCT: Beispiel
Was geschieht mit einem gleichmäßig eingefärbten Block (z. B. f(i,j) = 50)?
DC-Koeffizient
50 50 50 50 50 50 50 50 400 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
50 50 50 50 50 50 50 50 0 0 0 0 0 0 0 0
8 × 8: Block (Pixelmatrix)
57
Transformationskodierung DCT — Datenreduktion
2) Intervallshift: Übergang zum Intervall [−128, 127] durch Subtraktion von 128
√1 ; wenn i = 0
N mit N = 8
DCT(i,j)= q
(2j+1)·iπ
i, j ∈ {0, 1, ..., 7}
1
N · cos 2N ; wenn i > 0
61.12 -37.51 -84.07 -50.87 -84.87 -62.55 -16.45 -52.58 61 -38 -84 -51 -85 -63 -16 -53
4.43 -54.43 66.18 -34.6 -39.24 67.74 15.74 31.25 4 -54 66 -35 -39 68 16 31
-8.59 10.44 -1.26 -10.52 49.41 -13.55 -36.92 -7.45 -9 10 -1 -11 49 -14 -37 -7
-8.19 16.42 -17.99 12.18 -9.05 -1.14 17.24 -10.03 Rundung -8 16 -18 12 -9 -1 17 -10
3.12 -3.34 1.69 -9.99 17.62 1.89 -11.93 23.18 3 -3 2 -10 18 2 -12 23
3 5 7 9 11 13 15 17
7 9 11 13 15 17 19 21
for(i=0; i<8; i++) {
for(j=0; j<8; j++) { 9 11 13 15 17 19 21 23
qij := 1+((1+i+j)*qualitaet); 11 13 15 17 19 21 23 25
} 13 15 17 19 21 23 25 27
}
15 17 19 21 23 25 27 29
62
Beispiel: Quantisierte Koeffizienten
-2 1 4 2 -7 -8 3 -1 1 -8 7 -3 -3 5 1 2
2 6 -4 0 -1 -1 4 2
-1 1 0 -1 3 -1 -2 0
-4 -5 -2 -6 -1 -3 -4 1
-1 1 -1 1 -1 0 1 0
3 5 7 9 11 13 15 17 0 0 0 -1 1 0 -1 1
5 7 9 11 13 15 17 19
0 0 0 0 0 0 0 0
7 9 11 13 15 17 19 21
9 11 13 15 17 19 21 23 0 0 0 0 0 0 0 0
Q
11 13 15 17 19 21 23 25
0 0 0 0 0 0 0 0
13 15 17 19 21 23 25 27
15 17 19 21 23 25 27 29 P: Quantisierte Koeffizientenmatrix
17 19 21 23 25 27 29 31
63
Beispiel: Rekonstruktion/Dekodierung
88 135 154 134 122 123 165 149 91 139 149 139 119 129 156 150 -3 -4 5 -5 3 -6 9 -1
89 139 153 134 109 151 162 150 91 140 147 140 108 147 164 151 -2 -1 6 -6 1 4 -2 -1
88 143 155 135 110 162 161 150 84 147 158 129 112 158 162 149 4 -4 -3 6 -2 4 -1 1
86 146 160 135 127 155 153 140 91 147 162 126 126 162 155 140 -5 -1 -2 9 1 -7 -2 0
85 152 159 135 137 168 129 120 84 149 158 139 139 166 131 122 1 3 1 -4 -2 2 -2 -2
87 164 146 140 140 188 100 107 91 166 147 149 143 184 97 102 -4 -2 -1 -9 -3 4 3 5
86 178 126 155 159 166 88 115 83 179 122 155 158 162 89 114 3 -1 4 0 1 4 -1 1
84 187 111 170 185 119 90 132 91 177 113 171 185 124 94 129 -7 10 -2 -1 0 -5 -4 3
Kodierproblem:
Eine begrenzte Anzahl von Bits ist unter NxN Transformationskoeffizienten so zu verteilen,
dass die resultierende Abweichung des Signals minimal ist.
65
Steuerung der Datenrate im Encoder
Encodersystem
66
Klassen von Kodierungsverfahren
Hybridkodierung
Hybridkodierung
Kodierer Dekodierer
(encoder) (decoder)
Quellbilddaten komprimierte rekonstruierte
Bilddaten Bilddaten
Tabellenspezifikation Tabellenspezifikation
H. Hußmann. (5. Dez. 2018), LMU München: Vorlesung Digitale Medien: WS 2013/2014, Adresse: http://www.medien.ifi.lmu.de/lehre/ws1314/dm/ 69
JPEG — Modi
Quantisierungs- Huffman-
tabellen tabellen
H. Hußmann. (5. Dez. 2018), LMU München: Vorlesung Digitale Medien: WS 2013/2014, Adresse: http://www.medien.ifi.lmu.de/lehre/ws1314/dm/
72
Bildaufbereitung 1
• Bild wird generell in 8x8-Pixel-Blöcke (data units) eingeteilt. Der Rand wird aufgefüllt
• Bild kann theoretisch aus bis zu 255 Komponenten (components) bestehen. Häufig 3
oder 4, je nach Farbmodell
• Verzahnte (interleaved) oder nicht-verzahnte (non-interleaved) Reihenfolge
• Ablage der Komponenten nacheinander nicht ideal. 3 Farbkomponenten könnten z. B.
nacheinander erscheinen.
• Pipelining in der Verarbeitung erfordert vollständige Informationen über einen Bildanteil
• Verzahnte Ablage: Einheiten, die je mindestens eine data unit jeder Komponente enthalten:
Minimum Coded Units (MCU)
• Maximal vier Komponenten können verzahnt werden
H. Hußmann. (5. Dez. 2018), LMU München: Vorlesung Digitale Medien: WS 2013/2014, Adresse: http://www.medien.ifi.lmu.de/lehre/ws1314/dm/
73
Bildaufbereitung 2: Non-interleaved vs Interleaved
Non-interleaved
• Dateneinheiten jeder Komponente werden unabhängig voneinander in der üblichen
Reihenfolge (links oben ⇒ rechts unten) gespeichert
• Nachteil: Darstellung ist erst möglich, wenn alle Komponenten übertragen und
dekodiert sind
Interleaved
• Motivaton: Interleaving wird dort verwendet, wo Darstellung mehrerer Komponenten
parallel zur Dekomprimierung erfolgt.
• In jeder Komponente werden Regionen mit ggf. unterschiedlicher Anzahl von
Dateneinheiten gebildet.
• Jede Komponente besteht aus derselben Anzahl von Regionen
H. Hußmann. (5. Dez. 2018), LMU München: Vorlesung Digitale Medien: WS 2013/2014, Adresse: http://www.medien.ifi.lmu.de/lehre/ws1314/dm/
74
Bildaufbereitung 3: Interleaved Modus
Y Cr Cb
76
H. Hußmann. (5. Dez. 2018), LMU München: Vorlesung Digitale Medien: WS 2013/2014, Adresse: http://www.medien.ifi.lmu.de/lehre/ws1314/dm/
Bildaufbereitung 4: Beispiele für Auflösung der Komponenten
R1 R2 ... ... ... ... ... ... G1 G2 ... ... ... ... ... ... B1 B2 ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Y ... ... ... ... ... ... ... ... Y ... ... ... ... ... ... ... ... Y ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... Rn ... ... ... ... ... ... ... Gn ... ... ... ... ... ... ... Bn
Y1 Y2 ... ... ... ... ... ... Cb1 Cb2 ... ... Cr1 Cr2 ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Y ... ... ... ... ... ... ... ... Y ... ... ... ... Y ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... Yn ... ... ... ... ... ... ... ...
77
Bildaufbereitung 4: Non-Interleaved vs. Interleaved
Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Cb5 Cb6 Cb7 Cb8 Cr5 Cr6 Cr7 Cr8
Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24 Cb9 Cb10 Cb11 Cb12 Cr9 Cr10 Cr11 Cr12
Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32 Cb13 Cb14 Cb15 Cb16 Cr13 Cr14 Cr15 Cr16
Interleaved Reihenfolge:
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Cb1 Cb2 Cb3 Cb4 Cr1 Cr2 Cr3 Cr4
Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Cb5 Cb6 Cb7 Cb8 Cr5 Cr6 Cr7 Cr8
Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24 Cb9 Cb10 Cb11 Cb12 Cr9 Cr10 Cr11 Cr12
Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32 Cb13 Cb14 Cb15 Cb16 Cr13 Cr14 Cr15 Cr16
Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16 Cb5 Cb6 Cb7 Cb8 Cr5 Cr6 Cr7 Cr8
Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24 Cb9 Cb10 Cb11 Cb12 Cr9 Cr10 Cr11 Cr12
Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32 Cb13 Cb14 Cb15 Cb16 Cr13 Cr14 Cr15 Cr16
79
DCT-basierter Encoder
DCT-basierter Encoder
Quanti- Entropie-
DCT
sierung kodierung
komprimierte
Bilddaten
8 × 8 Patch
von Bildquelle
Quantisierungs- Code-
tabellen tabellen
DCT-basierter Decoder
Entropie- De-Quanti-
iDCT
dekodierung sierung
komprimierte
Bilddaten
8 × 8 Patch
rekonstruieres Bild
Code- Quantisierungs-
tabellen tabellen
80
ISO, IT and JTCI, IEC, 10918-1. ITU-T Rec. T. 81,Digital compression and coding of continuous-tone still images: Requirements and guidelines,ISO“, IEC, Tech. Rep, Techn. Ber., 1993
”
Wiederholung: DCT berechnen
81
DCT Entropiekodierung: Basismodus
1 -8 7 -3 -3 5 1 2 1 -9 8 -3 -3 5 1 2 1 -6 6 -3 -3 4 1 1
-1 1 0 -1 3 -1 -2 0 -1 1 0 -1 4 -1 -2 0 -1 1 0 -1 3 -1 -2 0
-1 1 -1 1 -1 0 1 0 -1 2 -1 1 -1 0 1 0 -1 1 -1 1 0 0 1 0
0 0 0 -1 1 0 -1 1 0 0 0 -1 1 0 -1 1 0 0 0 -1 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AC01 AC07
DC1 20 -8 -12 -6 -8 -5 -1 -3
1 -8 7 -3 -3 5 1 2
-1 1 0 -1 3 -1 -2 0
-1 1 -1 1 -1 0 1 0
0 0 0 -1 1 0 -1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
P1 : Quant. Koeffizientenmatrix
AC70 AC77
83
B. Furht, H. Zhang und S. W. Smoliar, Video and Image Processing in Multimedia Systems. Springer US, 1995, ISBN: 0792396049
DCT Entropiekodierung: Zick-Zack-Scan
Beispiel: P1 = (20)(0, −8)(0, 1)(0, −1)(0, −8)(0, −12)(0, −6)(0, −7)(0, 1)(0, −1)(1, 1)(1, −3)(0, −8)
(0, −5)(0, −3)(0, −1)(0, −1)(0, −1)(5, 1)(0, 3)(0, 5)(0, −1)(0, −3)(0, 1)(0, −1)(0, −1)(0, −1)
(6, 1)(1, −2)(0, 2)(1, 1)(7, −1)(1, 1)(EOB)
0 0
1 –1,1
2 –3,–2,2,3
4
–7..–4,4..7
–15..–8,8..15
5 –31..–16,16..31
Beispiel: DC = (20) 6 –63..–32,32..63
7 –127..–64,64..127
9
–255..–128,128..255
–511..–256,256..511
10 –1 023..–512,512..1 023
• 20 ist an der 20. (10100) Stelle in Kategorie ’5’* 11 –2 047..–1 024,1 024..2 047
Table K.3 – Table for luminance DC coefficient differences
Beispiel: P1 = (20)(0, −8)(0, 1)(0, −1)(0, −8)(0, −12)(0, −6)(0, −7)(0, 1)(0, −1)(1, 1)(1, −3)(0, −8)
(0, −5)(0, −3)(0, −1)(0, −1)(0, −1)(5, 1)(0, 3)(0, 5)(0, −1)(0, −3)(0, 1)(0, −1)(0, −1)(0, −1)
(6, 1)(1, −2)(0, 2)(1, 1)(7, −1)(1, 1)(EOB)
SSSS AC coefficients
1 –1,1
2 –3,–2,2,3
Größe: AC-Koeffizient mit Runlength 3 –7..–4,4..7
4 –15..–8,8..15
Beispiel: AC01 = (0, −8) 5 –31..–16,16..31
6 –63..–32,32..63
7 –127..–64,64..127
• AC01 = −8 ist in Kategorie ’4’ 8 –255..–128,128..255
9 –511..–256,256..511
10 –1 023..–512,512..1 023
• Kategorie ’4’ mit der Runlength 0 hat das Codewort Table K.5 – Table for luminance AC coefficients (sheet 1 of 4)
1011 Run/Size
0/0 (EOB)
Code length
4 1010
Code word
0/1 2 00
0/2 2 01
Beispiel: P1 = (20)(0, −8)(0, 1)(0, −1)(0, −8)(0, −12)(0, −6)(0, −7)(0, 1)(0, −1)(1, 1)(1, −3)(0, −8)
(0, −5)(0, −3)(0, −1)(0, −1)(0, −1)(5, 1)(0, 3)(0, 5)(0, −1)(0, −3)(0, 1)(0, −1)(0, −1)(0, −1)
(6, 1)(1, −2)(0, 2)(1, 1)(7, −1)(1, 1)(EOB)
1
AC coefficients
–1,1
3
–3,–2,2,3
–7..–4,4..7
4 –15..–8,8..15
6
–31..–16,16..31
–63..–32,32..63
7 –127..–64,64..127
9
–255..–128,128..255
–511..–256,256..511
10 –1 023..–512,512..1 023
11111010 Table K.5 (sheet 2 of 4)
ISO, IT and JTCI, IEC, 10918-1. ITU-T Rec. T. 81,Digital compression and coding of continuous-tone still images: Requirements and guidelines,ISO“, IEC, Tech. Rep, Techn. Ber., 1993
”
87
JPEG – Beispiel
Original—Quelle
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
88
JPEG – Beispiel
89
JPEG – Beispiel
90
JPEG – Beispiel
91
JPEG – Beispiel
92
JPEG – Beispiel
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
93
JPEG – Beispiel
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
94
JPEG – Beispiel
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
95
JPEG – Beispiel
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
96
Charakteristisch für JPEG
• Wenn innerhalb eines 8 × 8 Blockes nur noch (oder nahezu) eine Farbe vorkommt,
werden alle AC-Koeffizienten durch die Quantisierung zu Null, d.h. der einzige
übrigbleibende Wert ist der DC-Koeffizient. Die Lauflängenkodierung wirkt dann sehr
effizient, da sehr viele Nullen entstehen. Der entstehende Block ist dann einfarbig.
• Hat ein Block hingegen sehr viele Farbvarianzen, so bleibt das nach der Quantisierung
auch ansatzweise erhalten, d.h. auch im komprimierten Block sind verschiedene
Farben sichtbar.
• je höher der Quantisierungsfaktor, umso höher die Anzahl einfarbiger Blöcke
• DCT mit Quantisierung führt bei Bilder mit sehr viele scharfe Kanten (= hohe Frequenz
= Bilddetail) sehr schnell zu sichtbaren Artefakten.
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998
97
JPEG - Sequentieller und Progressiver Modus
Progressive
TISO0730-93/d009
Sequential
Figure 9 – Progressive versus sequential presentation
ISO, IT and JTCI, IEC, 10918-1. ITU-T Rec. T. 81,Digital compression and coding of continuous-tone still images: Requirements and guidelines,ISO“, IEC, Tech. Rep, Techn. Ber., 1993
”
98
JPEG - Verlustbehaftete Modi
99
Literatur i
100