4. ISP Pipeline 详解:高通 ISP 各模块对画质的影响
ISP Pipeline,说白了就是一张 RAW 图变成你最终看到的那张照片,中间要过的每一道关卡。高通平台把这些关卡分得很细,BNR、LTMC、GTM、HDR……每个模块都有自己的脾气。我刚开始调的时候,也搞混过它们的作用顺序,结果调了半天画面反而更糟。
今天咱们就把这条流水线拆开,一个一个看明白。
4.1 ISP Pipeline 整体架构
高通的 ISP 处理流程大致可以分为三个阶段:前端(FE)、中端(IPE)、后端(VPU/GPU)。每个阶段负责不同的任务。
核心流程: Sensor RAW → BLS(黑电平校正) → BNR( Bayer 降噪) → LSC(镜头阴影校正) → Demosaic(去马赛克) → LTMC(局部色调映射) → GTM(全局色调映射) → HDR 合成 → 色彩校正 → 锐化 → YUV 输出
下面这张图能帮你快速建立整体认知:
4.2 BNR(Bayer 降噪)—— 画质的基石
BNR 是 ISP 里最早接触数据的模块之一。它处理的是 RAW 域的数据,也就是传感器直接输出的、还没经过任何处理的原始信号。
为什么 BNR 这么重要?
- 传感器本身就有热噪声、读出噪声
- 暗光环境下噪声会被放大
- 如果 BNR 没做好,后面的模块会把噪声也一起放大
我的经验: 调 BNR 时,我习惯先看暗部区域。暗部的噪声最明显,也最容易看出降噪强度是否合适。太强了,细节就糊了;太弱了,噪点满天飞。
BNR 的关键参数:
| 参数 | 作用 | 调优建议 |
|---|---|---|
| 降噪强度 | 控制整体降噪力度 | 暗光场景适当提高,但不要超过 70% |
| 边缘保护 | 保留边缘细节,防止模糊 | 边缘区域降噪强度降低 20-30% |
| 色度降噪 | 减少彩色噪点 | 色度降噪可以比亮度降噪更强一些 |
注意: BNR 调得太强,画面会像涂了一层油。我曾经在一个项目中为了追求干净的画面,把 BNR 拉满,结果客户反馈说“照片像塑料做的”。后来我学会了用边缘保护参数来平衡。
4.3 LTMC(局部色调映射)—— 让暗部亮起来
LTMC 是我个人觉得最有趣的模块。它负责对画面中不同区域做独立的亮度调整。
LTMC 的核心思想: 亮的地方不压太暗,暗的地方不拉太亮。它根据每个像素周围的亮度分布,生成一个局部映射曲线。
举个例子:
- 逆光人像:人脸暗了,LTMC 会单独提亮人脸区域
- 夜景灯箱:灯箱过曝,LTMC 会单独压低灯箱亮度
关键点: LTMC 的强度不能太大,否则会出现“光晕”现象——亮区和暗区交界处出现一圈不自然的亮边。我调过一台手机,LTMC 开太大,拍夜景时路灯周围全是光晕,像加了特效一样。
4.4 GTM(全局色调映射)—— 整体亮度控制
GTM 和 LTMC 是搭档。GTM 管全局,LTMC 管局部。
GTM 做什么?
- 把 12bit/14bit 的 RAW 数据映射到 8bit 输出
- 调整整体亮度和对比度
- 控制高光不溢出,暗部不欠曝
GTM 的曲线通常是一个 S 形曲线:暗部稍微提亮,高光稍微压缩,中间调保持线性。
我的习惯: 调 GTM 时,我会先看直方图。如果直方图左边(暗部)堆了很多像素,说明需要提亮暗部;如果右边(高光)顶到了边界,说明高光要压缩。GTM 的曲线调整要平滑,不能有陡峭的转折,否则画面会出现“断层”。
4.5 HDR(高动态范围)—— 多帧合成
HDR 模块是解决大光比场景的利器。它通过拍摄多帧不同曝光的图像,合成一张高动态范围的照片。
HDR 的工作流程:
- 传感器连续拍摄 2-3 帧:正常曝光、欠曝、过曝
- ISP 对齐多帧图像(防止手抖导致重影)
- 根据每帧的亮度信息,合成最终图像
HDR 的常见问题:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 重影 | 多帧对齐不准 | 提高运动检测阈值,或者降低 HDR 帧数 |
| 颜色偏差 | 不同曝光帧的白平衡不一致 | 统一各帧的白平衡增益 |
| 亮度不自然 | 合成权重不合理 | 调整各帧的融合权重曲线 |
避坑指南: 我曾经调过一个项目,HDR 合成后天空出现了一圈一圈的“光晕环”。查了很久才发现是 LTMC 和 HDR 的优先级没配好——HDR 合成后 LTMC 又做了一次局部映射,导致亮度过度不平滑。后来我把 LTMC 放在 HDR 之前处理,问题就解决了。
4.6 各模块的协同关系
这些模块不是独立工作的。它们之间有严格的先后顺序和相互影响。
典型的依赖关系:
- BNR 必须在 Demosaic 之前做,因为 RAW 域的噪声更容易分离
- LTMC 和 GTM 的顺序可以互换,但高通默认是 GTM 在前、LTMC 在后
- HDR 合成通常在色调映射之前,因为 HDR 需要原始的亮度信息
一句话总结: BNR 决定画质下限,LTMC/GTM 决定亮度表现,HDR 决定动态范围。调优时要从前往后调,先保证 BNR 干净,再调亮度,最后调 HDR。
4.7 实战调优建议
最后分享几个我实际调优时的小技巧:
- 先看 RAW 图: 调 BNR 之前,先看 RAW 图的噪声水平。如果 RAW 图本身噪声很大,BNR 再强也救不回来。
- 用灰度卡调 GTM: 拍一张灰度卡,看 GTM 曲线是否把 18% 灰映射到正确的亮度值。
- HDR 要拍运动场景: 测试 HDR 时,一定要拍有运动物体的场景(比如行人、车辆),才能发现重影问题。
- LTMC 强度不要超过 0.5: 我个人的经验值,LTMC 强度超过 0.5 就容易出现光晕,除非你的场景非常特殊。
最后说一句: ISP 调优没有银弹。每个模块的参数都要根据实际场景来调。你想想看,同一个参数在白天和夜景下的表现可能完全不同。多拍、多看、多调,慢慢就能找到感觉。