Document

Werbung
„GIS und Multimedia“
Mathematische Grundlagen der
Video – Kompression
von
Christian Müller
Allgemeines
Was hat das Thema mit dem Studium zu tun?
Einsatz von Videos im geodätischen Arbeitsbereich:
 Städtebauliche Planung
•
•
•

Zeigen von Ist – Zuständen
Photorealistische Visualisierung geplanter Bauobjekte
Virtuelle Realität
Routenplanung
•

Wege als Videos zeigen
Lehre
•
•
Aufnahme von Vorlesungen und Vorträgen
Animationen
Allgemeines
Woraus besteht ein Film?

Ein Film besteht aus einer Reihe von
aufeinanderfolgenden Bildern

Jedes Bild für sich kann man als Bitmap – Vollbild
betrachten
Problem: große Datenmenge
Allgemeines
Rechenbeispiel
PAL – Standard: 720 x 576 Pixel = 414.720 Pixel
414.720 Pixel x 3 (RGB Werte pro Pixel) = 1.244.160 Byte
1.244.160 Byte x 25 Bilder/s = 31.104.000 Byte
1 Sekunde Film = 30 MByte
90 Minuten Film = 156 GByte
Allgemeines
Datenkompression
Verfahren, um die Anzahl der Bits eines Signals herabzu –
zusetzen
Man unterscheidet:
 Verlustfreie Kompression:
Nach der Dekompression kann das ursprüngliche
Signal wieder vollständig hergestellt werden

Verlustbehaftete Kompression:
Das Signal wird nur annähernd wiederhergestellt
MPEG – Format
MPEG – Familie

MPEG 1
•
•

Findet Anwendung bei sog. VideoCD
VHS ähnliche Qualität
MPEG 2
•
•

Kompatibel zu MPEG 1
Anwendung in der DVD – Technologie und im digitalen
Fernsehen (Premiere World)
MPEG 4
•
DivX, Echtzeitkommunikation, Mobile Multimedia UMTS
MPEG – Format
Vergleichen von Bildern
Viele Informationen bleiben gleich, z.B.: der Hintergrund
Idee:

überflüssige Informationen nicht mehrmals speichern

redundante Informationen auslassen

Unterschied zwischen zwei Bilder wird gespeichert

Bild um die Unterschiede zum vorhergehenden Bild
ergänzen
MPEG – Format
Verschiedene Bildtypen
Es werden drei verschiedene Bildtypen benutzt:
 I – Frame (intra – frame): Ein komplettes Vollbild,
welches alle Informationen enthält

P – Frame (predictet – frame): Einzelbild, welches
lediglich die Differenz zum vorhergegangenem Bild
enthält

B – Frame (bidirctional – frame): werden ausgehend
von einem vorhergehenden und nachfolgenden Bild
berechnet
MPEG – Format
Verschiedene Bildtypen
Ein MPEG – Datenstrom besteht in erster Linie aus einer
Sequenz von groups-of-pictures (GOP).

jede GOP enthält eine I – Frame als erstes Bild

dazu mehrere P – Frames

die B – Frames werden aus früheren und späteren P –
und I – Frames abgeleitet
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
Startbild ist
das I – Frame
als Vollbild
zum Einstieg
I
MPEG – Format
Veranschaulichung: Group of Pictures
Zwischenbilder
aus vorherigen
I – und P –
Frames
P
B
B
P
B
B
Startbild ist
das I – Frame
als Vollbild
zum Einstieg
I
MPEG – Format
Veranschaulichung: Group of Pictures
Zwischenbilder
aus vorherigen
I – und P –
Frames
P
B
B
P
B
B
Startbild ist
das I – Frame
als Vollbild
zum Einstieg
I
Zwischenbilder
aus vorigen und
folgenden I –
und P - Frames
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
I
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
I
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
I
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
I
MPEG – Format
Veranschaulichung: Group of Pictures
P
B
B
P
B
B
I
MPEG – Format
Bildein – / ausgabe
B – Frames werden vom Decoder nur dann entschlüsselt,
wenn er den nachfolgenden P – Frame kennt:
MPEG – Format
Bildein – / ausgabe
B – Frames werden vom Decoder nur dann entschlüsselt,
wenn er den nachfolgenden P – Frame kennt:
Bilder werden in einer anderen Reihenfolge
abgespeichert, als man sie hinterher zu sehen
bekommt
MPEG – Format
Beispiel: Bildein – / ausgabe
Betrachtungsreihenfolge
I
B1
B2
P1
B3
B4
P2
MPEG – Format
Beispiel: Bildein – / ausgabe
Betrachtungsreihenfolge
I
B1
B2
P1
B3
B4
P2
I
P1
B1
B2
P2
B3
B4
Übertragungsreihenfolge
I
Codierung von I – Frames
I
Discrete Cosinustransformation
Umwandlung räumlicher Information und Helligkeitswerte in
eine Frequenzdarstellung





Bild wird in 8x8 große Pixelblöcke aufgetrennt
Blöcke werden einzeln bearbeitet
Jeder Block durchläuft die DCT
Umwandlung bis auf Rundungsfehler verlustfrei
Verwandt mit der Fouriertransformation
I
Codierung von I – Frames
Discrete Cosinustransformation
Das menschliche Auge ist für hohe Frequenzen weniger
empfindlich.
I
I
Codierung von I – Frames
I
Discrete Cosinustransformation
Das menschliche Auge ist für hohe Frequenzen weniger
empfindlich.
je nach gewünschtem Kompressionsfaktor
Vernachlässigung dieser Anteile
Wie geschieht dieses Weglassen von Hochfrequenzanteilen?
I
Codierung von I – Frames
I
Quantisierung

sogenannter Quantisierer sorgt für die Verringerung der
DCT – Koeffizienten

Koeffizienten nahe Null werden gleich Null gesetzt
Dieser ganze Vorgang wird Quantisierung genannt.
I
Codierung von I – Frames
Beispiel: Discrete Cosinustransformation
Bild
I
I
Codierung von I – Frames
Beispiel: Discrete Cosinustransformation
8x8 Pixelblock
I
Codierung von I – Frames
I
Beispiel: Discrete Cosinustransformation
103
101
102
105
34
56
109
107
30
28
105
106
101
104
106
103
ursprüngliche Werte
I
Codierung von I – Frames
I
I
Beispiel: Discrete Cosinustransformation
C (u)  C (v) N 1 N 1
(2 x  1)u
(2 y  1)v
F (u, v)  2
f ( x, y) cos
 cos

N
2N
2N
x 0 y 0
103
101
102
105
34
56
109
107
Transformierung
30
28
105
106
101
104
106
103
ursprüngliche Werte
DCT – Koeffizienten
Codierung von I – Frames
I
I
Beispiel: Discrete Cosinustransformation
C (u)  C (v) N 1 N 1
(2 x  1)u
(2 y  1)v
F (u, v)  2
f ( x, y) cos
 cos

N
2N
2N
x 0 y 0
103
101
102
105
34
56
109
107
30
28
105
106
101
104
106
103
ursprüngliche Werte
Farbwerte des Pixel
der x-ten Matrixzeile
und y-ten Matrixspalte
I
Codierung von I – Frames
I
Beispiel: Discrete Cosinustransformation
C (u)  C (v) N 1 N 1
(2 x  1)u
(2 y  1)v
F (u, v)  2
f ( x, y) cos
 cos

N
2N
2N
x 0 y 0
Transformierte Werte
in der u – ten Zeile
und v – ten Spalte
DCT – Koeffizienten
Codierung von I – Frames
I
I
Beispiel: Discrete Cosinustransformation
103
101
102
105
405
0,2
-0,2
1,3
34
56
109
107
30
-0,4
0,7
-3,2
Transformierung
30
28
105
106
-0,8
-0,5
-0,3
-0,6
101
104
106
103
-2,0
2,2
-0,5
-1,6
ursprüngliche Werte
DCT – Koeffizienten
Codierung von I – Frames
I
I
Beispiel: Discrete Cosinustransformation
DC – Komponente bzw. Gleichanteil
f=0
103
101
102
105
405
0,2
-0,2
1,3
34
56
109
107
30
-0,4
0,7
-3,2
Transformierung
30
28
105
106
-0,8
-0,5
-0,3
-0,6
101
104
106
103
-2,0
2,2
-0,5
-1,6
ursprüngliche Werte
DCT – Koeffizienten
Codierung von I – Frames
I
Beispiel: Quantisierung und Kompression
405
0,2
-0,2
1,3
30
-0,4
0,7
-3,2
-0,8
-0,5
-0,3
-0,6
-2,0
2,2
-0,5
-1,6
DCT – Koeffizienten
I
Codierung von I – Frames
I
I
Beispiel: Quantisierung und Kompression
405
0,2
-0,2
1,3
405
0
0
1
30
-0,4
0,7
-3,2
30
0
0
3
Quantisierung
-0,8
-0,5
-0,3
-0,6
0
0
0
0
-2,0
2,2
-0,5
-1,6
-2
2
0
0
DCT – Koeffizienten
Ergebnismatrix
Codierung von I – Frames
I
Beispiel: Quantisierung und Kompression
405
0
0
1
30
0
0
3
0
0
0
0
-2
2
0
0
Ergebnismatrix
I
Codierung von I – Frames
I
Beispiel: Quantisierung und Kompression
405
0
0
1
30
0
0
3
0
0
0
0
-2
2
0
0
Ergebnismatrix
I
Codierung von I – Frames
I
I
Beispiel: Quantisierung und Kompression
405
0
30
0
0
405
0
0
1
0
1
30
0
0
0
3
Zickzack
0
0
0
0
0
-2
2
-2
2
0
0
0
-3
0
Ergebnismatrix
0
0
Codierung von I – Frames
I
I
Beispiel: Quantisierung und Kompression
Wertefolge nach Zickzack – Auslesung
405
0
30
0
0
0
1
0
0
-2
2
0
-3
0
0
0
Lauflängen –
405
1
30
3
1
2
-2
2
1
-3
3
Codierung
Codierung von I – Frames
I
I
Beispiel: Quantisierung und Kompression
Wertefolge nach Zickzack – Auslesung
405
0
30
0
0
1
0
1
0
3
0
-2
2
2
0
1
-3
0
0
0
3
Lauflängen –
405
1
30
3
1
2
-2
2
1
-3
3
Codierung
Codierung von I – Frames
I
I
Beispiel: Quantisierung und Kompression
Wertefolge nach Zickzack – Auslesung
405
0
30
0
0
1
0
1
0
3
0
-2
2
2
0
1
-3
0
0
0
3
Lauflängen –
405
1
30
3
1
2
-2
2
1
-3
3
Codierung
P
Codierung von P – & B – Frames
B
Motion Compensation
Die Voraussage von P – und B – Frames geschieht mit der
sog. „Motion Compensation“, d.h. bewegungskompensiert.
Idee:
 Bildteile werden gesucht, die sich von Frame zu Frame
nur verschieben, wie z.B.: sich bewegende Objekte

An diese Bilder wird dann ein Bewegungsvektor
weitergegeben
P
Codierung von P – & B – Frames
B
Aufteilung in Makroblöcke
Einteilung jedes Bildes in Makroblöcke aus 16x16 Pixeln

makroblockweise Abtastung, in welche Richtung sich
der Inhalt eines Blocks verschiebt

Blöcke werden gemäß des Vektors verschoben und auf
das Restbild addiert
P
Codierung von P – & B – Frames
Beispiel
B
P
Codierung von P – & B – Frames
Beispiel
B
P
Codierung von P – & B – Frames
Beispiel
B
P
Codierung von P – & B – Frames
B
I – Frame oder P – / B – Frame
Strebt die Differenz zwischen zwei Makroblöcken gegen Null,
so wird hier der Bewegungsvektor berechnet und die Motion
Compensation benutzt, um ein P – bzw. B – Frame zu
codieren.
Werden allerdings keine übereinstimmenden Vektoren
gefunden, wird dieses Bild als I – Frame mittels DCT codiert.
P
Codierung von P – & B – Frames
Abtastverfahren
B
P
Codierung von P – & B – Frames
Abtastverfahren
B
Schluss
Vergleich von Kompressionsraten
DCT + Motion Compensation: Datenrate 4 MBit/s
Zum Vergleich: unkomprimierter Film mit 30 MByte/s
Kompression von 60:1
ohne starken Verlust möglich: 100:1
Noch Fragen,
Kienzle?
Herunterladen