17.06.2013 Views

XMP Specification Part 3: Storage in Files - Adobe

XMP Specification Part 3: Storage in Files - Adobe

XMP Specification Part 3: Storage in Files - Adobe

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The marker types FFE0-FFEF are generally used for application data, named APPn. By convention, an APPn<br />

marker beg<strong>in</strong>s with a str<strong>in</strong>g identify<strong>in</strong>g the usage, called a namespace or signature str<strong>in</strong>g. An APP1 marker<br />

identifies Exif and TIFF metadata; an APP13 marker designates a Photoshop Image Resource (PSIR) that<br />

conta<strong>in</strong>s IPTC metadata; another APP1 marker designates the location of the <strong>XMP</strong> packet.<br />

Figure 3 shows APP markers with<strong>in</strong> JPEG.<br />

Markers<br />

(other markers)<br />

APP1: Exif/TIFF<br />

APP1: <strong>XMP</strong><br />

APP13: PSIR/<br />

(other markers)<br />

SOF marker<br />

Image data<br />

Figure 3 — Layout of JPEG with APP markers<br />

The JFIF standard has been largely abandoned; most importantly, all modern digital cameras follow Exif. Both<br />

JFIF and Exif specify a particular APPn marker segment as immediately follow<strong>in</strong>g the SOI marker. Neither of<br />

the JFIF and Exif specifications references the other, so there is no declared standard for mix<strong>in</strong>g them.<br />

Readers should be prepared to encounter files that conta<strong>in</strong> an Exif APP1 marker segment follow<strong>in</strong>g the JFIF<br />

and JFXX APP0 marker segments.<br />

The <strong>XMP</strong> APP1 and PSIR/IPTC APP13 markers must be placed before the first SOF marker. For maximum<br />

compatibility, readers should tolerate f<strong>in</strong>d<strong>in</strong>g them between the first SOF marker and first SOS marker. (Earlier<br />

versions of the <strong>XMP</strong> <strong>Specification</strong> were ambiguous about the placement rules.)<br />

After the type, the marker conta<strong>in</strong>s a length value and the identify<strong>in</strong>g namespace str<strong>in</strong>g. The length value is 2<br />

(the length field itself) plus the length of the namespace field, plus the length of the data <strong>in</strong> bytes. Metadata<br />

markers share the convention of hav<strong>in</strong>g NULL-term<strong>in</strong>ated namespace str<strong>in</strong>gs:<br />

Table 5 shows the entry format for the <strong>XMP</strong> section:<br />

Table 4 — Content and usage of APP markers<br />

Marker Signature, <strong>in</strong>clud<strong>in</strong>g NULLs Usage<br />

APP1 "Exif\0\0” (2 NULLs) TIFF and Exif metadata<br />

APP1 "http://ns.adobe.com/xap/1.0/\0” <strong>XMP</strong><br />

APP13 "Photoshop 3.0\0” Photoshop image resources, <strong>in</strong>clud<strong>in</strong>g<br />

IPTC metadata, but not <strong>in</strong>clud<strong>in</strong>g <strong>XMP</strong><br />

or Exif metadata<br />

Byte offset,<br />

length<br />

Table 5 — Entry format for <strong>XMP</strong> section <strong>in</strong> JPEG<br />

Field value Field name Comments<br />

0, 2 bytes 0xFFE1 APP1 APP1 marker identifies metadata<br />

section.<br />

18 ©<strong>Adobe</strong> Systems Incorporated, 2010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!