3. ISP Pipeline概览

做安防 ISP 调优这些年,我见过不少新人一上来就盯着某个模块猛调,结果整体效果反而更差。为什么?因为 ISP 是一条流水线,每个环节都依赖前一级的输出。你不了解全貌,就很容易「按下葫芦浮起瓢」。

这一节,我带你把 ISP Pipeline 从头到尾捋一遍。重点说清楚三个事:

  • 整个处理流程长什么样
  • 宽动态(WDR)到底插在哪一环节
  • RAW 域、RGB 域、YUV 域分别干什么

嗯,先看一张总图,心里有个框架。

ISP Pipeline 总览与宽动态位置 RAW 域 Sensor 原始数据 黑电平校正 → 去噪 坏点校正 → 去马赛克 镜头阴影校正 宽动态(WDR) 多帧合成 / 分时曝光 全局运动对齐 局部 Tone Mapping 鬼影消除 RGB 域 白平衡(AWB) 色彩校正矩阵(CCM) Gamma 校正 色彩增强 YUV 域 亮度/色度分离 边缘增强(锐化) 降噪(NR) 编码前处理 宽动态模块位于 RAW 域末端,在去马赛克之前完成多帧合成与 Tone Mapping

ISP Pipeline 总览:从 Sensor 到显示

ISP 的全称是 Image Signal Processor。它的任务,就是把 Sensor 输出的原始电信号,变成人眼看着舒服、机器能分析的图像。

整个流程可以分成四大阶段:

  1. Sensor 数据采集 —— CMOS/CCD 感光,输出 RAW 数据
  2. RAW 域预处理 —— 黑电平、坏点、去噪、镜头阴影校正
  3. 宽动态处理 —— 多帧合成、Tone Mapping(这是我们的核心战场)
  4. RGB/YUV 后处理 —— 白平衡、色彩校正、锐化、降噪、编码

你想想看,Sensor 出来的数据是 Bayer 格式的,每个像素只有一种颜色分量。如果不经过 ISP 处理,直接显示出来就是一片灰蒙蒙的马赛克。所以 ISP 的每一步,都是在「还原」和「美化」真实场景。

我的习惯:拿到一个新 Sensor 或新平台,我第一件事不是调参数,而是先跑一遍完整的 Pipeline 抓图,确认每个模块的输入输出数据范围。这一步能省掉后面 80% 的排查时间。

宽动态在 ISP 中的位置:为什么卡在 RAW 域末端?

宽动态模块的位置,其实是有讲究的。我见过一些方案把 WDR 放在 RGB 域甚至 YUV 域,效果都不理想。为什么?

原因有三:

  • RAW 域数据最原始 —— 没有经过任何色彩处理,线性度最好,适合做多帧合成和曝光融合
  • 避免色彩干扰 —— 如果在 RGB 域做合成,白平衡和 CCM 的误差会被放大,容易出现偏色
  • 降低计算量 —— RAW 域每个像素只有 1 个通道,RGB 域有 3 个,YUV 域还要做色彩空间转换,计算量翻倍

我记得有一次,客户反馈宽动态开启后画面偏紫。排查了半天,发现是 WDR 模块被放在了白平衡之后。白平衡本身就有色温估计误差,再叠加多帧合成,误差直接翻倍。后来把 WDR 挪回 RAW 域末端,问题就解决了。

避坑指南:宽动态模块必须放在去马赛克(Demosaic)之前。如果放在之后,Bayer 数据已经被插值成 RGB,再做多帧合成会出现严重的伪色和锯齿。我曾经在这个坑里浪费了两周时间。

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 带来的,还是锐化放大的。

一句话总结:ISP Pipeline 就像一条流水线,RAW 域是原料处理,宽动态是核心工艺,RGB 域是上色,YUV 域是包装。哪个环节出问题,最终产品都不会好看。

嗯,这一节的内容就到这里。你先把 Pipeline 的整体框架记住,后面每一章我们会深入每个模块的调优细节。