110、3A 端到端调试:从 ISP register dump 到主观画质的完整调试流程
110、3A 端到端调试:从 ISP register dump 到主观画质的完整调试流程
一、一个让我熬夜三天的bug
去年Q2,某款旗舰机在暗光预览下出现诡异的“呼吸效应”——画面亮度每隔2-3秒周期性波动,像有人在手动拉曝光补偿。QA报上来时,我第一反应是AE算法收敛慢,但翻看log发现AE target一直稳定在120lux,gain曲线也平滑。这就怪了。
直到我dump了一帧ISP register,才发现问题出在sensor的VTS(垂直消隐时间)寄存器被某个驱动模块意外改写了。VTS从正常的1125变成了1132,导致帧率从30fps掉到29.7fps,而3A统计窗口的积分时间没变,每帧实际曝光量多了1%,累积几帧后触发AE的过曝回调,gain往下调,然后VTS又被另一个模块改回去——形成振荡。
这个案例说明:3A调试从来不是算法问题,而是系统问题。寄存器dump是你唯一能相信的真相。
二、调试前的“三件套”准备
别急着改代码。先确认三样东西:
1. 硬件链路图
拿到schematic,确认sensor->ISP->MIPI->DDR的物理路径。我见过有人调了三天AE,结果是MIPI clock的PLL配置错了,导致每帧数据量少了一半——寄存器里看到的gain值全是对的,但实际像素值被截断了。
2. 寄存器map
