JPEG

Dies ist ein binäres Format in Big-Endian Anordnung. Folgende Datentypen kommen zur Anwendung:

char String mit 8-Bit Kodierung
uint8 vorzeichenlose 8-Bit Zahl
uint16 vorzeichenlose 16-Bit Zahl

Die Daten sind in Blocks organisiert. Zunächst folgen mehrere Metadatenblocks, danach ein oder mehrere Bilddatenblocks. Die Metadatenblocks beginnen mit Blockmarkern, aus welchen sich die Länge des Blocks ableiten lässt.

Blockaufbau

Alle Metadatenblocks beginnen folgendermassen:

Position Grösse Typ Wert
01 Byte uint8 0xFF
11 Byte uint8 Blocktyp

Blocks mit Blocktyp 0xD0 - 0xD9 bestehen nur aus diesen beiden Bytes. Bei allen anderen Blocks geht es folgendermassen weiter:

Position Grösse Typ Wert
22 Byte uint16 Blockgrösse
4Blockgrösse - 2 * Blockdaten

Frame Header

Details Frame Header

Der Frame Header hat einen der Typen 0xC0 - 0xCF ohne die Typen 0xC4, 0xC8 und 0xCC.

Position Grösse Typ Wert
01 Byte uint8 0xFF
11 Byte uint8 Blocktyp
22 Byte uint16 Blockgrösse
41 Byte uint8 Bittiefe
52 Byte uint16 Bildhöhe
72 Byte uint16 Bildbreite
91 Byte uint8 Farbraum

Der Farbraum ist 1 für Graustufen, 3 für RGB, 4 für CMYK.

ICC-Profil

Details ICC-Profil

Die Blöcke mit dem ICC-Profil haben den Typ 0xE2.

Position Grösse Typ Wert
01 Byte uint8 0xFF
11 Byte uint8 0xE2
22 Byte uint16 Blockgrösse
411 Byte char ASCII-String ICC-PROFILE
151 Byte uint8 0
161 Byte uint8 Blocknummer
171 Byte uint8 Blockanzahl
18Blockgrösse - 16 * ICC-Profildaten

Es können noch andere Blöcke mit Typ 0xE2 vorhanden sein. Darum sollte man auch auf den String ICC-PROFILE prüfen.

Ist die Blockanzahl nicht 1, so ist das Profil über mehrere Blöcke verteilt. Der Inhalt der Blöcke muss in der durch die Blocknummer vorgegebene Reihenfolge aneinandergehängt werden.

unnötige Blöcke

Details unnötige Blöcke

Blöcke mit Typ 0xE0 - 0xFE sind für die Dekompression selbst unnötig, und müssen nicht in das Bildobjekt des PDF übernommen werden.

letzter Block

Der Start of Scan Block hat den Typ 0xDA. Dies ist immer der letzte Metadatenblock. Auf ihn folgen die komprimierten Bilddaten.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
R U U L N
 
referenz/jpeg.txt · Zuletzt geändert: 2013/02/13 15:35 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC0 1.0 Universal
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki