公司动态
115、多帧合成夜景模式——高通Spectra的SuperNight芯片级优化与量产经验
115、多帧合成夜景模式——高通Spectra的SuperNight芯片级优化与量产经验去年年底有个项目,客户拿了一台竞品旗舰机过来,说你们夜景模式拍出来的路灯,灯芯位置总是有一圈紫边,人家那台就没有。我拿到机器一看,好家伙,SuperNight模式,12帧合成,单帧曝光压到1/15秒,ISO拉到3200,按说参数没毛病,但紫边就是压不下去。后来查了半天,问题出在Spectra的ISP管线里一个叫“多帧对齐残差”的东西上——不是算法不行,是芯片的某个硬件模块在低照度下把色差信号当成了运动矢量,硬生生给“对齐”歪了。这事让我想起很多工程师对SuperNight的理解还停留在“拍12帧,堆叠,降噪”这个层面。实际上,高通Spectra的SuperNight远不止是软件算法,它是一套从传感器驱动、ISP硬件状态机、到DSP/GPU算力调度的协同方案。你写代码的时候,如果没搞懂Spectra的MCTF(Motion Compensated Temporal Filter)硬件模块和你的算法之间是怎么分工的,那调试起来就是灾难。先说说Spectra里SuperNight最核心的硬件资源——那个叫“多帧原始域处理单元”的东西。很多人以为多帧合成是在YUV域做的,错了,Spectra的SuperNight是在RAW域就开始了。它会在传感器出RAW之后,直接进ISP的RAW处理前端,那里有个专门的Buffer,能存8到16帧的RAW数据。这个Buffer不是给你随便用的,它分成了两个区,一个叫“参考帧区”,一个叫“待处理帧区”。你调算法的时候,如果发现帧数超过Buffer容量,系统会自动丢弃中间帧,这时候你看到的夜景照片就会出现“鬼影”或者“断层”——不是算