一、夜景模式概述:高通平台夜景模式架构、多帧合成原理、与普通模式的差异

各位同学好,我是老高。在高通平台做相机开发这么多年,我接触最多的功能之一就是夜景模式。说实话,刚入行那会儿,我觉得夜景不就是拉高ISO、延长曝光时间嘛。直到第一次看到自己调的夜景样张——满屏噪点、鬼影、偏色,我才意识到,这事儿没那么简单。

这一章,我们先从整体上把夜景模式讲清楚。我会结合我在高通平台上的实际经验,带你看看夜景模式的架构长什么样、多帧合成到底怎么运作、以及它跟普通拍照模式到底差在哪。

1.1 高通平台夜景模式架构

高通平台的夜景模式,说白了是一个多帧采集 + 多帧处理的流水线。它不是单帧硬扛,而是靠多帧信息叠加来换取信噪比。

我习惯把整个架构分成三层:

  • 应用层(APP层):用户点击快门,触发夜景模式请求。这里会传递场景信息,比如亮度、运动检测结果。
  • 中间层(CamX/CHI):高通的核心相机框架。它负责调度多帧请求、管理buffer队列、触发ISP pipeline。我个人觉得,CHI的灵活性是夜景模式能做好关键。
  • 底层(ISP + 硬件):真正的图像采集和初步处理。包括Sensor曝光、RAW域处理、MIPI传输等。

嗯,这里要注意:高通从SM8250(骁龙865)开始,夜景模式基本都跑在CHI架构上。如果你还在用旧平台,那架构会有些不同。

核心要点:高通夜景模式 = 多帧采集 + 多帧对齐 + 多帧合成 + 后处理。每一层都有专门的硬件或软件模块负责。

高通平台夜景模式架构(三层流水线) 应用层(APP / HAL) 用户触发夜景模式 → 传递场景亮度、运动检测结果 下发多帧请求(通常 6~12 帧) 中间层(CamX / CHI) 多帧请求调度 → Buffer 管理 → ISP Pipeline 配置 多帧对齐(ME/MC)→ 多帧合成(MFSR)→ Tone Mapping 输出合成后的 RAW / YUV 帧 底层(ISP + Sensor + 硬件) Sensor 曝光(长帧 + 短帧)→ RAW 域采集 → MIPI 传输 ISP 初步处理(BLC、LSC、AWB 等) 说明:SM8250 及以上平台使用 CHI 架构;旧平台(如 SM8150)使用旧 CamX 或 mm-camera

1.2 多帧合成原理

多帧合成,说白了就是用多张低质量图拼一张高质量图。你想想看,单帧在暗光下信噪比低,但如果你拍 6 帧、8 帧甚至 12 帧,把它们的信号叠加起来,噪声就会相互抵消,细节就会保留下来。

高通平台的多帧合成,我把它拆成三个核心步骤:

  1. 多帧采集:Sensor 连续输出多帧 RAW 数据。通常包含 1~2 帧长曝光(用于暗部细节)和 4~10 帧短曝光(用于高光保留和运动补偿)。
  2. 多帧对齐(ME/MC):因为手持拍摄会有微小抖动,必须做运动估计(Motion Estimation)和运动补偿(Motion Compensation)。我遇到过最头疼的情况是夜景下的人像——人脸稍微一动,对齐就崩了,合成出来全是鬼影。
  3. 多帧合成(MFSR):对齐后的帧进行像素级融合。高通用的是 Multi-Frame Super Resolution 算法,说白了就是加权平均 + 细节增强。权重怎么分配?信噪比高的帧权重大,运动区域权重降低。

我的经验:多帧对齐是夜景模式的瓶颈。我曾经在一个项目里,夜景模式合成后边缘全是重影,查了三天才发现是 ME 模块的搜索窗口设得太小,导致大位移没对齐。把搜索范围从 32x32 改成 64x64 后,问题就解决了。

这里我放一个简化的多帧合成流程,方便你理解:

多帧合成核心流程 帧 1(长曝光) 帧 2(短曝光) 帧 3~N(短曝光) 多帧对齐 运动估计 (ME) 运动补偿 (MC) 输出对齐后的 多帧 RAW 多帧合成 加权融合 细节增强 HDR 合并 输出合成帧 输出 高画质帧

1.3 夜景模式与普通模式的差异

普通模式拍夜景,说白了就是硬扛。ISO 拉到 3200、6400,快门速度降到 1/10s 甚至更低。结果呢?噪点满天飞,细节全糊掉。

夜景模式就不一样了。它用多帧合成来换取信噪比。我整理了一个对比表,你一看就明白:

对比维度 普通模式 夜景模式
帧数 单帧 多帧(6~12 帧)
曝光策略 单次曝光,ISO 优先 多帧混合曝光(长帧 + 短帧)
ISO 范围 通常 800~6400 可低至 100~800(通过多帧合成降噪)
快门速度 1/30s ~ 1/2s 单帧 1/15s ~ 1s,总时长 2~6s
噪声水平 高(单帧 SNR 低) 低(多帧 SNR 提升 3~6dB)
动态范围 有限(约 60~70dB) 高(约 80~100dB)
运动鬼影 无(单帧) 有风险(需对齐算法处理)
处理时间 实时(< 100ms) 需等待(1~5s 后处理)

注意:夜景模式不是万能的。如果场景中有快速运动物体(比如行人、车辆),多帧对齐很容易失败,合成结果反而比普通模式更差。我曾经在一个项目中,夜景模式拍夜景人像,人脸全是重影,最后不得不加一个运动检测开关——检测到运动就自动切回普通模式。

另外,还有一个容易被忽略的差异:色彩处理。普通模式在暗光下 AWB(自动白平衡)容易偏色,因为信噪比太低,色温估计不准。夜景模式因为多帧合成后信噪比高,AWB 会更稳定。我调过的一个项目,普通模式在 10 lux 下白平衡偏紫,夜景模式就正常多了。

1.4 小结

这一章我们聊了高通平台夜景模式的整体架构、多帧合成的核心原理、以及它跟普通模式的差异。说白了,夜景模式就是用时间换质量——多花几秒钟采集和处理,换来更干净、更亮、动态范围更大的照片。