## Jpeg2000 Tags

The tags below are found in JPEG 2000 images and the C2PA CAI JUMBF metadata in various file types (see below). Note that ExifTool currently writes only EXIF, IPTC and XMP tags in Jpeg2000 images, and EXIF and XMP in JXL images. ExifTool will read/write Brotli-compressed EXIF and XMP in JXL images, but the API Compress option must be set to create new EXIF and XMP in compressed format.

C2PA (Coalition for Content Provenance and Authenticity) CAI (Content Authenticity Initiative) JUMBF (JPEG Universal Metadata Box Format) metdata is currently extracted from JPEG, PNG, TIFF-based (eg. TIFF, DNG), QuickTime-based (eg. MP4, MOV, HEIF, AVIF), RIFF-based (eg. WAV, AVI, WebP), PDF, SVG and GIF files, and ID3v2 metadata. The suggested ExifTool command-line arguments for reading C2PA metadata are `-jumbf:all -G3 -b -j -u -struct`. This metadata may be deleted from writable JPEG, PNG, WebP, TIFF-based, and QuickTime-based files by deleting the JUMBF group with `-jumbf:all=`. The C2PA JUMBF metadata may be extracted as a block via the JUMBF tag. See https://c2pa.org/specifications/ for the C2PA specification.

> Tag ID | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 'Exif' | EXIF | - | --> EXIF Tags
> 'asoc' | Association | - | --> Jpeg2000 Tags
> 'bfdb' | BinaryDataType | no | (JUMBF, MIME type and optional file name)
> 'bfil' | BinaryFilter | no |
> 'bidb' | BinaryData | no | (JUMBF)
> 'bpcc' | BitsPerComponent | no |
> 'brob' | BrotliXMP BrotliEXIF BrotliJUMB | - - - | --> XMP Tags --> EXIF Tags --> Jpeg2000 Tags
> 'c2sh' | C2PASaltHash | no |
> 'cbor' | CBORData | - | --> CBOR Tags
> 'cdef' | ComponentDefinition | no |
> 'cgrp' | ColorGroup | no |
> 'chck' | DigitalSignature | no |
> 'cmap' | ComponentMapping | no |
> 'colr' | ColorSpecification | - | --> Jpeg2000 ColorSpec Tags
> 'comp' | Composition | no |
> 'copt' | CompositionOptions | no |
> 'cref' | Cross-Reference | no |
> 'creg' | CodestreamRegistration | no |
> 'drep' | DesiredReproductions | no |
> 'dtbl' | DataReference | no |
> 'flst' | FragmentList | no |
> 'free' | Free | no |
> 'ftbl' | FragmentTable | no |
> 'ftyp' | FileType | - | --> Jpeg2000 FileType Tags
> 'gtso' | GraphicsTechnologyStandardOutput | no |
> 'hrgm' | GainMapImage | no |
> 'ihdr' | ImageHeader | - | --> Jpeg2000 ImageHeader Tags
> 'inst' | InstructionSet | no |
> 'jP ' | JP2Signature | no |
> 'jp2c' | ContiguousCodestream PreviewImage | no no |
> 'jp2h' | JP2Header | - | --> Jpeg2000 Tags
> 'jp2i' | IntellectualProperty | - | --> XMP Tags
> 'jpch' | CodestreamHeader | - | --> Jpeg2000 Tags
> 'jplh' | CompositingLayerHeader | - | --> Jpeg2000 Tags
> 'json' | JSONData | - | --> JSON Tags (by default, data in this tag is parsed using the ExifTool JSON module to to allow individual tags to be accessed when reading, but it may also be extracted as a block via the "JSONData" tag or by setting the API BlockExtract option)
> 'jumb' | JUMBFBox | - | --> Jpeg2000 Tags
> 'jumd' | JUMBFDescr | - | --> Jpeg2000 JUMD Tags
> 'jxlc' | JXLCodestream | no | (Codestream in JPEG XL image. Currently processed only to determine ImageSize)
> 'jxlp' | PartialJXLCodestream | no | (Partial codestreams in JPEG XL image. Currently processed only to determine ImageSize)
> 'lbl ' | Label | no |
> 'mdat' | MediaData | no |
> 'mp7b' | MPEG7Binary | no |
> 'nlst' | NumberList | no |
> 'opct' | Opacity | no |
> 'pclr' | Palette | no |
> 'prfl' | Profile | no |
> 'res ' | Resolution | - | --> Jpeg2000 Tags
> 'resc' | CaptureResolution | - | --> Jpeg2000 CaptureResolution Tags
> 'resd' | DisplayResolution | - | --> Jpeg2000 DisplayResolution Tags
> 'roid' | ROIDescription | no |
> 'rreq' | ReaderRequirements | no |
> 'uinf' | UUIDInfo | - | --> Jpeg2000 Tags
> 'ulst' | UUIDList | no |
> 'url ' | URL | no |
> 'uuid' | UUID-EXIF UUID-EXIF2 UUID-EXIF_bad UUID-IPTC UUID-IPTC2 UUID-XMP UUID-GeoJP2 UUID-Photoshop UUID-C2PAClaimSignature UUID-Signature UUID-Unknown | - - - - - - - - - no no | --> EXIF Tags --> EXIF Tags --> EXIF Tags --> IPTC Tags --> IPTC Tags --> XMP Tags --> EXIF Tags --> Photoshop Tags --> CBOR Tags
> 'xml ' | XML XMP | undef!+ - | (by default, the XML data in this tag is parsed using the ExifTool XMP module to to allow individual tags to be accessed when reading, but it may also be extracted as a block via the "XML" tag, which is also how this tag is written and copied. It may also be extracted as a block by setting the API BlockExtract option. This is a List-type tag because multiple XML blocks may exist) --> XMP XML Tags (used for XMP in JPEG XL files) --> XMP Tags

## Jpeg2000 ColorSpec Tags

The table below contains tags in the color specification (colr) box. This box may be rewritten by writing either ICC_Profile, ColorSpace or ColorSpecData. When writing, any existing colr boxes are replaced with the newly created colr box.

NOTE: Care must be taken when writing this color specification because writing a specification that is incompatible with the image data may make the image undisplayable.

> Index1 | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0 | ColorSpecMethod | int8s! | (default for writing is 2 when writing ICC_Profile, 1 when writing ColorSpace, or 4 when writing ColorSpecData) 1 = Enumerated 2 = Restricted ICC 3 = Any ICC 4 = Vendor Color
> 1 | ColorSpecPrecedence | int8s! | (default for writing is 0)
> 2 | ColorSpecApproximation | int8s! | (default for writing is 0) 0 = Not Specified 1 = Accurate 2 = Exceptional Quality 3 = Reasonable Quality 4 = Poor Quality
> 3 | ICC_Profile ColorSpace ColorSpecData | - int32u! undef[$size-3]! | --> ICC_Profile Tags
> 0 = Bi-level 1 = YCbCr(1) 3 = YCbCr(2) 4 = YCbCr(3) 9 = PhotoYCC 11 = CMY 12 = CMYK 13 = YCCK 14 = CIELab 15 = Bi-level(2) |  | 16 = sRGB 17 = Grayscale 18 = sYCC 19 = CIEJab 20 = e-sRGB 21 = ROMM-RGB 22 = YPbPr(1125/60) 23 = YPbPr(1250/50) 24 = e-sYCC

## Jpeg2000 FileType Tags

> Index4 | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0 | MajorBrand | no | 'jp2 ' = JPEG 2000 Image (.JP2) 'jph ' = High-throughput JPEG 2000 (.JPH) 'jpm ' = JPEG 2000 Compound Image (.JPM) 'jpx ' = JPEG 2000 with extensions (.JPX) 'jxl ' = JPEG XL Image (.JXL)
> 1 | MinorVersion | no |
> 2 | CompatibleBrands | no+ |

## Jpeg2000 ImageHeader Tags

> Index1 | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0 | ImageHeight | no |
> 4 | ImageWidth | no |
> 8 | NumberOfComponents | no |
> 10 | BitsPerComponent | no |
> 11 | Compression | no |
> 0 = Uncompressed 1 = Modified Huffman 2 = Modified READ 3 = Modified Modified READ 4 = JBIG 5 = JPEG 6 = JPEG-LS 7 = JPEG 2000 8 = JBIG2

## Jpeg2000 JUMD Tags

Information extracted from the JUMBF description box.

> Tag ID | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 'id' | JUMDID | no |
> 'label' | JUMDLabel | no |
> 'sig' | JUMDSignature | no |
> 'toggles' | JUMDToggles? | no | Bit 0 = Requestable Bit 1 = Label Bit 2 = ID Bit 3 = Signature
> 'type' | JUMDType | no |

## Jpeg2000 CaptureResolution Tags

> Index1 | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0 | CaptureYResolution | no |
> 4 | CaptureXResolution | no |
> 8 | CaptureYResolutionUnit | no | --> Jpeg2000 ResolutionUnit Values
> 9 | CaptureXResolutionUnit | no | --> Jpeg2000 ResolutionUnit Values

## Jpeg2000 ResolutionUnit Values

> Value | ResolutionUnit | Value | ResolutionUnit | Value | ResolutionUnit
> --- | --- | --- | --- | --- | ---
> -3 | = km | 1 | = 10 cm | 5 | = 0.01 mm
> -2 | = 100 m | 2 | = cm | 6 | = um
> -1 | = 10 m | 3 | = mm |  |
> 0 | = m | 4 | = 0.1 mm |  |

## Jpeg2000 DisplayResolution Tags

> Index1 | Tag Name | Writable | Values / Notes
> --- | --- | --- | ---
> 0 | DisplayYResolution | no |
> 4 | DisplayXResolution | no |
> 8 | DisplayYResolutionUnit | no | --> Jpeg2000 ResolutionUnit Values
> 9 | DisplayXResolutionUnit | no | --> Jpeg2000 ResolutionUnit Values

(This document generated automatically by Image::ExifTool::BuildTagLookup)
Last revised Oct 2, 2024

<-- ExifTool Tag Names