- JPEG File Interchange Format
-
JPEG File Interchange Format Dateiendung: .jpg, .jpeg, .jpe, .jfif
MIME-Type: image/jpeg
Magische Zahl: FF D8
Entwickelt von: Joint Photographic Experts Group Art: Verlustbehaftetes Grafikformat Standard(s): ISO/IEC 10918, ITU-T T.81, ITU-T T.83, ITU-T T.84, ITU-T T.86 Website: www.jpeg.org Das JPEG File Interchange Format (JFIF) ist ein 1991 von Eric Hamilton entwickeltes Grafikformat zur Speicherung von Bildern, die nach der JPEG-Norm komprimiert wurden. Als Dateinamenserweiterung wird meistens jpg, seltener jpeg, jpe oder jfif verwendet. JFIF ist das im World Wide Web am weitesten verbreitete Grafikformat für Fotos.
Die JPEG-Norm legt nur den Komprimierungsvorgang fest, nicht aber, wie die entstandenen Bilddaten abgelegt werden müssen, damit sie zwischen verschiedenen Computerprogrammen ausgetauscht werden können. Zum Beispiel legt JPEG nicht fest, welcher Farbraum benutzt werden soll. JFIF ist eine Methode, JPEG-Daten abzulegen; weitere Möglichkeiten sind das von der Joint Photographic Experts Group veröffentlichte Still Picture Interchange File Format (SPIFF) und JPEG Network Graphics. Gemeinhin bezeichnet „JPEG-Datei“ eine JFIF-Datei.
JFIF macht nur von einem kleinen Teil der von JPEG angebotenen Möglichkeiten Gebrauch: so ist als Farbraum nur noch YCbCr und nicht mehr RGB zugelassen; zur Entropiekodierung ist nur Huffman-Kodierung erlaubt. Hinzugekommen sind einige Mechanismen zur Synchronisation und Resynchronisation bei Übertragungsfehlern.
Inhaltsverzeichnis
Dateiformat
Die Größe von JPEG-Bildern ist bei JFIF auf 65.535×65.535 Pixel beschränkt.
JFIF-Bilddateien bestehen aus einem Kopf (der leer sein kann) und den eigentlichen Daten, die durch einen SOI-Marker
FF D8
eingeleitet werden. Auf diesen Marker folgt der JFIF-Tag:FF E0 00 10 4A 46 49 46 00 01
. Die Sequenz4A 46 49 46
ist die ASCII-Repräsentation von „JFIF“. Gängige Bildprogramme können auch Dateien ohne JFIF-Tag verarbeiten.Die JFIF-Dateien sind in Segmente (bei TIFF als Tag bezeichnet) unterteilt. Die Segmente sind generell in folgender Form aufgebaut: Ein
FF xx s1 s2
leitet den Tag ein. FF ist ein hexadezimaler Wert und entspricht dezimal 255. Das xx bestimmt die Art des Tags. 256 * s1 + s2 gibt die Länge des Segmentes an. In den Segmenten können sich weitere Bilder verbergen, oft ein kleines Vorschaubild für die schnelle Vorschau. Einzelne Segmente können mehrfach vorkommen.FF xx
Symbol Bezeichnung FF D8
SOI Start Of Image FF E0
APP0 JFIF tag FF Cn
SOFn Start of Frame Marker, legt Art der Kompression fest: FF C0
SOF0 Baseline DCT FF C1
SOF1 Extended sequential DCT FF C2
SOF2 Progressive DCT FF C3
SOF3 Lossless (sequential) FF C5
SOF5 Differential sequential DCT FF C6
SOF6 Differential progressive DCT FF C7
SOF7 Differential lossless (sequential) FF C8
JPG reserviert für JPEG extensions FF C9
SOF9 Extended sequential DCT FF CA
SOF10 Progressive DCT FF CB
SOF11 Lossless (sequential) FF CD
SOF13 Differential sequential DCT FF CE
SOF14 Differential progressive DCT FF CF
SOF15 Differential lossless (sequential) FF C4
DHT Definition der Huffman-Tabellen FF CC
DAC Definition der arithmetischen Codierung FF DB
DQT Definition der Quantisierungstabellen FF E1
APP1 EXIF-Daten FF EE
APP14 Oft für Copyright-Einträge FF En
APPn n=2..F allg. Zeiger FF FE
COM Kommentare FF DA
SOS Start of Scan FF D9
EOI End of Image Ein Beispiel für einen Copyright-Tag:
FF EE 00 26 'File written by Adobe Photoshop. 4.0'
Ein Beispiel für einen Kommentar-Tag:
FF FE s1 s2 '"This photo shot is dated ...'
Aufbau einer JFIF-Datei:
SOI - Segment FF D8
APP0 - Segment FF E0 s1 s2 4A 46 49 46 00 v1 v2 ...
... weitere Segmente SOS - Segment FF DA
Data Komprimierte Daten EOI - Segment FF D9
Die Längenangaben der Segmente enthalten übrigens auch den Platz für die Längenangaben selbst: Ein leeres Segment hat daher die Länge 2, da dies der Länge der Komponenten s1 und s2 selbst entspricht.
Auf das Start-of-Scan-(SOS)-Segment (Marker
FF DA
) folgen direkt die komprimierten Daten, bis zum Start des nächsten Segments, das durch den nächsten Marker angezeigt wird. Sollte innerhalb der Daten einFF
auftreten, so wird dies mit einer folgenden00
(Null) markiert. Andere Werte zeigen das Auftreten eines neuen Segments bzw. Markers an. Ausnahme: Folgt demFF
einer der Restart-Marker (D0 - D7
) so setzen sich die Daten direkt dahinter weiter fort:FF DA ... daten ... FF D0 ... daten ...
Da einen Dekoder nur Daten zwischen einer Anfangsmarke und einer Endmarke interessieren, ist es auch möglich, EXIF, IPTC-NAA-Standard-Informationen und sogar ganze XML- oder andere Dateien nach dem Datacontainer-Verfahren in der JFIF-Datei unterzubringen. Die Erweiterungen sind aber nicht JFIF-konform. Es wird empfohlen solche Dateien vor einer Veröffentlichung eines Bildes zu entfernen, wenn sie private Daten enthalten.
EXIF-Metadaten
In Bilddateien im JPEG-Format können auch Metadaten im EXIF-Format abgespeichert werden; viele Digitalkameras speichern hier Informationen über Hersteller und Softwareversion ab. Lizenzdaten können ebenfalls gespeichert werden. Aufmerksamkeit erregte die Angewohnheit von JPEG-Dateien, Thumbnails im EXIF-Feld zu speichern, die bei einer Veränderung der Bilddatei nicht zwangsläufig angepasst werden; so können nicht zur Veröffentlichung bestimmte Teile der Bilddatei in niedriger Auflösung trotzdem an die Öffentlichkeit geraten.
Weblinks
- JFIF-Spezifikation, Version 1.02 (PDF-Datei; 23 kB)
Literatur
- Thomas W. Lipp: Grafikformate. Microsoft Press, Unterschleißheim 1997, ISBN 3-86063-391-0
- John Miano: Compressed Image File Formats. Addison-Wesley, Reading 2000, ISBN 0-201-60443-4
Wikimedia Foundation.