luckylz
Active Member
- Joined
- Apr 8, 2015
- Messages
- 414
- Reaction score
- 107
- Country
- China
While my friend needs to use 6~7 YiCams to shoot VR aka 360-degree video, and facing the issue that different angle will have different exposure value. And I've done many many testing, now finally get the solution for setting manual exposure in video mode. pls use the following steps to test by yourself:
1. exposure module debug message:
2. enable camera log via yicam app:
3. then you can get log files in /tmp/fuse_a/, name like:
4. there are many many info in the log file, but useful exposure value are:
mode=0x1 means: photo mode
mode=0x10 means: video mode
but the [A/S/I/D] value are the same.
5. export the log files to tf card:
6. create manual exposure script:
7. A/S/I/D value range, I don't know all the value range now. So need to figure out what value need to use:
8. A/S/I/D mapping table:
9. Run amba script forever, in order to run amba script in anytime, you should make a loop in autoexec.ash, and modify the action.ash to any available script.
1. exposure module debug message:
Code:
# add this in the autoexec.ash and power up yicam
# t ia2 -exp debug [en] : Enable/Disable exposure module debug message, en = [0|1], 0:disable, 1:enable
sleep 5
t ia2 -exp debug 1
2. enable camera log via yicam app:
3. then you can get log files in /tmp/fuse_a/, name like:
Code:
# I guess the name is wrong spelling with active?
firmware.avtive.log
firmware.previous.log
firmware.old.log
4. there are many many info in the log file, but useful exposure value are:
Code:
... ...
[00880197] [IA2 EXP][518] Request, mode=0x10, ch=0, [A/S/I/D]=350,1012,0,4096
[00880303] [IA2 EXP][521] Request, mode=0x10, ch=0, [A/S/I/D]=350,1012,0,4118
[00880400] [IA2 EXP][524] Request, mode=0x10, ch=0, [A/S/I/D]=349,1012,0,4096
[00880498] [IA2 EXP][527] Request, mode=0x10, ch=0, [A/S/I/D]=349,1012,0,4118
[00880923] [IA2 EXP][530] Request, mode=0x1, ch=0, [A/S/I/D]=349,1012,0,4118
[00881207] [IA2 EXP][530] Request, mode=0x1, ch=0, [A/S/I/D]=333,1012,0,4118
[00881212] [IA2 EXP][530] Module RESET, latency of [A/S/I/D]=1,2,1,1
[00881212] [IA2 EXP][530] Request, mode=0x1, ch=0, [A/S/I/D]=333,1012,0,4118
[00881536] [IA2 EXP][4] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
[00881768] [IA2 EXP][11] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
[00882006] [IA2 EXP][18] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
[00882235] [IA2 EXP][25] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
[00882469] [IA2 EXP][32] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
[00882706] [IA2 EXP][39] Request, mode=0x10, ch=0, [A/S/I/D]=333,1012,0,4118
... ...
mode=0x10 means: video mode
but the [A/S/I/D] value are the same.
5. export the log files to tf card:
Code:
# add this in the autoexec.ash and power up yicam
sleep 5
lu_util exec 'cp /tmp/fuse_a/firmware.avtive.log /tmp/fuse_d/'
6. create manual exposure script:
Code:
# add this in the autoexec.ash and power up yicam
sleep 5
# first need to turn off AE
# t ia2 -ae [on|off]: turn on/off AE
t ia2 -ae off
sleep 5
# second set manual exposure value
# t cal -me [mode][agc][shutter][iris][dgain] : Set specified parameter mode = [0|1], 0:VIDEO, 1:STILL
# the following value means: 1/30s, ISO1600
t cal -me 0 192 1012 0 4096
7. A/S/I/D value range, I don't know all the value range now. So need to figure out what value need to use:
Code:
A: >=192 ?
S: same as shutter value (1~2047), but:
30p should be faster than 1/30s (1012~2047)
60p should be faster than 1/60s (1040~2047)
I: fixed value 0, 0:iris open, 1:iris close ?
D: range: 4096 ~ 8192 ?
8. A/S/I/D mapping table:
Code:
Shutter Speed vs shutter_index:
1/ 30s: 1012
1/ 60s: 1140
1/100s: 1234
ISO Sensitive vs agc & dgain:
ISO 100: 448 #### 0 4096
ISO 200: 384 #### 0 4096
ISO 400: 320 #### 0 4096
ISO 800: 256 #### 0 4096
ISO 1600: 192 #### 0 4096
ISO 3200: 192 #### 0 8192
9. Run amba script forever, in order to run amba script in anytime, you should make a loop in autoexec.ash, and modify the action.ash to any available script.
Code:
# Startup autoexec.ash
# put this file in your tf card root
sleep 5
# do something
...
while true
do
sleep 5
d:/action.ash
done
Code:
# Additional action.ash
# put this file in your tf card root
# make sure action.ash only run once
# remove action.ash after it is loaded
lu_util exec 'rm -f /tmp/fuse_d/action.ash'
# do something else
...
Last edited: