Multimediatechnik / Video Codierung, Datenreduktion Quantisierung, Lauflängencodierung DCT, JPEG http://www.nanocosmos.de/lietz/mtv Inhalt Codierung digitaler Signale Datenreduktion (Kompression) Verlustfrei und verlustbehaftet Lauflängencodierung Differenz-Codierung/Pr Codierung/Prädiktiondiktion Blocktransformation JPEG Bewegungsschätzung
Digitalisierung eines Signals Abtastung & Quantisierung = Puls-Code Code-Modulation (PCM) Codierung / Datenreduktion Kanal
Datenreduktion / Komprimierung Motivation: 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: 700 MB / 4-74 7 GB, 1-101 10 MBit/s (ca. 1 MB/s / 3,6 GB/h) Flash: 1-321 GB HD: 80-1000 MB Übertragung über Kanäle DSL: 1-161 16 MBit/s DVB: 4 MBit/s GSM/UMTS/3G: 32 kbit-1 1 MBit/s Datenreduktion Reduktion der Irrelevanz (nicht wahrnehmbare Komponenten) Quantisierung Reduktion der Redundanz (statistische Abhängigkeiten, Korrelation) Filter, Transformation
Verlustbehaftet Datenreduktion nicht wahrnehmbare Daten reduziert: Weniger Information Leichte Störungen zulässig ( Artefakte( Artefakte ) Hohe Kompression möglichm Beispiel: Quantisierung Verlustfrei Redundante Daten reduziert: Information bleibt erhalten Mathematisch eindeutig rekonstruierbar Nur geringe Kompression möglichm Beispiel: Lauflängencodierung Redundanz und Information Datenmenge = Information + Redundanz Reduzierung der Redundanz: gleiche Information Beispiele für f r Redundanz: Gleichartige, ähnliche Farbpixel, Farbverlauf Mehr mittlere Farbwerte als Extremwerte
Codierverfahren Verfahren/Codecs: PCM DPCM, ADPCM LZW RLE, Huffman JPEG MPEG (1-4) WMV RealVideo Datei-Formate (Container): Wave, AVI GIF, PNG, TIFF, BMP ZIP, RAR Quicktime JPEG/JFIF MPEG, MP4 WMV RV Lauflängencodierung (RLE) Entropiecodierung: Information bleibt erhalten Prinzip: 2 Bytes/Wert: 1 Lauflänge, 1 Wert Beispiel: 05 20 04 10 20 20 20 20 20 10 10 10 10 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)
Varianten Lauflängencodierung RLE = Run Length Encoding VLC = Variable Length Encoding Variante: Anzahl der Nullen LZW-Codierung (Lempel-Ziv-Welch) ähnlich RLE, mit Tabelle ( Dictionary( Dictionary ) Anwendung bei GIF, TIFF, ZIP Nur geringe Komprimierungsstufe (ca. 1:3) Beispiel: Original: 11 34 11 34 35 34 35... Komprimiert: 256 257 258... Tabelle:
Huffman-Codierung Prinzip: Wortlänge nach Wahrscheinlichkeit/Häufigkeit statt je gleich lange Zeichen (z.b. 8 Bit) bekommen häufige h Zeichen ein kurzes Wort vgl. Morsezeichen, E =., Z = - -.. Kürzestmöglicher Code (Optimaler Code) Beispiel: http://www.ziegenbalg.ph-karlsruhe.de/materialien karlsruhe.de/materialien-homepage homepage-jzbg/cc-interaktiv/huffman/codierung.htm Informationsgehalt / Entropie Informationsgehalt eines Zeichens ist abhängig von der Wahrscheinlichkeit des Auftretens hohe Wahrscheinlichkeit für f r Wert geringer Informationsgehalt I(p) ) = log 2 (p) in Bits Wieviele Bits sind zur Darstellung notwendig Entropie: : Mittlerer Informationsgehalt alle Zeichen gleich häufig h max. Entropie
Codierungsziele Verlustfrei: Huffman-Codierung gute Wahl! Problem: ungleichförmig verteiltes Signal, wenig unmittelbare Redundanz Lösung: Umformen, Filtern, Transformieren des Signals, so dass es besser Huffman-codiert werden kann! Redundanzreduktion Prinzip: Signal ohne Verlust umformen Verschiedene Verfahren: Differenz bilden (Schätzung, Prädiktion diktion) Im Frequenzbereich (Spektrum) darstellen (Transformation, Fourier,, DCT)
Codierung durch Schätzung (Pr( Prädiktion) Prinzip: Bildung eines Schätzwertes aus vergangenen Werten mit Prädiktor-Filter Differenzbildung kleiner Restfehler, mehr Nullen DPCM: Differenz-PCM PCM: Übertragung des Fehlersignals - Restfehler (Residual) Schätzung (Prädiktion) Seiteninformation (Filterkoeffizientn) Realisierung eines Prädiktionsfilters Digitales Filter Differenzbildung aus vorherigen Werten
DPCM / Prädiktion - Beispiel Zahlenfolge soll codiert werden (z.b. Pixel): F(x) ) = 11, 10, 10, 9, 8, 8, 10, 11, 6 Prädiktion durch einfache Differenz: F p (x) = F(x-1) F(x) Ergebnis: F p (x) ) = 11, 1, 0, 1, 1, 0, -2, -1, 6 kleine Werte können k durch Quantisierung Null werden Q=2: F Q (x) = 5, 0, 0, 0, 0, 0, -1, 0, 3 danach Lauflängencodierung (z.b. Huffman) Prädiktion bei Bildfolgen (Video) Differenz zum Vorgängerbild
Verlustfreie JPEG Codierung: DPCM C A B X Alternative Prädiktoren 1: X=0 2: X=A 3: X=B 4: X=C 5: X=A + B - C 6: X=A + (B - C)/2 7: X=B + (A - C)/2 8: X=(A + B)/2 Zusammenfassung Prädiktion Schätzung der folgenden Werte/Signalverläufe aus vergangenen Werten Gut bei Ähnlichkeit hnlichkeit der Werte zueinander Quantisierung: Differenzen werden gemittelt, optimalerweise viele gleiche Werte
Zeit- und Frequenzbereich Umkehrbare Transformation in den Frequenzbereich (Fouriertransformation FFT, Cosinustransf. DCT) Hohe Frequenzen sind seltener und schwächer Beispiel: Audiosignal (Klang) Zeit Frequenz Transformations-Codierung Transformation Zeit/Ort Frequenzbereich (Spektrum) Ziel: Energiepackung (Konzentration auf niedrige Frequenzen) PCM Teilbandfilter / Transformation Frequenzkoeffizienten Fourier-/Cosinustransformation (DFT/DCT) Matrixmultiplikation: y = T x, x = T y Quantisierung der Frequenzkomponenten
Frequenz-Transformation Blockweises Vorgehen! Üblich: 8x8 oder 4x4 Pixel Cosinus-Transformation (DCT): Bild ist eine Überlagerung von Basisbildern Pixel Koeffizienten (vgl. Audio) Fouriertransformation (DFT): Signal ist eine Überlagerung harmonischer Wellen Zeitsignal Frequenzspektrum (z.b. 20 ms) DCT-Prinzip Umrechnung Pixel in Koeffizienten Transformation ist umkehrbar (invertierbar)
Zweck der DCT So ähnlich werden viele quantisierte DCT-Bl Blöcke aussehen: 400 300 200 100 0 1 2 3 4 5 6 7 8 Viele Nullen oder kleine Werte, die irrelevant sind DCT-Beispiel Pixelwerte: DCT-Koeff Koeff.:
DCT-Quantisierung DCT-Koeff Koeff.: Quantisiert: 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
u=0u=1u=2m=0123 4567m u=0u=1 m=0123 4567m u=2u=3 u=0u=1 m=0123 4567m u=2u=3 DCT 2D-DCT DCT Basisbilder für f r 8x8-Block DC-Koeffizient Nullter Koeffizient = Helligkeit des Blockes Formel: DCT-Mathematisch F x = c x Σ f n cos( ( (π/16)( (2m+1)x ) 2D: F xy = c xy (x,y,n,m=0..7) xy ΣΣ f mn mn cos( ( (π/16)( (2m+1)x ) cos( ( (π/16)( (2m+1)y ) Auch als schnelle Matrix-Multiplikation Multiplikation umformbar Eigentlich verlustfrei umkehrbar aber Rundungsfehler möglich! m Nicht auswendig lernen
Quantisierung mathematisch Prinzip: Teilen und Runden Datenreduktion mit Informationsverlust! (Irrelevanz) Für r jeden Wert F(x,y): (innerhalb des 8x8-Blocks) F q (x,y) ) = F(x,y) ) / Q(x,y) Q = Quantisierungsmatrix Einfacher Fall: Q = 16 für f r alle x,y F q = P/16 für f r alle x,y alle Werte kleiner 16 = 0! 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
Decodierung / Inverse Quantisierung Quantisierung durch Teilen und Runden nicht verlustfrei umkehrbar! Beispiel: Q=10 782,91 / 10 = 78 78 * 10 = 780 Fehler = Original Rekonstruktion = 2,91 Zig-Zag Zag-Scan der DCT-Koeffizienten Umsetzung der 2D Matrix in 1D Folge von quantisierten Werten Reihenfolge gemäß der psychovisuellen Wichtigkeit der Spektralanteile 400 300 200 100 0 1 2 3 4 5 6 7 8
Lauflängencodierung (Run( Run-length-coding) Sehr viele Koeffizienten werden zu Null quantisiert Lauflänge gibt Anzahl der Nullkoeffizienten bis zum nächsten n Koeffizienten ungleich Null an Spezielles Zeichen für f End-of of-block (EOB) Entropiecodierung der auftretenden Symbole (quantisierte( DCT Koeffizienten) (meist Huffman) 1, 3, 1, 9, EOB Erzeugte Datenmenge Datenmenge bei festem Q vom Bild abhängig! Variable Bitrate (VBR) Original / DCT je nach Ort
Bitrate Konstante Bitrate nur möglich m bei Steuerung von Q Regelung von Q abhängig vom Bildinhalt Bitratensteuerung: Aufwendige Verfahren, starker Qualitätseinfluss! tseinfluss! Qualität t / Quantisierungsstufe Q Quantisierungsstufe Q = Kompressionsrate = Bildqualität Vom Anwender einstellbar Bildqualität JPEG: pro Bild nur ein Q-Wert. Optimaler Wert muss ausprobiert werden 1/Q bzw. Bit/Pixel
Bildqualität t / Bildinhalt Q fest eingestellt: konstante Qualität aber: schwankende Datenmenge (variable Bitrate)! Problem bei Übertragung über Netze! Encoder-Einstellungen: CBR (constant bitrate), 1-pass, 2-pass VBR (variable bitrate) = constant quality (Q) Zusammenfassung DCT und Quantisierung DCT: Transformation in anderen Zahlenbereich Quantisierung: Datenreduktion mit Fehler Lauflängencodierung: viele Nullen -> > wenig Werte Prinzip der meisten Bild- und Videocodierverfahren!