JPEG

30.12.1999 von RALPH MENN 
Kein anderes Grafikformat neben GIF hat sich im Web so durchgesetzt wie das JPEG-Format. tecChannel zeigt die Funktionsweise der JPEG-Bildkompression.

Schon Ende der 70er-Jahre suchten Grafikspezialisten nach einem neuen Bildformat, das die Wünsche und Anforderungen grundsätzlich unterschiedlicher Anwendergruppen befriedigen sollte. Druckindustrie, PC- sowie Mac-Benutzer, Fotoprofis und Röntgenärzte wollten ein Bildformat, das quer über alle Betriebssysteme austauschbar ist. Zusätzlich sollte das Format eine möglichst hohe Anzahl von Farben oder Graustufen darstellen können, die Datenmenge ohne sichtbare Verluste stark reduzieren.

Diese an sich gegensätzlichen Forderungen versuchte die Joint Photographic Experts Group, die dem JPEG-Format den Namen gab, zu erfüllen. Seit 1992 ist das JPEG-Verfahren zum weltweiten Standard in der Kompression von Farb- und Graustufenbildern geworden.

Die wichtigsten Anforderungen bei der Entwicklung des JPEG-Formats lauteten:

Grundsätzlich gilt, dass Verfeinerungen am JPEG-Format müssen kompatibel, lizenz- und patentfrei bleiben, um in den Standard aufgenommen zu werden.

Auch die Aufweichung des Formates in anwenderspezifische Unterformate wurde bei JPEG erfolgreich verhindert: Im Gegensatz zum TIFF-Format mit seinen mittlerweile unzähligen Unterformaten kann immer noch praktisch jedes JPEG-kompatible Programm jede JPEG-Datei verarbeiten.

Diese Eigenschaften machen das JPEG-Format prädestiniert für den Einsatz im Internet. tecChannel zeigt, wie die JPEG-Kompression funktioniert.

Farbraum-Umwandlung

Obwohl die Umwandlung der Farbräume einer Vorkompression der Daten gleichkommt, ist sie nicht Bestandteil des JPEG-Verfahrens. Dieses ist explizit unabhängig von Farbräumen definiert.

Für Bilder, die auf einem Computermonitor dargestellt werden sollen, bietet sich das RGB-Schema an. Dabei wird das Bild in drei Einzelbilder mit den Farbkomponenten Rot, Grün und Blau zerlegt. Wie in Abbildung 1 ersichtlich, enthält das G-Teilbild mehr sichtbare Informationen, als die beiden anderen Kanäle. Dies ist in der Physiologie des Sehapparates begründet, der für die Farbe Grün besonders empfindlich ist.

Durch eine mathematische Berechnung kann der Informationsgehalt eines Kanals zu Lasten der verbleibenden Kanäle (oder Teilbilder) noch weiter erhöht werden.

Alternativ zur RGB-Darstellung bietet sich das YUV-Schema an. Dabei wird fast die gesamte Helligkeitsinformation (somit auch der Kontrast) in einem Y-Kanal konzentriert, der Luminanz-Kanal genannt wird. Die Farbinformation steckt in den U- und V-Kanälen (bzw. Teilbildern), den Chrominanz-Kanälen.

Wie in Abbildung 2 zu erkennen ist, enthält der Y-Kanal die meisten Bildinformationen. Es ist daher einleuchtend, dass ein besseres Kompressionsergebnis erzielt wird, wenn der Y-Kanal möglichst schonend und die beiden Chrominanz-Kanäle stärker komprimiert werden.

Einige JPEG-Programme gestatten in der Sub-Sampling -Option dem Anwender die Möglichkeit, diese Kompressions-Parameter zu beeinflussen: Die Luminanz bleibt dabei in der vollen Auflösung (1:1), die Chrominanz-Kanäle werden um Faktor 2 in der Horizontalen 2:1 oder 1:1 vertikal reduziert. In der JPEG-Terminologie wird dies RGB 4:4:4, YUV 4:2:1 oder YUV 4:2:2 genannt. Dieser Schritt verkleinert ohne Qualitätsverluste das Datenvolumen vorab um Faktor zwei oder drei.

DCT & Quantisierung

Im nächsten Schritt wird das Bild in 8x8 große Pixelblöcke aufgetrennt. Jeder dieser Blöcke wird der diskreten Cosinus-Transformation unterzogen. Diese ist mit der Fourier-Transformation verwandt und wandelt die räumliche Information der Helligkeitswerte in eine Frequenz-Darstellung um. Die Umwandlung selbst ist verlustlos bis auf Rundungsfehler.

Auf diese Weise ergeben sich 64 DCT-Koeffizienten für jeden Pixelblock. Der oben links im Block stehende Koeffizient wird DC-Komponente oder Gleichanteil genannt. Je weiter man sich von ihm entfernt, desto höher werden die zugehörigen Frequenzen. Da das menschliche Auge für höhere Frequenzen weniger empfindlich ist, kann man diese Anteile je nach Höhe des Kompressionsfaktors vernachlässigen. Diese Aufgabe kommt dem Quantisierer zu.

Quantisierung

Um die Anzahl der DCT-Koeffizienten zu verringern, wird jeder Wert durch einen zugeordneten Q(uantisierungs)-Wert dividiert und auf die nächste ganze Zahl gerundet. Die Q-Werte werden dabei Tabellen entnommen, die das JPEG-Komitee anhand psycho-visueller Tests an einer Vielzahl von Personen ermittelt hat. Somit wird beim JPEG-Verfahren der Kompressionsfaktor nicht direkt eingestellt, sondern ein Q-Faktor ausgewählt, der einer bestimmten Kompression entspricht.

Die verlustbehaftete Quantisierung ist in Kombination mit der DCT dafür verantwortlich, dass in stark komprimierten Bildern störende Artefakte entstehen. Da sich die Bildinformationen bei einem hohen Q-Wert sprunghaft ändern, divergieren auch die DCT-Koeffizienten entsprechend stark. Soll bei der Dekompression versucht werden, diesen Sprung zu berechnen, stößt man mit Cosinus-Funktionen an die mathematische Grenze, da aufsummierte Cosinus-Teilfunktionen einen Sprung nur durch Einschwingen approximieren können. Dieser Effekt wird auch als Gibb'sches Phänomen bezeichnet.

Nach der Quantisierung sind die Daten stark reduziert. Durch die Abtrennung der hohen Frequenzanteile entsteht immer eine Reihe von Null-Werten, die durch Abzählen zusammengefasst werden. Die von Null verschiedenen quantisierten DCT-Koeffizienten werden durch ein Zick-Zack-Schema in eine lineare Zahlenfolge umgesetzt, die im letzten Schritt der Entropie-Kodierung unterworfen wird.

Entropie-Kodierung

Auf Grund von statistischen Eigenschaften des Signals ist eine weitere verlustlose Kompression zu erreichen. Im JPEG-Standard ist hierfür sowohl eine Huffmann- als auch eine arithmetische Kodierung vorgesehen.

Die Huffmann-Kodierung erfordert eine Code-Tabelle, die sowohl dem Encoder als auch dem Decoder bekannt sein muss. Die Tabelle kann entweder fest vorgegeben sein, oder aber speziell für ein zu kodierendes Bild ermittelt werden. Dies muss in einem zusätzlichen Schritt vor der eigentlichen Kodierung geschehen.

Die arithmetische Kodierung erfordert im Gegensatz dazu keine vor der Kodierung feststehende Code-Tabelle. Vielmehr wird diese Tabelle während des Kodierprozesses adaptiv erstellt. In der Praxis wird dadurch eine um etwa 5 bis 10 Prozent bessere Kompression erreicht, was jedoch auf Kosten der Rechenzeit geht.

JPEG-Modi

Das JPEG-Komitee hat vier grundsätzliche JPEG-Verfahren definiert: Das Baseline-Schema, auch sequenzieller Modus genannt, stellt wichtigste Verfahren dar. Hier werden die Einzelpixel eines Bildes von der oberen linken Bildkante zur unteren rechten Ecke nacheinander abgearbeitet. Im progressiven Modus existiert zwischen Quantisierung und Entropie-Kodierung ein Speicher. Dieser erfasst das quantisierte Bild und ermöglicht eine in mehreren Scans durchgeführte Kodierung. Dem Anwender zeigt sich diese Technik durch den inkremental feiner werdenden Bildaufbau, im Gegensatz zum pixelweisen beim sequenziellen Modus. Leider ist der progressive Modus von den großen Browserherstellern nur sehr zurückhaltend implementiert worden.

Einen grundsätzlich anderen (weil verlustlosen) Ansatz geht das Lossless-JPEG, das in der Radiologie große Bedeutung hat. Der Lossless-Mode arbeitet weder mit einer DCT, noch mit Quantisierung. Statt dessen werden die Daten mit einem Prädikator bearbeitet. Der Prädikator schätzt ein Pixel aus dem jeweils vorangegangenen. Der geschätzte Wert wird dann vom wirklichen Wert abgezogen. Im Anschluss steht wieder eine Entropie-Kodierung mit geringfügig anderen Parametern.

Der hierarchische Modus spielt dagegen nur eine untergeordnete Rolle: Das Bild wird bei diesem Verfahren direkt in unterschiedlichen Auflösungen kodiert. Dabei wird nicht jede Auflösung einzeln, sondern nur deren Differenzen abgespeichert. Der Anwender hat auf der Decoderseite die Möglichkeit, den Prozess bei der gewünschten Auflösung abzubrechen.

Das Encapsulated Postscript (EPS) JPEG wird in der Druckindustrie verwendet. Im Bereich der Druckvorstufe wird eine konservative 3-4:1 Kompression der Separation des Bildes in die CMYK-Einzelbilder nachgeschaltet, um die Datenmenge um etwa 70 Prozent zu reduzieren.

Fazit

Durch die Plattform-Unabhängigkeit und weite Verbreitung hat JPEG seine Position als universelles Grafikformat gefestigt. Kaum ein Bereich, in dem sich das JPEG-Format nicht behauptet hätte: digitale Fotografie, Druckprozesse, Radiologie, Astronomie, Radar-Anwendungen, CD-ROMs und Internet.

Dennoch wünschen sich die Anwender schon seit Jahren einen definierten Farbraum, Metadaten, höhere Kompressionsfaktoren und eine bessere Bildqualität. Auch erscheinen die lästigen Artefakte nach der kommerziellen Einführung der Fraktal- und Wavelet-basierenden Verfahren eher antiquiert. Diesen Wünschen wird im nächsten Jahr mit der Einführung des JPEG-2000-Format Rechnung getragen.

Für alle diejenigen Leser, die nicht bis Ende 2000 auf diese Features warten wollen, empfiehlt sich der JPEG-Wizard von Pegasus Imaging oder der SmartSaver von Ulead . Die beiden Programme holen jetzt schon aus jedem JPEG-Bild die maximal mögliche Bildqualität bei hoher Kompression heraus.

Wer selbst mit JPEG-Algorithmen arbeiten möchte, findet weitere Informationen auf der Seite der Independent JPEG Group . (mhe)