Package pyvision :: Package types :: Module exif
[hide private]
[frames] | no frames]

Source Code for Module pyvision.types.exif

  1  ''' 
  2  This module contains data on exif tag matching.  This data is from http://www.exiv2.org/tags.html and is based on the EXIF 2.2 standard. 
  3   
  4  Created on May 9, 2012 
  5   
  6  @author: bolme 
  7  ''' 
  8   
  9   
 10   
 11  EXIF_DATA = '''0x000b    11    Image    Exif.Image.ProcessingSoftware    Ascii    The name and version of the software used to post-process the picture. 
 12  0x00fe    254    Image    Exif.Image.NewSubfileType    Long    A general indication of the kind of data contained in this subfile. 
 13  0x00ff    255    Image    Exif.Image.SubfileType    Short    A general indication of the kind of data contained in this subfile. This field is deprecated. The NewSubfileType field should be used instead. 
 14  0x0100    256    Image    Exif.Image.ImageWidth    Long    The number of columns of image data, equal to the number of pixels per row. In JPEG compressed data a JPEG marker is used instead of this tag. 
 15  0x0101    257    Image    Exif.Image.ImageLength    Long    The number of rows of image data. In JPEG compressed data a JPEG marker is used instead of this tag. 
 16  0x0102    258    Image    Exif.Image.BitsPerSample    Short    The number of bits per image component. In this standard each component of the image is 8 bits, so the value for this tag is 8. See also <SamplesPerPixel>. In JPEG compressed data a JPEG marker is used instead of this tag. 
 17  0x0103    259    Image    Exif.Image.Compression    Short    The compression scheme used for the image data. When a primary image is JPEG compressed, this designation is not necessary and is omitted. When thumbnails use JPEG compression, this tag value is set to 6. 
 18  0x0106    262    Image    Exif.Image.PhotometricInterpretation    Short    The pixel composition. In JPEG compressed data a JPEG marker is used instead of this tag. 
 19  0x0107    263    Image    Exif.Image.Threshholding    Short    For black and white TIFF files that represent shades of gray, the technique used to convert from gray to black and white pixels. 
 20  0x0108    264    Image    Exif.Image.CellWidth    Short    The width of the dithering or halftoning matrix used to create a dithered or halftoned bilevel file. 
 21  0x0109    265    Image    Exif.Image.CellLength    Short    The length of the dithering or halftoning matrix used to create a dithered or halftoned bilevel file. 
 22  0x010a    266    Image    Exif.Image.FillOrder    Short    The logical order of bits within a byte 
 23  0x010d    269    Image    Exif.Image.DocumentName    Ascii    The name of the document from which this image was scanned 
 24  0x010e    270    Image    Exif.Image.ImageDescription    Ascii    A character string giving the title of the image. It may be a comment such as "1988 company picnic" or the like. Two-bytes character codes cannot be used. When a 2-bytes code is necessary, the Exif Private tag <UserComment> is to be used. 
 25  0x010f    271    Image    Exif.Image.Make    Ascii    The manufacturer of the recording equipment. This is the manufacturer of the DSC, scanner, video digitizer or other equipment that generated the image. When the field is left blank, it is treated as unknown. 
 26  0x0110    272    Image    Exif.Image.Model    Ascii    The model name or model number of the equipment. This is the model name or number of the DSC, scanner, video digitizer or other equipment that generated the image. When the field is left blank, it is treated as unknown. 
 27  0x0111    273    Image    Exif.Image.StripOffsets    Long    For each strip, the byte offset of that strip. It is recommended that this be selected so the number of strip bytes does not exceed 64 Kbytes. With JPEG compressed data this designation is not needed and is omitted. See also <RowsPerStrip> and <StripByteCounts>. 
 28  0x0112    274    Image    Exif.Image.Orientation    Short    The image orientation viewed in terms of rows and columns. 
 29  0x0115    277    Image    Exif.Image.SamplesPerPixel    Short    The number of components per pixel. Since this standard applies to RGB and YCbCr images, the value set for this tag is 3. In JPEG compressed data a JPEG marker is used instead of this tag. 
 30  0x0116    278    Image    Exif.Image.RowsPerStrip    Long    The number of rows per strip. This is the number of rows in the image of one strip when an image is divided into strips. With JPEG compressed data this designation is not needed and is omitted. See also <StripOffsets> and <StripByteCounts>. 
 31  0x0117    279    Image    Exif.Image.StripByteCounts    Long    The total number of bytes in each strip. With JPEG compressed data this designation is not needed and is omitted. 
 32  0x011a    282    Image    Exif.Image.XResolution    Rational    The number of pixels per <ResolutionUnit> in the <ImageWidth> direction. When the image resolution is unknown, 72 [dpi] is designated. 
 33  0x011b    283    Image    Exif.Image.YResolution    Rational    The number of pixels per <ResolutionUnit> in the <ImageLength> direction. The same value as <XResolution> is designated. 
 34  0x011c    284    Image    Exif.Image.PlanarConfiguration    Short    Indicates whether pixel components are recorded in a chunky or planar format. In JPEG compressed files a JPEG marker is used instead of this tag. If this field does not exist, the TIFF default of 1 (chunky) is assumed. 
 35  0x0122    290    Image    Exif.Image.GrayResponseUnit    Short    The precision of the information contained in the GrayResponseCurve. 
 36  0x0123    291    Image    Exif.Image.GrayResponseCurve    Short    For grayscale data, the optical density of each possible pixel value. 
 37  0x0124    292    Image    Exif.Image.T4Options    Long    T.4-encoding options. 
 38  0x0125    293    Image    Exif.Image.T6Options    Long    T.6-encoding options. 
 39  0x0128    296    Image    Exif.Image.ResolutionUnit    Short    The unit for measuring <XResolution> and <YResolution>. The same unit is used for both <XResolution> and <YResolution>. If the image resolution is unknown, 2 (inches) is designated. 
 40  0x012d    301    Image    Exif.Image.TransferFunction    Short    A transfer function for the image, described in tabular style. Normally this tag is not necessary, since color space is specified in the color space information tag (<ColorSpace>). 
 41  0x0131    305    Image    Exif.Image.Software    Ascii    This tag records the name and version of the software or firmware of the camera or image input device used to generate the image. The detailed format is not specified, but it is recommended that the example shown below be followed. When the field is left blank, it is treated as unknown. 
 42  0x0132    306    Image    Exif.Image.DateTime    Ascii    The date and time of image creation. In Exif standard, it is the date and time the file was changed. 
 43  0x013b    315    Image    Exif.Image.Artist    Ascii    This tag records the name of the camera owner, photographer or image creator. The detailed format is not specified, but it is recommended that the information be written as in the example below for ease of Interoperability. When the field is left blank, it is treated as unknown. Ex.) "Camera owner, John Smith; Photographer, Michael Brown; Image creator, Ken James" 
 44  0x013c    316    Image    Exif.Image.HostComputer    Ascii    This tag records information about the host computer used to generate the image. 
 45  0x013d    317    Image    Exif.Image.Predictor    Short    A predictor is a mathematical operator that is applied to the image data before an encoding scheme is applied. 
 46  0x013e    318    Image    Exif.Image.WhitePoint    Rational    The chromaticity of the white point of the image. Normally this tag is not necessary, since color space is specified in the colorspace information tag (<ColorSpace>). 
 47  0x013f    319    Image    Exif.Image.PrimaryChromaticities    Rational    The chromaticity of the three primary colors of the image. Normally this tag is not necessary, since colorspace is specified in the colorspace information tag (<ColorSpace>). 
 48  0x0140    320    Image    Exif.Image.ColorMap    Short    A color map for palette color images. This field defines a Red-Green-Blue color map (often called a lookup table) for palette-color images. In a palette-color image, a pixel value is used to index into an RGB lookup table. 
 49  0x0141    321    Image    Exif.Image.HalftoneHints    Short    The purpose of the HalftoneHints field is to convey to the halftone function the range of gray levels within a colorimetrically-specified image that should retain tonal detail. 
 50  0x0142    322    Image    Exif.Image.TileWidth    Short    The tile width in pixels. This is the number of columns in each tile. 
 51  0x0143    323    Image    Exif.Image.TileLength    Short    The tile length (height) in pixels. This is the number of rows in each tile. 
 52  0x0144    324    Image    Exif.Image.TileOffsets    Short    For each tile, the byte offset of that tile, as compressed and stored on disk. The offset is specified with respect to the beginning of the TIFF file. Note that this implies that each tile has a location independent of the locations of other tiles. 
 53  0x0145    325    Image    Exif.Image.TileByteCounts    Short    For each tile, the number of (compressed) bytes in that tile. See TileOffsets for a description of how the byte counts are ordered. 
 54  0x014a    330    Image    Exif.Image.SubIFDs    Long    Defined by Adobe Corporation to enable TIFF Trees within a TIFF file. 
 55  0x014c    332    Image    Exif.Image.InkSet    Short    The set of inks used in a separated (PhotometricInterpretation=5) image. 
 56  0x014d    333    Image    Exif.Image.InkNames    Ascii    The name of each ink used in a separated (PhotometricInterpretation=5) image. 
 57  0x014e    334    Image    Exif.Image.NumberOfInks    Short    The number of inks. Usually equal to SamplesPerPixel, unless there are extra samples. 
 58  0x0150    336    Image    Exif.Image.DotRange    Byte    The component values that correspond to a 0% dot and 100% dot. 
 59  0x0151    337    Image    Exif.Image.TargetPrinter    Ascii    A description of the printing environment for which this separation is intended. 
 60  0x0152    338    Image    Exif.Image.ExtraSamples    Short    Specifies that each pixel has m extra components whose interpretation is defined by one of the values listed below. 
 61  0x0153    339    Image    Exif.Image.SampleFormat    Short    This field specifies how to interpret each data sample in a pixel. 
 62  0x0154    340    Image    Exif.Image.SMinSampleValue    Short    This field specifies the minimum sample value. 
 63  0x0155    341    Image    Exif.Image.SMaxSampleValue    Short    This field specifies the maximum sample value. 
 64  0x0156    342    Image    Exif.Image.TransferRange    Short    Expands the range of the TransferFunction 
 65  0x0157    343    Image    Exif.Image.ClipPath    Byte    A TIFF ClipPath is intended to mirror the essentials of PostScript's path creation functionality. 
 66  0x0158    344    Image    Exif.Image.XClipPathUnits    SShort    The number of units that span the width of the image, in terms of integer ClipPath coordinates. 
 67  0x0159    345    Image    Exif.Image.YClipPathUnits    SShort    The number of units that span the height of the image, in terms of integer ClipPath coordinates. 
 68  0x015a    346    Image    Exif.Image.Indexed    Short    Indexed images are images where the 'pixels' do not represent color values, but rather an index (usually 8-bit) into a separate color table, the ColorMap. 
 69  0x015b    347    Image    Exif.Image.JPEGTables    Undefined    This optional tag may be used to encode the JPEG quantization andHuffman tables for subsequent use by the JPEG decompression process. 
 70  0x015f    351    Image    Exif.Image.OPIProxy    Short    OPIProxy gives information concerning whether this image is a low-resolution proxy of a high-resolution image (Adobe OPI). 
 71  0x0200    512    Image    Exif.Image.JPEGProc    Long    This field indicates the process used to produce the compressed data 
 72  0x0201    513    Image    Exif.Image.JPEGInterchangeFormat    Long    The offset to the start byte (SOI) of JPEG compressed thumbnail data. This is not used for primary image JPEG data. 
 73  0x0202    514    Image    Exif.Image.JPEGInterchangeFormatLength    Long    The number of bytes of JPEG compressed thumbnail data. This is not used for primary image JPEG data. JPEG thumbnails are not divided but are recorded as a continuous JPEG bitstream from SOI to EOI. Appn and COM markers should not be recorded. Compressed thumbnails must be recorded in no more than 64 Kbytes, including all other data to be recorded in APP1. 
 74  0x0203    515    Image    Exif.Image.JPEGRestartInterval    Short    This Field indicates the length of the restart interval used in the compressed image data. 
 75  0x0205    517    Image    Exif.Image.JPEGLosslessPredictors    Short    This Field points to a list of lossless predictor-selection values, one per component. 
 76  0x0206    518    Image    Exif.Image.JPEGPointTransforms    Short    This Field points to a list of point transform values, one per component. 
 77  0x0207    519    Image    Exif.Image.JPEGQTables    Long    This Field points to a list of offsets to the quantization tables, one per component. 
 78  0x0208    520    Image    Exif.Image.JPEGDCTables    Long    This Field points to a list of offsets to the DC Huffman tables or the lossless Huffman tables, one per component. 
 79  0x0209    521    Image    Exif.Image.JPEGACTables    Long    This Field points to a list of offsets to the Huffman AC tables, one per component. 
 80  0x0211    529    Image    Exif.Image.YCbCrCoefficients    Rational    The matrix coefficients for transformation from RGB to YCbCr image data. No default is given in TIFF; but here the value given in Appendix E, "Color Space Guidelines", is used as the default. The color space is declared in a color space information tag, with the default being the value that gives the optimal image characteristics Interoperability this condition. 
 81  0x0212    530    Image    Exif.Image.YCbCrSubSampling    Short    The sampling ratio of chrominance components in relation to the luminance component. In JPEG compressed data a JPEG marker is used instead of this tag. 
 82  0x0213    531    Image    Exif.Image.YCbCrPositioning    Short    The position of chrominance components in relation to the luminance component. This field is designated only for JPEG compressed data or uncompressed YCbCr data. The TIFF default is 1 (centered); but when Y:Cb:Cr = 4:2:2 it is recommended in this standard that 2 (co-sited) be used to record data, in order to improve the image quality when viewed on TV systems. When this field does not exist, the reader shall assume the TIFF default. In the case of Y:Cb:Cr = 4:2:0, the TIFF default (centered) is recommended. If the reader does not have the capability of supporting both kinds of <YCbCrPositioning>, it shall follow the TIFF default regardless of the value in this field. It is preferable that readers be able to support both centered and co-sited positioning. 
 83  0x0214    532    Image    Exif.Image.ReferenceBlackWhite    Rational    The reference black point value and reference white point value. No defaults are given in TIFF, but the values below are given as defaults here. The color space is declared in a color space information tag, with the default being the value that gives the optimal image characteristics Interoperability these conditions. 
 84  0x02bc    700    Image    Exif.Image.XMLPacket    Byte    XMP Metadata (Adobe technote 9-14-02) 
 85  0x4746    18246    Image    Exif.Image.Rating    Short    Rating tag used by Windows 
 86  0x4749    18249    Image    Exif.Image.RatingPercent    Short    Rating tag used by Windows, value in percent 
 87  0x800d    32781    Image    Exif.Image.ImageID    Ascii    ImageID is the full pathname of the original, high-resolution image, or any other identifying string that uniquely identifies the original image (Adobe OPI). 
 88  0x828d    33421    Image    Exif.Image.CFARepeatPatternDim    Short    Contains two values representing the minimum rows and columns to define the repeating patterns of the color filter array 
 89  0x828e    33422    Image    Exif.Image.CFAPattern    Byte    Indicates the color filter array (CFA) geometric pattern of the image sensor when a one-chip color area sensor is used. It does not apply to all sensing methods 
 90  0x828f    33423    Image    Exif.Image.BatteryLevel    Rational    Contains a value of the battery level as a fraction or string 
 91  0x8298    33432    Image    Exif.Image.Copyright    Ascii    Copyright information. In this standard the tag is used to indicate both the photographer and editor copyrights. It is the copyright notice of the person or organization claiming rights to the image. The Interoperability copyright statement including date and rights should be written in this field; e.g., "Copyright, John Smith, 19xx. All rights reserved.". In this standard the field records both the photographer and editor copyrights, with each recorded in a separate part of the statement. When there is a clear distinction between the photographer and editor copyrights, these are to be written in the order of photographer followed by editor copyright, separated by NULL (in this case since the statement also ends with a NULL, there are two NULL codes). When only the photographer copyright is given, it is terminated by one NULL code . When only the editor copyright is given, the photographer copyright part consists of one space followed by a terminating NULL code, then the editor copyright is given. When the field is left blank, it is treated as unknown. 
 92  0x829a    33434    Image    Exif.Image.ExposureTime    Rational    Exposure time, given in seconds. 
 93  0x829d    33437    Image    Exif.Image.FNumber    Rational    The F number. 
 94  0x83bb    33723    Image    Exif.Image.IPTCNAA    Long    Contains an IPTC/NAA record 
 95  0x8649    34377    Image    Exif.Image.ImageResources    Byte    Contains information embedded by the Adobe Photoshop application 
 96  0x8769    34665    Image    Exif.Image.ExifTag    Long    A pointer to the Exif IFD. Interoperability, Exif IFD has the same structure as that of the IFD specified in TIFF. ordinarily, however, it does not contain image data as in the case of TIFF. 
 97  0x8773    34675    Image    Exif.Image.InterColorProfile    Undefined    Contains an InterColor Consortium (ICC) format color space characterization/profile 
 98  0x8822    34850    Image    Exif.Image.ExposureProgram    Short    The class of the program used by the camera to set exposure when the picture is taken. 
 99  0x8824    34852    Image    Exif.Image.SpectralSensitivity    Ascii    Indicates the spectral sensitivity of each channel of the camera used. 
100  0x8825    34853    Image    Exif.Image.GPSTag    Long    A pointer to the GPS Info IFD. The Interoperability structure of the GPS Info IFD, like that of Exif IFD, has no image data. 
101  0x8827    34855    Image    Exif.Image.ISOSpeedRatings    Short    Indicates the ISO Speed and ISO Latitude of the camera or input device as specified in ISO 12232. 
102  0x8828    34856    Image    Exif.Image.OECF    Undefined    Indicates the Opto-Electric Conversion Function (OECF) specified in ISO 14524. 
103  0x8829    34857    Image    Exif.Image.Interlace    Short    Indicates the field number of multifield images. 
104  0x882a    34858    Image    Exif.Image.TimeZoneOffset    SShort    This optional tag encodes the time zone of the camera clock (relativeto Greenwich Mean Time) used to create the DataTimeOriginal tag-valuewhen the picture was taken. It may also contain the time zone offsetof the clock used to create the DateTime tag-value when the image wasmodified. 
105  0x882b    34859    Image    Exif.Image.SelfTimerMode    Short    Number of seconds image capture was delayed from button press. 
106  0x9003    36867    Image    Exif.Image.DateTimeOriginal    Ascii    The date and time when the original image data was generated. 
107  0x9102    37122    Image    Exif.Image.CompressedBitsPerPixel    Rational    Specific to compressed data; states the compressed bits per pixel. 
108  0x9201    37377    Image    Exif.Image.ShutterSpeedValue    SRational    Shutter speed. 
109  0x9202    37378    Image    Exif.Image.ApertureValue    Rational    The lens aperture. 
110  0x9203    37379    Image    Exif.Image.BrightnessValue    SRational    The value of brightness. 
111  0x9204    37380    Image    Exif.Image.ExposureBiasValue    SRational    The exposure bias. 
112  0x9205    37381    Image    Exif.Image.MaxApertureValue    Rational    The smallest F number of the lens. 
113  0x9206    37382    Image    Exif.Image.SubjectDistance    SRational    The distance to the subject, given in meters. 
114  0x9207    37383    Image    Exif.Image.MeteringMode    Short    The metering mode. 
115  0x9208    37384    Image    Exif.Image.LightSource    Short    The kind of light source. 
116  0x9209    37385    Image    Exif.Image.Flash    Short    Indicates the status of flash when the image was shot. 
117  0x920a    37386    Image    Exif.Image.FocalLength    Rational    The actual focal length of the lens, in mm. 
118  0x920b    37387    Image    Exif.Image.FlashEnergy    Rational    Amount of flash energy (BCPS). 
119  0x920c    37388    Image    Exif.Image.SpatialFrequencyResponse    Undefined    SFR of the camera. 
120  0x920d    37389    Image    Exif.Image.Noise    Undefined    Noise measurement values. 
121  0x920e    37390    Image    Exif.Image.FocalPlaneXResolution    Rational    Number of pixels per FocalPlaneResolutionUnit (37392) in ImageWidth direction for main image. 
122  0x920f    37391    Image    Exif.Image.FocalPlaneYResolution    Rational    Number of pixels per FocalPlaneResolutionUnit (37392) in ImageLength direction for main image. 
123  0x9210    37392    Image    Exif.Image.FocalPlaneResolutionUnit    Short    Unit of measurement for FocalPlaneXResolution(37390) and FocalPlaneYResolution(37391). 
124  0x9211    37393    Image    Exif.Image.ImageNumber    Long    Number assigned to an image, e.g., in a chained image burst. 
125  0x9212    37394    Image    Exif.Image.SecurityClassification    Ascii    Security classification assigned to the image. 
126  0x9213    37395    Image    Exif.Image.ImageHistory    Ascii    Record of what has been done to the image. 
127  0x9214    37396    Image    Exif.Image.SubjectLocation    Short    Indicates the location and area of the main subject in the overall scene. 
128  0x9215    37397    Image    Exif.Image.ExposureIndex    Rational    Encodes the camera exposure index setting when image was captured. 
129  0x9216    37398    Image    Exif.Image.TIFFEPStandardID    Byte    Contains four ASCII characters representing the TIFF/EP standard version of a TIFF/EP file, eg '1', '0', '0', '0' 
130  0x9217    37399    Image    Exif.Image.SensingMethod    Short    Type of image sensor. 
131  0x9c9b    40091    Image    Exif.Image.XPTitle    Byte    Title tag used by Windows, encoded in UCS2 
132  0x9c9c    40092    Image    Exif.Image.XPComment    Byte    Comment tag used by Windows, encoded in UCS2 
133  0x9c9d    40093    Image    Exif.Image.XPAuthor    Byte    Author tag used by Windows, encoded in UCS2 
134  0x9c9e    40094    Image    Exif.Image.XPKeywords    Byte    Keywords tag used by Windows, encoded in UCS2 
135  0x9c9f    40095    Image    Exif.Image.XPSubject    Byte    Subject tag used by Windows, encoded in UCS2 
136  0xc4a5    50341    Image    Exif.Image.PrintImageMatching    Undefined    Print Image Matching, description needed. 
137  0xc612    50706    Image    Exif.Image.DNGVersion    Byte    This tag encodes the DNG four-tier version number. For files compliant with version 1.1.0.0 of the DNG specification, this tag should contain the bytes: 1, 1, 0, 0. 
138  0xc613    50707    Image    Exif.Image.DNGBackwardVersion    Byte    This tag specifies the oldest version of the Digital Negative specification for which a file is compatible. Readers shouldnot attempt to read a file if this tag specifies a version number that is higher than the version number of the specification the reader was based on. In addition to checking the version tags, readers should, for all tags, check the types, counts, and values, to verify it is able to correctly read the file. 
139  0xc614    50708    Image    Exif.Image.UniqueCameraModel    Ascii    Defines a unique, non-localized name for the camera model that created the image in the raw file. This name should include the manufacturer's name to avoid conflicts, and should not be localized, even if the camera name itself is localized for different markets (see LocalizedCameraModel). This string may be used by reader software to index into per-model preferences and replacement profiles. 
140  0xc615    50709    Image    Exif.Image.LocalizedCameraModel    Byte    Similar to the UniqueCameraModel field, except the name can be localized for different markets to match the localization of the camera name. 
141  0xc616    50710    Image    Exif.Image.CFAPlaneColor    Byte    Provides a mapping between the values in the CFAPattern tag and the plane numbers in LinearRaw space. This is a required tag for non-RGB CFA images. 
142  0xc617    50711    Image    Exif.Image.CFALayout    Short    Describes the spatial layout of the CFA. 
143  0xc618    50712    Image    Exif.Image.LinearizationTable    Short    Describes a lookup table that maps stored values into linear values. This tag is typically used to increase compression ratios by storing the raw data in a non-linear, more visually uniform space with fewer total encoding levels. If SamplesPerPixel is not equal to one, this single table applies to all the samples for each pixel. 
144  0xc619    50713    Image    Exif.Image.BlackLevelRepeatDim    Short    Specifies repeat pattern size for the BlackLevel tag. 
145  0xc61a    50714    Image    Exif.Image.BlackLevel    Rational    Specifies the zero light (a.k.a. thermal black or black current) encoding level, as a repeating pattern. The origin of this pattern is the top-left corner of the ActiveArea rectangle. The values are stored in row-column-sample scan order. 
146  0xc61b    50715    Image    Exif.Image.BlackLevelDeltaH    SRational    If the zero light encoding level is a function of the image column, BlackLevelDeltaH specifies the difference between the zero light encoding level for each column and the baseline zero light encoding level. If SamplesPerPixel is not equal to one, this single table applies to all the samples for each pixel. 
147  0xc61c    50716    Image    Exif.Image.BlackLevelDeltaV    SRational    If the zero light encoding level is a function of the image row, this tag specifies the difference between the zero light encoding level for each row and the baseline zero light encoding level. If SamplesPerPixel is not equal to one, this single table applies to all the samples for each pixel. 
148  0xc61d    50717    Image    Exif.Image.WhiteLevel    Short    This tag specifies the fully saturated encoding level for the raw sample values. Saturation is caused either by the sensor itself becoming highly non-linear in response, or by the camera's analog to digital converter clipping. 
149  0xc61e    50718    Image    Exif.Image.DefaultScale    Rational    DefaultScale is required for cameras with non-square pixels. It specifies the default scale factors for each direction to convert the image to square pixels. Typically these factors are selected to approximately preserve total pixel count. For CFA images that use CFALayout equal to 2, 3, 4, or 5, such as the Fujifilm SuperCCD, these two values should usually differ by a factor of 2.0. 
150  0xc61f    50719    Image    Exif.Image.DefaultCropOrigin    Short    Raw images often store extra pixels around the edges of the final image. These extra pixels help prevent interpolation artifacts near the edges of the final image. DefaultCropOrigin specifies the origin of the final image area, in raw image coordinates (i.e., before the DefaultScale has been applied), relative to the top-left corner of the ActiveArea rectangle. 
151  0xc620    50720    Image    Exif.Image.DefaultCropSize    Short    Raw images often store extra pixels around the edges of the final image. These extra pixels help prevent interpolation artifacts near the edges of the final image. DefaultCropSize specifies the size of the final image area, in raw image coordinates (i.e., before the DefaultScale has been applied). 
152  0xc621    50721    Image    Exif.Image.ColorMatrix1    SRational    ColorMatrix1 defines a transformation matrix that converts XYZ values to reference camera native color space values, under the first calibration illuminant. The matrix values are stored in row scan order. The ColorMatrix1 tag is required for all non-monochrome DNG files. 
153  0xc622    50722    Image    Exif.Image.ColorMatrix2    SRational    ColorMatrix2 defines a transformation matrix that converts XYZ values to reference camera native color space values, under the second calibration illuminant. The matrix values are stored in row scan order. 
154  0xc623    50723    Image    Exif.Image.CameraCalibration1    SRational    CameraClalibration1 defines a calibration matrix that transforms reference camera native space values to individual camera native space values under the first calibration illuminant. The matrix is stored in row scan order. This matrix is stored separately from the matrix specified by the ColorMatrix1 tag to allow raw converters to swap in replacement color matrices based on UniqueCameraModel tag, while still taking advantage of any per-individual camera calibration performed by the camera manufacturer. 
155  0xc624    50724    Image    Exif.Image.CameraCalibration2    SRational    CameraCalibration2 defines a calibration matrix that transforms reference camera native space values to individual camera native space values under the second calibration illuminant. The matrix is stored in row scan order. This matrix is stored separately from the matrix specified by the ColorMatrix2 tag to allow raw converters to swap in replacement color matrices based on UniqueCameraModel tag, while still taking advantage of any per-individual camera calibration performed by the camera manufacturer. 
156  0xc625    50725    Image    Exif.Image.ReductionMatrix1    SRational    ReductionMatrix1 defines a dimensionality reduction matrix for use as the first stage in converting color camera native space values to XYZ values, under the first calibration illuminant. This tag may only be used if ColorPlanes is greater than 3. The matrix is stored in row scan order. 
157  0xc626    50726    Image    Exif.Image.ReductionMatrix2    SRational    ReductionMatrix2 defines a dimensionality reduction matrix for use as the first stage in converting color camera native space values to XYZ values, under the second calibration illuminant. This tag may only be used if ColorPlanes is greater than 3. The matrix is stored in row scan order. 
158  0xc627    50727    Image    Exif.Image.AnalogBalance    Rational    Normally the stored raw values are not white balanced, since any digital white balancing will reduce the dynamic range of the final image if the user decides to later adjust the white balance; however, if camera hardware is capable of white balancing the color channels before the signal is digitized, it can improve the dynamic range of the final image. AnalogBalance defines the gain, either analog (recommended) or digital (not recommended) that has been applied the stored raw values. 
159  0xc628    50728    Image    Exif.Image.AsShotNeutral    Short    Specifies the selected white balance at time of capture, encoded as the coordinates of a perfectly neutral color in linear reference space values. The inclusion of this tag precludes the inclusion of the AsShotWhiteXY tag. 
160  0xc629    50729    Image    Exif.Image.AsShotWhiteXY    Rational    Specifies the selected white balance at time of capture, encoded as x-y chromaticity coordinates. The inclusion of this tag precludes the inclusion of the AsShotNeutral tag. 
161  0xc62a    50730    Image    Exif.Image.BaselineExposure    SRational    Camera models vary in the trade-off they make between highlight headroom and shadow noise. Some leave a significant amount of highlight headroom during a normal exposure. This allows significant negative exposure compensation to be applied during raw conversion, but also means normal exposures will contain more shadow noise. Other models leave less headroom during normal exposures. This allows for less negative exposure compensation, but results in lower shadow noise for normal exposures. Because of these differences, a raw converter needs to vary the zero point of its exposure compensation control from model to model. BaselineExposure specifies by how much (in EV units) to move the zero point. Positive values result in brighter default results, while negative values result in darker default results. 
162  0xc62b    50731    Image    Exif.Image.BaselineNoise    Rational    Specifies the relative noise level of the camera model at a baseline ISO value of 100, compared to a reference camera model. Since noise levels tend to vary approximately with the square root of the ISO value, a raw converter can use this value, combined with the current ISO, to estimate the relative noise level of the current image. 
163  0xc62c    50732    Image    Exif.Image.BaselineSharpness    Rational    Specifies the relative amount of sharpening required for this camera model, compared to a reference camera model. Camera models vary in the strengths of their anti-aliasing filters. Cameras with weak or no filters require less sharpening than cameras with strong anti-aliasing filters. 
164  0xc62d    50733    Image    Exif.Image.BayerGreenSplit    Long    Only applies to CFA images using a Bayer pattern filter array. This tag specifies, in arbitrary units, how closely the values of the green pixels in the blue/green rows track the values of the green pixels in the red/green rows. A value of zero means the two kinds of green pixels track closely, while a non-zero value means they sometimes diverge. The useful range for this tag is from 0 (no divergence) to about 5000 (quite large divergence). 
165  0xc62e    50734    Image    Exif.Image.LinearResponseLimit    Rational    Some sensors have an unpredictable non-linearity in their response as they near the upper limit of their encoding range. This non-linearity results in color shifts in the highlight areas of the resulting image unless the raw converter compensates for this effect. LinearResponseLimit specifies the fraction of the encoding range above which the response may become significantly non-linear. 
166  0xc62f    50735    Image    Exif.Image.CameraSerialNumber    Ascii    CameraSerialNumber contains the serial number of the camera or camera body that captured the image. 
167  0xc630    50736    Image    Exif.Image.LensInfo    Rational    Contains information about the lens that captured the image. If the minimum f-stops are unknown, they should be encoded as 0/0. 
168  0xc631    50737    Image    Exif.Image.ChromaBlurRadius    Rational    ChromaBlurRadius provides a hint to the DNG reader about how much chroma blur should be applied to the image. If this tag is omitted, the reader will use its default amount of chroma blurring. Normally this tag is only included for non-CFA images, since the amount of chroma blur required for mosaic images is highly dependent on the de-mosaic algorithm, in which case the DNG reader's default value is likely optimized for its particular de-mosaic algorithm. 
169  0xc632    50738    Image    Exif.Image.AntiAliasStrength    Rational    Provides a hint to the DNG reader about how strong the camera's anti-alias filter is. A value of 0.0 means no anti-alias filter (i.e., the camera is prone to aliasing artifacts with some subjects), while a value of 1.0 means a strong anti-alias filter (i.e., the camera almost never has aliasing artifacts). 
170  0xc633    50739    Image    Exif.Image.ShadowScale    SRational    This tag is used by Adobe Camera Raw to control the sensitivity of its 'Shadows' slider. 
171  0xc634    50740    Image    Exif.Image.DNGPrivateData    Byte    Provides a way for camera manufacturers to store private data in the DNG file for use by their own raw converters, and to have that data preserved by programs that edit DNG files. 
172  0xc635    50741    Image    Exif.Image.MakerNoteSafety    Short    MakerNoteSafety lets the DNG reader know whether the EXIF MakerNote tag is safe to preserve along with the rest of the EXIF data. File browsers and other image management software processing an image with a preserved MakerNote should be aware that any thumbnail image embedded in the MakerNote may be stale, and may not reflect the current state of the full size image. 
173  0xc65a    50778    Image    Exif.Image.CalibrationIlluminant1    Short    The illuminant used for the first set of color calibration tags (ColorMatrix1, CameraCalibration1, ReductionMatrix1). The legal values for this tag are the same as the legal values for the LightSource EXIF tag. 
174  0xc65b    50779    Image    Exif.Image.CalibrationIlluminant2    Short    The illuminant used for an optional second set of color calibration tags (ColorMatrix2, CameraCalibration2, ReductionMatrix2). The legal values for this tag are the same as the legal values for the CalibrationIlluminant1 tag; however, if both are included, neither is allowed to have a value of 0 (unknown). 
175  0xc65c    50780    Image    Exif.Image.BestQualityScale    Rational    For some cameras, the best possible image quality is not achieved by preserving the total pixel count during conversion. For example, Fujifilm SuperCCD images have maximum detail when their total pixel count is doubled. This tag specifies the amount by which the values of the DefaultScale tag need to be multiplied to achieve the best quality image size. 
176  0xc65d    50781    Image    Exif.Image.RawDataUniqueID    Byte    This tag contains a 16-byte unique identifier for the raw image data in the DNG file. DNG readers can use this tag to recognize a particular raw image, even if the file's name or the metadata contained in the file has been changed. If a DNG writer creates such an identifier, it should do so using an algorithm that will ensure that it is very unlikely two different images will end up having the same identifier. 
177  0xc68b    50827    Image    Exif.Image.OriginalRawFileName    Byte    If the DNG file was converted from a non-DNG raw file, then this tag contains the file name of that original raw file. 
178  0xc68c    50828    Image    Exif.Image.OriginalRawFileData    Undefined    If the DNG file was converted from a non-DNG raw file, then this tag contains the compressed contents of that original raw file. The contents of this tag always use the big-endian byte order. The tag contains a sequence of data blocks. Future versions of the DNG specification may define additional data blocks, so DNG readers should ignore extra bytes when parsing this tag. DNG readers should also detect the case where data blocks are missing from the end of the sequence, and should assume a default value for all the missing blocks. There are no padding or alignment bytes between data blocks. 
179  0xc68d    50829    Image    Exif.Image.ActiveArea    Short    This rectangle defines the active (non-masked) pixels of the sensor. The order of the rectangle coordinates is: top, left, bottom, right. 
180  0xc68e    50830    Image    Exif.Image.MaskedAreas    Short    This tag contains a list of non-overlapping rectangle coordinates of fully masked pixels, which can be optionally used by DNG readers to measure the black encoding level. The order of each rectangle's coordinates is: top, left, bottom, right. If the raw image data has already had its black encoding level subtracted, then this tag should not be used, since the masked pixels are no longer useful. 
181  0xc68f    50831    Image    Exif.Image.AsShotICCProfile    Undefined    This tag contains an ICC profile that, in conjunction with the AsShotPreProfileMatrix tag, provides the camera manufacturer with a way to specify a default color rendering from camera color space coordinates (linear reference values) into the ICC profile connection space. The ICC profile connection space is an output referred colorimetric space, whereas the other color calibration tags in DNG specify a conversion into a scene referred colorimetric space. This means that the rendering in this profile should include any desired tone and gamut mapping needed to convert between scene referred values and output referred values. 
182  0xc690    50832    Image    Exif.Image.AsShotPreProfileMatrix    SRational    This tag is used in conjunction with the AsShotICCProfile tag. It specifies a matrix that should be applied to the camera color space coordinates before processing the values through the ICC profile specified in the AsShotICCProfile tag. The matrix is stored in the row scan order. If ColorPlanes is greater than three, then this matrix can (but is not required to) reduce the dimensionality of the color data down to three components, in which case the AsShotICCProfile should have three rather than ColorPlanes input components. 
183  0xc691    50833    Image    Exif.Image.CurrentICCProfile    Undefined    This tag is used in conjunction with the CurrentPreProfileMatrix tag. The CurrentICCProfile and CurrentPreProfileMatrix tags have the same purpose and usage as the AsShotICCProfile and AsShotPreProfileMatrix tag pair, except they are for use by raw file editors rather than camera manufacturers. 
184  0xc692    50834    Image    Exif.Image.CurrentPreProfileMatrix    SRational    This tag is used in conjunction with the CurrentICCProfile tag. The CurrentICCProfile and CurrentPreProfileMatrix tags have the same purpose and usage as the AsShotICCProfile and AsShotPreProfileMatrix tag pair, except they are for use by raw file editors rather than camera manufacturers. 
185  0xc6bf    50879    Image    Exif.Image.ColorimetricReference    Short    The DNG color model documents a transform between camera colors and CIE XYZ values. This tag describes the colorimetric reference for the CIE XYZ values. 0 = The XYZ values are scene-referred. 1 = The XYZ values are output-referred, using the ICC profile perceptual dynamic range. This tag allows output-referred data to be stored in DNG files and still processed correctly by DNG readers. 
186  0xc6f3    50931    Image    Exif.Image.CameraCalibrationSignature    Byte    A UTF-8 encoded string associated with the CameraCalibration1 and CameraCalibration2 tags. The CameraCalibration1 and CameraCalibration2 tags should only be used in the DNG color transform if the string stored in the CameraCalibrationSignature tag exactly matches the string stored in the ProfileCalibrationSignature tag for the selected camera profile. 
187  0xc6f4    50932    Image    Exif.Image.ProfileCalibrationSignature    Byte    A UTF-8 encoded string associated with the camera profile tags. The CameraCalibration1 and CameraCalibration2 tags should only be used in the DNG color transfer if the string stored in the CameraCalibrationSignature tag exactly matches the string stored in the ProfileCalibrationSignature tag for the selected camera profile. 
188  0xc6f6    50934    Image    Exif.Image.AsShotProfileName    Byte    A UTF-8 encoded string containing the name of the "as shot" camera profile, if any. 
189  0xc6f7    50935    Image    Exif.Image.NoiseReductionApplied    Rational    This tag indicates how much noise reduction has been applied to the raw data on a scale of 0.0 to 1.0. A 0.0 value indicates that no noise reduction has been applied. A 1.0 value indicates that the "ideal" amount of noise reduction has been applied, i.e. that the DNG reader should not apply additional noise reduction by default. A value of 0/0 indicates that this parameter is unknown. 
190  0xc6f8    50936    Image    Exif.Image.ProfileName    Byte    A UTF-8 encoded string containing the name of the camera profile. This tag is optional if there is only a single camera profile stored in the file but is required for all camera profiles if there is more than one camera profile stored in the file. 
191  0xc6f9    50937    Image    Exif.Image.ProfileHueSatMapDims    Long    This tag specifies the number of input samples in each dimension of the hue/saturation/value mapping tables. The data for these tables are stored in ProfileHueSatMapData1 and ProfileHueSatMapData2 tags. The most common case has ValueDivisions equal to 1, so only hue and saturation are used as inputs to the mapping table. 
192  0xc6fa    50938    Image    Exif.Image.ProfileHueSatMapData1    Float    This tag contains the data for the first hue/saturation/value mapping table. Each entry of the table contains three 32-bit IEEE floating-point values. The first entry is hue shift in degrees; the second entry is saturation scale factor; and the third entry is a value scale factor. The table entries are stored in the tag in nested loop order, with the value divisions in the outer loop, the hue divisions in the middle loop, and the saturation divisions in the inner loop. All zero input saturation entries are required to have a value scale factor of 1.0. 
193  0xc6fb    50939    Image    Exif.Image.ProfileHueSatMapData2    Float    This tag contains the data for the second hue/saturation/value mapping table. Each entry of the table contains three 32-bit IEEE floating-point values. The first entry is hue shift in degrees; the second entry is a saturation scale factor; and the third entry is a value scale factor. The table entries are stored in the tag in nested loop order, with the value divisions in the outer loop, the hue divisions in the middle loop, and the saturation divisions in the inner loop. All zero input saturation entries are required to have a value scale factor of 1.0. 
194  0xc6fc    50940    Image    Exif.Image.ProfileToneCurve    Float    This tag contains a default tone curve that can be applied while processing the image as a starting point for user adjustments. The curve is specified as a list of 32-bit IEEE floating-point value pairs in linear gamma. Each sample has an input value in the range of 0.0 to 1.0, and an output value in the range of 0.0 to 1.0. The first sample is required to be (0.0, 0.0), and the last sample is required to be (1.0, 1.0). Interpolated the curve using a cubic spline. 
195  0xc6fd    50941    Image    Exif.Image.ProfileEmbedPolicy    Long    This tag contains information about the usage rules for the associated camera profile. 
196  0xc6fe    50942    Image    Exif.Image.ProfileCopyright    Byte    A UTF-8 encoded string containing the copyright information for the camera profile. This string always should be preserved along with the other camera profile tags. 
197  0xc714    50964    Image    Exif.Image.ForwardMatrix1    SRational    This tag defines a matrix that maps white balanced camera colors to XYZ D50 colors. 
198  0xc715    50965    Image    Exif.Image.ForwardMatrix2    SRational    This tag defines a matrix that maps white balanced camera colors to XYZ D50 colors. 
199  0xc716    50966    Image    Exif.Image.PreviewApplicationName    Byte    A UTF-8 encoded string containing the name of the application that created the preview stored in the IFD. 
200  0xc717    50967    Image    Exif.Image.PreviewApplicationVersion    Byte    A UTF-8 encoded string containing the version number of the application that created the preview stored in the IFD. 
201  0xc718    50968    Image    Exif.Image.PreviewSettingsName    Byte    A UTF-8 encoded string containing the name of the conversion settings (for example, snapshot name) used for the preview stored in the IFD. 
202  0xc719    50969    Image    Exif.Image.PreviewSettingsDigest    Byte    A unique ID of the conversion settings (for example, MD5 digest) used to render the preview stored in the IFD. 
203  0xc71a    50970    Image    Exif.Image.PreviewColorSpace    Long    This tag specifies the color space in which the rendered preview in this IFD is stored. The default value for this tag is sRGB for color previews and Gray Gamma 2.2 for monochrome previews. 
204  0xc71b    50971    Image    Exif.Image.PreviewDateTime    Ascii    This tag is an ASCII string containing the name of the date/time at which the preview stored in the IFD was rendered. The date/time is encoded using ISO 8601 format. 
205  0xc71c    50972    Image    Exif.Image.RawImageDigest    Undefined    This tag is an MD5 digest of the raw image data. All pixels in the image are processed in row-scan order. Each pixel is zero padded to 16 or 32 bits deep (16-bit for data less than or equal to 16 bits deep, 32-bit otherwise). The data for each pixel is processed in little-endian byte order. 
206  0xc71d    50973    Image    Exif.Image.OriginalRawFileDigest    Undefined    This tag is an MD5 digest of the data stored in the OriginalRawFileData tag. 
207  0xc71e    50974    Image    Exif.Image.SubTileBlockSize    Long    Normally, the pixels within a tile are stored in simple row-scan order. This tag specifies that the pixels within a tile should be grouped first into rectangular blocks of the specified size. These blocks are stored in row-scan order. Within each block, the pixels are stored in row-scan order. The use of a non-default value for this tag requires setting the DNGBackwardVersion tag to at least 1.2.0.0. 
208  0xc71f    50975    Image    Exif.Image.RowInterleaveFactor    Long    This tag specifies that rows of the image are stored in interleaved order. The value of the tag specifies the number of interleaved fields. The use of a non-default value for this tag requires setting the DNGBackwardVersion tag to at least 1.2.0.0. 
209  0xc725    50981    Image    Exif.Image.ProfileLookTableDims    Long    This tag specifies the number of input samples in each dimension of a default "look" table. The data for this table is stored in the ProfileLookTableData tag. 
210  0xc726    50982    Image    Exif.Image.ProfileLookTableData    Float    This tag contains a default "look" table that can be applied while processing the image as a starting point for user adjustment. This table uses the same format as the tables stored in the ProfileHueSatMapData1 and ProfileHueSatMapData2 tags, and is applied in the same color space. However, it should be applied later in the processing pipe, after any exposure compensation and/or fill light stages, but before any tone curve stage. Each entry of the table contains three 32-bit IEEE floating-point values. The first entry is hue shift in degrees, the second entry is a saturation scale factor, and the third entry is a value scale factor. The table entries are stored in the tag in nested loop order, with the value divisions in the outer loop, the hue divisions in the middle loop, and the saturation divisions in the inner loop. All zero input saturation entries are required to have a value scale factor of 1.0. 
211  0xc740    51008    Image    Exif.Image.OpcodeList1    Undefined    Specifies the list of opcodes that should be applied to the raw image, as read directly from the file. 
212  0xc741    51009    Image    Exif.Image.OpcodeList2    Undefined    Specifies the list of opcodes that should be applied to the raw image, just after it has been mapped to linear reference values. 
213  0xc74e    51022    Image    Exif.Image.OpcodeList3    Undefined    Specifies the list of opcodes that should be applied to the raw image, just after it has been demosaiced. 
214  0xc761    51041    Image    Exif.Image.NoiseProfile    Double    NoiseProfile describes the amount of noise in a raw image. Specifically, this tag models the amount of signal-dependent photon (shot) noise and signal-independent sensor readout noise, two common sources of noise in raw images. The model assumes that the noise is white and spatially independent, ignoring fixed pattern effects and other sources of noise (e.g., pixel response non-uniformity, spatially-dependent thermal effects, etc.). 
215  0x829a    33434    Photo    Exif.Photo.ExposureTime    Rational    Exposure time, given in seconds (sec). 
216  0x829d    33437    Photo    Exif.Photo.FNumber    Rational    The F number. 
217  0x8822    34850    Photo    Exif.Photo.ExposureProgram    Short    The class of the program used by the camera to set exposure when the picture is taken. 
218  0x8824    34852    Photo    Exif.Photo.SpectralSensitivity    Ascii    Indicates the spectral sensitivity of each channel of the camera used. The tag value is an ASCII string compatible with the standard developed by the ASTM Technical Committee. 
219  0x8827    34855    Photo    Exif.Photo.ISOSpeedRatings    Short    Indicates the ISO Speed and ISO Latitude of the camera or input device as specified in ISO 12232. 
220  0x8828    34856    Photo    Exif.Photo.OECF    Undefined    Indicates the Opto-Electoric Conversion Function (OECF) specified in ISO 14524. <OECF> is the relationship between the camera optical input and the image values. 
221  0x8830    34864    Photo    Exif.Photo.SensitivityType    Short    The SensitivityType tag indicates PhotographicSensitivity tag. which one of the parameters of ISO12232 is the Although it is an optional tag, it should be recorded when a PhotographicSensitivity tag is recorded. Value = 4, 5, 6, or 7 may be used in case that the values of plural parameters are the same. 
222  0x8831    34865    Photo    Exif.Photo.StandardOutputSensitivity    Long    This tag indicates the standard output sensitivity value of a camera or input device defined in ISO 12232. When recording this tag, the PhotographicSensitivity and SensitivityType tags shall also be recorded. 
223  0x8832    34866    Photo    Exif.Photo.RecommendedExposureIndex    Long    This tag indicates the recommended exposure index value of a camera or input device defined in ISO 12232. When recording this tag, the PhotographicSensitivity and SensitivityType tags shall also be recorded. 
224  0x8833    34867    Photo    Exif.Photo.ISOSpeed    Long    This tag indicates the ISO speed value of a camera or input device that is defined in ISO 12232. When recording this tag, the PhotographicSensitivity and SensitivityType tags shall also be recorded. 
225  0x8834    34868    Photo    Exif.Photo.ISOSpeedLatitudeyyy    Long    This tag indicates the ISO speed latitude yyy value of a camera or input device that is defined in ISO 12232. However, this tag shall not be recorded without ISOSpeed and ISOSpeedLatitudezzz. 
226  0x8835    34869    Photo    Exif.Photo.ISOSpeedLatitudezzz    Long    This tag indicates the ISO speed latitude zzz value of a camera or input device that is defined in ISO 12232. However, this tag shall not be recorded without ISOSpeed and ISOSpeedLatitudeyyy. 
227  0x9000    36864    Photo    Exif.Photo.ExifVersion    Undefined    The version of this standard supported. Nonexistence of this field is taken to mean nonconformance to the standard. 
228  0x9003    36867    Photo    Exif.Photo.DateTimeOriginal    Ascii    The date and time when the original image data was generated. For a digital still camera the date and time the picture was taken are recorded. 
229  0x9004    36868    Photo    Exif.Photo.DateTimeDigitized    Ascii    The date and time when the image was stored as digital data. 
230  0x9101    37121    Photo    Exif.Photo.ComponentsConfiguration    Undefined    Information specific to compressed data. The channels of each component are arranged in order from the 1st component to the 4th. For uncompressed data the data arrangement is given in the <PhotometricInterpretation> tag. However, since <PhotometricInterpretation> can only express the order of Y, Cb and Cr, this tag is provided for cases when compressed data uses components other than Y, Cb, and Cr and to enable support of other sequences. 
231  0x9102    37122    Photo    Exif.Photo.CompressedBitsPerPixel    Rational    Information specific to compressed data. The compression mode used for a compressed image is indicated in unit bits per pixel. 
232  0x9201    37377    Photo    Exif.Photo.ShutterSpeedValue    SRational    Shutter speed. The unit is the APEX (Additive System of Photographic Exposure) setting. 
233  0x9202    37378    Photo    Exif.Photo.ApertureValue    Rational    The lens aperture. The unit is the APEX value. 
234  0x9203    37379    Photo    Exif.Photo.BrightnessValue    SRational    The value of brightness. The unit is the APEX value. Ordinarily it is given in the range of -99.99 to 99.99. 
235  0x9204    37380    Photo    Exif.Photo.ExposureBiasValue    SRational    The exposure bias. The units is the APEX value. Ordinarily it is given in the range of -99.99 to 99.99. 
236  0x9205    37381    Photo    Exif.Photo.MaxApertureValue    Rational    The smallest F number of the lens. The unit is the APEX value. Ordinarily it is given in the range of 00.00 to 99.99, but it is not limited to this range. 
237  0x9206    37382    Photo    Exif.Photo.SubjectDistance    Rational    The distance to the subject, given in meters. 
238  0x9207    37383    Photo    Exif.Photo.MeteringMode    Short    The metering mode. 
239  0x9208    37384    Photo    Exif.Photo.LightSource    Short    The kind of light source. 
240  0x9209    37385    Photo    Exif.Photo.Flash    Short    This tag is recorded when an image is taken using a strobe light (flash). 
241  0x920a    37386    Photo    Exif.Photo.FocalLength    Rational    The actual focal length of the lens, in mm. Conversion is not made to the focal length of a 35 mm film camera. 
242  0x9214    37396    Photo    Exif.Photo.SubjectArea    Short    This tag indicates the location and area of the main subject in the overall scene. 
243  0x927c    37500    Photo    Exif.Photo.MakerNote    Undefined    A tag for manufacturers of Exif writers to record any desired information. The contents are up to the manufacturer. 
244  0x9286    37510    Photo    Exif.Photo.UserComment    Comment    A tag for Exif users to write keywords or comments on the image besides those in <ImageDescription>, and without the character code limitations of the <ImageDescription> tag. 
245  0x9290    37520    Photo    Exif.Photo.SubSecTime    Ascii    A tag used to record fractions of seconds for the <DateTime> tag. 
246  0x9291    37521    Photo    Exif.Photo.SubSecTimeOriginal    Ascii    A tag used to record fractions of seconds for the <DateTimeOriginal> tag. 
247  0x9292    37522    Photo    Exif.Photo.SubSecTimeDigitized    Ascii    A tag used to record fractions of seconds for the <DateTimeDigitized> tag. 
248  0xa000    40960    Photo    Exif.Photo.FlashpixVersion    Undefined    The FlashPix format version supported by a FPXR file. 
249  0xa001    40961    Photo    Exif.Photo.ColorSpace    Short    The color space information tag is always recorded as the color space specifier. Normally sRGB is used to define the color space based on the PC monitor conditions and environment. If a color space other than sRGB is used, Uncalibrated is set. Image data recorded as Uncalibrated can be treated as sRGB when it is converted to FlashPix. 
250  0xa002    40962    Photo    Exif.Photo.PixelXDimension    Long    Information specific to compressed data. When a compressed file is recorded, the valid width of the meaningful image must be recorded in this tag, whether or not there is padding data or a restart marker. This tag should not exist in an uncompressed file. 
251  0xa003    40963    Photo    Exif.Photo.PixelYDimension    Long    Information specific to compressed data. When a compressed file is recorded, the valid height of the meaningful image must be recorded in this tag, whether or not there is padding data or a restart marker. This tag should not exist in an uncompressed file. Since data padding is unnecessary in the vertical direction, the number of lines recorded in this valid image height tag will in fact be the same as that recorded in the SOF. 
252  0xa004    40964    Photo    Exif.Photo.RelatedSoundFile    Ascii    This tag is used to record the name of an audio file related to the image data. The only relational information recorded here is the Exif audio file name and extension (an ASCII string consisting of 8 characters + '.' + 3 characters). The path is not recorded. 
253  0xa005    40965    Photo    Exif.Photo.InteroperabilityTag    Long    Interoperability IFD is composed of tags which stores the information to ensure the Interoperability and pointed by the following tag located in Exif IFD. The Interoperability structure of Interoperability IFD is the same as TIFF defined IFD structure but does not contain the image data characteristically compared with normal TIFF IFD. 
254  0xa20b    41483    Photo    Exif.Photo.FlashEnergy    Rational    Indicates the strobe energy at the time the image is captured, as measured in Beam Candle Power Seconds (BCPS). 
255  0xa20c    41484    Photo    Exif.Photo.SpatialFrequencyResponse    Undefined    This tag records the camera or input device spatial frequency table and SFR values in the direction of image width, image height, and diagonal direction, as specified in ISO 12233. 
256  0xa20e    41486    Photo    Exif.Photo.FocalPlaneXResolution    Rational    Indicates the number of pixels in the image width (X) direction per <FocalPlaneResolutionUnit> on the camera focal plane. 
257  0xa20f    41487    Photo    Exif.Photo.FocalPlaneYResolution    Rational    Indicates the number of pixels in the image height (V) direction per <FocalPlaneResolutionUnit> on the camera focal plane. 
258  0xa210    41488    Photo    Exif.Photo.FocalPlaneResolutionUnit    Short    Indicates the unit for measuring <FocalPlaneXResolution> and <FocalPlaneYResolution>. This value is the same as the <ResolutionUnit>. 
259  0xa214    41492    Photo    Exif.Photo.SubjectLocation    Short    Indicates the location of the main subject in the scene. The value of this tag represents the pixel at the center of the main subject relative to the left edge, prior to rotation processing as per the <Rotation> tag. The first value indicates the X column number and second indicates the Y row number. 
260  0xa215    41493    Photo    Exif.Photo.ExposureIndex    Rational    Indicates the exposure index selected on the camera or input device at the time the image is captured. 
261  0xa217    41495    Photo    Exif.Photo.SensingMethod    Short    Indicates the image sensor type on the camera or input device. 
262  0xa300    41728    Photo    Exif.Photo.FileSource    Undefined    Indicates the image source. If a DSC recorded the image, this tag value of this tag always be set to 3, indicating that the image was recorded on a DSC. 
263  0xa301    41729    Photo    Exif.Photo.SceneType    Undefined    Indicates the type of scene. If a DSC recorded the image, this tag value must always be set to 1, indicating that the image was directly photographed. 
264  0xa302    41730    Photo    Exif.Photo.CFAPattern    Undefined    Indicates the color filter array (CFA) geometric pattern of the image sensor when a one-chip color area sensor is used. It does not apply to all sensing methods. 
265  0xa401    41985    Photo    Exif.Photo.CustomRendered    Short    This tag indicates the use of special processing on image data, such as rendering geared to output. When special processing is performed, the reader is expected to disable or minimize any further processing. 
266  0xa402    41986    Photo    Exif.Photo.ExposureMode    Short    This tag indicates the exposure mode set when the image was shot. In auto-bracketing mode, the camera shoots a series of frames of the same scene at different exposure settings. 
267  0xa403    41987    Photo    Exif.Photo.WhiteBalance    Short    This tag indicates the white balance mode set when the image was shot. 
268  0xa404    41988    Photo    Exif.Photo.DigitalZoomRatio    Rational    This tag indicates the digital zoom ratio when the image was shot. If the numerator of the recorded value is 0, this indicates that digital zoom was not used. 
269  0xa405    41989    Photo    Exif.Photo.FocalLengthIn35mmFilm    Short    This tag indicates the equivalent focal length assuming a 35mm film camera, in mm. A value of 0 means the focal length is unknown. Note that this tag differs from the <FocalLength> tag. 
270  0xa406    41990    Photo    Exif.Photo.SceneCaptureType    Short    This tag indicates the type of scene that was shot. It can also be used to record the mode in which the image was shot. Note that this differs from the <SceneType> tag. 
271  0xa407    41991    Photo    Exif.Photo.GainControl    Short    This tag indicates the degree of overall image gain adjustment. 
272  0xa408    41992    Photo    Exif.Photo.Contrast    Short    This tag indicates the direction of contrast processing applied by the camera when the image was shot. 
273  0xa409    41993    Photo    Exif.Photo.Saturation    Short    This tag indicates the direction of saturation processing applied by the camera when the image was shot. 
274  0xa40a    41994    Photo    Exif.Photo.Sharpness    Short    This tag indicates the direction of sharpness processing applied by the camera when the image was shot. 
275  0xa40b    41995    Photo    Exif.Photo.DeviceSettingDescription    Undefined    This tag indicates information on the picture-taking conditions of a particular camera model. The tag is used only to indicate the picture-taking conditions in the reader. 
276  0xa40c    41996    Photo    Exif.Photo.SubjectDistanceRange    Short    This tag indicates the distance to the subject. 
277  0xa420    42016    Photo    Exif.Photo.ImageUniqueID    Ascii    This tag indicates an identifier assigned uniquely to each image. It is recorded as an ASCII string equivalent to hexadecimal notation and 128-bit fixed length. 
278  0xa430    42032    Photo    Exif.Photo.CameraOwnerName    Ascii    This tag records the owner of a camera used in photography as an ASCII string. 
279  0xa431    42033    Photo    Exif.Photo.BodySerialNumber    Ascii    This tag records the serial number of the body of the camera that was used in photography as an ASCII string. 
280  0xa432    42034    Photo    Exif.Photo.LensSpecification    Rational    This tag notes minimum focal length, maximum focal length, minimum F number in the minimum focal length, and minimum F number in the maximum focal length, which are specification information for the lens that was used in photography. When the minimum F number is unknown, the notation is 0/0 
281  0xa433    42035    Photo    Exif.Photo.LensMake    Ascii    This tag records the lens manufactor as an ASCII string. 
282  0xa434    42036    Photo    Exif.Photo.LensModel    Ascii    This tag records the lens's model name and model number as an ASCII string. 
283  0xa435    42037    Photo    Exif.Photo.LensSerialNumber    Ascii    This tag records the serial number of the interchangeable lens that was used in photography as an ASCII string.'''.split('\n') 
284   
285  IOP_DATA = '''0x0001    1    Iop    Exif.Iop.InteroperabilityIndex    Ascii    Indicates the identification of the Interoperability rule. Use "R98" for stating ExifR98 Rules. Four bytes used including the termination code (NULL). see the separate volume of Recommended Exif Interoperability Rules (ExifR98) for other tags used for ExifR98. 
286  0x0002    2    Iop    Exif.Iop.InteroperabilityVersion    Undefined    Interoperability version 
287  0x1000    4096    Iop    Exif.Iop.RelatedImageFileFormat    Ascii    File format of image file 
288  0x1001    4097    Iop    Exif.Iop.RelatedImageWidth    Long    Image width 
289  0x1002    4098    Iop    Exif.Iop.RelatedImageLength    Long    Image height'''.split('\n') 
290   
291  GPS_DATA = '''0x0000    0    GPSInfo    Exif.GPSInfo.GPSVersionID    Byte    Indicates the version of <GPSInfoIFD>. The version is given as 2.0.0.0. This tag is mandatory when <GPSInfo> tag is present. (Note: The <GPSVersionID> tag is given in bytes, unlike the <ExifVersion> tag. When the version is 2.0.0.0, the tag value is 02000000.H). 
292  0x0001    1    GPSInfo    Exif.GPSInfo.GPSLatitudeRef    Ascii    Indicates whether the latitude is north or south latitude. The ASCII value 'N' indicates north latitude, and 'S' is south latitude. 
293  0x0002    2    GPSInfo    Exif.GPSInfo.GPSLatitude    Rational    Indicates the latitude. The latitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively. When degrees, minutes and seconds are expressed, the format is dd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of minutes are given up to two decimal places, the format is dd/1,mmmm/100,0/1. 
294  0x0003    3    GPSInfo    Exif.GPSInfo.GPSLongitudeRef    Ascii    Indicates whether the longitude is east or west longitude. ASCII 'E' indicates east longitude, and 'W' is west longitude. 
295  0x0004    4    GPSInfo    Exif.GPSInfo.GPSLongitude    Rational    Indicates the longitude. The longitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively. When degrees, minutes and seconds are expressed, the format is ddd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of minutes are given up to two decimal places, the format is ddd/1,mmmm/100,0/1. 
296  0x0005    5    GPSInfo    Exif.GPSInfo.GPSAltitudeRef    Byte    Indicates the altitude used as the reference altitude. If the reference is sea level and the altitude is above sea level, 0 is given. If the altitude is below sea level, a value of 1 is given and the altitude is indicated as an absolute value in the GSPAltitude tag. The reference unit is meters. Note that this tag is BYTE type, unlike other reference tags. 
297  0x0006    6    GPSInfo    Exif.GPSInfo.GPSAltitude    Rational    Indicates the altitude based on the reference in GPSAltitudeRef. Altitude is expressed as one RATIONAL value. The reference unit is meters. 
298  0x0007    7    GPSInfo    Exif.GPSInfo.GPSTimeStamp    Rational    Indicates the time as UTC (Coordinated Universal Time). <TimeStamp> is expressed as three RATIONAL values giving the hour, minute, and second (atomic clock). 
299  0x0008    8    GPSInfo    Exif.GPSInfo.GPSSatellites    Ascii    Indicates the GPS satellites used for measurements. This tag can be used to describe the number of satellites, their ID number, angle of elevation, azimuth, SNR and other information in ASCII notation. The format is not specified. If the GPS receiver is incapable of taking measurements, value of the tag is set to NULL. 
300  0x0009    9    GPSInfo    Exif.GPSInfo.GPSStatus    Ascii    Indicates the status of the GPS receiver when the image is recorded. "A" means measurement is in progress, and "V" means the measurement is Interoperability. 
301  0x000a    10    GPSInfo    Exif.GPSInfo.GPSMeasureMode    Ascii    Indicates the GPS measurement mode. "2" means two-dimensional measurement and "3" means three-dimensional measurement is in progress. 
302  0x000b    11    GPSInfo    Exif.GPSInfo.GPSDOP    Rational    Indicates the GPS DOP (data degree of precision). An HDOP value is written during two-dimensional measurement, and PDOP during three-dimensional measurement. 
303  0x000c    12    GPSInfo    Exif.GPSInfo.GPSSpeedRef    Ascii    Indicates the unit used to express the GPS receiver speed of movement. "K" "M" and "N" represents kilometers per hour, miles per hour, and knots. 
304  0x000d    13    GPSInfo    Exif.GPSInfo.GPSSpeed    Rational    Indicates the speed of GPS receiver movement. 
305  0x000e    14    GPSInfo    Exif.GPSInfo.GPSTrackRef    Ascii    Indicates the reference for giving the direction of GPS receiver movement. "T" denotes true direction and "M" is magnetic direction. 
306  0x000f    15    GPSInfo    Exif.GPSInfo.GPSTrack    Rational    Indicates the direction of GPS receiver movement. The range of values is from 0.00 to 359.99. 
307  0x0010    16    GPSInfo    Exif.GPSInfo.GPSImgDirectionRef    Ascii    Indicates the reference for giving the direction of the image when it is captured. "T" denotes true direction and "M" is magnetic direction. 
308  0x0011    17    GPSInfo    Exif.GPSInfo.GPSImgDirection    Rational    Indicates the direction of the image when it was captured. The range of values is from 0.00 to 359.99. 
309  0x0012    18    GPSInfo    Exif.GPSInfo.GPSMapDatum    Ascii    Indicates the geodetic survey data used by the GPS receiver. If the survey data is restricted to Japan, the value of this tag is "TOKYO" or "WGS-84". 
310  0x0013    19    GPSInfo    Exif.GPSInfo.GPSDestLatitudeRef    Ascii    Indicates whether the latitude of the destination point is north or south latitude. The ASCII value "N" indicates north latitude, and "S" is south latitude. 
311  0x0014    20    GPSInfo    Exif.GPSInfo.GPSDestLatitude    Rational    Indicates the latitude of the destination point. The latitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively. If latitude is expressed as degrees, minutes and seconds, a typical format would be dd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of minutes are given up to two decimal places, the format would be dd/1,mmmm/100,0/1. 
312  0x0015    21    GPSInfo    Exif.GPSInfo.GPSDestLongitudeRef    Ascii    Indicates whether the longitude of the destination point is east or west longitude. ASCII "E" indicates east longitude, and "W" is west longitude. 
313  0x0016    22    GPSInfo    Exif.GPSInfo.GPSDestLongitude    Rational    Indicates the longitude of the destination point. The longitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively. If longitude is expressed as degrees, minutes and seconds, a typical format would be ddd/1,mm/1,ss/1. When degrees and minutes are used and, for example, fractions of minutes are given up to two decimal places, the format would be ddd/1,mmmm/100,0/1. 
314  0x0017    23    GPSInfo    Exif.GPSInfo.GPSDestBearingRef    Ascii    Indicates the reference used for giving the bearing to the destination point. "T" denotes true direction and "M" is magnetic direction. 
315  0x0018    24    GPSInfo    Exif.GPSInfo.GPSDestBearing    Rational    Indicates the bearing to the destination point. The range of values is from 0.00 to 359.99. 
316  0x0019    25    GPSInfo    Exif.GPSInfo.GPSDestDistanceRef    Ascii    Indicates the unit used to express the distance to the destination point. "K", "M" and "N" represent kilometers, miles and knots. 
317  0x001a    26    GPSInfo    Exif.GPSInfo.GPSDestDistance    Rational    Indicates the distance to the destination point. 
318  0x001b    27    GPSInfo    Exif.GPSInfo.GPSProcessingMethod    Undefined    A character string recording the name of the method used for location finding. The first byte indicates the character code used, and this is followed by the name of the method. 
319  0x001c    28    GPSInfo    Exif.GPSInfo.GPSAreaInformation    Undefined    A character string recording the name of the GPS area. The first byte indicates the character code used, and this is followed by the name of the GPS area. 
320  0x001d    29    GPSInfo    Exif.GPSInfo.GPSDateStamp    Ascii    A character string recording date and time information relative to UTC (Coordinated Universal Time). The format is "YYYY:MM:DD.". 
321  0x001e    30    GPSInfo    Exif.GPSInfo.GPSDifferential    Short    Indicates whether differential correction is applied to the GPS receiver.'''.split('\n') 
322   
323   
324  # The next few lines of code parse the text above and build look up tables. 
325  EXIF_TAGS = {} 
326  for each in EXIF_DATA: 
327      data = each.split() 
328      hex_tag,dec_tag,category,name,datatype = data[:5] 
329      description = " ".join(data[5:]) 
330      name = name.split('.')[2] 
331      dec_tag = int(dec_tag) 
332      EXIF_TAGS[dec_tag] = (name,datatype,category,description) 
333