|
Seite 2 von 2
Die JPG-Datei
Die Datei, welche das JPG-Bild
beinhaltet setzt sich zusammen aus den eigentlichen Grafikdaten und
Informationen zum Entpacken der Daten. Beispielsweise sind
Quantisierungs- und Huffmantabellen (Farbinformationen) in diesen
Informationen enthalten. Um ein Bild mit diesen zusätzlichen Daten
austauschen zu können, muß ein standardisiertes Dateiformat verwendet
werden. Das gängigste Format ist das JPEG File Interchange Format, kurz JFIF.
Es ist plattformunabhängig, d.h. es benutzt keine plattformeigenen
Ressourcen oder Eigenschaften. Deshalb ist das JFIF sowohl auf PC und
MAC wie auch auf UNIX Workstations gültig. Es basiert auf der JPEG
Kompression, definiert aber alle nötigen Tabellen und Informationen vor
der Benutzung.
Die einzelnen Teile der Datei werden durch
Markierungen eingeleitet. Diese bestehen aus jeweils 2 Bytes. Das erste
Byte einer Markierung ist zur Identifikation und hat den Wert 0xFF. Es
charakterisiert damit das Auftreten einer Markierung. Das zweite Byte
dient als Identifikator der entsprechenden Markierung. Es hat einen
Wert größer Null. Sollte später in den Daten ein 0xFF auftreten, so
wird es von einem 0x00 Byte gefolgt und damit der Unterschied zu einer
Markierung verdeutlicht. Den Markierungen folgt die eigentliche
Information in einem bestimmten, festen Format.
Im Folgenden werden nun die wichtigsten Markierungen und das Format der folgenden Information kurz erläutert.
SOI [Start Of Image (0xFFD8)]
bezeichnet den Start der zum Bild gehörenden Information. In der Regel
steht die Markierung daher am Anfang der Datei. Ansonsten müssen
vorhergehende Bytes ignoriert werden, da sie nicht zum Bild gehören.
Der Markierung SOI folgt keine weitere Information, da sie nur als
Startschuß für das Bild gilt. APP0 [APPlication (0xFFE0)] beinhaltet
die Basisinformationen zum Bild. In der Information steht die Kennung
des Formats, z.B. JFIF0, die Version, die Punktdichte und
gegebenenfalls ein Thumbnail-Image.
DQT [Define Quantisation Table (0xFFDB)]
Nach dieser Markierung folgen Informationen die eine
Quantisierungstabelle definieren. Um mehrere Quantisierungstabellen zu
definieren, müssen auch mehrere DQT-Markierungen benutzt werden. Mit
einer DQT Markierung kann also nur eine Quantisierungstabelle definiert
werden. Vor den 64 Einträgen der Quantisierungstabelle steht noch die
Präzision und die Nummer der Quantisierungstabelle in einem Byte
verschlüsselt. Je nach Präzision stehen danach die 64 Einträge in 64 Byte oder in 64 Worten (je 2 Byte).
SOF [Start Of Frame (0xFFC)]
enthält die Rahmendaten für das Bild. Diese bestehen aus der
Datengenauigkeit, der Bildhöhe, der Bildbreite und Daten über
Komponenten. Die Komponentendaten setzen sich aus einer
Komponenten-Nummer, einem horizontalen und einem vertikalen
Sample-Faktor und der Nummer der benutzten Quantisierungstabelle
zusammen. Es können beliebig viele Komponenten hintereinander folgen.
Der Index in der Markierung ist eine Identifkation des Bildrahmens. Er
teilt unter anderem den Modus mit, in dem die Daten kodiert sind.
DHT [Define Huffman Table (0xFFC4)]
beschreibt eine Huffmantabelle (Farbinformationen).
SOS [Start Of Scan (0xFFDA)]
Nach der SOS Markierung beginnt der Bitstrom, der die eigentlichen Bilddaten wie oben beschrieben kodiert.
EOI [End Of Image (0xFFD9)]
Analog zur SOI Markierung gibt EOI das Ende des Bildes an. EOI steht
daher im Normalfall an Ende der Datei. Ansonsten kann der Rest
ignoriert werden. EOI besitzt keine weiteren Informationen.
Ein JPEG Bild in diesem Format kann zwischen beliebigen Systemen übertragen werden.
Auszug aus: JPEG-Decoder als virtuelles Videogerät Studienarbeit Frank Lamers
|