Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
afsoff灯亮怎么开启_afsoff灯亮怎么关闭,希望能够帮助你!!!。
log 设置,打开AF(8),State(2),Sensor(2) 的log CT30P:/ # cat /vendor/etc/camera/camxoverridesettings.txt overrideLogLevels=0x3F logWarningMask=0x0 logInfoMask=0x0 logVerboseMask=0x0 enable3ADebugData=TRUE dumpSensorEEPROMData=TRUE enableTuningMetadata=TRUE afFullsweep=3 enablePDLibLog=3
02-25 14:52:07.993 887 887 I CamX : [ INFO][SENSOR ] camxsensornode.cpp:3165 IsPDAFEnabled() PDAFType = 3: isPDAFEnabled 1 02-25 14:52:08.037 887 887 I CamX : [ INFO][SENSOR ] camxpdafdata.cpp:1104 GetCurrentPDAFModeIndex() Current Sensor Mode: 0, Corresponding PDAF Mode: 0 02-25 14:52:08.037 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:950 PrintDebugPDAFData() PDAF Debug Data for s5k3l6_pdaf 02-25 14:52:08.037 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:952 PrintDebugPDAFData() =====PDAF Information:===== 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:954 PrintDebugPDAFData() Actuator Sensitivity: 0. 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:956 PrintDebugPDAFData() Black Level: 64 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:958 PrintDebugPDAFData() Pixel Depth: 10 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:960 PrintDebugPDAFData() Is Hdr Mode Enabled: 0 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:962 PrintDebugPDAFData() PDPixelOverflowThreshold: 0 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:964 PrintDebugPDAFData() Macro DAC: 525 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:966 PrintDebugPDAFData() Infinity DAC: 262 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:968 PrintDebugPDAFData() Pixel order Type: 0 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:970 PrintDebugPDAFData() =====Native Pattern Information:===== 02-25 14:52:08.038 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:972 PrintDebugPDAFData() originalImageWidth: 4208 02-25 14:52:08.039 887 887 V CamX : [ VERB][SENSOR ] camxpdafdata.cpp:974 PrintDebugPDAFData() originalImageHeight: 3120 02-25 14:52:08.073 887 887 I CamX : [ INFO][SENSOR ] camxpdafdata.cpp:507 PDAFInit() Initializing PDAF s5k3l6_pdaf
将设备固定在三脚架上, 在灯箱中 触发一个full-sweep ,然后抓取haf/af 的日志。
日志的关键字:
af_pdaf_proc_pd_single grid|af_pdaf_proc_pd_single roi|af_fullsweep_final|sweep_srch_far_to_near|af_fullsweep_srch_near_to_far|af_fullsweep_start_srch
从log 中可以查看 pd ,defocus 和 confidence information 。有了所有这些信息,您可以决定从传感器获得的pd 是否正确。
Line 16362: 02-25 14:55:03.995 897 1187 V CamX : [ VERB][STATS_AF ] af_fullsweep.cpp:501: af_fullsweep_start_srch AEC Settled count:1 Line 16758: 02-25 14:55:04.053 897 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 16763: 02-25 14:55:04.053 897 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4710: af_pdaf_proc_pd_single grid(0) pd=-6.37, defocus(dac)=-133, conf=533, weight=1.00 Line 16766: 02-25 14:55:04.054 897 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4798: af_pdaf_proc_pd_single roi(0) orig_conf = 533 orig_pd=-6.37, orig_defocus(dac)=-133 Line 16767: 02-25 14:55:04.054 897 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=345 index=6, pd=-6.37, defocus(um)=-123, conf=533, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 16942: 02-25 14:55:04.102 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 62081: 02-25 14:55:15.560 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4798: af_pdaf_proc_pd_single roi(0) orig_conf = 465 orig_pd=-6.88, orig_defocus(dac)=-144 Line 62082: 02-25 14:55:15.560 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=384 index=6, pd=-6.88, defocus(um)=-133, conf=465, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 62348: 02-25 14:55:15.603 897 1183 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 62633: 02-25 14:55:15.678 897 1185 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 62892: 02-25 14:55:15.717 897 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4710: af_pdaf_proc_pd_single grid(0) pd=-6.76, defocus(dac)=-141, conf=476, weight=1.00 Line 63129: 02-25 14:55:15.760 897 1185 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4710: af_pdaf_proc_pd_single grid(0) pd=-6.78, defocus(dac)=-142, conf=493, weight=1.00 Line 63131: 02-25 14:55:15.760 897 1185 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4798: af_pdaf_proc_pd_single roi(0) orig_conf = 493 orig_pd=-6.78, orig_defocus(dac)=-142 Line 63693: 02-25 14:55:15.884 897 1183 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 63696: 02-25 14:55:15.884 897 1183 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4710: af_pdaf_proc_pd_single grid(0) pd=-0.87, defocus(dac)=-18, conf=698, weight=1.00 Line 64150: 02-25 14:55:15.971 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4610: af_pdaf_proc_pd_single grid: num rows=1, num cols=1 Line 64153: 02-25 14:55:15.971 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4710: af_pdaf_proc_pd_single grid(0) pd=0.02, defocus(dac)=0, conf=601, weight=1.00 Line 64156: 02-25 14:55:15.971 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4798: af_pdaf_proc_pd_single roi(0) orig_conf = 601 orig_pd=0.02, orig_defocus(dac)=0 Line 64158: 02-25 14:55:15.971 897 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=208 index=17, pd=0.02, defocus(um)=0, conf=601, is_conf=TRUE, not_conf_cnt=0, is_stable=FALSE
有的log镜头位置都有三帧pd信息,这是因为全扫描中的帧延迟,只需要知道每一个镜头位置的最后一帧信息。
defocus is near to 0 ,pd is less than 1 。
af_haf_pdaf.cpp:4810 | af_fullsweep_srch_far_to_near max_pos|af_fullsweep_srch_near_to_far CAF_SCAN_Fullsweep_end Final_lens_pos
从关键字中搜素defocus 和lens position 做出图。 从pd 的 log 中没看到focusvalue,不知道怎么将pd 的defocus 和 af 的focusvalue 画到一张图上。 有知道怎么弄的可以告诉我下。
pd 指画了far_to_near defocus =0 为201. af 的far_to_near 的峰值也为201。所以pd 准确。
pd不动的问题,发现当前镜头位置为0时离焦是负的,方向不对。定位是pd效果的一个重要标志。
注意:由远到进,离焦率 为负。由进到远,离焦率为正。
不跑fullsweep。
AF 工作期间, 从日志中获取下列信息:
af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=206 index=8, pd=0.00, defocus(um)=0, conf=1023, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE
对准附近目标,附近的目标移除后, 应能从日志信息中观察到以下情况:
PD 为正值并随着镜头的对焦逐渐降至 0
散焦值为正值并随着镜头的对焦逐渐降至 0
roi_loc_y roi_loc_y roi_num_rows roi_num_cols
使用 [2, 3, 2, 2] 。适用PDAF Type 1。 位置和网格数。
使用 [0, 0, 1, 1] 。适用2PD。 Qualcomm PD lib 已优化为使用整个帧的 30% 作为沿水平和垂直两个方向的 ROI。
使用默认。
当镜头在一帧内从近到远或从远到近移动时,它看起来非常跳跃和不稳定。为了使AF平滑,有必要使用迭代运动来提供良好的AF收敛
为了提供良好的用户体验,参数move_percentage根据原始离焦距离将一个大的镜头移动分解为小的镜头移动.
If the reported defocus is 200, the next driving lens movement is 2000.3 = 60
If the reported defocus is 40, the next driving lens movement is 400.45 = 18.
调试指南
应用较高的增益时, 来自传感器的 PD 信息可能包含噪点。 噪点增益较高时, PDAF 可能会得到不可靠的散焦值, 因为跳跃可能导致对焦失败。
当噪声增益较高和PD噪声较大时,增大精细搜索范围以保持精度
Fine-step focus scan range =Fine scan step size x Range multiplier(noise gain [dB]
调试 Focus Scan 和 Noise Table 参数。
调试指南
它主要用于控制在什么样的光照条件下选择PD触发对焦
客户可以根据他们的测试标准和测试用例分布或传感器性能来决定在哪些光照条件下不使用PD触发器
首先请记住噪声增益并不等于AEC算法直接输入的传感器增益。
noise_gain = 20.0f * log10( input->sensor_gain )
For example /* Entry 4 */ { 10.000000f, /* Noise Gain */ 700, /* Minimum Confidence */ }
在上述情况下,客户不希望触发PD超过10倍增益的场景。他们认为PD在这种情况下不太可靠。因此,他们给出了一个更高的阈值(700)来分块算法选择PD。
03-31 18:51:30.741 893 1186 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4798: af_pdaf_proc_pd_single roi(0) orig_conf = 1023 orig_pd=0.00, orig_defocus(dac)=0
ROI 信息有:相位差(pd) 和 置信度
高置信度意味着该 ROI 中 PD 的偏差较小并且可能具有更高的边缘密度。 置信度表用于定义相对于传感器增益的最小置信度阈值。
调试指南
验证方式:
(1)固定你的设备在三脚架的HAF日志启用
(2)在稳定光线下聚焦一条垂直条纹图(调光灯箱效果更好)
(3)Search key word: “af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi” to check whether the confidence level is continuous
stable
Line 49633: 03-31 16:07:18.157 892 1186 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=11, pd=-2.11, defocus(um)=-56, conf=599, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 50152: 03-31 16:07:18.212 892 1186 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=12, pd=-1.99, defocus(um)=-52, conf=586, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 50461: 03-31 16:07:18.247 892 1189 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=13, pd=-1.99, defocus(um)=-52, conf=586, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 50815: 03-31 16:07:18.285 892 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=14, pd=-2.10, defocus(um)=-55, conf=590, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 51161: 03-31 16:07:18.340 892 1188 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=15, pd=-2.20, defocus(um)=-58, conf=588, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 51530: 03-31 16:07:18.379 892 1189 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=16, pd=-2.22, defocus(um)=-59, conf=574, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 51964: 03-31 16:07:18.438 892 1189 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=17, pd=-2.24, defocus(um)=-59, conf=577, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE Line 52334: 03-31 16:07:18.472 892 1187 V CamX : [ VERB][STATS_AF ] af_haf_pdaf.cpp:4810: af_pdaf_proc_pd_single roi(0) lens_pos=322 index=18, pd=-2.23, defocus(um)=-59, conf=580, is_conf=TRUE, not_conf_cnt=0, is_stable=TRUE
它对调优没有很大的影响,因为主要是由相关的预留参数决定的。
首先使用Chromatix工具生成的默认值
FPS/Minimum Stable Count
Min Stable Count 是用于确定 PD 是否进入稳定状态的阈值。
要获得更顺畅的 AF 收敛过程, 可使用 Conv Frame Skip 参数提高 AF 收敛速度。 此参数可降低 AF 速度, 但会带来更顺畅的收敛用户体验。
1, /* Conv Frame Skip */ better to use default 1. 1, /* Enable Fine Scan */ better to use default 1. x, /* Min Fine Scane Range */ finally will compared with noise_multiplier. x, /* Fine Scan Step Size */ fine search steps. x, /* Focus Done Treshold */ need combine with dof_multiplier * noise_multiplier to check.
调试指南
Focus Done Threshold 参数用于确定 PDAF 是否已收敛
如果报告的散焦值大于 Focus Done Threshold, PDAF 会继续搜索并等待进入收敛状态。
如果报告的散焦值小于 Focus Done Threshold, 则 PDAF 结束搜索并进入精确搜索模式,或者在精确扫描被禁用时, 直接向 AF_success 报告。
调试指南
4, /* Wait After Focus Count */ 4, /* Conf Recover Count */ 25, /* Defocused Threshold */ need combine with dof_multiplier to check. 20.00000f, /* Depth Stable Threshold */ need combine noise_multiplier to check. Above all params recommend use default value ggenerated by Chromatix tool at first. /* Defocused Threshold */ tuning procedure is similar confidence table. Just focus the key word defocus(um)
Defocus Threshold 用于确定 AF 是否失焦。
Depth Stable Threshold 会触发稳定状态计数的增加。
调试指南
突发的深度变化期间, PD 库会临时丢弃两帧或三帧的置信度。
试置信度恢复计数 Conf Recover Count 参数可以帮助 PDFA 区分置信度的丢弃是持续发生(即无垂直边缘)还是临时发生(例如突发的深度变化) 。
这样可以防止在每次突发景深变化期间过早触发对比度 AF。如果 not_conf_cnt 大于 Conf Recover Count, 则没有可信 PD, 将转换
为对比度 AF
粗搜等同于 2.6 调试Focus Scan
Focus Done Threshold 参数用于确定 PDAF 是否已收敛
如果报告的散焦值大于 Focus Done Threshold, PDAF 会继续搜索并等待进入收敛状态。
如果报告的散焦值小于 Focus Done Threshold, 则 PDAF 结束搜索并进入精确搜索模式,或者在精确扫描被禁用时, 直接向 AF_success 报告。
细搜
由于在某些情况下相位差的计算不够准确,PDAF算法切换到对比度AF进行精细搜索,确定最终的峰值位置。影响相位差精度的因素包括景条件(例如,弱光、图像纹理、颜色和距离)和镜头/传感器制造问题。
1.当前帧的defocus 大于defocus threshold。
2.算法的confident
3.场景稳定。
如果满足着些条件,pdaf 触发搜索。如果没有,则pdaf 继续监控场景,或者在某些情况下,切换到对比度对焦。
defocus: 计算相位差并将其转换为离焦值,以指示实现对焦所需的镜头运动的大小和方向。正的defocus 意味着移动是从近到远。负defocus意味着运动从远到近。defocus 接近0 时,表示目标处于对焦状态
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章