ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

149、多帧合成夜景模式——SuperNight/HDR+的芯片级优化与DDR带宽/时延控制

149、多帧合成夜景模式——SuperNight/HDR+的芯片级优化与DDR带宽/时延控制 149、多帧合成夜景模式——SuperNight/HDR+的芯片级优化与DDR带宽/时延控制去年年底在调试某款搭载高通SM8550平台的旗舰机型时,遇到了一个极其诡异的夜景问题。用户手持拍摄夜景,取景预览正常,按下快门后转圈约1.2秒,出图效果倒是惊艳,但相册里查看时,偶尔会出现几张“半明半暗”的合成失败图——上半部分正常,下半部分明显偏暗,像是曝光没来得及覆盖。更头疼的是,这个问题在实验室用固定三脚架复现率不到5%,但用户实际手持场景下投诉率高达15%。我们一开始怀疑是陀螺仪数据同步问题,后来抓取trace发现,问题出在DDR带宽争抢上——ISP在连续抓取12帧RAW时,GPU正好在做UI渲染,NPU也在跑场景识别,三者同时抢占DDR带宽,导致ISP的写回时延抖动超过了一个vsync周期,最终合成引擎拿到的帧序列时间戳错位,下半帧数据还是上一帧的曝光量。这个案例让我决定把多帧合成夜景的芯片级优化单独拿出来写一篇。因为很多工程师在调SuperNight或HDR+时,眼睛只盯着算法效果——降噪强度、高光压制、暗部提亮,却忽略了最底层的物理约束:DDR带宽是有限的,时延是波动的,ISP的管线是流水线式的,任何一环的抖动都会在最终合成结果上放大成可见的伪影。先聊一个最容易被忽视的点:多帧合成的帧数选择,不是算法说了算,是DDR带宽说了算。以IMX989这类一英寸大底为例,单帧RAW输出是50MP,12bit,单帧大小约100MB。如果你要拍12帧合成,那就是1.2GB的数据量要在1秒内从Sensor经过ISP写入DDR,再从DDR读出来做对齐和融合。SM8550的DDR带宽理论峰值是68.3GB/s,听起来很充裕,但这是理论值——实际场景下,CPU、
返回列表