067、3A联动与协同控制:曝光、对焦、白平衡的闭环优化

067、3A联动与协同控制:曝光、对焦、白平衡的闭环优化

一、一个让我熬夜三天的bug

2019年,某旗舰机项目,暗光场景下预览画面每隔几秒就“闪一下”——亮度突然跳变,色彩也跟着飘。测试部报了个P0级bug,说用户投诉“手机拍照像抽风”。

我带着团队排查了整整三天。第一天怀疑AE算法收敛慢,第二天怀疑AWB色温估计被红外干扰,第三天凌晨三点,我盯着log里AEC、AFC、AWB三个模块的时间戳,突然骂了一句脏话——三个模块各自为政,AE刚把增益拉上去,AWB检测到色温变化立刻调整增益矩阵,AFC发现对比度变了又去重新对焦。三个闭环互相打架,画面能不抖吗?

这个案例后来成了我们内部培训的经典反面教材。3A联动不是简单的“三个算法拼在一起”,而是三个闭环系统在共享同一个传感器、同一帧数据时的协同控制问题。

2A、AE与AWB的耦合:增益分配的博弈

先看AE和AWB这对“冤家”。AE控制总曝光量,AWB控制各通道增益比例,但两者都操作模拟增益和数字增益。

这里踩过坑:早期方案里,AE算完总增益后,AWB直接在各通道上乘自己的白平衡增益。结果呢?R通道增益被乘了两次——AE的全局增益和AWB的R通道增益。如果场景偏红,AWB会压低R增益,但AE发现R通道暗了又去提总增益,形成正反馈震荡。

正确的做法是增益解耦。AE只控制模拟增益和数字增益的“和”,AWB控制各通道增益的“比例”。具体实现: