Canon EOS R5 shutter mode

Started by JohnMoyer, October 14, 2021, 09:11:14 PM

Previous topic - Next topic

JohnMoyer

it might be coincidence, but I suspect that this value is shutter mode:

fragment of diff from exiftool -v -U on two Canon CR3 files
2732c2732
< | | | | Canon_CameraInfoUnknown_0x0a15 = 2
---
> | | | | Canon_CameraInfoUnknown_0x0a15 = 0

My guess is that Canon_CameraInfoUnknown_0x0a15 is
0 == mechanical
1 == electronic first curtain
2 == electronic shutter

I hope that this might be helpful.

John
---
https://www.rsok.com/~jrm/

Phil Harvey

Hi John,

Thanks, but there is so much information in the CameraInfo block that analyzing just two files is not enough.  The diff output would have contained many other differences too.  I usually test this on at least 7 images with different settings in a random pattern (ie. not simply alternating the settings, or changing them once) because it is easy to get fooled with bits that toggle or change just once.  Also, it would be good to confirm the value of 1.

- 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 ($).

JohnMoyer

Sorry for the incomplete information.

I put three raw files and exiftool output on my web server at https://www.rsok.com/~jrm/raw/
4653 is electronic first curtain
4654 is electronic shutter
4655 is mechanical shutter

I covered the lens to get mostly black for these three images. I nearly always use electronic first curtain and the value "1" is always there. I had hoped that this might prompt others with canon cameras that have an option for electronic or mechanical shutter to also post information.

If you have suggestions for settings for me to experiment further, I am happy to help. Thanks for providing exiftool.

John

JohnMoyer

I searched through old photos for some where I might have used electronic shutter instead of electronic first curtain.

So far as I can remember, I was attempting to make a focus stack of wild garlic beginning with IMG_1008. IMG_1007 was a single image of the wild garlic so far as I can remember. I have copied the raw files to my web server. I also copied two photos of a cardinal that have different values for what I suspect is shutter mode to the web server. https://www.rsok.com/~jrm/raw/

The cardinal photos would be a possible counter example to disprove that Canon_CameraInfoUnknown_0x0a15 is shutter mode because I cannot remember whether I changed shutter mode, but it is plausible that I did change shutter mode.

The edited versions of these photos are https://www.rsok.com/~jrm/2021May19_birds_and_cats/2021may10_allium_DC_1021c.html and https://www.rsok.com/~jrm/2021May19_birds_and_cats/2021may14_cardinal_IMG_1081c.html

I do nor find Canon_CameraInfoUnknown_0x0a15 in the CR2 files from my EOS 80D.

It has been more than 20 years since I wrote anything in Perl. I cannot be of much help.

Thanks again.

John

Phil Harvey

Hi John,

The CameraInfo block is an unstructured block of binary data that is unique to each model, and often changes with a firmware upgrade for the same model (it is called CameraInfo80D, not CameraInfoUnknown for the 80D since some tags have been decoded for this model).  So decoding of this block is tricky, because we also need to check other firmware versions, or at least have a way to recognize when the tag is valid for a given image.

Given that, here is my analysis of your images (using a "multi_diff" script that I wrote):

First, comparing them in the order you shot them shows a number of bytes that increment (as expected with sequential shots):

> multi_diff 4653.exif.txt 4654.exif.txt 4655.exif.txt
Increments: | | | | | Canon_CameraInfoUnknown_0x0025 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0091 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x00a5 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0111 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0125 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0191 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x01a5 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0211 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0225 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0291 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x02a5 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0311 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0325 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0391 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0411 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0491 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0511 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0591 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x05cf = 0+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0611 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x064f = 0+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0691 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0711 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0791 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0811 = 4+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0af1 = 42+1+1
done


Now, comparing them in the order which you expect the value to increment:

> multi_diff 4655.exif.txt 4653.exif.txt 4654.exif.txt
Increments:   | | | | | Canon_FileInfo_0x0017 = 0+1+1
Increments: | | | | | Canon_FileInfo_0x0017 = 0+1+1
Increments: | | | | | Canon_CameraInfoUnknown_0x0a15 = 0+1+1
done


So FileInfo_0x0017 also has the same values as CameraInfoUnknown_0x0a15 for these files.  Is it possible this contains the same information?  FileInfo is much more stable than CameraInfo, and applies to all models, but I have also seen values of 21 and 22 for this tag, so these would still be a mystery.

- 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 ($).


JohnMoyer

I hope this might be helpful.

I ran all 3688 CR3 files that i have saved from my EOS R5 through exiftool and did not see "Canon_FileInfo_0x0017 =" 21 or 22. I saw "Canon_FileInfo_0x0017 = 2" 292 times. There were no values but 1 or 2 which matches my memory since I do not remember using mechanical shutter except for a recent test.

Nearly all of these were when I was experimenting with "Depth Compositing" focus stacking. A few were when I was trying to figure out whether I lost information in shadows if I were to use electronic shutter, so far as I can remember, because they are all dark.

Debian Bullseye "libimage-exiftool-perl 12.16+dfsg-2".

Thanks again

John

Phil Harvey

Hi John,

To double-check this, would it be possible to shoot a series of 7 images to verify this, and tell me the values of Canon_FileInfo_0x0017?:

1. mechanical
2. mechanical
3. electronic
4. electronic first curtain
5. electronic
6. mechanical
7. electronic first curtain

Shooting them in this specific order will avoid false matches due to metadata that changes with regular patterns.

Thanks.

- 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 ($).

JohnMoyer

Done.

The raw files are on my web server in the same location.


exiftool -v3 -U IMG_467[7-9].CR3 IMG_468[0-4].CR3 | egrep "Canon_FileInfo_0x0017 = |IMG_"
======== IMG_4677.CR3
  FileName = IMG_4677.CR3
  | | | | | Canon_FileInfo_0x0017 = 0
| | | | | Canon_FileInfo_0x0017 = 0
======== IMG_4678.CR3
  FileName = IMG_4678.CR3
  | | | | | Canon_FileInfo_0x0017 = 0
| | | | | Canon_FileInfo_0x0017 = 0
======== IMG_4679.CR3
  FileName = IMG_4679.CR3
  | | | | | Canon_FileInfo_0x0017 = 2
| | | | | Canon_FileInfo_0x0017 = 2
======== IMG_4680.CR3
  FileName = IMG_4680.CR3
  | | | | | Canon_FileInfo_0x0017 = 1
| | | | | Canon_FileInfo_0x0017 = 1
======== IMG_4681.CR3
  FileName = IMG_4681.CR3
  | | | | | Canon_FileInfo_0x0017 = 2
| | | | | Canon_FileInfo_0x0017 = 2
======== IMG_4682.CR3
  FileName = IMG_4682.CR3
  | | | | | Canon_FileInfo_0x0017 = 0
| | | | | Canon_FileInfo_0x0017 = 0
======== IMG_4683.CR3
  FileName = IMG_4683.CR3
  | | | | | Canon_FileInfo_0x0017 = 1
| | | | | Canon_FileInfo_0x0017 = 1


Thanks again

John

Phil Harvey

Hi John,

Great, thanks!  This is very definitive.

I'll add decoding for this to ExifTool 12.33 (to be released later today).

When testing this, I also found a sample with a value of 3, so there will be a few unknown shutter modes out there.

- 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 ($).

JohnMoyer