139、洞察驱动的实战标题——AE收敛速度与画面闪烁的“跷跷板“——从PID控制到预测式曝光,如何在快速收敛与无闪烁间找到平衡点
139、洞察驱动的实战标题——AE收敛速度与画面闪烁的"跷跷板"——从PID控制到预测式曝光,如何在快速收敛与无闪烁间找到平衡点上周三半夜两点,客户现场传回来一段视频,楼道里的监控画面像得了疟疾,亮度忽明忽暗,每两三秒就抽风一次。我盯着屏幕看了十分钟,第一反应是红外切换逻辑出了问题,但翻遍寄存器发现IR-CUT切换正常,增益和曝光时间却在疯狂震荡。这不是硬件故障,是AE算法在跟场景较劲——楼道里那盏声控灯每隔几秒就熄灭一次,环境亮度从50lux跳到2lux再跳回来,传统PID控制器被这种阶跃扰动激怒了,积分项疯狂累积,输出过冲,画面就跟着打摆子。这类问题在安防和车载领域太典型了。AE收敛速度要快,否则从隧道出来那一下白茫茫一片,或者从亮处进暗处黑屏好几秒,用户体验直接崩。但收敛快了,又容易在动态场景里产生振荡,表现出来就是闪烁。这俩指标天生就是跷跷板的两端,压下一头另一头就翘起来。今天不聊理论,就聊聊我这些年怎么在跷跷板上找那个能坐稳的点。先说说传统PID在AE里的死穴。很多方案直接套用位置式PID,误差是目标亮度与实际亮度的差,输出直接作用到曝光时间和增益上。问题在于,曝光时间和增益对亮度的影响是非线性的,而且有物理延迟——你改了曝光参数,要等下一帧甚至下下帧才能看到亮度变化。这个延迟在PID里就是纯纯的相位裕度杀手。我见过一个量产项目,工程师把P调大了想加快响应,结果系统直接变成二阶振荡,画面像呼吸灯一样规律明暗。这里踩过坑的朋友应该不少,那种感觉就像你拧水龙头想调水温,但水管有十米长,你拧一下要等三秒才出热水,然后你继续拧,等水出来已经烫手了。更隐蔽的问题是积分饱和。当场景从亮到暗剧烈变化时,积分项会迅速累积到饱和值,这时候哪怕场景已经恢复,