Nope, those are in the traditional MakerNote directory, not in this new 0xc7d5 one… These are the ones you are looking for (identical to ones in -v4
output). You might want -a -u -s -g1
.
I tried all those yesterday and none of them show the 0xc7d5 block as far as I can tell. It only shows a truncated snippet:
Exif_0xc7d5 : Nikon..II*....TJ..t�..h..[...]
Only the lone -v4/5/x option seem to show th complete block.
Might depend on your exiftool version, I’m using 12.60 and it can break it down. The -v3
/4/5 (of 12.60) shows the hierarchical structure quite nicely:
| | 17) NikonNEFInfo (SubDirectory) -->
| | - Tag 0xc7d5 (640 bytes, undef[640]):
| | 38b48: 4e 69 6b 6f 6e 00 01 02 00 00 49 49 2a 00 08 00 [Nikon.....II*...]
| | 38b58: 00 00 0b 00 05 00 07 00 54 00 00 00 92 00 00 00 [........T.......]
| | 38b68: 06 00 07 00 74 00 00 00 e6 00 00 00 07 00 07 00 [....t...........]
| | 38b78: 68 00 00 00 5a 01 00 00 08 00 07 00 18 00 00 00 [h...Z...........]
| | 38b88: c2 01 00 00 09 00 07 00 24 00 00 00 da 01 00 00 [........$.......]
| | [snip 560 bytes]
| | + [MakerNotes directory with 11 entries]
| | | 0) Nikon_NEFInfo_0x0005 = 0100...Y...y..W....Ir..........
| | | - Tag 0x0005 (84 bytes, undef[84]):
| | | 38be4: 30 31 30 30 03 01 00 00 9a 59 01 00 00 10 00 00 [0100.....Y......]
| | | 38bf4: 04 00 00 00 79 86 00 00 00 00 10 00 57 e3 fe ff [....y.......W...]
| | | 38c04: 00 00 10 00 49 72 00 00 00 00 10 00 00 00 00 00 [....Ir..........]
| | | 38c14: 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 [................]
| | | 38c24: c3 ff ff ff 00 00 10 00 00 00 00 00 00 00 00 00 [................]
| | | 38c34: 00 00 05 85 [....]
| | | 1) Nikon_NEFInfo_0x0006 = 0100...Y......v...).....O.........2
| | | - Tag 0x0006 (116 bytes, undef[116]):
| | | 38c38: 30 31 30 30 01 01 00 00 9a 59 01 00 00 10 00 00 [0100.....Y......]
| | | 38c48: 08 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 [................]
| | | 38c58: 01 00 00 00 0d 76 02 00 00 00 10 00 00 00 00 00 [.....v..........]
| | | 38c68: 01 00 00 00 29 d3 03 00 00 00 10 00 00 00 00 00 [....)...........]
| | | 38c78: 01 00 00 00 7f 4f 0e 00 00 00 10 00 00 00 00 00 [.....O..........]
| | | [snip 36 bytes]
and -a -u -s -g1
works as well.
Nope, checked bot 12.60 and my old 11.16, the latter shows even more data in this specific case.
You might have some Perl caching problems then… It works for @Colin_Adams as well, as seen above…
I can further do e.g.
exiftool -u -b -Nikon_NEFInfo_0x0005 foo.NEF > foo_NEFInfo_0x0005.bin
etc. to get the binary dump of individual fields.
24-120 @ 39 mm
| | 17) NikonNEFInfo (SubDirectory) -->
| | - Tag 0xc7d5 (448 bytes, undef[448]):
| | 49230: 4e 69 6b 6f 6e 00 01 01 00 00 49 49 2a 00 08 00 [Nikon.....II*...]
| | 49240: 00 00 05 00 05 00 07 00 54 00 00 00 4a 00 00 00 [........T...J...]
| | 49250: 06 00 07 00 74 00 00 00 9e 00 00 00 07 00 07 00 [....t...........]
| | 49260: 68 00 00 00 12 01 00 00 08 00 07 00 18 00 00 00 [h...............]
| | 49270: 7a 01 00 00 09 00 07 00 24 00 00 00 92 01 00 00 [z.......$.......]
| | 49280: 00 00 00 00 30 31 30 30 03 01 00 00 9a 59 01 00 [....0100.....Y..]
| | 49290: 00 10 00 00 04 00 00 00 bf 57 00 00 00 00 10 00 [.........W......]
| | 492a0: 52 d0 ff ff 00 00 10 00 8b 30 00 00 00 00 10 00 [R........0......]
| | 492b0: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 [................]
| | 492c0: 00 00 00 00 eb 7e 00 00 00 00 10 00 00 00 00 00 [.....~..........]
| | 492d0: 00 00 00 00 00 00 2e 40 30 31 30 30 01 01 00 00 [.......@0100....]
| | 492e0: 9a 59 01 00 00 10 00 00 08 00 00 00 08 f6 0a 00 [.Y..............]
| | 492f0: 00 00 10 00 00 00 00 00 01 00 00 00 40 6c fb ff [............@l..]
| | 49300: 00 00 10 00 00 00 00 00 01 00 00 00 09 fd fe ff [................]
| | 49310: 00 00 10 00 00 00 00 00 01 00 00 00 6e e3 08 00 [............n...]
| | 49320: 00 00 10 00 00 00 00 00 01 00 00 00 01 00 00 00 [................]
| | 49330: 01 00 00 00 00 00 00 00 cc 00 00 00 00 04 00 00 [................]
| | 49340: 00 00 00 00 00 00 00 00 00 00 25 72 30 31 30 30 [..........%r0100]
| | 49350: 01 02 00 00 9a 59 01 00 00 10 00 00 03 00 00 00 [.....Y..........]
| | 49360: 71 00 00 00 00 00 10 00 9f fe ff ff 00 00 10 00 [q...............]
| | 49370: 00 00 00 00 01 00 00 00 d5 00 00 00 00 00 10 00 [................]
| | 49380: 03 00 00 00 47 ff ff ff 00 00 10 00 7c 01 00 00 [....G.......|...]
| | 49390: 00 00 10 00 00 00 00 00 01 00 00 00 24 00 00 00 [............$...]
| | 493a0: 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 [................]
| | 493b0: 00 00 df 02 30 31 30 30 7d 0b 00 00 00 01 00 00 [....0100}.......]
| | 493c0: 57 1a 00 00 00 01 00 00 00 00 9f e1 6e 03 00 00 [W...........n...]
| | 493d0: 00 02 00 00 b8 02 00 00 00 02 00 00 00 02 00 00 [................]
| | 493e0: 00 02 00 00 00 02 00 00 00 02 00 00 00 00 85 75 [...............u]
and 40 mm 2.0
| | 17) NikonNEFInfo (SubDirectory) -->
| | - Tag 0xc7d5 (448 bytes, undef[448]):
| | 487fc: 4e 69 6b 6f 6e 00 01 01 00 00 49 49 2a 00 08 00 [Nikon.....II*...]
| | 4880c: 00 00 05 00 05 00 07 00 54 00 00 00 4a 00 00 00 [........T...J...]
| | 4881c: 06 00 07 00 74 00 00 00 9e 00 00 00 07 00 07 00 [....t...........]
| | 4882c: 68 00 00 00 12 01 00 00 08 00 07 00 18 00 00 00 [h...............]
| | 4883c: 7a 01 00 00 09 00 07 00 24 00 00 00 92 01 00 00 [z.......$.......]
| | 4884c: 00 00 00 00 30 31 30 30 02 01 00 00 9a 59 01 00 [....0100.....Y..]
| | 4885c: 00 10 00 00 04 00 00 00 24 26 00 00 00 00 10 00 [........$&......]
| | 4886c: 88 ab ff ff 00 00 10 00 c0 2a 00 00 00 00 10 00 [.........*......]
| | 4887c: 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 [................]
| | 4888c: 00 00 00 00 b7 16 00 00 00 00 10 00 00 00 00 00 [................]
| | 4889c: 00 00 00 00 00 00 69 c9 30 31 30 30 01 01 00 00 [......i.0100....]
| | 488ac: 9a 59 01 00 00 10 00 00 08 00 00 00 00 00 00 00 [.Y..............]
| | 488bc: 00 00 10 00 00 00 00 00 01 00 00 00 33 f8 25 00 [............3.%.]
| | 488cc: 00 00 10 00 00 00 00 00 01 00 00 00 43 07 e2 ff [............C...]
| | 488dc: 00 00 10 00 00 00 00 00 01 00 00 00 2e a4 0d 00 [................]
| | 488ec: 00 00 10 00 00 00 00 00 01 00 00 00 01 00 00 00 [................]
| | 488fc: 01 00 00 00 00 00 00 00 c9 00 00 00 00 04 00 00 [................]
| | 4890c: 00 00 00 00 00 00 00 00 00 00 9f e3 30 31 30 30 [............0100]
| | 4891c: 01 02 00 00 9a 59 01 00 00 10 00 00 03 00 00 00 [.....Y..........]
| | 4892c: b3 01 00 00 00 00 10 00 0b fd ff ff 00 00 10 00 [................]
| | 4893c: 00 00 00 00 01 00 00 00 59 01 00 00 00 00 10 00 [........Y.......]
| | 4894c: 03 00 00 00 7e fc ff ff 00 00 10 00 e7 04 00 00 [....~...........]
| | 4895c: 00 00 10 00 00 00 00 00 01 00 00 00 79 ff ff ff [............y...]
| | 4896c: 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 [................]
| | 4897c: 00 00 16 11 30 31 30 30 96 10 00 00 00 01 00 00 [....0100........]
| | 4898c: dd 19 00 00 00 01 00 00 00 00 5b 0c 6e 03 00 00 [..........[.n...]
| | 4899c: 00 02 00 00 b8 02 00 00 00 02 00 00 00 02 00 00 [................]
| | 489ac: 00 02 00 00 00 02 00 00 00 02 00 00 00 00 85 75 [...............u]
Or if you need the whole hierarchical structure for those two lenses.
nikon_lens_data.txt (10.6 KB)
do namespace strings from the Nikon Codec help with the interpretation?
> strings 'Program Files (x86)/Nikon/NEFCodec/NEFCodec.dll' | grep -iE '(nik|nikon)::\S+' | sort
nik::AdaptivePaste
nik::AutoLevels
nik::BarrelDistortion
nik::BPNPWP
nik::BWConversion
nik::CAC
nik::Colorize
nik::ColorProfile
nik::ContrastBrightness
nik::ContrastColorRange
nik::Crop
nik::FitPhoto
nik::Flip
nik::GaussianBlur
nik::GrainNoise
nik::HighPass
nik::LCH
nik::LevelsCurves
nik::Newton
nikon::ActiveDLighting
nikon::ApplicationData
nikon::Brightness
nikon::ChrAb
nikon::ColorBalance
nikon::ColorBooster
nikon::ColorShift
nikon::CurvesOrder
nikon::Diffraction
nikon::Distortion
nikon::DLightingHQ
nikon::DLightingHS
nikon::DLightning
nikon::DustDetection
nikon::DustOff
nikon::EasySharpening
nikon::ExposureSettings
Nikon::FishEye
nikon::Flare
nikon::Flip
nikon::FocusAreas
nikon::LEGeneral
nikon::LongChrAb
nikon::MarkerDescription
nikon::NoiseReduction
nikon::NXHistory
nikon::Perspective
nikon::PhotoEffects
nikon::PictureControl
nikon::PreRotation
nikon::QuickFixContrast
nikon::QuickFixToneCurve
nikon::RedEye
nikon::Rotation
nikon::SizeRes
nikon::transform
nikon::UnsharpMask
nikon::Vignette
nikon::WhiteBalance
nik::RedEye
nik::Rotate
nik::SaturationWarmth
nik::Scale
nik::SelectAdjustment
nik::Straighten
and function names
> strings 'Program Files (x86)/Nikon/NEFCodec/NEFCodec.dll' | grep -ioE '@VCFlt\w+' | sort -u
@VCFltAutoBrightness
@VCFltAutoLevel
@VCFltAutoRetouchBrushMulti
@VCFltBarrelDistortion
@VCFltBnrFelsite
@VCFltColorNoiseV3
@VCFltCrAbCorrection
@VCFltD70ColorShift
@VCFltDust
@VCFltEdgeSoftnessBlur
@VCFltExtraArea
@VCFltFineEdge
@VCFltFnRedeye
@VCFltGaussianBlur
@VCFltGrainNoise
@VCFltHighlightRecovery
@VCFltHighPass
@VCFltLch
@VCFltLinearity
@VCFltMaskMixer
@VCFltMoire
@VCFltNikRedEye
@VCFltOpacityMixer
@VCFltPerspective
@VCFltPixelFormat
@VCFltResolution
@VCFltRGBA
@VCFltSatComp
@VCFltSelectionControlPoint
@VCFltSelectionMixer
@VCFltSelectionTool
@VCFltSpica
@VCFltSpicaYCCA2
@VCFltThreshold
@VCFltVignette
Following this thread as a DAU, I was still wondering if it’s confirmed that exiftool -v4/-v5 image.nef
is what we are looking for. And also, like Colin asked, how to handle zoom lenses.
Assuming we are on the correct way, I can offer the NIKKOR Z DX 50-250mm f/4.5-6.3 VR
.
This is not in lensfun, but I created the data for the distortion correction by myself. I took a selection of focal lengths that exactly match the measuring points of the lensfun data.
50.txt (2.5 KB)
98.txt (2.5 KB)
250.txt (2.5 KB)
lensfun 50-250.txt (990 Bytes)
… Bump
I’d also like to contribute, but both of my lenses are in the lensfun database:
- Nikkor Z 40 mm f/2.0
- Nikkor Z 24-70 f/4.0
So since the lenses are already in lensfun, additional lens correction data isn’t needed, right?
(My camera is a Nikon Z5 btw.)
Yeah, I think of this every time I see my lenscorrection tool roll by in rawproc, but I’m lips-deep right now in getting my HOn3 steam locomotive to a printable state. Exiftool folk found the numbers, just need to be decoded…
https://github.com/exiftool/exiftool/blob/master/lib/Image/ExifTool/Nikon.pm#L11352
The drawback with Lensfun is that correction for distortion and tca only uses one distance and aperture. Don’t know if the correction from Nikon is better.
Lensfun folk contradict the impact of aperture:
https://lensfun.github.io/manual/latest/group__Lens.html#gaa505e04666a189274ba66316697e308e
…on distortion and TCA, as far as I read that page.
I would agree to the first but my gut tells me it is not really true for the second – although the impact may be so neglectable in practice that dropping it makes things so much easier while not introducing much of a negative effect.
Lateral also known as transversal or “magnification” CA is, as has been explained to be by optical designers, not dependent on aperture. Just checked and wikipedia agrees Chromatic aberration - Wikipedia see under “Types”.
Longitudinal CA and purple fringing does depend on aperture but isn’t corrected by lensfun.
Thanks for the explanation – that makes so much sense.
While LongCA is very distinct (and rather hard to correct, anyway), fringing and LatCA often are hard to distinguish depending on the lens. Now I know that LatCA can’t be blamed for changes in aperture.
As you mention it depends a lot on the lens and what you photograph. Fast and/or long lenses are more likely to show visible loCa. Wide angles are prone to laCA. I think some mirrorless bodies bake correction into the raw files. loCa is hard to fix so is less likely to be corrected in camera.