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.
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.
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.
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 |