172、夜景模式的多帧合成芯片级优化——基于海思ISP的RAW域对齐与降噪的NPU卸载与功耗控制
去年在珠海做某旗舰机型的夜景模组调试,客户反馈一个非常诡异的现象:夜景模式连续拍十张,前五张画质完美,第六张开始画面出现微妙的“糊”,到第八张直接出现重影。我们一开始怀疑是OIS马达热漂移,换了三颗马达无解。最后抓了ISP的tuning log才发现,问题出在NPU的DVFS——多帧对齐的NPU任务跑满六帧后,NPU频率从1.0GHz跌到660MHz,对齐精度下降导致融合权重错乱。这个案例让我意识到,夜景模式的多帧处理,真正的瓶颈从来不在算法本身,而在芯片级的资源调度与功耗墙。
海思ISP的RAW域多帧处理,核心链路是:sensor出RAW → ISP的LDC/BNR预处理 → 多帧写入DDR → NPU做特征点提取与对齐 → ISP再做降噪融合 → 输出YUV。这条链路里,最容易被人忽略的是RAW域对齐的精度与NPU算力之间的耦合关系。海思的ISP内置了硬件ME(Motion Estimation)模块,但它的精度只到4x4像素块,对于夜景这种需要亚像素级对齐的场景远远不够。所以主流方案都是把RAW图切块,丢给NPU跑光流或特征匹配。这里有个关键决策点:是让NPU处理全分辨率RAW,还是先做2x2 binning再处理?
我见过不少团队直接上全分辨率,结果NPU的DDR带宽被占满,ISP的降噪模块拿不到数据,整个pipeline的帧率从15fps掉到8fps。正确的做法是分两级:第一级用ISP的硬件ME做粗对齐,输出运动矢量图;第二级把运动矢量图作为先验信息,引导NPU只在运动区域做精细匹配。这样NPU的算力消耗能降60%以上。海思的ISP有个寄存器叫M