09.05.006 8x8 DCT Berechnungsvorschrift (horiz. Frequenz) k D DCTKoeffizienten X [l, k ] = Ck Cl x[n, m] /, für i = 0 Ci = /, für i > 0 l=3 l= l=5 D DCT Basisfunktionen Normierungsfaktoren Direkte D 8-DCT Implementierung als Matrixmultiplikation erfordert 6 Multiplikation und 56 Additionen Schnelle D 8-DCT Implementierung möglich durch geschickte Ausnutzung von Redundanzen und Symmetrien in der Definition der DCT-Basisfunktionen: Multiplikationen und 8 Additionen [Arai, Agui, and Nakajima; 988 (AAN88)]: Schnell(st)e D 8-DCT durch Faktorisierung in dünnbesetzte Matrizen: 5 Multiplikationen, 8 Skalierungen und 9 Additionen Ausführung der D 8x8-DCT nach AAN88 als separable Hintereinanderausführung von acht D 8-DCTs der Spalten und acht D 8-DCTs der Zeilen (der Spaltenkoeffizienten) Ö Schnelle D 8x8-DCT: 6x5 = 80 Multiplikationen + 6x9 = 6 Additionen l= (m + ) k π (n + ) l π cos cos 6 6 3 = Bl,k [n, m] Dr. Detlev Marpe 8x8 DCT Berechnungsaufwand l= n =0 m =0 Grundlagen der Bildkompression (Teil 3) und Einführung in JPEG Fraunhofer Institut für Nachrichtentechnik HHI l=0 D Bildpunkte l=6 l= l (vertikale Frequenz) k=0 k= k= k=3 k= k=5 k=6 k= 8x8 DCT-Basisbilder Bl,k Weitere Transformationen / Basisbilder 3 Wie findet man die optimale Transformation? Anschaulich: Drehung in ein Koordinatensystem entlang der Hauptachsen der Punktwolke der Verbundverteilungsdichte Mathematisch: Neue Basisvektoren sind Eigenvektoren der Kovarianzmatrix des Eingangssignals Ö Karhunen-Loève Transformation (KLT) Vorteile: Optimale Dekorrelation Optimale Energiekonzentration Nachteile: Signalabhängig Keine schnellen Algorithmen Strategie: Annäherung an KLT durch schnelle Transformation Haar-Basisbilder Walsh-Hadamard-Basisbilder Enthalten nur die Werte {+,0,-}: geringer Berechnungsaufwand (keine Multiplikationen) Leistungsvergleich von 8x8 Transformationen Codiergewinn [db] aus: B. Girod, Stanford Univ., Handouts 5 6
09.05.006 Basisfunktionen von DCT und KLT im Vergleich 8x8 DCT Basisblö Basisblöcke 8x8 KLT Basisblö Basisblöcke Sukzessive Approximation mit bis zu 8 von 6 Basisfktn Original Rekonstruktion mit 8 Koeffizienten (höchster Energie) OriginalOriginalbild 8x8 KLT bildunabhä bildunabhängig! Für gegebenes Bild optimiert! 8x8 DCT Probleme durch visuelle Artefakte an den Blockgrenzen! 8 Einfluss der Blockgrößen auf die D DCT WWW der Bild-/Videocodierstandardisierung Warum wird standardisiert? Standards ermöglichen Kompatibilität und Interoperabilität Standards bündeln Expertenwissen (State-of-the-Art Technologie) Produkte können vorgefertigte HW-/SW-Implementierungen der Standards verwenden Codiergewinn [db] Was wird standardisiert? Nur Syntax (Form und Struktur) des Bitstroms und Decoder Erlaubt implementationsspezifische Optimierung im Encoder, z. B. bezüglich Komplexität, Qualität und Bitrate Wer standardisiert? ITU-T Telecommunication Standardization Study Group 6: Multimedia Services, Systems, and Terminals ISO/IEC JTC SC9 Coding of Audio, Picture, Multimedia and Hypermedia Information WG : Digital Compression and Coding of Still Pictures (JBIG, JPEG) WG: Generic Coding of Moving Pictures and Assoc. Audio Information (MPEG) aus: B. Girod, Stanford Univ., Handouts 9 0 Encoder (Baseline Modus) Codierschicht Kontrollschicht 8x8 Block aufzufüllender Headerinformation und Nebeninformation
09.05.006 von Bildpunkten von DCTkoeffiz. Vorgängerblöcke von 8x8 DCT- Koeffizienten = DC = Gleichanteil aktueller von DCT-Koeffizienten 3 Lineare Quantisierung Beispiel: Werte 3 / < x 5 / werden mit x q = rekonstruiert quantisiertes Ausgangssignal xq Ausgang = Eingang Kennlinie des Quantisierers / x = Eingangssignal von DCT Koeffiz. von quantisierten DCT Koeffiz. Einteilung in uniforme Quantisierungsintervalle der Breite 5 6 Gewichtete lineare Quantisierung der einzelnen Frequenzen Angepasst an die Kontrastempfindlichkeit des menschlichen visuellen Systems Kontrastempfindlichkeit (Campbell-Robsen, 968) Kontrast (abnehmend 00 0,5%) Sichtbarkeitsschwelle (des Dozenten) 8x8 Quantisierungsmatrizen für Luminanz Chrominanz 6 0 6 0 5 6 9 6 58 60 55 3 6 0 5 69 56 9 5 8 80 6 8 3 56 68 09 03 35 55 6 8 0 3 9 9 6 8 8 03 0 0 9 95 98 00 03 99 8 99 99 99 99 8 6 66 99 99 99 99 6 56 99 99 99 99 99 66 99 99 99 99 99 99 Ortsfrequenz (logarithmisch) 8 3
09.05.006 Zick-Zack Auslesen der quantisierten AC Koeffizienten (D D) Lauflängencodierung der Nullkoeffizienten Entropiecodierung von JPEG (Spielzeugbeispiel) dct i Quantisierungsmatrix i dcti qi = Vorzeichen( dcti ) + i quantisierte Koeffizienten : von Null verschiedener quantisierter Koeffizient D Datenstrom nach Zick- Zack Auslesung Zick-Zack Auslesen : zu Null quantisierter Koeffizient Lauflängencodierung mit (Run, Level) 9 0 Codierung der (Run,Level)-Paare Repräsentierung über einen 8-bit Wert Run-Size RRRRSSSS RRRR: -bit Wert zur Bestimmung der Lauflänge 0... 5 SSSS: -bit Wert zur Bestimmung der Betragskategorie ( Size ) des Level-Werts Huffman-Codierung von Run-Size (Baseline Modus) Vorzeichen und zusätzliche Bits zur Bestimmung des exakten Level-Werts werden angefügt Verwendung von vordefinierten Huffman-Tabellen (einstufige Encodierung; default) Alternativ: Huffman-Tabellen können auf Statistik des gegebenen Bildsignals angepasst (zweistufige Encodierung) und als Nebeninformation übertragen werden JPEG Qualitäten (Q: Qualitätsfaktor...00) Originalbild 68 x 5 Pixel, bit RGB JPEG Qualitäten (Q=50; 30 B; CR 36,6:) JPEG Qualitäten (Q=5; 9 B; CR 60,8:) 3
09.05.006 JPEG Qualitäten (Q=; 09 B; CR 08:) JPEG Qualitäten (Q=6; 668 B; CR 8:) 5 6 JPEG Modi Baseline Minimale Toolbox, die jeder JPEG-Decoder unterstützt Sequentielle (blockweise) Verarbeitung Progressiver Modus (statt sequentielle Verarbeitung) Spektrale Selektion (von tief- zur hochfrequenten DCT-Koeffizienten) Schrittweise Verfeinerung der Genauigkeit aller DCT-Koeffizienten Wenig unterstützt: Arithmetische Codierung (statt Huffman) Hierarchischer Modus (progressiv bzgl. Bildauflösung) Verlustloser Modus (DPCM-basiert, Huffman-Codierung) Motion JPEG kein offizieller Standard (viele unterschiedliche Implementierungen) Jedes Frame/Field wird unabhängig voneinander JPEG codiert Verwendung zur Videonachbearbeitung / Digitale Kameras Literatur- und weitere Informationsquellen W. B. Pennebaker and J. Mitchell: JPEG - Still Image Data Compression Standard, Van Nostrand Reinhold, 993. Die JPEG-Bibel ISO/IEC International Standard 098- bzw. ITU-T Recommendation T.8 (Sept. 99) http://www.itu.int/t-rec-t.8/ Hitchhiker's Guide to JPEG compression: Java-Applet zur Demonstration von Baseline u. Hierarchischem Modus http://www.sfu.ca/~cjenning/toybox/hjpeg/ Offizielle JPEG/JBIG web site: http://www.jpeg.org/ Open-Source Projekt Independent JPEG Group: http://www.ijg.org/ 8 5