Main Menu

AutoIS and BaseISO tags

Started by mvadu, October 20, 2010, 10:22:45 PM

Previous topic - Next topic

mvadu

Phil, I have an image which was shot by Canon t1i (500D) with ISO set to 100.

Canon Shot Info (from -U -v3) shows
3)  CanonShotInfo (SubDirectory) -->
  | | |     - Tag 0x0004 (68 bytes, int16u[34]):
  | | |         0562: 44 00 00 00 a0 00 f8 00 80 00 20 01 f4 ff 00 00 [D......... .....]
  | | |         0572: 03 00 00 00 08 00 08 00 9b 00 00 00 00 00 00 00 [................]
  | | |         0582: 00 00 00 00 01 00 00 00 00 00 80 00 24 01 96 00 [............$...]
  | | |         0592: 00 00 00 00 f8 00 ff ff ff ff ff ff ff ff 00 00 [................]
  | | |         05a2: 00 00 00 00                                     [....]
  | | | + [BinaryData directory, 68 bytes]
  | | | | AutoISO = 0
  | | | | - Tag 0x0001 (2 bytes, int16s[1]):
  | | | |     0564: 00 00                                           [..]
  | | | | BaseISO = 160
  | | | | - Tag 0x0002 (2 bytes, int16s[1]):
  | | | |     0566: a0 00                                           [..]


So if we decode them using
fValue=(lValue/32.0f*log(2.f))*100; (my code)
or ValueConv => 'exp($val/32*log(2))*100' (%Image::ExifTool::Canon::ShotInfo)
we get
AutoISO=0 and BaseISO=347, But basic -all gives

Auto ISO                        : 100
Base ISO                        : 100

I don't see any defaulting to 100 in %Image::ExifTool::Canon::ShotInfo.
Where is it getting converted to 100?

Phil Harvey

I think you forgot the last /32.

The conversion for BaseISO is exp($val/32*log(2))*100/32.

Which is different from the conversion for AutoISO.

Figuring out these conversions is why I get the big bucks. ;)   Hey, wait!  I do this for free... :P

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

BogdanH

See, see... did I just noticed great sense of humor? :)

mvadu

#3
I am feeling ashamed, i misread "exp" function to be PERL equivalent of "eval" in javascript, so in my conversion I totally missed e^lValue/32.0f*log(2.f), and just considered lValue/32.0f*log(2.f). So stupid!! after adding "exp" to my code too I am matching the results. :D
Thank you for your guidance.. btw can you imagine if you have charged few bucks for each new tag for each user.. you could have retired by now :)

Phil Harvey

About retiring:  I have calculated that if I received 25 cents for every exiftool download I could live off that income.  (And that is just the exiftool home site -- I'm not even counting downloads from any of the dozens of other sites hosting versions of exiftool for download.)  The number of downloads is just crazy.  I can't believe that many people are actually using my tool.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).