(1)概述
我们都知道,Camera的效果文件在如下目录下,我们以gc08a3_mipi_raw这个摄像头为例来看效果文件的目录结构。
vendor/mediatek/proprietary/custom/mt6779/hal/imgsensor/ver1/gc08a3_mipi_raw
可以看到现在的效果文件会区分不同的Scenario,那我们应该怎么确定不同的场景走的是哪一个Scenario呢?
(2)如何确定Sensor Mode
首先我们要知道,我们现在Camera走的是哪一个Sensor Mode,可通过之前的一篇文章来确定。MTK平台如何决定SensorMode
Log显示如下:
//(1)这里的 mode=2 表示eNORMAL_CAPTURE,最终 sensorMode=1 表示SENSOR_SCENARIO_ID_NORMAL_CAPTURE
06-20 11:48:11.805 10951 10977 I mtkcam-SensorSettingPolicy: [determineScenDefault] dxf_determineScenDefault Image.w = 3072 , Image.h = 1728 , size.w = 1632 , size.h = 1224 , mode = 0
06-20 11:48:11.805 10951 10977 I mtkcam-SensorSettingPolicy: [determineScenDefault] dxf_determineScenDefault Image.w = 3072 , Image.h = 1728 , size.w = 3264 , size.h = 2448 , mode = 1
06-20 11:48:11.805 10951 10977 I mtkcam-SensorSettingPolicy: [determineScenDefault] skip video related mode since it didn't have full capbility
06-20 11:48:11.805 10951 10977 I mtkcam-SensorSettingPolicy: [determineScenDefault] dxf_determineScenDefault Image.w = 3072 , Image.h = 1728 , size.w = 3264 , size.h = 2448 , mode = 2
06-20 11:48:11.805 10951 10977 I mtkcam-SensorSettingPolicy: select size(3264x2448)@30 sensorMode:1 hdrSensorMode:0 hdrHalMode:0, hfpsMode:0//(2)这里的 mode=0 表示eNORMAL_PREVIEW,最终 sensorMode=0 表示SENSOR_SCENARIO_ID_NORMAL_PREVIEW
06-20 11:49:59.283 10951 11095 I mtkcam-SensorSettingPolicy: [determineScenDefault] dxf_determineScenDefault Image.w = 640 , Image.h = 480 , size.w = 1632 , size.h = 1224 , mode = 0
06-20 11:49:59.283 10951 11095 I mtkcam-SensorSettingPolicy: select size(1632x1224)@30 sensorMode:0 hdrSensorMode:0 hdrHalMode:0, hfpsMode:0
所以上面(1)的sensor Mode是Capture,而(2)的Sensor Mode是Preview。
(3)确定Scenario的相关信息
现在我们需要check每个Scenario的isp profile和scene mode的信息,用于核查不同场景跑的index。
这里我们提供6771和6779平台的命令。
//(1)6771
adb root
adb shell setenforce 0
adb shell logcat -G 80M
adb shell "ps -A | grep cameraserver | grep -v grep | sed 's/ [ ]*/:/g' | cut -d: -f2 | xargs kill -9"
adb shell setprop persist.vendor.mtk.camera.log_level 3
adb shell setprop vendor.debug.aaa.pvlog.enable 1
adb shell setprop vendor.debug.paramctrl.enable 1
adb shell setprop vendor.profile.paramctrl.enable 1
adb shell setprop vendor.debug.isp_tuning_mgr.enable 1
adb shell setprop vendor.debug.isp_mgr.enable 1
adb shell setprop vendor.debug.mapping_mgr.enable 3
adb shell setprop persist.vendor.mtk.camera.log_level 3
adb shell setprop persist.vendor.mtk.debug.camera.log 3
adb shell setprop persist.mtk.camera.log_level 3
adb shell setprop persist.vendor.debug.camera.log 3
adb shell setprop persist.vendor.debug.camera.dbginfo 1
adb shell setprop vendor.debug.camera.dump.JpegNode 1
adb shell setprop persist.vendor.dp.dumpreg.check 1
adb shell setprop vendor.debug.camera.SttBufQ.enable 60
adb shell setprop vendor.debug.camera.ufo_off 1
adb shell setprop vendor.debug.camera.p2.dump 1
adb shell setprop vendor.debug.camera.dump.campipe 1
adb shell setprop vendor.debug.camera.dump.p2 1
adb shell setprop vendor.debug.camera.dump.p2.ext.img3o 1
adb shell setprop vendor.debug.camera.img3o.dump 1
adb shell setprop vendor.debug.camera.copy.p1.lsc 1
adb shell setprop vendor.debug.hal3av3.forcedump 1
adb shell setprop vendor.debug.aaa.perframe_prop.enable 1
adb shell setprop vendor.debug.cache.mode 0
adb shell pkill camera*adb shell logcat | findstr "Mod:"//(2)6779
adb root
adb shell setenforce 0
adb shell logcat -G 200M
adb shell setprop persist.vendor.mtk.camera.log_level 3
adb shell setprop persist.vendor.debug.camera.log 3
adb shell setprop vendor.debug.mapping_mgr.enable 1
adb shell setprop vendor.debug.idxcache.log 1
adb shell setprop vendor.debug.aaa.perframe_prop.enable 1
adb shell setprop vendor.dataprovider.debug.enable 1
adb shell pkill camera*adb shell logcat | findstr "Mod:"
我们本地抓了6779平台的Log,用于看一下Log当中的信息:
3.txt:50838: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AE(1)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:50839: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AWB(3)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:50840: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AF(2)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:50842: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:Flash_AE(4)] (Idx 0) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:50844: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:Flash_AWB(5)] (Idx 0) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:50845: 06-20 11:50:00.572 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:Flash_Calibration(6)] (Idx 0) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
//...
可以看到有很多不同场景的Mod信息,我们这里就以预览画面偏红的情况来分析,这种情况下需要查看Mod:AWB的信息。
3.txt:28141: 06-20 11:50:00.132 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AWB(3)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:30706: 06-20 11:50:00.200 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AWB(3)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:33605: 06-20 11:50:00.268 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AWB(3)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
3.txt:36555: 06-20 11:50:00.335 10951 11411 D Hal3ARaw: [IdxCache::From:IdxMgr] [Dev:1-Mod:AWB(3)] (Idx 1) (Scene_Capture) (PF Preview, SM Preview, Bin 0, P2 0, FLASH 0, APP MTKCam, FD 0, ZOOM 0, LV 4, CT 5)
结合之前的信息,现在就以Sensor Mode=0(Preview),Mod=AWB情况下,此时Idx=1来查看其走的Scenario文件夹是哪个。
(4)具体信息来查看Scenario
我们先看一张分析Log的图片。
这里是通过Log和Excel表格来确定Scenario,那这里的Excel表格从哪里来呢?
(5)通过Excel表格来确定Scenario
其实每个效果文件夹下都有一个类似的MT6779_NVRAM_IF_gc08a3mipiraw.xlsx文件,通过之前的Log信息:
Sensor Mode=0(Preview),Mod=AWB情况下,此时Idx=1。
我们来查看Excel表格的信息。
首先是AWB模式下的Sensor Mode = Preview,后Index = 1进而确定Scenario = Scene_Capture_4cell文件夹。