Fachbereich Medieninformatik Hochschule Harz JPEG / Motion JPEG Referat Andreas Janthur 9962 Abgabe: 15.01.2007 Seite: 1
Inhaltsverzeichnis Einleitung... I 1 JPG... 1 1.1 DC Transformation (discrete cosinus transformation)... 1 1.2 Quantisierung und Entropie Kodierung... 1 1.3 Decodierung... 1 1.4 Sequentielle und progressive Verarbeitung... 1 1.5 Fazit... 1 2 Motion-JPG... 5 3. Glossar... 10 4. Quellen 4.1 Literaturverzeichnis... 11 4.2 Abbildungsverzeichnis... 12 Seite: 2
Einleitung 1982 wurde das Komitee Photographic Experts Group of International Organization of Standarisation gegründet. 1986 wurde das Komitee durch die International Telecomunications Union (CCIT, heute ITU-R) verstärkt und zur Joint Photographic Experts Group zusammengefasst. Ziel war die Entwicklung eines Bildkompressionverfahrens für monochrome Bilder. Technische Zielsetzung war eine Reduzierung der Datenmenge von 8 bit/pixel auf 0,25 -, 1 - und 4 Bit/Pixel mit den visuellen Eigenschaften: Erkennbar, Exzellent und Kein sichtbarer Unterschied. Bald wurde klar, dass diese Ziele leicht übertroffen werden können, da schon verlustfreie Komprimierungen es ermöglichen, die Dateigröße zu halbieren. Die Meßlatte wurde höher angelegt, neue Ziele sollten 2,25 bpp (Bit per Pixel) Kein sichtbarer Unterschied, 0,75 bpp exzellent, 0,25 Usefull, 0,083 Erkennbar sein. Es wurden verschiedene Transformationsarten getestet. DCT (discrete cosinus transformation) wurde als Kerntechnologie gewählt, weil sie relativ leicht zu implementieren ist, schnelle Algorithmen besitzt und in die Hardware eingebaut werden kann. [01] JPG umfasst mehrere Standards: verlustfreie JPG-Komprimierung verlustbehaftete JPG-Komprimierung mit sequentiellem oder progressivem DCT-Modus JPG-Komprimierung mit hierarchischem Modus JPG 2000 Motion-JPG-Komprimierung Im Folgenden wird die verlustbehaftete JPG-Komprimierung und Motion-JPGKomprimierung betrachtet. Der Komprimierungsprozess ist ein Prozess aus mehreren Teilschritten. Da es unterschiedlichejpg-komprimierungen gibt, werden nicht immer alle Schritte durchlaufen, bzw. können weitere Komprimierungsarten integriert werden. Abb. 01: Eigene Darstllung unter Zuhilfenahme der Quellen [01] und [02] schemtische Darstellung zweier JPG-Komressionen und deren Matrizen Seite: 31
1. JPG 1.1. DC Transformation (discrete cosinus transformation) (1) Das Bild wird in Blöcke von 8x8 Pixeln aufgeteilt. Jeder Pixel kann 8 bis 12 Bit besitzen [02, S. 163][04, Tabelle 3.4 auf S. 38] (höhere Bitraten können nicht mit JPG komprimiert werden). Von jedem 8 bit-pixel (0 bis 255) wird der Wert 128 abgezogen. Der Wertebereich geht dementsprechend von -128 bis + 127. Dadurch stellen sich geringere Anforderungen an DCT-Berechnung, da die Werte, die sich aus dem Spatprodukt mit der Transformationsmatrix DCT ergeben auch einen geringeren Wertebereich besitzen. Die Transformationsmatrix wurde, ähnlich dem YUV-Verhältnissen, aus Try-and-Error Versuchen unter psychovisuellen Gesichtspunkten gefunden [03, S. 197]. Es gibt nicht eine Transformationsmatrix sondern verschiedene Standardtransformatinsmatrizen. Pro 8x8-Block existiert ein DC-Pixel (direct current). Er befi ndet sich in der linken oberen Ecke eines jeden Blockes. Er enthält die Differenzwerte zu den benachbarten DC-Pixeln, so wird gewährleistet, dass es innerhalb des Bildes nicht zu extremen Farb-/Luminanz-/Chrominanzverschiebungen kommt. Die weiteren 63 Pixel des 8x8-Blockes werden in AC-Koeffi zenten (alternating current) überführt. Der Block wird im Zick-Zack-Muster gescannt. Es werden nur die Differenzen der AC-Pixel untereinander gespeichert. Zweck der Transformation ist es, den Block für die Quantisierung aufzubereiten. Am Ende des Blockes sollen möglichst geringe Werte stehen, so dass sie in der Quantisierung Null werden und der Block per Laufl ängenkodierung komprimiert werden kann. [1][2] Abb. 02: 8 x8-block, a) Position der DCT-Koeffizienten in Abhängigkeit von der Ortsfrequenz; b) Zick-Zack-Abtastung der Koeffi zienten nach aufsteigenden Frequnzen 1.2. Quantisierung und Entropie Kodierung (2) Die erhaltene Matrix mit den DCT-Koeffi zienten (Ergebnismatrix nach der Transformation) wird durch Quantisierungsmatrizen quantisiert, dazu wird das Spatprodukt aus der transformierten Matrix und der Quantisierungsmatrix gebildet. Die Luminanz und die Chrominanzen werden nach unterschiedlichen Matrizen quantisiert. Ziel ist es am Ende des Blocks kleine Koeffi zienten und besonders viele Nullen zu erhalten (Wunschergebnis der Quantisierung). Die Quantisierungmatrizen bestimmen den Kompressionsgrad. Ist dieser zu hoch, so kann es im Bild zu deutlicher Blockbildung (Blockartefakte) kommen. Das Ergebnis wäre ein stark komprimiertes, aber qualitativ schlechtes Bild. Die quantisierten Koeffi zienten eines Blockes werden per Laufl ängen- und Huffmankodierung (Entropie) komprimiert (siehe Ausarbeitung Huffmankodierung). 1.3. Decodierung Die Decodierung erfolgt analog über die inverse DCT-Matrize (IDCT). Da es für die Komprimierung keine festgeschriebenen Matrizen verwendet, werden diese als Dateiinformation mitgeschickt, um eine korrekte Dekodierung zu gewährleisten. [02, S. 165] Seite: 4
1.4. Sequentielle und progressive Verarbeitung Interessant ist die Verarbeitung besonders bei der Decodierung. Bei der progressiven Verarbeitung beginnt die Darstellung des Bildes mit einer groben Aufl ösung, die zunehmend feiner wird. Bei jedem Durchlauf wird nur ein Teil der Koeffi zienteninformation decodiert. Bei der sequentiellen Verarbeitung wird jeder Block vollständig dekodiert. Das Bild baut sich von links oben nach rechts unten blockweise auf (mit einer Höhe von 8 Pixeln). [02] 1.6. Fazit Wie in der Abb. 01 zu erkennen ist, gibt es unterschiedliche Kompressionsverfahren im JPG-Standard. Im linken Teil der Abbildung wird vor Beginn der DCTransformation das RGB-Bild in ein YCrCb-Bild gewandelt. Anschließend wird die Chrominanz auf ein Viertel reduziert (4:4:4 => 4:2:0). Diese Reduktion komprimiert das Bild beinahe auf die Hälfte seiner Größe. Ein Komprimierungsstandard ist allen (verlustbehafteten) JPG-Komprimierungen gemein: die Baseline-Komprimierung (DCTransformation, Quantisierung, Huffman-Entropie-Kodierung). Die JPG-Komprimierung ist ein effi zientes Verfahren zur Datenreduzierung mit (oftmals) einstellbarer Komprimierungs- /Qualitätsrate. 2. Motion-JPG Motion-JPG verwendet die gleichen Verfahren des Blockmatching wie MPEG. Da MPEG der gebräuchlichere Standard ist und an anderer Stelle ausführlich erklärt wird, kann hier nur kurz auf die möglichen Verfahren eingegangen. Die Kodierung von Motion-JPG funktioniert analog zur JPG-Komprimierung. Das bekannte Verfahren wird um eine Dimension erweitert: die Zeit. Das bedeutet, es werden nicht nur Differenzen zu den DC-Pixeln des jeweiligen Frames gesucht, sondern auch der nächste Frame wird auf Unterschiede abgesucht. Bei Bewegtbildern werden Frames in Blöcken von 16x16 Pixel (Makroblock) miteinander verglichen, kleinere Blöcke wären zu rechenintensiv. Wird im nächsten Frame ein identischer Block gefunden, so kann ihm der vorhergehende Block und ein Verschiebungsvektor zugewiesen werden, ohne dass eine Neukodierung/-dekodierung erfolgt. Da sich die Blöcke bewegen, wird im nächsten Frame nicht der Block an derselben Stelle untersucht, sondern die nähere Umgebung. Dafür gibt es verschiedene Ansätze. [01] Full-Search Block Matching Es wird davon ausgegangen, dass keine Bewegungen schneller als 1/3 der horizontalen Bildfl äche pro Frame stattfi n- den. Deshalb wird die Umgebung eines 16x16-Blockes im Frame n+1 in einer Umgebung von +-150 Pixel in der Breite und +- 50 Pixel in der Höhe auf die Verschiebungen des Blockes untersucht. Hierarchical Block Matching Es wird grob gescant, wo und in welche Richtung Blockverschiebungen stattfanden. Wird eine Blockverschiebung erkannt, wird diese Fläche im Detail aufgelöst. Residuals (engl. übrigbleibend) Ein Block kann sich über die Zeit nicht nur bewegen (Translation), sondern auch transformieren. Das Residualsverfahren berücksichtigt diese Möglichkeit und übermittelt zum Translationsvektor auch die Transformation. Es kann sein, dass die Transformation eines Blockes und dessen Translationsvektor mehr Speicher einnimmt, als eine komplette Neuberechnung des Blockes. Gute Encoder berechnen beides und verwerfen anschließend die Möglichkeit mit dem höheren Speicherbedarf.
3. Glossar AC alternating current bpp Bit per Pixel DC direct current DCT discrete cosinus transformation engl. Englisch JPG auch JPEG, Joint Photographic Experts Group S. Seite 4. Quellen 4.1. Literaturverzeichnis [01] Symes, Peter, Videocompression demystifi ed, 1. Aufl age, USA 2001 [02] Strutz, Tilo, Bilddatenkompression, Untertitel: Grundlagen, Codierung, JPEG, MPEG, Wavelets, 2.Aufl age, Deutschland 2002 [03] Schmitt, Ulrich, Digitale Videotechnik, 1.Aufl age, Deutschland 1996 [04] Milde, Torsten, Videokompressionsverfahren im Vergleich, Untertitel: JPEG, MPEG, H.261, XCCC, Wavelets, Fraktale, 1. Aufl age 1995 4.2. Abbildungsverzeichnis Abb. 01 eigene Darstellung unter Zuhilfenahme der Quellen [01] und [02] Abb. 02 [02, S. 165]