Provided by: libimage-metadata-jpeg-perl_0.153-1_all bug

NAME

       Image::MetaData::JPEG::TagLists - This document contains a collection of tag tables for
       JPEG segments; it 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

         Notes:

         1) The image description is a string containing a title or a comment for
            the image and all characters must be one byte long. When a two-byte
            code is necessary, the Exif Private tag 'UserComment' is to be used
            (see L</Exif tags for the 0th IFD Exif private subdirectory>).
         2) The image orientation is defined with respect to first row and the
            first column, according to the following table (values not listed here
            are reserved and should not be used); the default value is 1.
                 ------------------------       ------------------------
                 val. 0th row  0th column       val. 0th row  0th column
                 ----|--------|----------       ----|--------|----------
                  1    top      left             5    left     top
                  2    top      right            6    right    top
                  3    bottom   right            7    right    bottom
                  4    bottom   left             8    left     bottom
                 ------------------------       ------------------------
         3) The 'XResolution' and 'YResolution' tags indicate the number of pixels
            per resolution unit (given by the 'ResolutionUnit' tag) along the
            image width or height respectively. The resolution unit can be only 2
            (inches) or 3 (centimetres), all other values being reserved. When
            the resolution is not set, a value of 72 dots/inch is assumed.
         4) This indicates whether pixel components are recorded in chunky (1,
            default) or planar (2) format (only for TIFF images; JPEG compressed
            files use a JPEG marker instead); all other values are reserved.
         5) 'TransferFunction', 'WhitePoint' and 'PrimaryChromaticities' specify,
            respectively, a transfer function for the image in tabular style
            (3*256 short integers), the chromaticity of the white point, and the
            chromaticity of the three primary colours of the image. Normally these
            tags are not necessary, since the colour space is specified in the
            'ColorSpace' L<private Exif tag|/Exif tags for the 0th IFD Exif
            private subdirectory>.
         6) This tag indicates the time of the "image creation" (i.e., the time
            the file was last changed). The tag value is a null terminated string
            of the form "YYYY:MM:DD HH:MM:SS" (note the space in the middle and
            the colon signs), in 24-hour format. If the tag is set, but the value
            is not meaningful, all numbers should be set to spaces (replacing also
            the colons with spaces is permitted too). See also 'DateTimeOriginal'
            and 'DateTimeDigitized' in the SubIFD L<section|/Exif tags for the 0th
            IFD Exif private subdirectory>. [Currently, only years after 1800 can
            be set with this Perl module].
         7) Digital images are often displayed on RGB devices, but recorded data
            can be saved in a YCbCr colour space because of the JPEG
            compression. The Exif standard provides three tags for translating one
            space into the other (see the sYCC IEC standard for more details).
            'YCbCrSubSampling' is the sampling ratio of the chrominance components
            in relation to the luminance component; its value can be only [2, 1]
            (for YCbCr 4:2:2) or [2, 2] (for YCbCr 4:2:0). In JPEG compressed data
            a JPEG marker is used instead of this tag. 'YCbCrPositioning' is the
            position of the chrominance components in relation to the luminance
            component, and is meaningful only for JPEG compressed data or
            uncompressed YCbCr data; its value can be only 1 (centred, default) or
            2 (co-sited). 'YCbCrCoefficients' contains the matrix coefficients for
            the transformation from RGB to YCbCr image data.
         8) This tags contains the reference values for the black and white points
            of the image. No defaults are given in the TIFF standard, but Exif
            assumes the following values: [0, 255, 0, 255, 0, 255] (when
            'PhotometricInterpretation' is RGB) or [0, 255, 0, 128, 0, 128] (when
            'PhotometricInterpretation' is YCbCr).

   Additional TIFF 6.0 tags not in Exif 2.2 for IFD0
       The tags listed in the following table are present in the TIFF 6.0 standard and not in the
       Exif 2.2 standard. They are presented here just for reference, since some digital cameras
       or programs still include them, incorrectly, in the IFD0 (they are not present in IFD1, I
       assume). The 'class' column carries the tag class; possible values are: a (TIFF 6.0 tags
       for baseline TIFFs not in Exif 2.2), b (extensions to TIFF 6.0 specs not in Exif 2.2) and
       '-' (updates and corrections to TIFF 6.0). The two following columns show tag hexadecimal
       codes and names. The 'type' column specifies the tag type: i (byte or short), I (short or
       long), B (byte), S (short), L (long), R (rational), F (floating point numbers), D (double
       precision floating point numbers), '-' (unspecified, best fit) and A (ASCII, always null
       terminated). The 'count' column obviously carries the tag count ('-' that it is variable,
       either because it is a variable length string or because it depends on other tags).

            Hexadecimal code                count  notes
         class |  Tag name                 type |  |
         |     |  |                           | |  |
         a    fe  NewSubfileType              L 1  TIFFs can hold multiple images
         a    ff  SubFileType                 S 1  TIFFs can hold multiple images
         a   107  Thresholding                S 1  for Graylevel to Black&White
         a   108  CellWidth                   S 1  halftoning matrix support
         a   109  CellLength                  S 1  halftoning matrix support
         a   10a  FillOrder                   S 1  bits' logical order in a byte
         b   10d  DocumentName                A -  document storage and retrieval
         a   118  MinSampleValue              S -  only for statistical purposes
         a   119  MaxSampleValue              S -  only for statistical purposes
         b   11d  PageName                    A -  document storage and retrieval
         b   11e  XPosition                   R 1  document storage and retrieval
         b   11f  YPosition                   R 1  document storage and retrieval
         a   120  FreeOffsets                 L -  not recommended for interchange
         a   121  FreeByteCounts              L -  not recommended for interchange
         a   122  GrayResponseUnit            S 1  for gray-scale images
         a   123  GrayResponseCurve           S -  for gray-scale images
         b   124  T4Options                   L 1  (group 3 options)
         b   125  T6Options                   L 1  (group 4 options)
         b   129  PageNumber                  S 2  document storage and retrieval
         -   12c  ColorResponseUnit           S 1  [obsoleted in TIFF 6.0]
         a   13c  HostComputer                A -  computer/OS used for creation
         b   13d  Predictor                   S 1  differencing predictor
         a   140  Colormap                    S -  RGB colour map
         b   141  HalftoneHints               S 2  half tone hints
         b   142  TileWidth                   I 1  tiled images
         b   143  TileLength                  I 1  tiled images
         b   144  TileOffsets                 L -  tiled images
         b   145  TileByteCounts              I -  tiled images
         -   146  BadFaxLines                 I 1  [TIFF class F draft]
         -   147  CleanFaxData                S 1  [TIFF class F draft]
         -   148  ConsecutiveBadFaxLines      I 1  [TIFF class F draft]
         -   14a  SubIFDs                     L -  [Adobe TIFF technote 1]
         b   14c  InkSet                      S 1  CMYK images
         b   14d  InkNames                    A -  CMYK images
         b   14e  NumberOfInks                S 1  CMYK images
         b   150  DotRange                    i -  CMYK images
         b   151  TargetPrinter               A -  CMYK images
         a   152  ExtraSamples                S -  pixel extra components
         b   153  SampleFormats               S -  data sample format
         b   154  SMinSampleValue             - -  data sample format
         b   155  SMaxSampleValue             - -  data sample format
         b   156  TransferRange               S 6  image colourimetry
         -   157  ClipPath                    B -  [Adobe TIFF technote 2]
         -   158  XClipPathUnits              D 1  [Adobe TIFF technote 2]
         -   159  YClipPathUnits              D 1  [Adobe TIFF technote 2]
         -   15a  Indexed                     S 1  [Adobe TIFF technote 3]
         -   15b  JPEGTables                  - -  [update (1995) for JPEG-in-TIFF]
         -   15f  OPIProxy                    S 1  [Adobe TIFF technote (OPI)]
         b   200  JPEGProc                    S 1  JPEG support
         b   203  JPEGRestartInterval         S 1  JPEG support
         b   205  JPEGLosslessPredictors      S -  JPEG support
         b   206  JPEGPointTransforms         S -  JPEG support
         b   207  JPEGQTables                 L -  JPEG support
         b   208  JPEGDCTables                L -  JPEG support
         b   209  JPEGACTables                L -  JPEG support
         -   2bc  XML_Packet                  B -  [Adobe XMP technote 9-14-02]

   Exif tags assigned to companies for IFD0 and IFD1
       The tags listed in the following table, all with a value larger than 0x8000, i.e. 32000,
       were requested by individual companies and assigned to them by the TIFF committee; well,
       at least I think, because it is very difficult to have an official list for these tags, so
       that they should be considered at the level of "rumours". This list also includes some
       TIFF/IT tags from ISO 12639 and some TIFF/EP tags from ISO 12234 (private Exif tags in
       JPEG APP1 originated from TIFF/EP, so there is a large intersection: TIFF/EP tags which
       are also Exif are not listed here).

         Hexadecimal code                count  notes
            |  Tag name                 type |  |
            |  |                           | |  |
         800d  ImageID                     A -  [Adobe TIFF technote            (OPI)]
         80b9  RefPts                      ? ?  [Island Graphics                     ]
         80ba  RegionTackPoint             ? ?  [Island Graphics                     ]
         80bb  RegionWarpCorners           ? ?  [Island Graphics                     ]
         80bc  RegionAffine                ? ?  [Island Graphics                     ]
         80e3  Matteing                    S 1  [SGI      (obsoleted by ExtraSamples)]
         80e4  DataType                    S -  [SGI      (obsoleted by SampleFormat)]
         80e5  ImageDepth                  I 1  [SGI                    (z dimension)]
         80e6  TileDepth                   I 1  [SGI               (subvolume tiling)]
         8214  ImageFullWidth              L 1  [Pixar               (cropped images)]
         8215  ImageFullLength             L 1  [Pixar               (cropped images)]
         8216  TextureFormat               A -  [Pixar              (texture formats)]
         8217  WrapModes                   A -  [Pixar              (texture formats)]
         8218  FovCot                      F 1  [Pixar              (texture formats)]
         8219  MatrixWorldToScreen         F 16 [Pixar              (texture formats)]
         821a  MatrixWorldToCamera         F 16 [Pixar              (texture formats)]
         827d  WriterSerialNumber          ? ?  [Eastman Kodak (device serial number)]
         828d  CFARepeatPatternDim         S 2  [             ISO/DIS 12234-2 TIFF/EP]
         828e  CFAPattern                  B -  [             ISO/DIS 12234-2 TIFF/EP]
         828f  BatteryLevel               RA 1- [             ISO/DIS 12234-2 TIFF/EP]
         830e  ModelPixelScaleTag          D 3  [SoftDesk                   (GeoTIFF)]
         83bb  IPTC/NAA                   LA -  [             ISO/DIS 12234-2 TIFF/EP]
         8480  IntergraphMatrixTag         D 16 [Intergraph, deprecated     (GeoTIFF)]
         8482  ModelTiepointTag            D -  [Intergraph, aka Georef.Tag (GeoTIFF)]
         84e0  Site                        A -  [               ISO/DIS 12639 TIFF/IT]
         84e1  ColorSequence               A -  [               ISO/DIS 12639 TIFF/IT]
         84e2  IT8Header                   A -  [               ISO/DIS 12639 TIFF/IT]
         84e3  RasterPadding               S 1  [               ISO/DIS 12639 TIFF/IT]
         84e4  BitsPerRunLength            S 1  [               ISO/DIS 12639 TIFF/IT]
         84e5  BitsPerExtendedRunLength    S 1  [               ISO/DIS 12639 TIFF/IT]
         84e6  ColorTable                  B -  [               ISO/DIS 12639 TIFF/IT]
         84e7  ImageColorIndicator         B 1  [               ISO/DIS 12639 TIFF/IT]
         84e8  BackgroundColorIndicator    B 1  [               ISO/DIS 12639 TIFF/IT]
         84e9  ImageColorValue             B 1  [               ISO/DIS 12639 TIFF/IT]
         84ea  BackgroundColorValue        B 1  [               ISO/DIS 12639 TIFF/IT]
         84eb  PixelIntensityRange         B 2  [               ISO/DIS 12639 TIFF/IT]
         84ec  TransparencyIndicator       B 1  [               ISO/DIS 12639 TIFF/IT]
         84ed  ColorCharacterization       A -  [               ISO/DIS 12639 TIFF/IT]
         84ee  HCUsage                     L 1  [               ISO/DIS 12639 TIFF/IT]
         84ef  TrapIndicator               B 1  [               ISO/DIS 12639 TIFF/IT]
         84f0  CMYKEquivalent              i -  [               ISO/DIS 12639 TIFF/IT]
         84f1  Reserved_TIFF_IT_1          - -  [               ISO/DIS 12639 TIFF/IT]
         84f2  Reserved_TIFF_IT_2          - -  [               ISO/DIS 12639 TIFF/IT]
         84f3  Reserved_TIFF_IT_3          - -  [               ISO/DIS 12639 TIFF/IT]
         85b8  FrameCount                  L 1  [Texas Instruments   (Sequence Count)]
         85d8  ModelTransformationTag      D 16 [JPL Cartogr. App. Group    (GeoTIFF)]
         8649  PhotoshopImageResources     B ?  [Adobe                    (Photoshop)]
         8773  ICCProfile                  - -  [Inter Colour Consortium    (TIFF/IT)]
         87af  GeoKeyDirectoryTag          S -  [SPOT Image Inc.            (GeoTIFF)]
         87b0  GeoDoubleParamsTag          D -  [SPOT Image Inc.            (GeoTIFF)]
         87b1  GeoAsciiParamsTag           A -  [SPOT Image Inc.            (GeoTIFF)]
         87be  JBIGOptions                 ? ?  [Pixel Magic                         ]
         8829  Interlace                   S 1  [             ISO/DIS 12234-2 TIFF/EP]
         882a  TimeZoneOffset             SS -  [             ISO/DIS 12234-2 TIFF/EP]
         882b  SelfTimerMode               S 1  [             ISO/DIS 12234-2 TIFF/EP]
         885c  FaxRecvParams               L 1  [SGI                    (fax support)]
         885d  FaxSubAddress               A -  [SGI                    (fax support)]
         885e  FaxRecvTime                 L 1  [SGI                    (fax support)]
         8871  FedExEDR                    ? ?  [FedEx                               ]
         920b  FlashEnergy                 R -  [             ISO/DIS 12234-2 TIFF/EP]
         920c  SpatialFrequencyResponse    - -  [             ISO/DIS 12234-2 TIFF/EP]
         920d  Noise                       - -  [             ISO/DIS 12234-2 TIFF/EP]
         920e  FocalPlaneXResolution       R 1  [             ISO/DIS 12234-2 TIFF/EP]
         920f  FocalPlaneYResolution       R 1  [             ISO/DIS 12234-2 TIFF/EP]
         9210  FocalPlaneResolutionUnit    S 1  [             ISO/DIS 12234-2 TIFF/EP]
         9211  ImageNumber                 L 1  [             ISO/DIS 12234-2 TIFF/EP]
         9212  SecurityClassification      A -  [             ISO/DIS 12234-2 TIFF/EP]
         9213  ImageHistory                A -  [             ISO/DIS 12234-2 TIFF/EP]
         9215  ExposureIndex               R -  [             ISO/DIS 12234-2 TIFF/EP]
         9216  TIFF/EPStandardID           B 4  [             ISO/DIS 12234-2 TIFF/EP]
         9217  SensingMethod               S 1  [             ISO/DIS 12234-2 TIFF/EP]
         923f  StoNits                     D 1  [SGI                (LogLuv Encoding)]
         935c  ImageSourceData             - -  [Adobe Photoshop                     ]
         c4a5  PrintIM_Data                ? ?  [Epson                               ]
         c44f  PhotoshopAnnotations        ? ?  [Adobe Photoshop                     ]
         ffff  DCSHueShiftValues           ? ?  [Eastman Kodak                       ]

   Exif tags for the 0th IFD Exif private subdirectory
       The tags listed in the following table are all the Exif 2.2 private tags, i.e., those
       which populate the 0th IFD SubIFD; they are described at length in the Exif standard
       document (but see also the non-standard Photoshop SubIFD tags at the end of this section).
       The 'class' column carries the tag class; possible values are: a (tags relating to
       version), b (image data characteristics), c (image configuration), d (user information), e
       (related file information), f (date and time), g (picture taking conditions) and h (other
       Exif 2.2 tags). The two following columns show tag hexadecimal codes and names. The 'type'
       column specifies the tag type: I (short or long), S (short), L (long), R (rational), SR
       (signed rational), U (undefined) and A (ASCII, always null terminated). The 'count' column
       obviously carries the tag count ('-' means that it is variable).

       The 'SubIFD' column specifies the support level; it comprises four letters, because the
       primary image (IFD0) 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 is interesting. The support level codes stand for: M
       (mandatory), R (recommended), O (optional), and N (not recorded). Tags marked as
       'calculated' in the notes must not be set by the module user, since they concern offsets
       and data types (which are calculated automatically, more reliably).

            Hexadecimal code                count SubIFD notes
         class |  Tag name                 type | support|
         |     |  |                           | |   |    |
         g  829a  ExposureTime                R 1   RRRR in seconds
         g  829d  FNumber                     R 1   OOOO (see note 1)
         g  8822  ExposureProgram             S 1   OOOO valid values are 0-8
         g  8824  SpectralSensitivity         A -   OOOO see ASTM technical committee
         g  8827  ISOSpeedRatings             S -   OOOO see ISO 12232
         g  8828  OECF                        U -   OOOO see ISO 14524
         a  9000  ExifVersion                 U 4   MMMM (see note 2)
         f  9003  DateTimeOriginal            A 20  OOOO (see note 3)
         f  9004  DateTimeDigitized           A 20  OOOO (see note 3)
         c  9101  ComponentsConfiguration     U 4   NNNM (see note 4)
         c  9102  CompressedBitsPerPixel      R 1   NNNO compression rate
         g  9201  ShutterSpeedValue          SR 1   OOOO (see note 1)
         g  9202  ApertureValue               R 1   OOOO (see note 1)
         g  9203  BrightnessValue            SR 1   OOOO (see note 1)
         g  9204  ExposureBiasValue          SR 1   OOOO (see note 1)
         g  9205  MaxApertureValue            R 1   OOOO smallest ApertureValue
         g  9206  SubjectDistance             R 1   OOOO in meters
         g  9207  MeteringMode                S 1   OOOO valid values are 0-6 and 255
         g  9208  LightSource                 S 1   OOOO use 0-4,9-15,17-24 or 255
         g  9209  Flash                       S 1   RRRR (see note 5)
         g  920a  FocalLength                 R 1   OOOO in millimetres
         g  9214  SubjectArea                 S -   OOOO (see note 6)
         d  927c  MakerNote                   U -   OOOO calculated
         d  9286  UserComment                 U -   OOOO (see note 7)
         f  9290  SubSecTime                  A -   OOOO (see note 8)
         f  9291  SubSecTimeOriginal          A -   OOOO (see note 8)
         f  9292  SubSecTimeDigitized         A -   OOOO (see note 8)
         a  a000  FlashpixVersion             U 4   MMMM (see note 2)
         b  a001  ColorSpace                  S 1   MMMM valid values are 1 and 65535
         c  a002  PixelXDimension             I 1   NNNM picture X-dim, see note 9)
         c  a003  PixelYDimension             I 1   NNNM picture Y-dim, see note 9)
         e  a004  RelatedSoundFile            A 13  OOOO (see note 10)
         h  a005  InteroperabilityOffset      L 1   NNNO calculated by the module
         g  a20b  FlashEnergy                 R 1   OOOO in BCPS
         g  a20c  SpatialFrequencyResponse    U -   OOOO (see ISO 12233
         g  a20e  FocalPlaneXResolution       R 1   OOOO .
         g  a20f  FocalPlaneYResolution       R 1   OOOO .
         g  a210  FocalPlaneResolutionUnit    S 1   OOOO valid values are 2 and 3
         g  a214  SubjectLocation             S 2   OOOO in pixels
         g  a215  ExposureIndex               R 1   OOOO .
         g  a217  SensingMethod               S 1   OOOO valid values are 1-5,7 and 8
         g  a300  FileSource                  U 1   OOOO only allowed value is 3
         g  a301  SceneType                   U 1   OOOO only allowed value is 1
         g  a302  CFAPattern                  U -   OOOO (see note 11)
         g  a401  CustomRendered              S 1   OOOO valid values are 0 and 1
         g  a402  ExposureMode                S 1   RRRR valid values are 0,1 and 2
         g  a403  WhiteBalance                S 1   RRRR valid values are 0 and 1
         g  a404  DigitalZoomRatio            R 1   OOOO .
         g  a405  FocalLengthIn35mmFilm       S 1   OOOO .
         g  a406  SceneCaptureType            S 1   RRRR valid values are 0,1,2 and 3
         g  a407  GainControl                 S 1   OOOO valid values are 0,1,2,3 & 4
         g  a408  Contrast                    S 1   OOOO valid values are 0,1 and 2
         g  a409  Saturation                  S 1   OOOO valid values are 0,1 and 2
         g  a40a  Sharpness                   S 1   OOOO valid values are 0,1 and 2
         g  a40b  DeviceSettingDescription    U -   OOOO (see note 12)
         g  a40c  SubjectDistanceRange        S 1   OOOO valid values are 0,1,2 and 3
         h  a420  ImageUniqueID               A 33  OOOO matches /[0-9a-fA-F]+\000+/

         Notes:
         1) The camera information in the Exif standard conforms to the APEX
            (Additive System of Photographic Exposure) unit system. APEX is a
            convenient unit for expressing exposure (Ev). The relation of APEX
            to other units is essentially as follows:
            --------------------------------------------------------
            ApertureValue     (Av) = 2 log2(FNumber)
            ShutterSpeedValue (Tv) = - log2(ExposureTime)
            BrightnessValue   (Bv) =   log2(Brightness) + constant
            FilmSensitivity   (Sv) =   log2(ASA/3.125) [not in Exif]
            Exposure          (Ev) = Av + Tv = Bv + Sv
            --------------------------------------------------------
         2) A version tag is a sequence of four numerical characters representing
            the supported version of the standard (e.g., '0220' for version 2.2).
            Possible versions for Exif: 1.0, 1.1, 2.0, 2.1, 2.2 and 2.2.1.
            Possible versions for Flashpix: 1.0.
         3) These tags indicate the time of the original-image data generation and
            of its storage (hardly any difference, usually). Their value is a
            null terminated string of the form "YYYY:MM:DD HH:MM:SS" (note the
            space in the middle and the colon signs), in 24-hour format. If the
            tag is set, but the value is not meaningful, all numbers should be set
            to spaces (replacing also the colons with spaces is permitted
            too). See also 'DateTime' in the canonical tag L<section|/Canonical
            Exif 2.2 and TIFF 6.0 tags for IFD0 and IFD1>. [Currently, only years
            after 1800 can be set with this Perl module].
         4) This tag indicates the channels of each component, arranged in order
            from the 1st component to the 4th. For uncompressed data the data
            arrangement is given in the 'PhotometricInterpretation' tag. The four
            numeric characters must be in the range '0' - '6', and legal combina-
            tions are '4560' (if RGB uncompressed) and '1230' (all other cases).
         5) This tag indicates the status of flash when the image was shot.
            Bit 0 indicates the flash firing status, bits 1 and 2 indicate the
            flash return status, bits 3 and 4 indicate the flash mode, bit 5
            indicates whether the flash function is present, and bit 6 indicates
            "red eye" mode. The allowed decimal values for the bit-mask are
            therefore 0, 1, 5, 7, 9, 13, 15, 16, 24, 25, 29, 31, 32, 65, 69,
            71, 73, 77, 79, 89, 93 and 95.
         6) This tag indicates the location and area of the main subject in the
            overall scene. Count can be 2 (a spot defined by two coordinates),
            3 (a circle defined by centre coordinates and diameter) and
            4 (a rectangle defined by its centre coordinates and its dimensions).
         7) The 'UserComment' tag must start with an 8 byte "ID code", which
            can be "ASCII\00\00\00", "JIS\00\00\00\00\00", "Unicode" or eight
            null bytes for "undefined". The ID code identifies the character
            code to be used in the following. A null terminator is not required.
         8) A sub-second-time tag value represents a fraction of a second, relative
            to the 'DateTime' tag and other such tags, as an ASCII null-terminated
            string made of numeric characters; an arbitrary number of spaces can
            be appended to the numeric characters string. If sub-second data is not
            known the tag value may contain only spaces. The corresponding regular
            expression is /\d*\s*\000/.
         9) This is the valid width or height of the meaningful image (horizontal
            dimension does not include data padding). Overall image dimensions can
            be read in the SOF segment (this includes padding however).
        10) This tag is used to record the name of an audio file related to the
            image data: an ASCII string consisting of 8 characters + '.' + 3
            characters, terminated by NULL. The path is not recorded.
            The corresponding regular expression is /\w{8}\.\w{3}\000/.
        11) This tag indicates the colour filter array (CFA) geometric pattern of
            the image sensor when a one-chip colour area sensor is used. The first
            four bytes must be interpreted as two shorts giving the horizontal (m)
            and vertical (n) repeat pixel units. Then, m x n bytes follow, giving
            the actual colour filter values (in the range 0-6).
        12) This tag indicates information on the picture-taking conditions of a
            particular camera model, for a reader. The first four bytes must be
            interpreted as two shorts giving the number of display rows and columns.
            The following bytes must be interpreted as Unicode (UCS-2) streams,
            NULL terminated and including the signature. The specifics of the
            Unicode string are as given in ISO/IEC 10464-1. An approximation to
            the corresponding regular expression is /.{4}(\376\377(.{2})*\000\000)*/.

       The Adobe's Photoshop program, at least from version 7.0 on, seems to add some non-
       standard tags to the Exif private tags subdirectory during the treatment of raw camera
       pictures. The corresponding record values are all ASCII strings ($ASCII type), and contain
       the description of the tags themselves. The following might be an incomplete list:

           Hexadecimal code      count   value begins with (a null terminated
              |  Tag name     type |     string is to be added at the end):
              |  |               | |     |
           fde8  _OwnerName      A -     "Owner's Name: "
           fde9  _SerialNumber   A -     "Serial Number: "
           fdea  _Lens           A -     "Lens: "
           fe4c  _RawFile        A -     "Raw File: "
           fe4d  _Converter      A -     "Converter: "
           fe4e  _WhiteBalance   A -     "White Balance: "
           fe51  _Exposure       A -     "Exposure: "
           fe52  _Shadows        A -     "Shadows: "
           fe53  _Brightness     A -     "Brightness: "
           fe54  _Contrast       A -     "Contrast: "
           fe55  _Saturation     A -     "Saturation: "
           fe56  _Sharpness      A -     "Sharpness: "
           fe57  _Smoothness     A -     "Smoothness: "
           fe58  _MoireFilter    A -     "Moire Filter: "

   Exif tags for the 0th IFD Interoperability subdirectory
       If the main image is compressed (which is always the case for a JPEG picture), the "Design
       rule for Camera File system" recommendations suggest to add another IFD below SubIFD, the
       Interoperability IFD, pointed to by the InteroperabilityOffset tag; legal tags are listed
       in the following table. The first two columns show tag hexadecimal codes and names. The
       'type' column specifies the tag type: I (short or long), U (undefined) and A (ASCII,
       always null terminated). The 'count' column obviously specifies the value count ('-' means
       that it is variable). The "Index" and "Version" tags are mandatory if the subIFD is
       present, and they are automatically added by this module if necessary.

            Hexadecimal code                count SubIFD notes
               |  Tag name                 type | suppt. |
               |  |                           | |   |    |
            0001  InteroperabilityIndex       A 4 NNNM   R98 (THM would work for IFD1)
            0002  InteroperabilityVersion     U 4 NNNM   e.g. '0100' means 1.00
            1000  RelatedImageFileFormat      A - NNNO   e.g. 'Exif JPEG Ver. 2.1'
            1001  RelatedImageWidth           I 1 NNNO   image X dimension
            1002  RelatedImageLength          I 1 NNNO   image Y dimension

   Exif tags for the 0th IFD GPS subdirectory
       The following tags are used for GPS attributes in the GPS IFD, pointed to (if present) by
       the GPSInfo tag in IFD0 or IFD1. This standard was already used in TIFF/EP, and is now
       part of Exif 2.2. The first two columns show tag hexadecimal codes and names. The 'type'
       column specifies the tag type: B (byte), S (short), R (rational), U (undefined) and A
       (ASCII, always null terminated). The 'count' column obviously specifies the value count
       ('-' means that it is variable). All GPS tags are optional in a JPEG or TIFF file, but the
       'VersionID' tag must be present, if the GPS IFD is present (a default 'VersionID' =
       (2,2,0,0), i.e. v.2.2, is automatically added by this module if necessary).

            Hexadecimal code                count   notes
               |  Tag name                 type |   |
               |  |                           | |   |
              00  GPSVersionID                B 4   mandatory
              01  GPSLatitudeRef              A 2   (see note 1)
              02  GPSLatitude                 R 3   (see note 2)
              03  GPSLongitudeRef             A 2   (see note 1)
              04  GPSLongitude                R 3   (see note 2)
              05  GPSAltitudeRef              B 1   0 (sea level) or 1 (absolute)
              06  GPSAltitude                 R 1   in metres
              07  GPSTimeStamp                R 3   hours, minutes and seconds
              08  GPSSatellites               A -   satellites used for measurement
              09  GPSStatus                   A 2   'A' (in progr.) or 'V' (interop.)
              0a  GPSMeasureMode              A 2   '2' (2-dim) or '3' (3-dim)
              0b  GPSDOP                      R 1   data degree of precision
              0c  GPSSpeedRef                 A 2   (see note 3)
              0d  GPSSpeed                    R 1   speed of the GPS receiver
              0e  GPSTrackRef                 A 2   (see note 4)
              0f  GPSTrack                    R 1   (see note 5)
              10  GPSImgDirectionRef          A 2   (see note 4)
              11  GPSImgDirection             R 1   (see note 5)
              12  GPSMapDatum                 A -   geodetic survey data
              13  GPSDestLatitudeRef          A 2   (see note 1)
              14  GPSDestLatitude             R 3   (see note 2)
              15  GPSDestLongitudeRef         A 2   (see note 1)
              16  GPSDestLongitude            R 3   (see note 2)
              17  GPSDestBearingRef           A 2   (see note 4)
              18  GPSDestBearing              R 1   (see note 5)
              19  GPSDestDistanceRef          A 2   (see note 3)
              1a  GPSDestDistance             R 1   distance to the destination point
              1b  GPSProcessingMethod         U -   location finding (see note 6)
              1c  GPSAreaInformation          U -   name of the GPS area (see note 6)
              1d  GPSDateStamp                A 11  (see note 7)
              1e  GPSDifferential             S 1   0 (without) or 1 (with) diff.corr.

         Notes:
         1) A latitude or longitude reference specifies a sign for another
            (related) latitude or longitude value tag. A latitude reference can be
            only 'N' (for North) or 'S' (for South); a longitude reference can be
            only 'E' (for East) or 'W' (for West).
         2) A latitude or a longitude is stored as a sequence of three rational
            numbers (each rational number is the ratio of two unsigned long
            integers), representing degrees, minutes and seconds. A typical format
            is (dd/1, mm/1, ss/1). Sometimes, seconds are dropped in favour of
            fractions of minutes (usually with two decimal places); in this case
            the format is (dd/1, mmmm/100, 0/1). Latitudes are limited to the
            interval [0,90], while longitudes to [0,180].
         3) A "speed (distance) reference" is the unit for the speed (distance)
            value stored in another (related) tag. The only allowed values are 'K'
            (for Km/h or Km), 'M' (for miles/h or miles) or 'N' (knots). Let us
            appreciate the fact that knot in English is both a unit of speed (one
            nautical mile per hour) and of distance (one nautical mile).
         4) A direction reference specifies how to interpret a following direction
            value. Only two references are possible: 'T' (for the true direction)
            or 'M' (for the magnetic direction).
         5) A direction (of the pointed image, of the movement of the GPS
            receiver, ecc ...) is a decimal number specifying an angle. The
            allowed range is between 0.00 and 359.99.
         6) The processing method and the area information are character strings,
            whose first character specifies the character code used: this is the
            first character of the 8-byte character code identification in the
            'UserComment' tag in the SubIFD, so 'A' means ASCII, 'J' means JIS,
            'U' means Unicode and a null character means undefined. Since the type
            is not ASCII, null termination is not required.
         7) A date tag value is a null terminated string of the form "YYYY:MM:DD"
            (note the colon signs). [I currently allow only years after 1800].

Valid tags for Photoshop-style APP13 data

       The structure of a Photoshop-style APP13 segment is introduced in section "Structure of a
       Photoshop-style APP13 segment" in Image::MetaData::JPEG::Structures.

   Non-IPTC data (visual rendering - Photoshop variables)
       This section contains only the list of valid Image Resource ID's; note that not all file
       formats use all ID's, and some information may be stored somewhere else in the file. In
       the following list 'PS' stands for Photoshop, and 'Pstring' for Pascal string:

            Hexadecimal code                 notes
               |  Tag name                   |
               |  |                          |
             3e8  Photoshop2Info             [obsolete] (PS.2.0) General information
             3e9  MacintoshPrintInfo         [optional] Macintosh print manager info
             3eb  Photoshop2ColorTable       [obsolete] (PS.2.0) Indexed colour table
             3ed  ResolutionInfo             see appendix A in Photoshop SDK
             3ee  AlphaChannelsNames         as a series of Pstrings
             3ef  DisplayInfo                see appendix A in Photoshop SDK
             3f0  PStringCaption             [optional] the caption, as a Pstring
             3f1  BorderInformation          border width and units
             3f2  BackgroundColor            see additional Adobe information
             3f3  PrintFlags                 labels, crop marks, colour bars, ecc...
             3f4  BWHalftoningInfo           Gray-scale and multich. half-toning info
             3f5  ColorHalftoningInfo        Colour half-toning information
             3f6  DuotoneHalftoningInfo      Duo-tone half-toning information
             3f7  BWTransferFunc             Gray-scale and multich. transfer function
             3f8  ColorTransferFuncs         Colour transfer function
             3f9  DuotoneTransferFuncs       Duo-tone transfer function
             3fa  DuotoneImageInfo           Duo-tone image information
             3fb  EffectiveBW                effective black and white values
             3fc  ObsoletePhotoshopTag1      [obsolete] ??
             3fd  EPSOptions                 Encapsulated Postscript options
             3fe  QuickMaskInfo              channel ID plus initial state flag
             3ff  ObsoletePhotoshopTag2      [obsolete] ??
             400  LayerStateInfo             index of target layer (0 means bottom)
             401  WorkingPathInfo            should not be saved to the file
             402  LayersGroupInfo            for grouping layers together
             403  ObsoletePhotoshopTag3      [obsolete] ??
             404  IPTC/NAA                   see L</Valid tags for IPTC data>
             405  RawImageMode               image mode for raw format files
             406  JPEGQuality                [private]
             408  GridGuidesInfo             see additional Adobe information
             409  ThumbnailResource          see additional Adobe information
             40a  CopyrightFlag              true if image is copyrighted
             40b  URL                        text string with a resource locator
             40c  ThumbnailResource2         see additional Adobe information
             40d  GlobalAngle                global lighting angle for effects layer
             40e  ColorSamplersResource      see additional Adobe information
             40f  ICCProfile                 see notes from Internat. Color Consortium
             410  Watermark                  one byte
             411  ICCUntagged                1 means intentionally untagged
             412  EffectsVisible             1 byte to show/hide all effects layers
             413  SpotHalftone               version, length and data
             414  IDsBaseValue               base value for new layers ID's
             415  UnicodeAlphaNames          length plus Unicode string
             416  IndexedColourTableCount    (PS.6.0) 2 bytes
             417  TransparentIndex           (PS.6.0) 2 bytes
             419  GlobalAltitude             (PS.6.0) 4 bytes
             41a  Slices                     (PS.6.0) see additional Adobe info
             41b  WorkflowURL                (PS.6.0) 4 bytes length + Unicode string
             41c  JumpToXPEP                 (PS.6.0) see additional Adobe info
             41d  AlphaIdentifiers           (PS.6.0) 4*(n+1) bytes
             41e  URLList                    (PS.6.0) structured Unicode URL's
             421  VersionInfo                (PS.6.0) see additional Adobe info
          7d0-bb6 PathInfo_%3x               see additional Adobe info (saved path)
             bb7  ClippingPathName           see additional Adobe info
            2710  PrintFlagsInfo             see additional Adobe info

   IPTC data (Editorial information and envelope record)
       The structure of an IPTC stream is introduced in section "Structure of an IPTC data block"
       in Image::MetaData::JPEG::Structures. This section contains only the list of valid IPTC
       tags. Since the use of APP13 for IPTC information in a JPEG picture is not a real
       standard, it is not clear which subset of IPTC should be considered valid; my current
       guess is that only editorial IPTC datasets (2:xx) and, more rarely, some envelope datasets
       (1:xx, which are however needed for non ASCII character sets) are found. Numeric tag
       values (record keys), in the first column, are in decimal notation, and they are followed
       by tag names in the second column. The presence of 'N' in the third column means that the
       record is non-repeatable (i.e., there should not be two such records in the file). The
       following number or range in square brackets indicates valid lengths for the record data
       field. The final comment specifies additional format constraints, sometimes in natural
       language: "/regex/" means that the string must match the regular expression regex;
       "invalid" means that this valid IPTC tag is not used in JPEG pictures; other formats are
       specified in the notes. Note that IPTC strings are stored in records with an explicit
       length, so they do not need the final null character (they are not C-strings).

        Decimal code                          size     notes
           |  Tag name             repeatable |        |
           |  |                             | |        |
         -------------------------------------------------------------------------
         1:xx datasets from the envelope record (seldom used)
         -------------------------------------------------------------------------
           0  ModelVersion                  N [  2,  ] binary, always 4 in JPEGs?
           5  Destination                     [1-1024] word (see note 1)
          20  FileFormat                    N [  2   ] invalid, binary
          22  FileFormatVersion             N [  2   ] invalid, binary (see 1:20)
          30  ServiceIdentifier             N [ <=10 ] word (see note 1)
          40  EnvelopeNumber                N [  8   ] invalid, /\d{8}/
          50  ProductID                       [ <=32 ] word (see note 1)
          60  EnvelopePriority              N [  1   ] invalid, /[1-9]/
          70  DataSent                      N [  8   ] invalid, date (see note 2)
          80  TimeSent                      N [ 11   ] invalid, time (see note 3)
          90  CodedCharacterSet             N [ <=32 ] character set (see note 4)
         100  UNO                           N [14-80 ] invalid (eternal identifier)
         120  ARMIdentifier                 N [  2   ] invalid, binary
         122  ARMVersion                    N [  2   ] invalid, binary
         -------------------------------------------------------------------------
         2:xx datasets from the application record (editorial tags)
         -------------------------------------------------------------------------
           0  RecordVersion                 N [  2   ] binary, always 2 in JPEGs ?
           3  ObjectTypeReference           N [ 3-67 ] /\d{2}?:[\w\s]{0,64}?/
           4  ObjectAttributeReference        [ 4-68 ] /\d{3}?:[\w\s]{0,64}?/
           5  ObjectName                    N [ <=64 ] line (see note 5)
           7  EditStatus                    N [ <=64 ] line (see note 5)
           8  EditorialUpdate               N [  2   ] /01/
          10  Urgency                       N [  1   ] /[1-8]/
          12  SubjectReference                [13-236] complicated, see note 7
          15  Category                      N [ <=3  ] /[a-zA-Z]{1,3}?/
          20  SupplementalCategory            [ <=32 ] line (see note 5)
          22  FixtureIdentifier             N [ <=32 ] word (see note 1)
          25  Keywords                        [ <=64 ] line (see note 5)
          26  ContentLocationCode             [  3   ] /[A-Z]{3}/
          27  ContentLocationName             [ <=64 ] line (see note 5)
          30  ReleaseDate                   N [  8   ] date (see note 2)
          35  ReleaseTime                   N [ 11   ] time (see note 3)
          37  ExpirationDate                N [  8   ] date (see note 2)
          38  ExpirationTime                N [ 11   ] time (see note 3)
          40  SpecialInstructions           N [ <=256] line (see note 5)
          42  ActionAdvised                 N [  2   ] /0[1-4]/
          45  ReferenceService                [ 10   ] invalid (see 1:30)
          47  ReferenceDate                   [  8   ] invalid (see 1:70)
          50  ReferenceNumber                 [  8   ] invalid (see 1:40)
          55  DateCreated                   N [  8   ] date (see note 2)
          60  TimeCreated                   N [ 11   ] time (see note 3)
          62  DigitalCreationDate           N [  8   ] date (see note 2)
          63  DigitalCreationTime           N [ 11   ] time (see note 3)
          65  OriginatingProgram            N [ 32   ] line (see note 5)
          70  ProgramVersion                N [ <=10 ] line (see note 5)
          75  ObjectCycle                   N [  1   ] /a|p|b/
          80  ByLine                          [ <=32 ] line (see note 5)
          85  ByLineTitle                     [ <=32 ] line (see note 5)
          90  City                          N [ <=32 ] line (see note 5)
          92  SubLocation                   N [ <=32 ] line (see note 5)
          95  Province/State                N [ <=32 ] line (see note 5)
         100  Country/PrimaryLocationCode   N [  3   ] /[A-Z]{3}?/
         101  Country/PrimaryLocationName   N [ <=64 ] line (see note 5)
         103  OriginalTransmissionReference N [ <=32 ] line (see note 5)
         105  Headline                      N [ <=256] line (see note 5)
         110  Credit                        N [ <=32 ] line (see note 5)
         115  Source                        N [ <=32 ] line (see note 5)
         116  CopyrightNotice               N [ <=128] line (see note 5)
         118  Contact                         [ <=128] line (see note 5)
         120  Caption/Abstract              N [<=2000] line with CR and LF
         122  Writer/Editor                   [ <=32 ] line (see note 5)
         125  RasterizedCaption             N [ 7360 ] binary data (460x128 PBM)
         130  ImageType                     N [  2   ] /[0-49][WYMCKRGBTFLPS]/
         131  ImageOrientation              N [  1   ] /P|L|S/
         135  LanguageIdentifier            N [ 2-3  ] /[a-zA-Z]{2,3}?/
         150  AudioType                     N [  2   ] /[012][ACMQRSTVW]/
         151  AudioSamplingRate             N [  6   ] /\d{6}?/
         152  AudioSamplingResolution       N [  2   ] /\d{2}?/
         153  AudioDuration                 N [  6   ] duration (see note 6)
         154  AudioOutcue                   N [ <=64 ] line (see note 5)
         200  ObjDataPreviewFileFormat      N [  2   ] invalid, binary (see 1:20)
         201  ObjDataPreviewFileFormatVer   N [  2   ] invalid, binary (see 1:22)
         202  ObjDataPreviewData            N [<=256000] invalid, binary

         Notes:
         1) A "word" is made of elements of what the IPTC standard calls "graphic
            characters" set, i.e. all characters that have visual representation.
            Control codes, the space character and the DEL character are NOT
            graphic characters. Note that the visual representation of a graphic
            character depends upon the character set invoked at the time of
            evaluation. A "word" is matched by the following regular expression:
            /^[^\000-\040\177]*$/.
         2) A date is stored, in conformity to the ISO 8601 standard, as the eight
            character string 'CCYYMMDD', e.g., '19890317' indicates March 17th
            1989. A date string is matched by the following regular expression:
            /\d{4}(0\d|1[0-2])([0-2]\d|3[01])/. [Currently, I allow only years
            after 1800; but 'DateCreated' has no limitation since it refers to the
            creation date of the photographed object, not to the creation of the
            photo itself].
         3) A time is stored, in conformity to the ISO 8601 standard, as the
            eleven character string 'HHMMSS+/-HHMM', e.g., '090000-0500' indicates
            9AM, 5 hours behind the coordinated universal time. A time string is
            matched by the following regular expression:
            /([01]\d|2[0-3])[0-5]\d[0-5]\d[\+-]([01]\d|2[0-3])[0-5]\d/.
         4) This dataset selects a character set, for use in character oriented
            datasets in records 2-6, according to the "International Register of
            Coded Character Sets" (ISO/IEC 2022 and ISO/IEC 2375, see for instance
            L<http://www.itscj.ipsj.or.jp/ISO-IR/>), and typically consist of the
            escape control character followed by one or more graphic characters.
            For instance, "\033/A" refers to ISO-8859-1 (latin-1) and "\033%G" refers
            to UTF-8 (a Unicode encoding).
         5) A "line" is made of graphic characters (see note 1) and space. This is
            matched by the following regular expression: /^[^\000-\037\177]*$/.
         6) A "duration" is stored like a "time", but there is no time zone spec;
            this means that the string is only six characters wide (see also note 3).
         7) The complicated regular expression for the SubjectReference is the
            following: /[$validchar]{1,32}?:[01]\d{7}?(:[$validchar\s]{0,64}?){3}?/,
            where $validchar is '\040-\051\053-\071\073-\076\100-\176'.

AUTHOR

       Stefano Bettelli, bettelli@cpan.org

COPYRIGHT AND LICENSE

       Copyright (C) 2004,2005,2006 by Stefano Bettelli

       This library is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License. See the COPYING and LICENSE file for the license terms.

SEE ALSO

       The main documentation page for the Image::MetaData::JPEG module.