ISP Pipeline 概览:一张图看懂图像处理全流程
做安防 ISP 调优这些年,我见过不少新人一上来就盯着某个模块猛调,结果整体效果反而更差。为什么?因为 ISP 是一条流水线,每个环节都依赖前一级的输出。你不了解全貌,就很容易「按下葫芦浮起瓢」。
这一节,我带你把 ISP Pipeline 从头到尾捋一遍。重点说清楚三个事:
- 整个处理流程长什么样
- 宽动态(WDR)到底插在哪一环节
- RAW 域、RGB 域、YUV 域分别干什么
嗯,先看一张总图,心里有个框架。
ISP Pipeline 总览:从 Sensor 到显示
ISP 的全称是 Image Signal Processor。它的任务,就是把 Sensor 输出的原始电信号,变成人眼看着舒服、机器能分析的图像。
整个流程可以分成四大阶段:
- Sensor 数据采集 —— CMOS/CCD 感光,输出 RAW 数据
- RAW 域预处理 —— 黑电平、坏点、去噪、镜头阴影校正
- 宽动态处理 —— 多帧合成、Tone Mapping(这是我们的核心战场)
- RGB/YUV 后处理 —— 白平衡、色彩校正、锐化、降噪、编码
你想想看,Sensor 出来的数据是 Bayer 格式的,每个像素只有一种颜色分量。如果不经过 ISP 处理,直接显示出来就是一片灰蒙蒙的马赛克。所以 ISP 的每一步,都是在「还原」和「美化」真实场景。
宽动态在 ISP 中的位置:为什么卡在 RAW 域末端?
宽动态模块的位置,其实是有讲究的。我见过一些方案把 WDR 放在 RGB 域甚至 YUV 域,效果都不理想。为什么?
原因有三:
- RAW 域数据最原始 —— 没有经过任何色彩处理,线性度最好,适合做多帧合成和曝光融合
- 避免色彩干扰 —— 如果在 RGB 域做合成,白平衡和 CCM 的误差会被放大,容易出现偏色
- 降低计算量 —— RAW 域每个像素只有 1 个通道,RGB 域有 3 个,YUV 域还要做色彩空间转换,计算量翻倍
我记得有一次,客户反馈宽动态开启后画面偏紫。排查了半天,发现是 WDR 模块被放在了白平衡之后。白平衡本身就有色温估计误差,再叠加多帧合成,误差直接翻倍。后来把 WDR 挪回 RAW 域末端,问题就解决了。
RAW 域与 RGB 域处理:各自的任务清单
很多初学者分不清 RAW 域和 RGB 域到底在做什么。我列个表格,一目了然。
| 处理域 | 核心任务 | 数据特点 | 典型模块 |
|---|---|---|---|
| RAW 域 | 恢复 Sensor 原始信号的准确性和完整性 | 线性、单通道(Bayer 模式) | 黑电平校正、坏点校正、去噪、镜头阴影校正、宽动态 |
| RGB 域 | 还原真实色彩,调整人眼感知 | 非线性、三通道(R/G/B) | 白平衡、CCM、Gamma、色彩增强 |
| YUV 域 | 分离亮度和色度,适配编码和显示 | 亮度+色差(Y/Cb/Cr) | 锐化、降噪、编码前处理 |
说白了,RAW 域做的是「物理校正」,RGB 域做的是「色彩美学」,YUV 域做的是「工程适配」。三个域各司其职,顺序不能乱。
YUV 域输出:最终交付给编码器
YUV 域是 ISP Pipeline 的最后一站。为什么最后才转 YUV?因为人眼对亮度敏感、对色度不敏感。把亮度和色度分开后,编码器可以对色度通道做更大的压缩,节省带宽。
在安防场景下,YUV 域有几个关键调试点:
- 边缘增强(锐化) —— 提升画面清晰度,但过度锐化会产生振铃效应
- 降噪(NR) —— 2D NR 和 3D NR 配合使用,既要降噪又要保留细节
- 动态范围压缩 —— 把宽动态后的高动态范围映射到 8-bit 或 10-bit 输出
我建议你在调 YUV 域时,先关掉所有降噪和锐化,只看基础图像质量。等 RAW 域和 RGB 域调稳了,再逐步打开后处理。否则你根本分不清噪点是 Sensor 带来的,还是锐化放大的。
嗯,这一节的内容就到这里。你先把 Pipeline 的整体框架记住,后面每一章我们会深入每个模块的调优细节。