Nikon D850 AF Points Used - changes not work

Started by fpria, May 16, 2020, 03:46:43 AM

Previous topic - Next topic

fpria

I have a problem changing the tag: AFPointsUsed in files from Nikon D850.
For example, this file: https://4.img-dpreview.com/files/p/sample_galleries/5682971467/7312607286.jpg

Reading values gives me this:
AF Points Used: A9
Primary AF Point: A9

When changing these values using ExifTool values are saved to the file but does not change anything when I view this photo with Nikon Capture NX-D which displays the active AF point.
exiftool.exe -AFPointsUsed=C6 d850.jpg

Everything works fine on older cameras: D800, D750, D600. The D850 is a newer generation, so the data on the active focus point is probably saved in a different place.
So where does ExifTool get the value of A9 by reading it and is it correct?


Phil Harvey

Yes, I saw this github issue.  It will take me some time to research this because I have to dig out the backups of my old emails to see if I have tried to decode this in the past.  Best case is that I will need lots of samples to be able to decode this.  Worst case is that I have already tried this and failed.  It will be next week before I can look into this in detail.

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

fpria

Thanks for your interest, I think the problem will also apply to the D5 and D500 models because they have the same focus mechanism. Unfortunately, I do not have any of them so when it comes to sample photos I will not help, but I hope that you will be able to solve it, because the situation will probably also apply to newer models that will be released.

Hayo Baan

I have a D500 and can provide example files.
Hayo Baan – Photography
Web: www.hayobaan.nl

Phil Harvey

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

fpria

Phil, did you manage to check something?

Here is 3 pictures taken D850 which use different focus points so that you do not have to reach even for the camera for testing :)

Focus point: A6
https://2.img-dpreview.com/files/p/sample_galleries/5682971467/2658393484.jpg

Focus point: I14
https://4.img-dpreview.com/files/p/sample_galleries/5682971467/4205305748.jpg

Focus point: E14
https://4.img-dpreview.com/files/p/sample_galleries/5682971467/4316079455.jpg

Phil Harvey

I still have to find time to look into this.  The weather has been too nice recently, so I have been out taking pictures instead of indoors at my computer. :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 ($).

Phil Harvey

#7
This is a bit complicated.  There are 3 separate tags storing focus-point bits in the AFInfo2 record for the D500 when the 153-point phase-detect AF is used.  I am struggling a bit to give meaningful names to these tags.  In the output below, they are called AFPointsUsed, AFPointsSelected and AFPointsInFocus, but I'm open to better ideas.

Nikon Capture NX-D preferentially displays AFPointsInFocus, and if this is "(none)" then uses AFPointsSelected instead.  It doesn't seem to display the AFPointsUsed that ExifTool is currently decoding.

Here are the values of these tags for various shot conditions with my D500 (all with single-point AF and the center point, E9, selected).  I disabled the Shutter/AF-On function so I could capture an image with the AF system off.  In the table below, "AF pre-focus" is focusing before the shutter release (like AF-S I presume, but I was in AF-C mode with Shutter/AF-On disabled), and "AF during capture" is focusing during shutter release.  "off" indicates the focus system as not active, "bad" indicates that it was on but not focused, and "good" indicates that it was on and focused:









AF
pre-focus
AF during
capture
AFPointsUsed
(0x0008)
AFPointsSelected
(0x001c)
AFPointsInFocus
(0x0030)
offoff(none)E9(none)
badoff(none)E9(none)
goodoffE9E9(none)
badbad(none)E9(none)
goodbad(none)E9E9
goodgoodE9E9E9

If anyone has any better ideas for naming these tags, and/or insight into their specific purpose, please let me know.

I think this decoding will be the same for the D850.

- Phil

Edit: Note that AF-CPrioritySelection was set to "Release" for these tests.  Otherwise I couldn't have fired the shutter while not focused.
...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 ($).

Hayo Baan

Hi Phil,

I actually think you named them aptly. For how I read the three sets is as follows:

* AFPoint selected: the focus point(s) you selected.
* AFPoints used: the AFPoints used to determine focus. Since you have single point AF selected it is either the selected point or none. If you have e.g. dynamic area selected this would (potentially) show you multiple points that were used to determine focus.
* AFPoints in focus: again, those AF points that were in focus at the moment of shooting.

My own testing in the past seems to coincide with this.

Note: if you select AF-S instead of AF-C you'll see quite different results (e.g. in-focus might say it was in focus – at the moment of focussing – though at the moment you took the shot it might no longer be). At least this seemed to be my experience YMMV ;)
Hayo Baan – Photography
Web: www.hayobaan.nl

Phil Harvey

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