Sie sind auf Seite 1von 119

Audio- und Videotechnik

Grundlagen der Datenkompression

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

L. Brandy. (25. Sep. 2019), PNG vs. JPEG, Adresse: http://lbrandy.com/assets/jpg_vs_png2.png


1
Übersicht
Motivation
Grundlagen der Datenkompression

Redundanz, Irrelevanz

Menschliche Wahrnehmung zur Kompression ausnutzen

Kompressionsansätze
Datenkompression

Klassen von Kodierungsverfahren

Quantisierung, Prädiktion, Transformation


Entropiekodierung

Lauflängenkodierung

Statistische Verfahren

Tabellengesteuerte Verfahren
Quellenkodierung

Subsampling

Transformationskodierung
Hybridkodierung
2
JPEG
Typische Klausurfragen

• Was versteht man unter Entropie-Kodierung, Quellen-Kodierung und


Hybrid-Kodierung? Nennen Sie jeweils ein Beispiel.
• Ermitteln Sie für den aufgeführten Text eine Code-Tabelle nach dem
Huffman-Verfahren. Komprimieren Sie den Text mit der von Ihnen bestimmten
Tabelle.
• Erläutern Sie wesentliche Arbeitsschritte beim JPEG-Verfahren.

3
Grundlagen der Datenkompression
Grundlagen der Datenkompression

Redundanz, Irrelevanz
Anforderungen an Audio-/Video-Kompression

Anwendung — Netzwerk — Endgerät


definieren Anforderungen für
das Komprimierungsverfahren
Anwendung
• Bildqualität
Netzwerk
• Interaktivität
• Fehlerstatistik
• Skalierbarkeit
• Kompatibilität
Kompressions- • Transferrate
algorithmus • Transfer-Mode
• Verzögerung
• Access Mode
• Fehlertoleranz
• Verzögerungszeit
• Echtzeit
Endgerät
• Komplexität
• Rechenleistung
• Screengröße
4
Anforderungen an Audio-/Video-Kompression

Die Wirklichkeit muss


möglichst unverfälscht
wiedergegeben werden

Nicht zu viel Aufwand in


Dinge stecken, die sich der
Wahrnehmung entziehen

5
Grundlagen der Datenkompression

Menschliche Wahrnehmung zur Kompression ausnutzen


Visuelle Wahrnehmung i

Begrenzte Auflösung

• Das Auge hat nur eine begrenzte Auflösungsfähigkeit.


• Sehr feine Informationen können nicht erkannt werden (Frequenz höher als die
Grenzfrequenz des Auges).

Auflösung bewegter Objekte

• 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

• Auge kann Luminanz (Helligkeit) besser differenzieren als Chrominanz (Farbigkeit)


• Auflösung für Farbe kann somit geringer sein als Grauwert-Auflö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

audiovisuelle Daten audiovisuelle Daten

9
Kompressionsablauf — vereinfachte Darstellung

Encoder
Numerische
Eingangssignal Operationen: Codewort- Datenstrom
s(n) • reversibel g (n) zuordnung ...010010...
• irreversibel

Wichtige Eigenschaften des Eingangssignals s(n):


• Signalauflösung: räumlich, zeitlich, Grau- oder Farbwerte
• Signalstatistik: Anzahl und Verteilung der Samples und Werte
Ziel: Finde Code-Wort-Zuordnung für Eingangssignal mit
• minimaler Anzahl an Bits
• eindeutige Rekonstruierbarkeit
• kleinster Unterschied zwischen s(n) und rekonstruiertem Eingangssignal s 0 (n)
10
Problem: Finde optimale numerische Operationen und Code-Wort Tabellen
Kompressionsablauf — vereinfachte Darstellung

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

⇒ Kompressionsverfahren entfernen redundante und


12
extrahieren die relevanten Informationen. : auv 04 1 ResidualError.m
Datenkompression
Datenkompression

Klassen von Kodierungsverfahren


Klassen von Kodierungsverfahren

Entropiekodierung (Entropy Coding)


• Keine Datenanalyse
• Verlustfrei (lossless compression) Hybride Verfahren
(Hybrid Coding)
• Entropie- und
Quellenkodierung (Source Coding) Quellenkodierung
• Datenanalyse und Semantik
• Verlustbehaftet (lossy compression)

Kanalkodierung (Channel Coding)


• Anpassung Übertragungskanal
• Schutz gegen Übertragungsfehler durch
Hinzufügen von Redundanz
13
Klassen von Kodierungsverfahren (Detail)

RLE (Lauflängenkodierung), Huffman-


Entropiekodierung
Kodierung, Arithmetische Kodierung. . .

Prädiktion DPCM, Delta Modulation

Transformation FFT, DCT


Quellenkodierung
Layered Coding Subsampling, Subband Coding

Vektor Quantisierung

JPEG, HEIF, MPEG, H.261, H.264, H.265


Hybridkodierung Proprietäre Verfahren:
Google, Sorensen, Real, Microsoft
14
Datenkompression

Quantisierung, Prädiktion, Transformation


Quantisierungsprinzip
5 Quantisierung eines kontinuierlichen Signals
Ausgang
Ausgangswerte gibt digitale Darstellung innerhalb bestimmter
4
Intervallgrenzen.
3 Prinzip:
2
Entscheidungs- • Zuordnung Eingabeintervall ⇒
schwellen Ausgangswerte
1
• Konstruktion Quantisierer: Fehlerkriterien
Eingangssignal
(maximaler Fehler, totaler Fehler, ...) oder
−1 1 2 3 4 5
Entropiekriterien
−1
Anwendung Quantisierung:
1
Quantisierungsfehler • Farb- und Helligkeitswerte

−1 1 2 3 4 5 • Transformierte Koeffizienten
−1 • Prädiktionswerte
Quantisierung ist das wichtigste Hilfsmittel zur Irrelevanzreduktion
15
Linearer vs. nicht-linearer Quantisierer

Wahrnehmung Quantisierungsfehler Quantisierungscharakteristik


Homogene Flächen Kritisch: Feine Quantisierung
Strukturierte Flächen oder sehr helle/dunkle Flächen Weniger kritisch: Gröbere Quantisierung

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

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

RLE, Pattern Substitution, Huffman Kodierung,


Arithmetische Kodierung, LZW
Entropiekodierung
Entropie
• Maß für Güte eines Codes
• Minimale Anzahl an Codezeichen, die im Mittel benötigt werden, um ein
Eingabezeichen mit einem eindeutig decodierbaren Code darzustellen
• verlustfreie Kodierung

Universelle Verfahren Statistische Verfahren Tabellengesteuerte


• Lauflängenkodierung, • Morse Code Verfahren
RLE • Huffman Kodierung • Lempel-Ziv-Welsh-
• Statistische Pattern Verfahren,
• Arithmetische
Substitution LZW
Kodierung
• ... • ...
• ...

22
Entropiekodierung

Lauflängenkodierung—engl. Run-length Encoding (RLE)


Lauflängenkodierung (RLE, Run-length Encoding)

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

• Einer Reihe von Binärdaten Kodiert


Nullen kann nur 000000000000000000000000000011111111111111000000000 25 14 9
000000000000000000000000001111111111111111110000000 26 18 7
eine Reihe von
000000000000000000000001111111111111111111111110000 23 24 4
Einsen folgen 000000000000000000000011111111111111111111111111000 22 26 3
• Es genügt nur die 000000000000000000001111111111111111111111111111110 20 30 1
000000000000000000011111110000000000000000001111111 19 7 18 7
jeweiligen Längen
000000000000000000000011100000000000000000000111000 22 3 20 3 3
der Reihen zu 000000111111111111111111111111000000111111111000000 6 24 6 9 6
speichern 011111111111111111111111111111111111111111111111111 1 50
000000000000000000000000000000000000000000011111111 43 8
000000000000000011111111111111110000000000000000000 16 16 19

24
Entropiekodierung

Statistische Verfahren:
Morse-Code, Huffman Kodierung, Arithmetische Kodierung
Statistische Pattern Substitution

Prinzip:

• Häufig vorkommende Muster werden durch einzelne Bytes ersetzt

Beispiel: Hochschule
Code-Tabelle Hochschule ⇒ HO!2!0U!3
Index 0 1 2 3 (10 Bytes) (9 Bytes)
Pattern SCH ST CH LE Maskierungszeichen: !

Die Kodierung erfolgt mittels eines Maskierungszeichens

• 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:

• Häufig vorkommende Muster werden durch einzelne Bytes ersetzt

Beispiel: Barbaras Rhabarberbar


Code-Tabelle barbaras rhabarberbar ⇒ !0!0!3 !2!0!1!0
Index 0 1 2 3 (20 Bytes) (15 Bytes)
Pattern bar ber rha as Maskierungszeichen: !

Die Kodierung erfolgt mittels eines Maskierungszeichens

• 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

Originaldaten ABC D E ABC EE ABC EE Code-Tabelle:


1: ABC
2: EE
Komprimierte Daten 1 D E 1 2 1 2

Originaldaten A B C D E ABCEE ABCEE Code-Tabelle:


1: ABCEE

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 ——··

Punkt ·—·—·— Komma ——··—— Doppelpunkt ——— Bindestrich —· · ··—


Apostroph ·————· Klammer —·——·— Fragezeichen ··——·· SOS · · ·———· · ·
Irrung · · · · · · ·· Verstanden · · ·—· Schlusszeichen ·—·—·—·

0 ————— 1 ·———— 2 ··——— 3 · · ·—— 4 · · ··—


5 ····· 6 —· · ·· 7 ——· · · 8 ———·· 9 ————· 28
Fixed Length Code vs. Variable Length Code
Definition
U = {a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 } sei ein Alphabet.

Code A: Standard Binary Code Code B:


Zeichen Wahrscheinlichkeit Codewort Zeichen Wahrscheinlichkeit Codewort
a1 0,40 000 a1 0,40 0
a2 0,15 001 a2 0,15 1
a3 0,15 010 a3 0,15 00
a4 0,10 011 a4 0,10 01
a5 0,10 100 a5 0,10 10
a6 0,05 101 a6 0,05 11
a7 0,04 110 a7 0,04 000
a8 0,01 111 a8 0,01 001

Fixed Length Code oder Block Code: Variable Length Code:


Alle Codewörter haben die gleiche Länge Codewörter haben variable Länge
29
Minimierung der mittleren Länge der Codewörter

Code A: Standard Binary Code Code B: Mittlere Länge des Codes


Zeichen p(aj ) Codewort Zeichen p(aj ) Codewort 8
a1 a1
0,40 000 0,40 0
X
LCode = p(aj ) · lj
a2 0,15 001 a2 0,15 1
j=1
a3 0,15 010 a3 0,15 00
a4 0,10 011 a4 0,10 01 p(aj ): Wahrscheinlichkeit von aj
a5 0,10 100 a5 0,10 10 lj : Länge des Codewortes für aj
a6 0,05 101 a6 0,05 11
a7 0,04 110 a7 0,04 000
a8 0,01 111 a8 0,01 001
P8
Code A: LA = j=1 p(aj ) · 3 = (0, 4 + 0, 15 + 0, 15 + 0, 1 + 0, 1 + 0, 05 + 0, 04 + 0, 01) · 3 = 3
Code B: LB = (0, 4 + 0, 15) · 1 + (0, 15 + 0, 1 + 0, 1 + 0, 05) · 2 + (0, 04 + 0, 01) · 3 = 1.5

Code B verspricht eine Kompressionsrate von 2:1 gegenüber Code A

30
Probleme — Beispiel: Kodierung von a3 a7

Code A: Standard Binary Code Code B:


Zeichen p(aj ) Codewort Zeichen p(aj ) Codewort
a1 0,40 000 a1 0,40 0
a2 0,15 001 a2 0,15 1
a3 0,15 010 a3 0,15 00
a4 0,10 011 a4 0,10 01
a5 0,10 100 a5 0,10 10
a6 0,05 101 a6 0,05 11
a7 0,04 110 a7 0,04 000
a8 0,01 111 a8 0,01 001
a1 a1 a1 a1 a1
Code A: a3 a7 → 010110 Code B: a3 a7 → 00000 a1 a3 a1 a1
a1 a3 a3
Eindeutige Kodierung, Eine eindeutige Kodie-
weil jedes Symbol immer rung ist nicht möglich!
aus 3 Zeichen besteht.
Die Einführung von Trennzeichen ist nötig → dadurch ist Code B nicht mehr so gut!
31
Präfix Code

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)

Symbol Code • Das Huffman-Verfahren


a 1 erzeugt Codebäume
1 0 b 00 • Ein Codebaum repräsentiert für
c 011 ein Alphabet die Codewörter
a d 010
• Symbol ≡ Blatt des Baumes
1 0
• Code ≡ Kantenbeschriftung
auf dem Weg zum Symbol
b
1 0

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

• Huffman Codes sind Präfix-Codes


• Bei fester Wahrscheinlichkeitsverteilung und ganzzahliger Codewortlänge ist
Huffman Codierung optimal, d.h. es gibt keine bessere Methode in diesem Fall
• Kompressionsrate für natürliche Bilder ist typischerweise 1:3

Nachteile

• Sehr empfindlich gegenüber Übertragungsfehlern

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

Zeichen W-keit Intervall Enkodierung


T 0,3 [0, 0 0, 3[ T E S L
0,0 1,0
E 0,3 [0, 3 0, 6[ T E S L
0,0 0,3
S 0,2 [0, 6 0, 8[ T E S L
0,09 0,18
L 0,2 [0, 8 1, 0[ T E S L
0,144 0,162
Intervallaufteilung: T E S L
0,144 0,1494
T E S L T E S L
0 1 0,14724 0,14382
0,3 0,6 0,8 T E S L
0,14724 0,147564
Ergebnis der Kodierung ist eine T E S L
0,1473372 0,1474344
beliebige, möglichst kurze“ Zahl T E S L
” 0,14741496 0,1474344
innerhalb des letzten Intervalls. T E S L
0,14743051 0,1474344
Hier: [0, 147431678, 0, 147432845[ T E S L
Kodierergebnis für TESTSTELLE: 0,147431678 0,147432845

0,1474317 39
Arithmetische Kodierung — Beispiel TESTSTELLE

Zeichen W-keit Intervall Dekodierung


T 0,3 [0, 0 0, 3[ T E S L
0,0 1,0
E 0,3 [0, 3 0, 6[ T E S L
0,0 0,3
S 0,2 [0, 6 0, 8[ T E S L
0,09 0,18
L 0,2 [0, 8 1, 0[ T E S L
0,144 0,162
Intervallaufteilung: T E S L
0,144 0,1494
T E S L T E S L
0 1 0,14724 0,14382
0,3 0,6 0,8 T E S L
0,14724 0,147564
Decoder benötigt: T E S L
0,1473372 0,1474344
Intervallaufteilung des Encoders, T E S L
0,14741496 0,1474344
Wortlänge oder Ende-Zeichen T E S L
0,14743051 0,1474344
Vom Kodierer empfangen:
0,1474317
40
Arithmetische Kodierung — Rechenaufwand
• Rechenintensiver als Huffman-Kodierung
• Zur Implementation wird Integer-Arithmetik verwendet
• Im Gegensatz zur Huffman-Kodierung wird hier nicht jedes Zeichen einzeln betrachtet,
sondern es wird immer unter Berücksichtigung der vorhergehenden Zeichen kodiert
⇒ Datenstrom muss immer von Anfang an gelesen werden
• Prinzipiell können optimale Codes erzeugt werden
Besonderer Vorteil:
Sehr lange Folgen eines Zeichens können sehr kompakt dargestellt werden.
Beispiel
Es sei X = {a, b} mit Initial [0, 0 1, 0[
214 −2
p(a) = 2141−1 und p(b) = 214 −1 Nach b → [0, 0 0, 999938[
b → [0, 0 0, 999877[
Kodierung von 100.000 mal ’b’: b → [0, 0 0, 999816[
Arithmetische Kodierung: 0, 0 b → [0, 0 0, 999755[
Huffman Kodierung: 100.000 Bits = 12,5 MB ... 41
Entropiekodierung

Tabellengesteuerte Verfahren:
Lempel-Ziv-Welsh-Verfahren, LZW
Tabellengesteuerte Verfahren

Verfahren mit dynamischer Pattern Substitution:


• Substitutionsregelwerk nicht statisch vorgegeben
• Wird während des Parsens des Eingabestrings dynamisch erzeugt
Verschiedene Varianten: generelles Schema von Lempel, Ziv (1977/78)
Grober Ablauf (LZ78)
Phrasen des zu codierenden Textes werden im Wörterbuch eingetragen

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

• Codetabelle wird dynamisch generiert


• Codetabelle enthält die am häufigsten vorkommenden Zeichenketten und passt sich
dynamisch an die Eigenschaften der Eingabe an
• Codetabelle braucht nicht mit übertragen zu werden (Decoder kann die Tabelle
ebenfalls on the fly erzeugen)
• Kompression wird mit wachsenden Tabelleneinträgen besser

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

W. Effelsberg, Vorlesungsscript, Uni Mannheim, 1999


43
Lempel-Ziv-Welch — Beispiel: Enkodierung

Kodierung von: LZWLZ78LZ77LZCLZMWLZAP


Eingabe Erkanntes Muster Neuer Tabelleneintrag (Wörterbuch)
LZWLZ78LZ77LZCLZMWLZAP L LZ 256
LZWLZ78LZ77LZCLZMWLZAP Z ZW 257
LZWLZ78LZ77LZCLZMWLZAP W WL 258
LZWLZ78LZ77LZCLZMWLZAP LZ<256> LZ7 259
LZWLZ78LZ77LZCLZMWLZAP 7 78 260
LZWLZ78LZ77LZCLZMWLZAP 8 8L 261
LZWLZ78LZ77LZCLZMWLZAP LZ7<259> LZ77 262
LZWLZ78LZ77LZCLZMWLZAP 7 7L 263
LZWLZ78LZ77LZCLZMWLZAP LZ<256> 264
LZWLZ78LZ77LZCLZMWLZAP C CL 265
LZWLZ78LZ77LZCLZMWLZAP LZ<256> LZM 266
LZWLZ78LZ77LZCLZMWLZAP M MW 267
LZWLZ78LZ77LZCLZMWLLZAP WL<258> WLZ 268
LZWLZ78LZ77LZCLZMWLZAP Z ZA 269
LZWLZ78LZ77LZCLZMWLZAP A AP 270
LZWLZ78LZ77LZCLZMWLZAP P
Ausgabe: L Z W <256>7 8 <259>7 <256>C <256>M <258>Z A P 44
Lempel-Ziv-Welch — Beispiel: Dekodierung
Eingabe C Wörterbuch Ausgabe
L L
Z Z LZ 256 Z
W W ZW 257 W
<256> L WL 258 LZ
7 7 LZ7 259 7
8 8 78 260 8
<259> L 8L 261 LZ7
7 7 LZ77 262 7
<256> L 7L 263 LZ
C C LZC 264 C
<256> L CL 265 LZ
M M LZM 266 M
<258> W MW 267 WL
Z Z WLZ 268 Z
A A ZA 269 A
P P AP 270 P
Ausgabe: L Z W LZ 7 8 LZ7 LZ C LZ M WL Z A P
45
Klassen von Kodierungsverfahren

Entropiekodierung (Entropy Coding)


• Keine Datenanalyse
• Verlustfrei (lossless compression) Hybride Verfahren
(Hybrid Coding)
• Entropie- und
Quellenkodierung (Source Coding) Quellenkodierung
• Datenanalyse und Semantik
• Verlustbehaftet (lossy compression)

Kanalkodierung (Channel Coding)


• Anpassung Übertragungskanal
• Schutz gegen Übertragungsfehler durch
Hinzufügen von Redundanz
46
Quellenkodierung

Subsampling, Transformationskodierung, JPEG


Quellenkodierung

Subsampling am Beispiel vom Color-Subsampling


Datenreduktion durch Subsampling

Abtaststrukturen und Datenraten: Wandlung RGB → YPbPr (analog) bzw. YCbCr (digital)

DF = Datenmenge per Frame / Einzelbild [bit]


Csec = Datenrate = Datenmenge je Sekunde [ bit
s ] — mit bei 25 Frames je Sekunde

SD (720 × 576) HD (1920 × 1080) 4K (3840 × 2160)

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

10 DCT- 10 Grundlage für


Effizente Kodierung
Transformation Fv der Koeffizienten
20 20

30 30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes Frequenskoeffizenten nach der DCT

3D Plot Pixelwerte eines Blöckes 3D Plot der Frequenskoeffizenten

: 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

10 DCT- 10 Grundlage für


Effizente Kodierung
Transformation Fv der Koeffizienten
20 20

30 30
Bild in Blöcke geteilt (30 × 30) Pixelwerte eines Blöckes Frequenskoeffizenten nach der DCT

3D Plot Pixelwerte eines Blöckes 3D Plot der Frequenskoeffizenten

: 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)

8x8 Pixelblock 8x8 Koeffizientenblock


f00 f07 F00 F07

Zeilenindex u
Zeilenindex i
DCT

f70 f77 F70 F77

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

: auv 04 6 dct basefunction.m


55
Interpretation der Koeffizienten

DCT Basisbilder Pixelblock

×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

• signifikantesten (wichtige) Koeffizienten mit hohen Zahlenwerte für den Pixelblock


befinden sich oben links
• unwichtige Koeffizienten mit kleineren Zahlenwerte befinden sich unten rechts
F00 F01 F02 F03 F04 F05 F06 F07
wichtige Koeffizienten
F10 F11 F12 F13 F14 F15 F16 F17

F20 F21 F22 F23 F24 F25 F26 F27

F30 F31 F32 F33 F34 F35 F36 F37

F40 F41 F42 F43 F44 F45 F46 F47

F50 F51 F52 F53 F54 F55 F56 F57


unwichtige Koeffizienten
F60 F61 F62 F63 F64 F65 F66 F67

F70 F71 F72 F73 F74 F75 F76 F77

⇒ Elimination der unwichtigen Werte durch Quantisierung


58
Beispiel: Gesucht: Koeffizientenmatrix F

1) Blockauswahl: Ein 8 × 8 Block wird aus einem Graustufenbild ausgewählt

2) Intervallshift: Übergang zum Intervall [−128, 127] durch Subtraktion von 128

91 139 149 139 119 129 156 150 -37 11 21 11 -9 1 28 22

91 140 147 140 108 147 164 151 -37 12 19 12 -20 19 36 23

84 147 158 129 112 158 162 149 -44 19 30 1 -16 30 34 21

91 147 162 126 126 162 155 140 Intervallshift -37 19 34 -2 -2 34 27 12

84 149 158 139 139 166 131 122 -44 21 30 11 11 38 3 -6

91 166 147 149 143 184 97 102 -37 38 19 21 15 56 -31 -26

83 179 122 155 158 162 89 114 -45 51 -6 27 30 34 -39 -14

91 177 113 171 185 124 94 129 -37 49 -15 43 57 -4 -34 1

I : Auswahlblock (Pixelmatrix) f : geshifteter Auswahlblock


: auv 04 7 dct lossy compression.m 59
Beispiel: Transformationsmatrix

√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

0.35356 0.35356 0.35356 0.35356 0.35356 0.35356 0.35356 0.35356

0.49037 0.41571 0.27777 0.09753 -0.09753 -0.27776 -0.41571 -0.49037

0.46191 0.19133 -0.19131 -0.46191 -0.46191 -0.19133 0.19131 0.4619

0.41571 -0.09753 -0.49037 -0.27777 0.27776 0.49037 0.09755 -0.41571

0.35355 -0.35353 -0.35355 0.35353 0.35355 -0.35353 -0.35356 0.35353

0.27777 -0.49037 0.09752 0.41573 -0.41571 -0.09755 0.49037 -0.27774

0.19133 -0.46191 0.4619 -0.19131 -0.19133 0.46191 -0.4619 0.1913

0.09753 -0.27777 0.41573 -0.49037 0.49036 -0.4157 0.27774 -0.0975

DCT : Transformationsmatrix (N=8) 60


Beispiel: Anwendung der DCT

3) Transformation in den DCT Raum


Rechnung: F = DCT · f · DCT t mit DCT vgl. vorherige Folie

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

-1.91 1.30 3.79 2.35 -7.33 -8.04 2.86 -1.11 -2 1 4 2 -7 -8 3 -1

1.80 5.74 -3.92 -0.24 -0.58 -1.37 3.51 1.78 2 6 -4 0 -1 -1 4 2

-3.67 -4.77 -1.74 -5.71 -0.6 -3.38 -3.8 1.29 -4 -5 -2 -6 -1 -3 -4 1

F : Koeffizientenmatrix (Transformierter 8 × 8 Block) F : Koeffizientenmatrix, gerundet


Achtung: Bisher noch keine Datenkompression!
61
(nur Rundungsfehler — optional)
Beispiel: Quantisierungsmatrix Q

4) verlustbehaftete Datenkompression: durch Quantisierung mit Quantisierungsmatrix

3 5 7 9 11 13 15 17

Erzeugung einer Quantisierungsmatrix 5 7 9 11 13 15 17 19

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

qualitaet skaliert die Quantisierungsmatrix 17 19 21 23 25 27 29 31


⇒ Steuerung der Kompression
Q: Quantisierungsmatrix
Qualität=2

62
Beispiel: Quantisierte Koeffizienten

61 -38 -84 -51 -85 -63 -16 -53 Komponentenweise Quantisierung:


 
F (u,v )
4 -54 66 -35 -39 68 16 31 P(u, v ) = round Q(u,v )
-9 10 -1 -11 49 -14 -37 -7
-8 16 -18 12 -9 -1 17 -10
F 3 -3 2 -10 18 2 -12 23
20 -8 -12 -6 -8 -5 -1 -3

-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

Rekonstruiertes Bild Originalbild Differenz (Residual Image)


Ireconst = freconst + 128 I Ireconst − I
0
freconst = DCT · Freconst · DCT
Freconst = P Q
64
Transformationskodierung — Überblick

Kodierproblem:
Eine begrenzte Anzahl von Bits ist unter NxN Transformationskoeffizienten so zu verteilen,
dass die resultierende Abweichung des Signals minimal ist.

Schritte der Transformationskodierung und -dekodierung (Graustufenbild)


Kodierung Dekodierung Inverse
Originalbild Trans- Rekonstru-
der Spektral- der Spektral- Transfor-
Blockweise formation iertes Bild
koeffizienten koeffizienten mation

65
Steuerung der Datenrate im Encoder

Steuerung der Quantisierungsschrittweite durch Speicherbelegung

Variable Datenrate Konstante Datenrate


Video Quantisierer Speicher
Komprimierte Daten Komprimierte Daten

Encodersystem

66
Klassen von Kodierungsverfahren

Entropiekodierung (Entropy Coding)


• Keine Datenanalyse
• Verlustfrei (lossless compression) Hybride Verfahren
(Hybrid Coding)
• Entropie- und
Quellenkodierung (Source Coding) Quellenkodierung
• Datenanalyse und Semantik
• Verlustbehaftet (lossy compression)

Kanalkodierung (Channel Coding)


• Anpassung Übertragungskanal
• Schutz gegen Übertragungsfehler durch
Hinzufügen von Redundanz
67
Hybridkodierung

Hybridkodierung
Hybridkodierung

Joint Photographics Expert Group (JPEG)


JPEG

Joint Photographics Expert Group


JPEG
Joint Photographics Expert Group Wichtige Eigentschaften/Anforderungen:
• Arbeitsgruppe aus Vertretern zweier • Unabhängigkeit von Bildgröße,
Organisationen (ISO und CCITT/ITU) Seitenverhältnis, Farbraum, Farbvielfalt
• Zusammenarbeit seit 1982 • Anwendbar auf jedes digitale Standbild
• Erste Vergleiche der entwickelten mit Farben oder Grautönen
Verfahren 1987 • Sehr hohe Kompressionsrate
• Auswahl einer adaptiven • Parametrisierbar in Qualität/Kompression

Transformationskodierung basierend auf • Realisierbar durch Software und
Diskreter Cosinus-Transformation (DCT)“ Spezial-Hardware: gute Komplexität
• Resultat 1992 — JPEG-Verfahren: ITU-T • Sequentielle und progressive
Recommendation T.81 und Internationaler Dekodierung
Standard ISO 10918-1
• Unterstützung von verlustfreier
Kompression und hierarchischer
Verfeinerung der Bildqualität 68
JPEG — Architekturmodell

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

Charakteristika Erweiterter Modus (extended process)


• verlustbehaftet oder verlustfrei • Verlustbehaftet (DCT), 8 oder 12bit Tiefe,
• sequentiell, progressiv oder hierarchisch sequentiell oder progressiv, Huffman-
oder arithmetische Kodierung
• Abtasttiefe (für bis zu 4 Komponenten)
• (Entropie-) Kompressionsverfahren: Verlustfreier Modus (lossless process)
Huffman- oder arithmetische Kodierung
• Verlustfrei (keine DCT), 2 − 16bit Tiefe,
Basismodus (baseline process) sequentiell, Huffman- oder arithmetische
Kodierung
• Verlustbehaftet (DCT), 8bit Tiefe,
sequentiell, Huffman-Kodierung Hierarchischer Modus (hierarchical process)
• Baut auf erweitertem oder verlustfreiem
Modus auf, Mehrfach-Frames
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/
70
JPEG — Modi

Charakteristika Erweiterter Modus (extended process)


• Verlustbehaftet oder verlustfrei • Verlustbehaftet (DCT), 8 oder 12bit Tiefe,
• sequentiell, progressiv oder hierarchisch sequentiell oder progressiv , Huffman-
oder arithmetische Kodierung
• Abtasttiefe (für bis zu 4 Komponenten)
• (Entropie-) Kompressionsverfahren: Verlustfreier Modus (lossless process)
Huffman- oder arithmetische Kodierung
• Verlustfrei (keine DCT) , 2 − 16bit Tiefe,
Basismodus (baseline process) sequentiell, Huffman- oder arithmetische
Kodierung
• Verlustbehaftet (DCT), 8bit bit Tiefe,
sequentiell, Huffman-Kodierung Hierarchischer Modus (hierarchical process)
• Baut auf erweitertem oder verlustfreiem
Modus auf, Mehrfach-Frames
Häufig verwendet Selten verwendet ungebräuchlich 71
Schritte der JPEG-Kodierung

Verlustbehaftet, sequentiell, 8-bit-Daten, Huffman-Kodierung

Bildauf- Quanti- Huffman-


DCT
bereitung sierung Kodierung
Quellbilddaten Kodierer (encoder) komprimierte
Bilddaten

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

Interleaved-Modus für Komponenten gleicher Auflösung


• Mehrere Dateneinheiten verschiedener Komponenten werden zu MCUs
zusammengefasst.
• Haben alle Komponenten die gleiche Auflösung, so enthält eine MCU von jeder
Komponente genau eine Dateneinheit.
• Beim Dekodieren wird das Bild MCU-weise angezeigt
⇒ auch bei nur teilweise dekodierten Bildern gibt es ein korrekte Farbdarstellung
Dateneinheit
• verlustfreier Modus: 1 Pixel
• verlustbehafteter Modus: 8x8 Pixel
Minimum Coded Units (MCU)
• kleinste Gruppe von Dateneinheiten, die für sich genommen kodiert werden kann
• setzen sich aus genau einer Region jeder Komponente zusammen
• Dateneinheiten innerhalb einer Region werden wieder in der Reihenfolge von links
oben nach rechts unten angeordnet.
75
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: Interleaving bei gleichzeitigem Color-Subsampling

• Jede Komponente c eingeteilt in Regionen aus Hc × Vc Data Units (Hc und Vc


Subsampling-Raten der Komponente c)
• Jede Komponente von links oben nach rechts unten zeilenweise gespeichert
• MCUs enthalten Data Units aus allen Komponenten anteilig
Beispiel: MCU bei 4:2:0-Subsampling
HY = 4, VY = 4, HCr = 2, VCr = 2, HCb = 2, VCb = 2

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

Drei Komponenten mit identischer Auflösung, z.B. RGB


X X X

R1 R2 ... ... ... ... ... ... G1 G2 ... ... ... ... ... ... B1 B2 ... ... ... ... ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Y ... ... ... ... ... ... ... ... Y ... ... ... ... ... ... ... ... Y ... ... ... ... ... ... ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

... ... ... ... ... ... ... Rn ... ... ... ... ... ... ... Gn ... ... ... ... ... ... ... Bn

Drei Komponenten mit unterschiedlicher Auflösung z.B. bei Color Subsampling


X X
4:2:0 von YCbCr X 2 2

Y1 Y2 ... ... ... ... ... ... Cb1 Cb2 ... ... Cr1 Cr2 ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Y ... ... ... ... ... ... ... ... Y ... ... ... ... Y ... ... ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

... ... ... ... ... ... ... Yn ... ... ... ... ... ... ... ...
77
Bildaufbereitung 4: Non-Interleaved vs. Interleaved

Non 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

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

MCU: HY = 4, VY = 4 MCU: HCb = 2, VCb = 1 MCU: HCr = 1, VCr = 2

xn Dateneinheit Komponente Reihenfolge 78


Bildaufbereitung 4: MCU Interleaved Beispiel

MCU: HY = 4, VY = 4 MCU: HCb = 2, VCb = 1 MCU: HCr = 1, VCr = 2

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

MCU1 = Y1 ; Y2 ; Y9 ; Y10 ; Cb1 ; Cb2 ; Cr1 ; Cr5


MCU2 = Y3 ; Y4 ; Y11 ; Y12 ; Cb3 ; Cb4 ; Cr2 ; Cr6
MCU3 = Y5 ; Y6 ; Y13 ; Y14 ; Cb5 ; Cb6 ; Cr3 ; Cr7
...

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

91 139 149 139 119 129 156 150 20 -8 -12 -6 -8 -5 -1 -3

91 140 147 140 108 147 164 151 1 -8 7 -3 -3 5 1 2

84 147 158 129 112 158 162 149 -1 1 0 -1 3 -1 -2 0

91 147 162 126 126 162 155 140 DCT inkl. -1 1 -1 1 -1 0 1 0

84 149 158 139 139 166 131 122 Intervallshift 0 0 0 -1 1 0 -1 1


& Quantisierung
91 166 147 149 143 184 97 102 0 0 0 0 0 0 0 0

83 179 122 155 158 162 89 114 0 0 0 0 0 0 0 0

91 177 113 171 185 124 94 129 0 0 0 0 0 0 0 0

I : Auswahlblock (Pixelmatrix) P: Quantisierte Koeffizientenmatrix

: auv 04 7 dct lossy compression.m

81
DCT Entropiekodierung: Basismodus

DC-Koeffizienten: Speicherung nach dem Prädiktionsprinzip


Nur die Differenzen der DC-Koeffizienten zweier Koeffizientenmatrix werden gespeichert:
ediffi = DCi − DCi−1
Beispiele: ediff2 = 31 − 20 = 11; ediff3 = 12 − 31 = −19
DC1 20 -8 -12 -6 -8 -5 -1 -3 31 -9 -14 -6 -8 -5 -1 -3 12 -5 -9 -5 -7 -4 -1 -3

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

P1 : Quant. Koeffizientenmatrix P2 : Quant. Koeffizientenmatrix P3 : Quant. Koeffizientenmatrix


82
DCT Entropiekodierung: Basismodus

AC-Koeffizienten: Auslesen der Koeffizienten im Zick-Zack-Scan


Experimentell ermittelt:
Die Wahrscheinlichkeit eines AC-Koeffizienten 6= 0 nimmt mit zunehmendem Index
(Zick-Zack-Reihenfolge) ab.

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

• Reihenfolge des Zick-Zack-Scan bildet die Eingabe für


das Huffman-Coding
DC1
• Folge wird nicht direkt verwendet, sondern in eine
20 -8 -12 -6 -8 -5 -1 -3
Folge von Symbolen umgewandelt
1 -8 7 -3 -3 5 1 2
• Jeder AC-Koeffizient wird durch ein Symbolpaar
-1 1 0 -1 3 -1 -2 0
kodiert
-1 1 -1 1 -1 0 1 0
Symbol 1 Runlength
0 0 0 -1 1 0 -1 1
Runlength: Länge der Folge von Nullen vor diesem Wert
0 0 0 0 0 0 0 0
Size: Anzahl der Bits, die für Darstellung des Wertes
0 0 0 0 0 0 0 0
nötig sind
0 0 0 0 0 0 0 0
Symbol 2 Amplitude
P1 : Quant. Koeffizientenmatrix
der Wert selbst
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)
84
DCT Entropiekodierung: Coding Table DC-Koeffizient

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)

Table F.1 – Difference magnitude categories for DC coding

SSSS DIFF values

0 0

1 –1,1

2 –3,–2,2,3

Größe: DC-Koeffizient bzw. DC-Koeffizient-Differenzen ed iff 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

• DC = 20 ist in Kategorie ’5’ mit dem Codewort 110 8

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

Category Code length Code word


• ⇒ Codewort 110 10100 10 2 000
11 3 010
12 3 011

*Kategorienummer entspricht fixed length Codewortlänge. 13


14
3
3
100
101
15 3 110
16 4 1110
17 5 11110
18 6 111110
19 7 1111110
10 8 11111110
11 9 111111110
85
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
DCT Entropiekodierung: Coding Table AC-Koeffizient

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)

Table F.2 – Categories assigned to coefficient values

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

• −8 ist an der 7. (0111) Stelle in Kategorie ’4’* 0/3


0/4
3
4
100
1011
0/5 5 11010
0/6 7 1111000

• ⇒ Codewort 1011 0111 0/7


0/8
0/9
8
10
16
11111000
1111110110
1111111110000010
0/A 16 1111111110000011
1/1 4 1100
*Kategorienummer entspricht fixed length Codewortlänge. 1/2
1/3
5
7
11011
1111001
1/4 9 111110110
1/5 11 11111110110
1/6 16 1111111110000100
1/7 16 1111111110000101 86
1/8 16 1111111110000110
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

DCT Entropiekodierung: Coding Table AC-Koeffizient

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)

Table F.2 – Categories assigned to coefficient values

Größe: AC-Koeffizient mit Runlength SSSS

1
AC coefficients

–1,1

Beispiel: AC64 = (7, −1) 2

3
–3,–2,2,3

–7..–4,4..7

4 –15..–8,8..15

• AC64 = −1 ist in Kategorie ’1’ 5

6
–31..–16,16..31

–63..–32,32..63

7 –127..–64,64..127

• Kategorie ’1’ mit der Runlength 7 hat das Codewort 8

9
–255..–128,128..255

–511..–256,256..511

10 –1 023..–512,512..1 023
11111010 Table K.5 (sheet 2 of 4)

Run/Size Code length Code word

• −1 ist an der 0. (0) Stelle in Kategorie ’1’* 6/A


7/1
16
8
1111111110101101
11111010
7/2 12 111111110111
7/3 16 1111111110101110

• ⇒ Codewort 11111010 0 7/4


7/5
16
16
1111111110101111
1111111110110000
7/6 16 1111111110110001
7/7 16 1111111110110010
7/8 16 1111111110110011
*Kategorienummer entspricht fixed length Codewortlänge. 7/9
7/A
16
16
1111111110110100
1111111110110101
8/1 9 111111000
8/2 15 111111111000000

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

Qualität= 1, Kompression: 17, 80%


W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

89
JPEG – Beispiel

Qualität= 6, Kompression: 5, 70%


W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

90
JPEG – Beispiel

Qualität= 12, Kompression: 3, 33%


W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

91
JPEG – Beispiel

Qualität= 20, Kompression: 2, 47%


W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

92
JPEG – Beispiel

Original Qualität= 1, Kompression: 10, 78%

W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

93
JPEG – Beispiel

Original Qualität= 6, Kompression: 4, 04%

W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

94
JPEG – Beispiel

Original Qualität= 12, Kompression: 2, 76%

W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany: Dpunkt-Verlag, 1998

95
JPEG – Beispiel

Original Qualität= 20, Kompression: 2, 27%

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

Bildaufbau Bit/Abtastwert Entropiekodierung


sequentiell 8 Huffman-Codierung
sequentiell 8 Arithmetische Codierung
sequentiell 12 Huffman-Codierung
sequentiell 12 Arithmetische Codierung
progressiv sukzessive 8 Huffman-Codierung
progressiv spektral 8 Huffman-Codierung
progressiv sukzessive 8 Arithmetische Codierung
progressiv spektral 8 Arithmetische Codierung
progressiv sukzessive 12 Huffman-Codierung
progressiv spektral 12 Huffman-Codierung
progressiv sukzessive 12 Arithmetische Codierung
progressiv spektral 12 Arithmetische Codierung

99
Literatur i

L. Brandy. (25. Sep. 2019), PNG vs. JPEG, Adresse:


http://lbrandy.com/assets/jpg_vs_png2.png.
W. Effelsberg, Vorlesungsscript, Uni Mannheim, 1999.
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/.
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.
B. Furht, H. Zhang und S. W. Smoliar, Video and Image Processing in Multimedia
Systems. Springer US, 1995, ISBN: 0792396049.
W. Effelsberg und R. Steinmetz, Video compression techniques. Heidelberg, Germany:
Dpunkt-Verlag, 1998.

100