JPEG-Bereiche und PNG-Bloecke: Wo Metadaten in einer Datei leben
Wie man jede Zeile der AuditImage-Tabelle „Dateistruktur" liest. Was APP1, APP11, COM, tEXt und caBX enthalten und was Offset und Groesse sagen.
JPEG: Marker-Bereiche
Ein JPEG ist eine Reihe von Bereichen, die jeweils mit FF xx beginnen. Alles vor den Bilddaten ist Metadaten oder Dekodierungsparameter:
| Marker | Name | Inhalt |
|---|---|---|
| FF D8 | SOI | Bildanfang |
| FF E0 | APP0 | JFIF-Header, Aufloesungseinheit, Miniaturbild |
| FF E1 | APP1 | EXIF (beginnt mit Exif\0\0) oder XMP (beginnt mit http://ns.adobe.com/xap/1.0/) |
| FF E2 | APP2 | ICC-Profil, MPF-Mehrbilder (Handy-Tiefenfotos) |
| FF EB | APP11 | C2PA-Manifest (beginnt mit JP, enthaelt eine jumb-Box) |
| FF ED | APP13 | Photoshop IRB, enthaelt IPTC |
| FF EE | APP14 | Adobe-Farbumwandlungs-Flag |
| FF FE | COM | Kommentar, beliebiger Text |
| FF DB | DQT | Quantisierungstabellen |
| FF C4 | DHT | Huffman-Tabellen |
| FF C0 | SOF0 | Rahmenheader: Abmessungen, Komponenten |
| FF DA | SOS | Scananfang, gefolgt von komprimierten Daten bis EOI |
| FF D9 | EOI | Bildende |
Jeder Bereich enthaelt hoechstens 64 KB. Groessere Nutzlasten werden auf mehrere Bereiche desselben Typs aufgeteilt: grosses XMP verwendet „erweitertes XMP", grosse C2PA-Manifeste werden auf mehrere APP11-Bereiche aufgeteilt und nach Sequenznummer zusammengesetzt. Zwei aufeinanderfolgende APP11-C2PA-Zeilen in AuditImages Tabelle sind genau das.
PNG: Bloecke
Ein PNG beginnt mit einer 8-Byte-Signatur, dann einer Reihe von Bloecken mit jeweils Laenge, Typ, Daten und CRC:
| Typ | Inhalt |
|---|---|
| IHDR | Abmessungen, Bittiefe, Farbtyp |
| iCCP | ICC-Profil |
| pHYs | physikalische Aufloesung |
| eXIf | EXIF (2017 in den Standard aufgenommen) |
| tEXt / iTXt / zTXt | Schluessel/Wert-Text: XMP, SD-Parameter und das implizite AIGC-Label leben hier |
| caBX | C2PA-Manifest |
| IDAT | Bilddaten, moeglicherweise mehrere Bloecke |
| IEND | Ende |
XMP in einem PNG ist ein iTXt mit Schluesselwort XML:com.adobe.xmp. Stable-Diffusion-Parameter sind ein tEXt mit Schluesselwort parameters.
WebP: RIFF-Bloecke
WebP ist ein RIFF-Container: VP8 , VP8L oder VP8X enthalten das Bild; EXIF, XMP , ICCP und C2PA sind jeweils ein Block. Erweiterte Metadaten erfordern den VP8X-Header.
AuditImages Tabelle „Dateistruktur" lesen
- Bereich (Segment): der Typname. Bloecke mit Metadaten sind in der Akzentfarbe fettgedruckt.
- Offset: Byteposition in der Datei, hexadezimal.
- Groesse: der gesamte Bereich inklusive Marker- und Laengen-Bytes.
- Anteil (Share): eine relative Balkenlaenge zur gesamten Datei.
Nuetzliche Beobachtungen: Metadatenbereiche kommen normalerweise vor den Bilddaten; wiederholte Bloecke desselben Typs verdienen einen Blick; ein Bild von einigen Dutzend KB, das einen 200-KB-APP11-Bereich enthaelt, bedeutet, dass das Manifest ein Miniaturbild einbettet; ein COM-Bereich mit Inhalt lohnt sich aufzuklappen.
Manuelle Pruefung
exiftool -v3 photo.jpg # Bereich fuer Bereich
exiftool -htmlDump photo.jpg > dump.html