Nikon Medata discussion

Started by leegong, January 30, 2015, 10:48:01 AM

Previous topic - Next topic

Phil Harvey

It takes a camera owner to decode the Nikon custom settings.  To do this, you need to run through all settings, changing one at a time and taking one image at each setting, all the while carefully documenting the settings for each picture.  Then with ExifTool you can see which bits changed for each setting.

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

leegong

NikonCustom SettingsD5100 Tag :
byte1 : mask 0x7 - AFLockTime
byte2 : mask 0x6 - AFAreaIllumination
byte7 : mask 0x30 - ISO Step: 0 - 1/3, 1 - 1/2, 2 - 1/1?

byte8 :
0xE0 - CenterWeightArea
0x0F - ExposureTuning for center weighted mode

byte9 :
0xF0 - ExposureTuning for matrix mode
0x0F - ExposureTuning for spot mode

byte16 : 0xF8 - OkButtonShooting
byte17 : 0xF8 : Assign AEAF Mode: 0 AE AF lock, 1 Lock Only, 2 Lockhold, 3 AF On

byte27 : 0x1F : FlashPowerLevel2
byte28 :
0xC0 : FlashCommandSelfMode
0x1F : FlashCommandSelfValue
byte29 :
0xC0 : FlashCommandAMode
0x1F : FlashCommandAValue
byte30 :
0xC0 : FlashCommandBMode
0x1F : FlashCommandBValue

byte34 : for LV AF
bit2:0 = index for TAB , 1: Single AF servo, 3: Constant AF servo, 4: MF (selection)
used in maunal modes ??
byte35 : for LV AF
bit2:0 = index for TAB , 1: Single AF servo, 3: Constant AF servo, 4: MF (selection)
used in auto modes ??
byte36 : for photo AF
0x7 = AFMode for photo only :
0 = AF-A , 1 = AF-S, 2 = AF-C,  4 = MF ??

Sorry there is some mistakes in previous post , if any conflict , here's correct result .   
Note : ExposureTuning means byte0 in Nikon tag 0x1C

leegong

Nikon ShotInfoD5100 Tags offset 973 (decimal) :
byte0 : 0xF0  - program mode ??
byte1 : image quality
0x40 - Jpeg Compression: 0 Size, 1 Quality
0x20 - NEF Compression: 0 Loss less, 1 Compressed
0x18 - Image Size : 0 - Large , 1 - Middle , 2 - Small
0x07 - Image Quality , such as NEF , JPG basic , JPG fine and so on .
byte2 :
0x20 - NEF bit level: 0 12bit, 1 14bit
0x08 - Auto Distortion: 0 off, 1 on
0x07 - Active D-Lighting : 0 = Off ,1 = Low , 2 = Normal , 3  = High , 4 -  Extra High , 5 - AUTO
byte3 : 0xFF - ISO
byte4 :
0x80 - Auto Iso Sensitivity: 0 Auto off, 1 Auto on
0x40 - Iso Senitivity
0x3F - Min Shutter Speed
byte5 : 0xFF - max ISO
byte6 :
0x80 - Long Exposure NR
0x60 - High ISO NR Mode :
0 = Minimal , 1 = Low , 2 = Normal , 3 = High
0x03 - Remote Mode
byte7 : unknown
byte8 :
0xF0 - White Balance Mode
0x1 = Incandescent
0x2 = Fluorescent
0x3 = Directsunlight
0x4 = Flash
0x5 = Cloudy
0x6 = Shade
0x8 = Presetmanual
0x0F - White Balance Flouro Mode
0x0 = Sodiumvaporlam
0x1 = Warmwhitefluor
0x2 = Whitefluoresce
0x3 = Coolwhitefluor
0x4 = Daywhitefluore
0x5 = Daylightfluore
0x6 = Hightempmercur
byte9 - byte18 :
divided into two parts : 0xF0 and  0x0F , for WB bias and so on
byte19 : 0xFF - WB Kelvin Color Temp

byte22 :
0xF0 Multi Exposure shot3
0x0F Multi Exposure shot2
byte23 :
0x80 MultiExposureAutoGain ON/OFF
bit6 = 1 - HDR on , 0 - HDR off
bit5:4 = HDR Level :
0 = Auto , 1 = 1 EV , 2 = 2 EV  ,3 = 3 EV  ,255 = n/a
bit3:2 = HDRSmoothing :
0 - off , 1 - high , 2 - normal , 3 - low

leegong

Nikon Tag0xB8 FileInfo Tag :

byte4 : unknwon unit16

if (retouch type != NULL )
{ byte10 :  uint16  = enum {0,1} , card driver ?
  byte12 :  unit16  DirectoryNumber
  byte14 :  unit16  FileNumber   
  if (retouch type == ImageOverlay)
   { byte16 :  uint16  == enum {0,1} , card driver ?
     byte18 :  unit16  DirectoryNumber
     byte20 :  unit16  FileNumber
    }   
}

EDIT : Wild guessing ,  byte4 = card driver ???  , byte10 - byte20 indicate info of source image files for retouching ?

leegong

Nikon ShotInfoD5100 Tag
offset 792 : 32bits - exposure time ,for TIFF Tag0x829A also
offset 796 : byte - FNumber , for TIFF Tag0x829D also
offset 797 : byte - ExposureBiasValue for TIFF TAG0x9204
offset 798 : byte - unknown
offset 799 : byte - ExposureBracketValue
offset 800 : byte - FlashExposureBracketValue , equivalent to value in Nikon Tag0x18

leegong

#35
Just extract Nikon tag0xBC , i don't think it's NEF preview anymore ,
my gut feeling , it probably is auto WB pattern .

leegong

In Nikon LensData0800 Tags , https://exiftool.org/TagNames/Nikon.html#LensData0800
offset80 : uint8 LensAttrib_1st ; // Each bit stands for specific Lens attrib
offset81 : uint8 LensAttrib_2nd ; // Each bit stands for specific Lens attrib
offset82 : uint8 LensAttrib_3th ; // Each bit stands for specific Lens attrib , only lowest 2bits are available currently
offset85 : uint8 maybe_LensPowerStatus ;
offset86 : uint8 LensFocusStatus ; //Each bit stands for specific status

Phil Harvey

Thanks, but this isn't much help without knowing about the specific attributes.  Also, are your offsets in decimal?

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