Image::MetaData::JPEG::TagLists 0.15 review

Download
by rbytes.net on

Image::MetaData::JPEG::TagLists contains a collection of tag tables for JPEG segments

License: Perl Artistic License
File size: 285K
Developer: Stefano Bettelli
0 stars award from rbytes.net

Image::MetaData::JPEG::TagLists contains a collection of tag tables for JPEG segments. Image::MetaData::JPEG::TagLists is an appendix to the main manual page of the Image::MetaData::JPEG module, which the reader should refer to for further details and the general scope.

Valid tags for Exif APP1 data

The Japan Electronics and Information Technology Industries Association (JEITA) set up a standard for an exchange format for digital still cameras pictures, known as Exif. This standard defines a structure for embedding meta-data in a JPEG picture, to be written in the APP1 segment. The generalities and the reference documents about this structure are introduced in the Structure appendix; this section and its subsections list the valid interoperability record tags as well as their format.

Canonical Exif 2.2 and TIFF 6.0 tags for IFD0 and IFD1

In general, IFD0 and IFD1 can host tags from the same set. These tags are divided in three categories: canonical, additional and registered to companies. The tags listed in the following table are to be considered canonical; they are described at length in the Exif standard document, and can be found both in the IFD0 and in the IFD1 (some of them, in fact, must be present in both directories).

The 'class' column carries the tag class; possible values are: A (image data structure), B (offsets), C (image data characteristics), D (other tags) and P (pointers to other IFDs). The two following columns show tag hexadecimal codes and names. The 'type' column specifies the (always unsigned) tag type: I (short or long), S (short), L (long), R (rational) and A (ASCII, always null terminated). The 'count' column obviously carries the tag count ('-' for a variable count, either because it is a variable length string or because it depends on other tags).

The 'IFD0' and 'IFD1' columns specify the support level in the respective directory; each column comprises four letters, because both the primary image (IFD0) and the thumbnail (IFD1) can come in four varieties (uncompressed chunky, uncompressed planar, uncompressed YCC and JPEG compressed).

This module currently focuses only on JPEG pictures (not TIFF), so only the fourth letter of the 'IFD0' column is interesting, but note that the thumbnail of a JPEG image can be uncompressed. The support level codes stand for: M (mandatory), R (recommended), O (optional), N (not_recorded) and J (included in JPEG marker and so not recorded).

The 'thumbnail-only' column shows a 'T' for those records which cannot be set/changed by the user exception made during a thumbnail update action (and some of them are calculated automatically anyway). Note that, in some cases, it is possible to set a tag when its support level is 'N' (e.g., the YCbCr stuff in IFD1): picture displaying programs should however simply ignore it. Some other tags, concerning offsets or thumbnail specific information, cannot be set by the module user (they are calculated automatically, more reliably): these are marked by 'calculated' in the notes, or by a 'T' in the thumbnail-only column.

Hexadecimal code count IFD0 IFD1 thumbnail-only
class | Tag name type | supp.supp.| notes
| | | | | | | | |
A 100 ImageWidth I 1 MMMJ MMMJ T (not JPEG) pixels/row
A 101 ImageLength I 1 MMMJ MMMJ T (not JPEG) num. rows
A 102 BitsPerSample S 3 MMMJ MMMJ T (not JPEG) 8,8,8
A 103 Compression S 1 MMMJ MMMM T 1(uncompr.) or 6(JPEG)
A 106 PhotometricInterpretation S 1 MMMN MMMJ 2(RGB) or 6(YCbCr)
D 10e ImageDescription A - RRRR OOOO (see note 1)
D 10f Make A - RRRR OOOO camera manufacturer
D 110 Model A - RRRR OOOO camera model
B 111 StripOffsets I - MMMN MMMN calculated
A 112 Orientation S 1 RRRR OOOO (see note 2)
A 115 SamplesPerPixel S 1 MMMJ MMMJ T (not JPEG) 3 compon.
B 116 RowsPerStrip I 1 MMMN MMMN T (not JPEG)
B 117 StripByteCounts I - MMMN MMMN T (not JPEG)
A 11a XResolution R 1 MMMM MMMM (see note 3)
A 11b YResolution R 1 MMMM MMMM (see note 3)
A 11c PlanarConfiguration S 1 OMOJ OMOJ (see note 4)
A 128 ResolutionUnit S 1 MMMM MMMM (see note 3)
C 12d TransferFunction S 768 RRRR OOOO (see note 5)
D 131 Software A - OOOO OOOO Exif software/firmware
D 132 DateTime A 20 RRRR OOOO (see note 6)
D 13b Artist A - OOOO OOOO owner/photogr./creator
C 13e WhitePoint R 2 OOOO OOOO (see note 5)
C 13f PrimaryChromaticities R 6 OOOO OOOO (see note 5)
B 201 JPEGInterchangeFormat L 1 NNNN NNNM calculated
B 202 JPEGInterchangeFormatLength L 1 NNNN NNNM T (only JPEG)
C 211 YCbCrCoefficients R 3 NNOO NNOO (see note 7)
A 212 YCbCrSubSampling S 2 NNMJ NNMJ (see note 7)
A 213 YCbCrPositioning S 1 NNMM NNOO (see note 7)
C 214 ReferenceBlackWhite R 6 OOOO OOOO (see note 8)
D 8298 Copyright A - OOOO OOOO of photogr./editor
P 8769 ExifOffset L 1 MMMM OOOO calculated
P 8825 GPSInfo L 1 OOOO OOOO calculated

Requirements:
Perl

Image::MetaData::JPEG::TagLists 0.15 search tags