Multimediatechnik / Video Video-Kompression Zusammenfassung http://www.nanocosmos.de/lietz/mtv 2009 1 Motivation: Video-Kompression Unkomprimierte Datenmengen sind zu groß! TV: 20 MB/s = 72 GB/h (720x576x2x25) HDTV: 100 MB/s = 360 GB/h (1920x1080x2x25) Speicherung auf Medien CD/DVD: ca. 1 MB/s / 3,6 GB/h Übertragung über Kanäle DSL: 1-161 16 MBit/s (ca. 1 MB/s) Kompression notwendig: 1:20..1:100! 2
Unkomprimiert: Video-Kompression RGB, YUV-4:2:2 / 4:2:0 Alle Pixel unabhängig ngig voneinander gespeichert Komprimiert: Nutzung der Abhängigkeiten (Gleichartigkeit, Redundanz) Pixel nicht mehr unabhängig ngig voneinander gespeichert 3 Video Komprimiert / Unkomprimiert (Compressed / Uncompressed) Unkomprimierte Formate: Alle Pixel sind voneinander unabhängig ngig RGB: je Pixel 3 Farbwerte R,G,B RGB24, RGB32, RGBA, YUV: je Pixel 1-31 3 Farbwerte Y,U,V (4:2:2, 4:2:0, ) UYVY, YUY2, I420, YV12, Komprimierte Formate: Pixel nicht mehr unabhängig ngig voneinander gespeichert RLE, JPEG, MPEG, DIVX, XVID, WMV, Real, Flash-Video Häufig Qualitätsverlust tsverlust beim Komprimieren 4
Datenreduktion Verlustbehaftete Kompression ( lossy( lossy ) Irrelevante, nicht wahrnehmbare Daten reduziert: Weniger Information Qualitätsverlust, tsverlust, Leichte Störungen zulässig ( Artefakte( Artefakte ) Hohe Kompression möglich m (1:30) Beispiel: Quantisierung Verlustfreie Kompression ( lossless( lossless ) Redundante Daten reduziert: Information bleibt erhalten Kein Qualitätsverlust: tsverlust: Mathematisch eindeutig rekonstruierbar Nur geringe Kompression möglich m (1:3) Beispiel: Lauflängencodierung 5 Lauflängencodierung (RLE) Information bleibt erhalten, verlustfreie Kompression Prinzip: doppelte Werte reduzieren 2 Bytes/Wert: 1 Lauflänge, 1 Wert Beispiel: 20 20 20 20 20 10 10 10 05 20 03 10 Kompressionsgrad = 8:4 = 2:1 Vorteil für f gleichmässige Flächen gut geeignet für f r synthetische Bilder (CG) Nicht direkt geeignet für f r reale Bilder (Foto/Video) 6
Quantisierung Information bleibt nicht erhalten, verlustbehaftete Kompression Prinzip: Stufeneinteilung durch Teilen und Runden Beispiel: 20 21 22 21 21 10 11 10 Lauflängencodierung? -> > 1 20 1 21 1 22 2 21 1 10 1 11 1 10 Quantisierung: Teilen/Runden: (z.b. /10 * 10) 20 20 20 20 20 10 10 10 05 20 03 10 Lauflängencodierung möglich! m Qualitätsverlust! tsverlust! (Details gehen verloren) 7 Kompressions-Algorithmen Nur Veränderungen codieren Differenz-Codierung Umwandlung in anderen Wertebereich Transformation (DCT, Fouriertransformation) Ziel: bessere Quantisierung / Lauflängencodierung Packen der wichtigen Information Quantisierung und Lauflängencodierung 8
Redundanzreduktion Prinzip: Signal ohne Verlust umformen (transformieren), Packen der wichtigen Information Verschiedene Verfahren: Differenz bilden (Schätzung, Prädiktion diktion) Im Frequenzbereich (Spektrum) darstellen (Transformation, Fourier,, DCT) Nach Transformation gezielt Fehler/Verluste zulassen (Quantisieren!) Nach Quantisierung sind viele Werte=0 -> > Redundanz! 9 Zeit- und Frequenzbereich Umkehrbare Transformation in den Frequenzbereich (Fouriertransformation FFT, Cosinustransf. DCT) Hohe Frequenzen sind seltener und schwächer Beispiel: Audiosignal (Klang) Zeit Frequenz 10
1 2 3 4 5 Frequenz-Transformation Blockweises Vorgehen! Üblich: 8x8 Pixel -> > 8x8 DCT-Koeffizienten Cosinus-Transformation (DCT): Pixel Koeffizienten Umkehrbare mathematische Operation Packen der wichtigsten Information 11 Zweck der DCT So ähnlich werden viele quantisierte DCT-Bl Blöcke aussehen: 400 300 200 100 0 6 7 8 Viele Nullen oder kleine Werte, die irrelevant sind 12
DCT-Beispiel Pixelwerte: DCT-Koeff Koeff.: 13 Quantisierung - Beispiel Eingangswerte (DCT-transformiert) Quantisierungsmatrix (für r jeden Wert ein eigener Quantisierungsfaktor) Quantisierte DCT-Werte F Q (x) = F(x) / Q(x): adaptive Quantisierung 14
DCT-Quantisierung Was passiert durch das Nullsetzen hoher Koeffizienten? Anschaulich: Bild wird etwas unschärfer Hohe Frequenzen werden abgeschnitten Tiefpass Bei Bildern: Kanten werden unscharf 15 Zig-Zag Zag-Scan der DCT-Koeffizienten 2D-Matrix -> > 1D-Folge von quantisierten Werten Reihenfolge gemäß der Wichtigkeit der Spektralanteile Lauflängencodierung der 1D-Folge 400 300 200 100 0 1 2 3 4 5 6 7 8 16
Bild JPEG Encoder ISO / ITU Standard für f r Standbilder ( Joint( Pictures Expert Group) Bildaufteilung in 8x8-Bl Blöcke, jeweils DCT Quantisierung (nach psychovisueller Gewichtung) Zusatzinfo Entropiecodierung (Huffman) Blockweise Anordnung M' 2D-DCT Quant. Zigzag scan & Entropiecod Bitstrom ' Quant.- Tabelle Block (m',n') Zusatzinfo 17 Bewegte Bilder Ermittlung von zeitlichen Bildänderungen Immer blockbasiert Richtung (Vektoren) + Differenzen (Schätzung/Prädiktion) 18
Bidirektionale Prädiktion I(ntra) ) / P(redicted) ) / B(i-Predicted) Predicted)-Frames (IPB) I-Bilder: JPEG-ähnliche Einzelbilder P-Bilder: abhängig von Vorgängern B-Bilder: Bilder: abhängig von Vorgängern+Nachfolgern 19 Video-Kompression Zusammenfassung Prinzipien nahezu aller Video-Codier Codier-Verfahren Einzelbilder ( Intra( ntra,, JPEG): Transformation Quantisierung Lauflängen ngen-codierung Interpolierte Bilder: (Bi) i)-predicted, Bewegungschätzung tzung,, Vektoren, Differenzen 20