„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?