JPEG

JPEG ist die Abkürzung für Joint Photographic Expert Group. Die eigentliche Bezeichnung für Bilder die mit JPEG komprimiert wurden heißt JFIF, JPEG File Interchange Format. Umgangssprachlich werden Bilder aber nicht als JFIF sondern als JPEG bezeichnet.

Geschichte

1984 wurde die Joint Photographic Expert Group gegründet um einen Standard für verlustbehaftetes Bildkomprimieren zu entwickeln. Das darin enthaltene Wort Joint steht für die Zusammenarbeit ISO/IEC (International Organization for Standardization/International Electronical Commision) und CCITT (International Telegraph and Telephone Consultativ Commitee). Die Ziele der Gruppe waren es eine Bildkompression mit akzeptabler Komplexität, Unabhängigkeit von der Bildbeschaffenheit und vom Benutzer beeinflussbarer Bildqualität/Kompression zu schaffen. 1993 wurde das Ergebnis unter der Bezeichnung ISO 10918 als Standard definiert.

Daten

Ein Bild, das mit JPEG komprimiert wird, kann in drei Farbformaten gespeichert werden.
Die erste Möglichkeit ist, es in 8 Bit Graustufen zu speichern, also 256 verschiedene Grautöne zu benutzen.
Die zweite Möglichkeit ist, 24 Bit Farbtiefe zu verwenden, das ist das RGB-Format. RGB steht für Red, Green, Blue, also Rot, Grün und Blau. Jede der 3 Farben besitzt 256 Abstufungen, daraus ergeben sich dann 16,7 Millionen verschiedene Farben. Dieses Format wird hauptsächlich für Bilder benutzt, die auf dem Bildschirm angezeigt werden sollen.
Die dritte Möglichkeit des Farbformats für die JPEG-Komprimierung ist es, 32 Bit Farbtiefe zu verwenden. Hier ist es das CMYK-Format. CMYK steht für Cyan, Magenta, Yellow, Key/Black, also Zyan, Magenta, Gelb und Tiefe/Schwarz. Man verwendet ein "K" in der Abkürzung, weil "B" zu Missverständnissen führen könnte, da es schon für Blue verwendet wird. Ähnlich wie beim RGB-Format besitzt jede der hier 4 Farben 256 Möglichkeiten, daraus ergeben sich dann 4.3 Milliarden verschiedene Farben.

Die maximale Auflösung für ein JPEG sind 65535 x 65535 Pixel.

Wenn man ein Bild mit JPEG komprimieren lässt, kann man zum einen die Stärke der Kompression wählen und zum anderen entscheiden, ob es Progressiv oder Sequentiell gespeichert wird. Den Unterschied sieht man, wenn man mit einer langsamen Internetverbindung ein Bild öffnet. Ein Sequentiell gespeichertes JPEG baut sich von oben nach unten langsam auf, wenn das volle Format angezeigt wird, ist der Ladevorgang beendet. Wurde ein JPEG Progressiv gespeichert, läuft der Aufbau des Bildes in mehreren Schritten ab. Im ersten Durchgang wird das Bild nur mit sehr wenigen Details aufgebaut, man sieht grob, was das Bild beinhaltet. Mit jedem weiteren Durchlauf wird die Qualität des angezeigten Bildes immer besser und wenn der Ladevorgang nach einer gewissen, vorher festgelegten Anzahl von Durchläufen beendetet ist, sieht man das fertige Bild.

Die JPEG-Komprimierung unterstützt ICC-Profile, diese bauen auf die vom ICC (International Color Consortium) festgelegten Normen auf. Mit Hilfe von ICC-Profilen lassen sich Farbdaten zwischen beliebigen Farbräumen umrechnen. Farbgeräte, z.B. Drucker und Scanner besitzen ein ICC-Profil. Wird z.B. ein gescanntes Bild gedruckt, wird das Scanner-ICC-Profil mit dem vom Drucker verglichen und die Farben dementsprechen umgerechnet, das es farbrichtig ausgedruckt wird.

Komprimierung

Bei der Verlustbehafteten Kompression geht nicht zwangsläufig Bildqualität verloren (zumindestens bei niedrigen Kompressionsstufen), es gehen vielmehr Informationen verloren. Nun lässt man vorzugsweise genau die Informationen verloren gehen, die das Auge nicht so einfach registrieren kann.
Das Auge erkennt Helligkeitsunterschiede stärker als Farbunterschiede. Deshalb wird versucht, die Helligkeit so lange wie möglich beizubehalten und anfangs nur Informationen zu den Farben zu verlieren. Im RGB-Farbformat ist diese Herangehensweise nicht möglich. Deshalb wird das Bild beim ersten Schritt der Komprimierung in ein anders Farbformat umgerechnet, bei dem die Helligkeits- und Farbwerte getrennt vorliegen. Gut dazu geeignet ist das YUV-Farbmodell, dabei steht das Y für Helligkeit, U für Farbton und V für Farbsättigung. Die Werte von Y, U und V sind mit einer simplen Formel schnell aus den R, G und B Werten berechenbar.
Als nächstes wird eine Diskrete Cosinus Transformation (DCT) durchgeführt. Diese arbeitet mit 8 x 8 Pixelblöcken und beschreibt für jeden eine Funktion, von 64 Orthonormierten Vektoren und ist eine Anwendung der Fourier-Transformation.
Danach findet der Quantisierungsprozess statt, das ist der eigentliche Komprimierungsprozess. Er arbeitet mit einer Quantisierungstabelle und rundet die DCT-Koeffizienten. Da die Art der Quantisierung nicht festgeschrieben ist, kommt hier der Kompressionsfaktor ins Spiel, so wird die Stärke des Rundens bestimmt. Je mehr gerundet wird, desto mehr Koeffizienten werden zu Null.
Im letzten Schritt werden die Koeffizienten kodiert, wodurch eine weitere, aber verlustlose Kompression stattfindet. Da bei der Quantisierung viele Nullen entstanden sind, brauchen nur noch die Werte ungleich Null und die Anzahl der Nullen zwischen ihnen angegeben werden.

Bei der Dekompression brauchen die 4 Schritte nur noch rückwärts ausgeführt werden und man hat ein fertiges Bild.

Gliederung Vergleich GIF und JPEG