Nikon Medata discussion

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

Previous topic - Next topic

leegong

#15
bit3 of Tag0x89 probably is for exposure delay , bit8 for Dlighting bracketing .

Phil Harvey

Thanks!  I've added these to the list.

- 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

#17
Just decode some data in D800 tag0x91 , however they need to be confirmed :
byte1211 :  bit7 - Flash opened , bit6 - Flash charged
byte1212-13  : might be externalFlashFirmware  number
byte1214 : unknown flags for External Flash
byte1215 : ExternalFlash_controlMode :
0x0 = Off
0x1 = iTTL-BL
0x2 = iTTL
0x3 = Auto Aperture
0x4 = Automatic
0x5 = GN (distance priority)
0x6 = Manual
0x7 = Repeating Flash 

byte1217 :  FlashFocalLength

byte1230 :  FlashColorFilter

leegong

One 320 bytes array starts from byte 2122 in D800 tag0x91 ,
i'm struggling reading this array , here's some decoding :
D800 tag0x91 byte2122 :
array_byte 0 - 3 :  'LVAE'
array_byte4 : index for aperture or Fstops
array_byte5 : LV AF mode
array_byte6 : ISO index

array_byte12:15 : UNIT32 FPS value multiplies fixed factor

array_byte19 : FlickerReduction , 0 - 50Hz, 1 - 60Hz , 2 - auto

array_byte52 : Lens ExitPupilPosition
array_byte53 : Lens AFAperture
array_byte54 : Lens FocalLength:

array_byte316:319 : 'LVAE' 

leegong

Tag0xBB in D800 firmware version 0110 :
byte0-3 : string version
byte4 : exposure compensation in RAW retouch NEF Processing
if no NEF processing retouch , set 0xFF .
byte5 : always 0x1 , if no  NEF Processing , set 0xFF
byte6 == 0x6
byte7 == 0x0   

Phil Harvey

Thanks.  How is the exposure compensation represented?  A signed byte where the EV is calculated as <byte>/6 ?  (just guessing)

- 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

#21
Sorry , i forgot posting the  table in firmware for retouch NEF processing exposure compensation ,
values in the table represente -2Ev - + 2 Ev or +2 Ev - -2Ev :

.byte 0xC 
.byte 0xA
.byte 8
.byte 6
.byte 4
.byte 2
.byte 0
.byte 0xFE
.byte 0xFC
.byte 0xFA
.byte 0xF8
.byte 0xF6
.byte 0xF4

Phil Harvey

Thanks.  So it is <byte>/6.  Now the only question is whether it is +<byte>/6 or -<byte>/6.  One would normally assume +<byte>/6, but all of the flash compensation values are -<byte>/6, so I can't decode this until I know one way or the other.

- 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

#23
I think it will be easy to identify the value if somebody can adjust NEF processing exposure compensation
with D800 or nikon View NX2 , then take a look at tag0xBB data and compare it with value in the table above .

leegong

#24
Nikon ShotInfoD5100 Tags
offset 2210(decimal) : uint32 - value of 32bits timer counter when IMX071 exposure is started
offset 2214(decimal) : uint32 -  value of 32bits timer counter when image data from IMX071 is captured and stored in DDR memory .

offset 2222(decimal) : uint16 -  temperature

offset 2286(decimal) : uint32 -  index of the latest action descripted in ring buffer followed
offset 2290(decimal) - 320 bytes ring buffer : 64 bytes array+ 64 uint32 array ,
each byte in byte array of ring buffer = action code of IMX071 and EI155 ,
each uint32 in uint32 array of ring buffer = IMX071&EI155 action timing ,
for more info of ring buffer , please refer to my decoding on NikonHacker Portal     


Phil Harvey

Hi Leegong,

Thanks for the information.  I'll read your reference when I get a chance.

Do you know the clock frequency for the timer counter?  Also, what units is temperature (if Celsius, shouldn't it be a signed integer)?

- 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

#26
Quote from: Phil Harvey on May 18, 2015, 06:51:19 AM
Do you know the clock frequency for the timer counter?  Also, what units is temperature (if Celsius, shouldn't it be a signed integer)?
The frequence is 1Khz .
Sorry , i have no idea  about what temperature unit it is yet .

leegong

#27
NikonCustom SettingsD5100 Tag starts from offset 1030 instead of 1031 in Nikon ShotInfoD5100 Tag ,
here's some info (based on 1030 offset) , '?' stands for decoding which is not confirmed 100% , "??" stands for
decoding which is not sure , "???" stands for just guessing ,  comments for byte14 were copied from TAG
decoding on this website , the others were decoded by Nikon Hacker Team ,
many of them were decoded on this website before i posted , i'm too busy to distinguish what part decoding are not on this website yet ,
just list all of decoding comments in our IDB database .
byte0 : unknown
byte1 :
0xC0 AFC Priority: 0 - release, 2 - focus
0x20 AFS Mode Priority: 0 - focus, 1 - release , 0x10 AF Point Count ON/OFF
byte2 :
mask 0x60 - Manual setting ???
mask  0x01 : AF Assist Lamp: 0 - off, 1 on
byte3 :
0xC0 - FocusMeteringMode ?
0x3C - Assign MBD11 Btn
0x03 - Battery Cell Kind
byte4 :
0xC0 - Beep Level: 0 off, 1 low, 2 high
0x20 - Slot Empty Lock : 0 - Release locked, 1 - enable release
0x10 - Not Image Review
0x08 - Iso Display
0x04 - Show Easy ISO
0x02 - View Finder Grid Display
0x01 - View Finder Warning Display
byte5 :
0x18 - File Num Seq
0x03 - Beep Volume
byte6 :
0x80 - Reverse Indicator Mode: 0 normal, 1 revsered
0x10 - Range Finder: 0 off, 1 on
byte7 :
0xC0 - Ev Step: 0 - 1/3, 1 - 1/2, 2 - 1/1 ??
byte8 :
byte9 :
byte10 :
byte11 :
0xC0 - Exposure Delay
0x0F - Burst Rate
byte12 :
0xFF - Max Cont Shoot Count
byte13 :
0x10 - Bracket Order
0xE0 - Auto Bracket Set: 1 AE, 3 WB, 4 ADL
byte14 :
0xF8 - Assign Fn Mode
0x0 = Self-timer
0x8 = Release Mode
0x10 = Image Quality/Size
0x18 = ISO
0x20 = White Balance
0x28 = Active D-Lighting
0x30 = + NEF (RAW)
0x38 = Auto Bracketing
byte15 : 0xF8 - Assign Preview Btn
byte16 :
byte17 :
0xF8 - Assign AEAF Mode: 0 AE AF lock, 1 Lock Only, 2 Lockhold, 3 AF On
byte18 :
0x80 - Rev Dial Rotation Mode
0x60 - Command Rev Dia
0x18 - Menu's and Playback
0x04 - Appeture Setting
0x02 - Shutter Release AEL
0x01 - unknown
byte19 :
0xF0 - index of AutoOffTimer_Meter
0x03 - Remote On Duration: 0 1min, 1 5min, 2 10min, 3 15min   
byte20 :
0xC0 - Self timer: 0 2s, 1 5s, 2 10s, 3 20s
0x30 - unknown
0x0F - Number of shoots for self timer
byte21 :
0xE0 - AutoOffTimer playback menu
0x1C - index of LiveView Auto OFF
byte22 :
0xE0 - index of AutoOffTimer_Playback
byte23 : unknown
byte24:
0x1F - Flash Power Level: 0 Full - 15 1/32
0xC0 - Flash Contrl: 0 TTL, 1 - Manual
...
byte34 :
0xE0 = 0: Face detection system AF, 1: Wide area AF, 2: Normal area AF, 3: Target tracking AF
0x07 = index for TAB , 0: Single AF servo, 2: Constant AF servo, 3: MF (fixed), 4: MF (selection)
used in maunal modes
byte35 :
0xE0 = 0: Face detection system AF, 1: Wide area AF, 2: Normal area AF, 3: Target tracking AF
0x07 = index for TAB , 0: Single AF servo, 2: Constant AF servo, 3: MF (fixed), 4: MF (selection)
used in maunal modes

byte37 :
0x03 - Exposure Metering Mode
0xE0 - index for Monitor auto off of playback
byte38 :
0xF0 - Burst Mode: 0 single, 1 burst
0x0F - Release Mode: 3 self timer, 4 delayed remote, 5 quick response, 6 quiet shutter

leegong

#28
Nikon ShotInfoD5100 Tag offset 1370(decimal) is metering data set 576(decimal) bytes size ,
which is divided into 3 same structures (192 bytes size)  ,
however it has not been decoded completely :
byte0-31 : 16 16bits array (no idea about singed or unsigned yet) ,
indicates minimum , maximum ,average metering value of different aera .
byte32 - byte177 : 73 16bits array , guessing maybe 3 x 24 + 1 or 5 x 7 + 3 16bits array
byte178 - byte191 : dummy

Any more analysis is appreciated !

leegong

Nikon ShotInfoD5100 Tag offset 773 is a 18bytes array ,
byte0 :
mask 0x80 =  long time expourse Noise Reduction ?
mask 0x20 =  WB bracket ON/OFF
byte1 : ISO
byte2 : TV
byte3 : AV

byte8 : for Tag 0x9290 SubSecTime ==  (byte2char)byte8 + '0' + 0x0

i need more info for decoding more bits in byte0 , any help is appreciated !