JPEG File Interchange Format

Dateiendungen: JPG, JIF

Farbtiefe: 8 Bit Graustufen oder 24 Bit Truecolor

Maximale Bildgröße: 65.536 x 65.536 Pixel

Beschreibung: Das Dateiformat JPEG steht für 'Joint Photographic Expert Group' und wurde von C-Cube Microsystems entwickelt. Trotz hoher Farbtiefe bringt man mit JPEG gescannte Bilder oder Fotos platzsparend auf der Festplatte unter. Möglich macht das eine ausgefeilte Datenkompression, die jede Bilddatei auf ein Minimum schrumpft. Dies ist auch der Grund für die Popularität des Formates. Im Internet sind schätzungsweise 70 Prozent aller Bilder als JPEG gespeichert.

Kompression und Qualität: Diese Aspekte lassen sich nicht trennen, da speziell beim JPEG-Format ein enger Zusammenhang zwischen Kompression und Qualität besteht. Zuerst eine kleine technische Erklärung:

Zur Kompression wird jedes Bild in Blöcke aufgeteilt, die 8x8 Bildpunkte groß sind. Zunächst muß jeder Block eine diskrete Cosinus-Transformation (DCT) über sich ergehen lassen. Sinn und Zweck dieser Übung ist, die Farbänderungen von Block zu Block zu erfassen. Im zweiten Schritt erfolgt über alle 8x8-Blöcke eine sogenannte Farbquantisierung: Der Komprimierungsalgorithmus versucht herauszufinden, welche Farbunterschiede von Block zu Block für das Auge erkennbar sind und welche nicht. Farbunterschiede zwischen benachbarten Blöcken, die das Auge nicht erkennen kann, sind redundant und werden unter den Teppich gekehrt. Im letzten Schritt werden die übriggebliebenen Blöcke auf herkömmliche Art komprimiert und abgespeichert.

Die Stärke der Kompression wird je nach Grafikprogramm verschieden eingestellt. Beim Paint Shop Pro beispielsweise kann eine Zahl von 1 bis 99 gewählt werden - dabei bedeuten kleine Zahlen gute Qualität und große Zahlen erzeugen besonders kleine Dateien. Andere Programme lassen Zahlen von 0 bis 255 zu (teilweise mit umgekehrtem Effekt) und manche bieten sogar Schieberegler an. Einige Programme (z.B. Corel PhotoPaint) stellen ein ganzes Sammelsurium an Funktionen und Optionen zur Verfügung. Bei allen Möglichkeiten sollte man jedoch nicht übertreiben. Stärker als etwa 20 Prozent des Machbaren sollte ein Bild nicht komprimiert werden, weil sonst die Qualität zu schlecht wird. Speziell bei feinen Farbverläufen und subtilen Hauttönen entstehen dann schnell grobe Flecken und Blöcke.

Schlimmer noch: Wer mehrfach hintereinander ein JPEG-Bild auf Festplatte sichert, der erlebt bei jedem Speichern ein weiteres Schrumpfen von Dateigröße und Qualität. Die wichtigste Regel lautet also: Das Dateiformat JPG darf nur einmalig benutzt werden, um ein Bild in seiner endgültigen Form abzuspeichern. Während man daran arbeitet, sollte man unbedingt ein Format ohne Qualitätsverlust benutzen. Sehr empfehlenswert ist zum Beispiel PNG.

Ebenfalls möglich ist, das JPG-Format mit einer sehr geringen Kompressionsstufe zu verwenden. Selbst bei der niedrigsten Einstellung wird die JPG-Datei auf etwa die Hälfte komprimiert - und das fast ohne Qualitätsverlust. (aber eben nur fast)

Geschwindigkeit: Das Speichern und Öffnen von JPG-Bildern ist in etwa gleich zeitraubend. Bei größeren Bildern kann es mitunter 10 bis 30 Sekunden dauern. Dieser Zeitbedarf ist auch von der gewählten Kompressionsstufe relativ unabhängig.

Besonderheiten: Das sogenannte progressive JPEG-Format erlaubt mehrere 'Scans' in einem Bild: Nach und nach baut sich das Bild als Mosaik aus quadratischen Feldern auf, sie werden beim Laden immer kleiner und schärfer. Die Dateigröße nimmt bei einem progressiven JPEG nur minimal zu, da lediglich zusätzliche Steuerflags notwendig sind, die eigentlichen Bildinformationen vermehren sich nicht.

JPG-Dateien können zusätzlich ein verkleinertes Vorschaubild (Thumbnail) mit einer maximalen Größe von 255 x 255 Pixeln enthalten. Die Bilddaten dieses Vorschaubildes können entweder unkomprimiert oder JPEG-komprimiert gespeichert sein.

Praktische Anwendung: Das JPG-Format eignet sich besonders für Fotos und gescannte Bilder. Diese besitzen von Anfang an eine sehr hohe Farbtiefe und ein leichtes Rauschen. Und genau bei solchen Bildern kann die JPEG-Kompression ihre volle Wirkung entfalten. Mit den verschiedenen Kompressionsstärken sollte ein wenig experimentiert werden, da die Ergebnisse selten vorhersehbar sind. Als Grundlage für solche Experimente wird sinnvollerweise ein 'sauberes' Bild verwendet, das in einem Format ohne Qualitätsverlust gespeichert war (z.B. PNG oder Tiff).

Völlig ungeeignet ist das JPG-Format für technische Zeichnungen und Cartoons. Bei solchen Bildern treten eklatante Qualitätsverluste auf, die besonders bei Linien und harten Kanten sehr störend wirken. Ich möchte das an einem Beispiel erläutern: Ein Cartoon wurde aus einer Zeitschrift gescannt. Das Bild hat jetzt eine viel zu hohen Farbtiefe von 24 Bit (16 Millionen Farben). Das JPG-Format bietet sich bei dieser Farbtiefe an, also wird es benutzt. Wenn jedoch die Farben des Bildes reduziert werden (oft genügen 16 Farben oder weniger), dann kann es zum Beispiel als GIF gespeichert werden. Die so entstandene Datei ist oft zehn mal kleiner und sieht besser aus als das vergleichbare JPG-Bild!

Ein ähnlicher Fehler, der oft gemacht wird, ist folgender: GIF-Bilder mit 16 oder sogar nur 2 Farben werden in das JPG-Format konvertiert, weil der Anwender glaubt, JPG komprimiert besser als GIF. Doch genau das Gegenteil ist der Fall: Um das Bild im JPG-Format speichern zu können, muß die Farbtiefe auf 24 Bit pro Pixel erhöht werden. Ein 16-Farben-Bild wird somit sechs mal größer. Nun erfolgt die JPEG-Kompression, doch diese kann das Bild in den seltensten Fällen auf ein Sechstel verkleinern. Am Ende ist die JPG-Datei zwei- bis fünfmal größer als das GIF-Bild und die Qualität ist sichtbar vermindert.

Typische Software: JPG-Dateien können praktisch von jedem Grafikprogramm erzeugt und/oder gelesen werden. Und natürlich muß jede Internet-Software dieses Format anzeigen können.

Interner Aufbau: JPG-Dateien sind in viele verschiedene Segmente unterteilt, die teilweise optional sind. Das erste Segment jeder JPG-Datei enthält keine Daten, sondern lediglich die zwei Byte lange Signatur FFD8H. Auch das Ende der Datei wird durch eine ähnliche Signatur (FFD9H) gekennzeichnet. Das zweite Segment jeder JPG-Datei ist das sogenannte Application Marker-Segment, das wie folgt aufgebaut ist:

OffsetBytesBeschreibung
00H2Signatur FFE0H
02H2Segmentlänge (ohne die zwei Bytes der Signatur)
04H5Signatur 'JFIF' zur Identifikation einer gültigen Datei
09H2Version
0BH1Einheit für die Auflösung
0CH2horizontale Auflösung des Bildes
0EH2vertikale Auflösung des Bildes
10H1Breite des Thumbnails (normalerweise 0)
11H1Höhe des Thumbnails (normalerweise 0)
12H3 x nRGB-Werte des Thumbnails

(alle Offset-Angaben relativ zum Segment) Die Versionsnummer teilt sich in zwei Bytes. Die Hauptversion ist normalerweise 01H, für die Unterversion sind z.B. 01H oder 02H zugelassen. Die Einheit für die Auflösung kann drei verschiedene Werte annehmen: 0=keine, 1=Punkte pro Zoll (dpi) oder 2=Punkte pro Zentimeter. Sind die horizontale und vertikale Auflösung eines Bildes unterschiedlich, so kann daraus ein Seitenverhältnis errechnet werden.

Auch alle anderen, teilweise optionalen Segmente beginnen mit einer Signatur und der Längenangabe. Auf diese Weise können unwichtige Segmente (z.B. ein Thumbnail) leicht übersprungen werden. Die eigentlichen Bildinformationen sind im 'Start of Frame Marker-Segment' enthalten. Dieses hat folgenden Aufbau:

OffsetBytesBeschreibung
00H2Signatur FFC0H
02H2Segmentlänge (ohne die zwei Bytes der Signatur)
04H1Auflösung (data precision)
05H2Bildhöhe in Pixel
07H2Bildbreite in Pixel
09H1Zahl der Komponenten (1=Graustufen, 3=Truecolor)
0AH1ID der ersten Komponente
0BH1Abtastfaktor (Bit 0-3: vertikal, Bit 4-7: horizontal)
0CH1Nummer Quantisierungstabelle
0DH1ID der zweiten Komponente
0EH......

Hier möchte ich die Beschreibung des JPG-Formates beenden. Nur noch eine grundlegende Information: JPEG-Grafiken werden im YCbCr-Farbmodell gespeichert. Dieses Farbmodell erlaubt eine Reduzierung der Informationen in der Farbebene (Crominanz), während die Helligkeit (Luminanz) erhalten bleibt. Die RGB-Farben lassen sich mit einfachen Formeln linear aus dem YCbCr-Farbmodell ableiten.


Zurück zum Textanfang
Zurück zum Inhaltsverzeichnis