深入理解ISP
- 引言
- ISP在成像系统中的位置
- ISP Pipeline完整流程
- Raw域处理(Bayer域)
- RGB线性域处理
- RGB非线性域处理
- YUV域处理
- 各模块详解详解
- Test Pattern测试图像图像
- DPC坏点校正
- BLC黑电平校正校正
- LSC镜头阴影校正
- AWB自动白平衡平衡
- 降噪(BNR+Denoise)
- Demosaic去马赛克(颜色插值)
引言
你有没有想过,为什么手机拍出来的照片和人眼看到的几乎一样?为什么在强光 、暗光、混合光源下,相机都能"猜"对颜色?答案就藏在一个叫ISP Pipeline的东西里。
ISP(图像信号处理)是相机成像系统的核心引擎。传感器(Sensor)捕获的原始数据只是一堆“数字”,没有颜色、没有白平衡、甚至有很多噪点。ISP的工作,就是把这些"数字"变成我们看到的那张色彩准确、细节清晰的照片。
ISP在成像系统中的位置
ISP处于整个成像系统的中心地位。它向上连接传感器,向下对接显示/存储/算法,是“翻译官”也是“美颜师”。
传感器输出的是Raw格式数据——它只有亮度信息,没有颜色,就像一张“黑白马赛克”。ISP需要完成从Raw到RGB/YUV的完整转换,同时修复各种光学和电子缺陷。
一句话理解ISP:传感器负责“看见”,ISP负责“看对”——把传感器看到的“数字”翻译成人眼能理解的“图像”。
ISP Pipeline完整流程
ISP Pipeline(Image Signal Processor Pipeline,图像信号处理器流水线)就像一条“图像处理流水线”",每个模块负责解决一个特定问题。按照处理域的不同,可以分为四个阶段:
Raw域处理(Bayer域)
从Sensor输出的Bayer数据,要经过六道关键工序才能"洗干净"
数据流向:Raw Bayer → 预处理 → 色彩校正 → 动态增强
RGB线性域处理
数据流向:Bayer RAW → 色彩插值 → 色彩校准 → 动态压缩 → 线性RGB
RGB非线性域处理
RGB非线性域处理: 此阶段的核Gamma(伽马)校正。它将传感器输出的线性亮度数据,转换为人眼感知的非线性亮度曲线,从而在有限的显示或存储位深下,更有效地利用数据范围,并让图像看起来更自然、符合人眼视觉习惯。
YUV域处理
从RGB到最终输出,画质打磨的最后一关。
数据流向:线性RGB →色彩空间转换 →降噪 → 锐化 → 分辨率调整→YUV输出输出
各模块详解详解
Test Pattern测试图像图像
在正式处理图像之前ISP需要先验证自己的“流水线”是否正常工作。Test Pattern就是相机自己生成的测试图像图像——不经过镜头和传感器,直接由硬件产生。
- 测试图像1:由固定的对角灰色渐变组成,范围从0到255,最适合将相机配置为单色8位输出的情况。
- 测试图像2:包括移动的对角灰色渐变,范围从0到255。触发新图像采集时,图像向左移动一个像素。
- 测试图像3:包括移动的对角灰色渐变,范围从0到4095。触发新图像采集时,图像向左移动一个像素。最适合将相机配置为单色12位输出的情况。
- 彩色条纹:由移动的对角颜色渐变组成。仅在彩色相机上可用。
常见测试图案:
- 全黑/全白:验证像素值范围是否正确
- 彩色条纹:验证颜色通道是否正常
- 渐变灰阶:验证Gamma校正效果
- 棋盘格:验证像素对齐和同步
解决什么问题: 产线测试、故障诊断、后续模块验证。在相机出厂前,用测试图像快速定位是传感器问题还是ISP问题。
DPC坏点校正
传感器上有数百万个感光单元,制造过程中难免有一些"坏点"——要么永远是黑的(死点),要么永远是亮的(亮点)。这些坏点在照表现为 刺眼的黑点或亮点。
BLC黑电平校正校正
理想情况下,全黑环境中传感器输出应该全是0。但实际上,由于暗电流的存在,即使没有光线进入,传感器也会输出一个非零值这就是“黑电平”。
关键点:BLC是ISP pipeline的第一个处理步骤步骤,后续所有模块都依赖BLC的准确如果BLC 不准,白平衡、降噪、色彩校正都会出问题。
LSC镜头阴影校正
你有没有注意到,用手机拍一张纯白的墙,照片中间亮、四周暗?这就是镜头阴影 (Lens Shading),也叫“暗角”。
AWB自动白平衡平衡
人眼有一个神奇的能力——不管在日光灯、钨丝灯还是阴天,白色的东西看起来都是白色但相机不行,不同光源下白色会“变色”:钨丝灯下偏黄,阴天偏蓝。
实际工作场景:手机拍照时切换"日光/阴天/白炽灯"模式,本质就是在调整白平衡参数。工业视觉中,AWB不准会导致颜色检测(如分拣、缺陷识别)失败。
降噪(BNR+Denoise)
图像噪声是ISP必须处理的核心问题。噪声来源很多:传感器热噪声、暗电流噪声、读出噪声、量化噪声……尤其在暗光环境下,噪声会非常严重。
为什么BNR不能太强?
- 去噪过强,Demosaic后细节损失严重
- 后续RGB域的对比度、锐度增强会放大噪声,需要RgbNR兜底
常见降噪算法:
Demosaic去马赛克(颜色插值)
传感器前面覆盖了一层Bayer滤镜(RGB排列),每个像素只能感应一种颜色(R、G或B)。Demosaic的工作就是把这种"马赛克"还原成完整的RGB彩色图像。