Links
http://home.cfl.rr.com/genecash/
http://topo.math.u-psud.fr/~bousch/exifdump.py
http://ray.cg.tuwien.ac.at/rft/Photography/TipsAndTricks/Exif/
http://sourceforge.net/project/showfiles.php?group_id=27466
http://pyexif.sourceforge.net/original_mail.txt
http://home.cfl.rr.com/genecash/
http://www.burren.cx/david/canon.html
Code for my Garmin GPS http://home.cfl.rr.com/genecash/garmin.html
http://home.cfl.rr.com/genecash/digital_camera.html
EXIF MakerNote of Canon
This page is intended to be read as an appendix to the EXIF documentation at http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html. On a related note, Max Lyons' Nikon MakerNote documentation (reproduced in the above page) lives at http://tawba.tripod.com/990exif.htm.
The data below was primarily analysed by David Burren. This was all decoded without the benefit of documentation by Canon. There might be mistakes (it's from a reasonably small sample of equipment types) and there is almost certainly more data in there waiting to be deciphered.
The master version of this information is available at: http://www.burren.cx/david/canon.html. Please send any updates to David.
Document Id:
$Revision: 1.15 $
$Date: 2001/06/03 11:54:36 $
Updates:
1.15: June 3, 2001
* Updates from Giordano Biondani.
New elements in tag 0
1.14: April 17, 2001
* Updated URL of TsuruZoh's EXIF page.
1.13: February 21, 2001
* Identified 2nd-curtain sync in flash mode
1.12: February 7, 2001
* Fixed a typo on tag 0x8 identified by TsuruZoh Tachibanaya.
1.11: January 30, 2001
* Updated Flash Mode based on Chris Breeze's G1 testing
1.10: January 23, 2001
* Identified Flash Mode based on D30 and S100 testing
1.9: January 15, 2001
* Updated AF point selection
* Comment on G1's use of Focus Mode
1.8: January 15, 2001
* Integrated information from G1 work by Chris Breeze.
Image size, ISO, Subject Distance
* Added list of D30 Custom Functions for reference.
1.7: January 14, 2001
* Fixed various cosmetic details.
1.6: January 14, 2001
* Integrated information from Zalman Stern.
Macro, D30 "parameters", metering, additional focus point field.
* Decoded AF point used vs. selected, fixed omission of tag 0x6 in rev 1.5
1.5: January 13, 2001
* Initial public release.
The data:
Canon's MakerNote data is in IFD format, starting at offset 0.
Some of these tags and fields are only produced on cameras such as the EOS D30, but (to current observation) all this is valid for all Canon digicams (at least since the A50). If the tag is not found, or is shorter than shown here, it simply means that data is not supported by that camera.
Tag No. Tag Name Format CompoNo Value
0x0 Unknown Unsigned Short 6 Always 0
0x1 Unknown Unsigned Short varies
Offset within tag Meaning
0 Length of tag in bytes (i.e. twice the number of shorts)
1 Macro mode 1: macro
2: normal
2 If non-zero, length of self-timer in 10ths of a second
3 Quality 2: normal
3: fine
5: superfine
4 Flash mode 0: flash not fired
1: auto
2: on
3: red-eye reduction
4: slow synchro
5: auto + red-eye reduction
6: on + red-eye reduction
16: external flash (not set on D30)
5 Continuous drive mode 0: single or timer (see field 2)
1: continuous
6 unknown
7 Focus Mode 0: One-Shot
1: AI Servo
2: AI Focus
3: MF
4: Single (but check field 32)
5: Continuous
6: MF
8, 9 unknown
10 Image size 0: large
1: medium
2: small
11 "Easy shooting" mode 0: Full Auto
1: Manual
2: Landscape
3: Fast Shutter
4: Slow Shutter
5: Night
6: B&W
7: Sepia
8: Portrait
9: Sports
10: Macro / Close-Up
11: Pan Focus
12 Digital Zoom 0: none
1: 2x
2: 4x
13 Contrast 0xffff: low
0x0000: normal
0x0001: high
14 Saturation 0xffff: low
0x0000: normal
0x0001: high
15 Sharpness 0xffff: low
0x0000: normal
0x0001: high
16 ISO If zero, use ISOSpeedRatings EXIF tag instead
15: auto
16: 50
17: 100
18: 200
19: 400
17 Metering mode 3: Evaluative
4: Partial
5: Center-weighted
18 Focus type 0: manual
1: auto
3: close-up (macro)
8: locked (pan mode)
19 AF point selected 0x3000: none (MF)
0x3001: auto-selected
0x3002: right
0x3003: center
0x3004: left
20 Exposure mode 0: "Easy shooting" (use field 11)
1: Program
2: Tv-priority
3: Av-priority
4: Manual
5: A-DEP
21, 22 unknown
23 "long" focal length of lens (in "focal units")
24 "short" focal length of lens (in "focal units")
25 "focal units" per mm
26 - 27 unknown
28 Flash Activity 0: did not fire
1: fired
29 Flash details Bits 15..0:
14: external E-TTL
13: internal flash
11: FP sync used
7: 2nd("rear")-curtain sync used
4: FP sync enabled
other bits unknown
30 - 31 unknown
32 Focus mode G1 seems to use this in preference to field 7
0: Single
1: Continuous
0x3 Unknown Unsigned Short 4 unknown
0x4 Unknown Unsigned Short varies
Offset within tag Meaning
0 Length of tag in bytes (i.e. twice the number of shorts)
1 - 6 unknown
7 White balance 0: auto
1: Sunny
2: Cloudy
3: Tungsten
4: Flourescent
5: Flash
6: Custom
8 unknown
9 Sequence number (if in a continuous burst)
10 - 13 unknown
14 AF point used Only set in One-Shot mode?
If none used, AF failed or manual focus was used (e.g. on a lens with full-time manual focus)
Bits 15..0:
15-12: number of available focus points
2: left
1: center
0: right
15 Flash bias 0xffc0: -2 EV
0xffcc: -1.67 EV
0xffd0: -1.50 EV
0xffd4: -1.33 EV
0xffe0: -1 EV
0xffec: -0.67 EV
0xfff0: -0.50 EV
0xfff4: -0.33 EV
0x0000: 0 EV
0x000c: 0.33 EV
0x0010: 0.50 EV
0x0014: 0.67 EV
0x0020: 1 EV
0x002c: 1.33 EV
0x0030: 1.50 EV
0x0034: 1.67 EV
0x0040: 2 EV
16 - 18 unknown
19 Subject Distance Units are either 0.01m or 0.001m (both have been observed). Still investigating.
In any case, the SubjectDistance EXIF tag is set by Canon cameras.
0x6 Image type Ascii string 32 e.g.: "IMG:EOS D30 JPEG"
Has trailing whitespace.
0x7 Firmware version Ascii string 24 May have trailing NULs and whitespace.
0x8 Image Number Unsigned Long 1 Normally reported as FFF-XXXX.
FFF is this value divided by 10000, XXXX is this value mod 10000.
0x9 Owner name Ascii string 32 May have trailing NULs and whitespace.
0xa Unknown Unsigned Short varies unknown
0xc Camera serial number Unsigned Long 1 High 16 bits are printed as a 4-digit hex number.
Low 16 bits are printed as a 5-digit decimal number.
These are concatenated to form the serial number. Example printf() format string would be "%04X%05d".
0xd Unknown Unsigned Short varies unknown
0xf Custom Functions Unsigned Short varies First short is the number of bytes in the tag (i.e. twice the number of shorts)
For each other value: the top 8 bits are the C.Fn number, and the lower 8 bits are the value.
EOS D30 Custom Functions
C.Fn Name Value
1 Long exposure noise reduction 0: Off
1: On
2 Shutter/AE-lock buttons 0: AF/AE lock
1: AE lock/AF
2: AF/AF lock
3: AE+release/AE+AF
3 Mirror lockup 0: Disable
1: Enable
4 Tv/Av and exposure level 0: 1/2 stop
1: 1/3 stop
5 AF-assist light 0: On (auto)
1: Off
6 Shutter speed in Av mode 0: Automatic
1: 1/200 (fixed)
7 AEB sequence/auto cancellation 0: 0, -, + / Enabled
1: 0, -, + / Disabled
2: -, 0, + / Enabled
3: -, 0, + / Disabled
8 Shutter curtain sync 0: 1st-curtain sync
1: 2nd-curtain sync
9 Lens AF stop button Fn. Switch 0: AF stop
1: Operate AF
2: Lock AE and start timer
10 Auto reduction of fill flash 0: Enable
1: Disable
11 Menu button return position 0: Top
1: Previous (volatile)
2: Previous
12 SET button func. when shooting 0: Not assigned
1: Change quality
2: Change ISO speed
3: Select parameters
13 Sensor cleaning 0: Disable
1: Enable
Python/Module/ExifBilderRename (last modified 2008-11-04 07:00:20)