isp流程和相关步骤基本概念

摄像头上会有单点的坏点吗?
- 传感器确实存在坏点(defective pixels)
在 CMOS/CCD 图像传感器中,单点坏点是客观存在的物理现象,主要包括:
Hot pixels(热像素):即使在黑暗中也输出高信号
Stuck pixels(卡死像素):始终输出最大值(如 255)或最小值(如 0)
Dead pixels(死像素):始终无响应(输出为 0)
这些坏点源于:
制造工艺缺陷(如晶体管漏电、微短路)
材料杂质
长期使用后的老化(尤其在高温、高ISO下)
✅ 2. 供应商不会完全淘汰带坏点的传感器
原因:
成本考虑:高端传感器良率有限,完全剔除坏点会大幅提高成本
可修复性:坏点可通过软件校正,无需硬件报废
行业标准允许:JEDEC、ISO 等标准对坏点数量有容忍阈值
实际做法:
分级销售(binning):
坏点极少 → 用于高端手机/车规级
坏点较多 → 用于低端设备(如玩具相机、监控)
坏点地图(Defect Map):
出厂时记录坏点位置
提供给 ISP 或驱动程序用于校正
✅ 3. ISP(图像信号处理器)会自动处理坏点
现代摄像头模组(包括手机和车载)几乎都包含 ISP 芯片,其坏点校正流程通常包括:
(1)坏点检测(出厂或运行时)
通过拍摄黑帧(black frame)或白帧识别异常像素
结合工厂提供的坏点地图
(2)坏点修复(Defective Pixel Correction)
常用方法:
中值滤波:用周围 4/8 邻域中值替换
双线性插值:根据同色 CFA 像素插值(Bayer 模式下)
时域平均:多帧下用历史帧值替代
📌 例如:Apple、Samsung、Sony 的 ISP 都内置了坏点校正模块,用户完全无感知。
- 车规级 vs 消费级的区别

但即便如此,车规摄像头仍可能有坏点,只是通过更严格的校正保证输出图像可靠。
5.是否需要对图像进行坏点矫正
如果你处理的是 RAW 数据(如 .dng),务必加入坏点校正步骤;
如果处理的是 JPEG/PNG(ISP 输出),通常可跳过此步。
坏点检测为什么可以在 Bayer RAW 上做?不需要等到 RGB 吗?
答案:可以,而且必须在 RAW 域做!
原因如下:
(1)坏点是传感器物理缺陷,体现在 RAW 域
Hot/Stuck/Dead 像素是 CMOS 传感器本身的硬件问题
它们在 RAW 输出阶段就已经存在,表现为:
某个 R 像素始终输出 65535(16-bit)
某个 G 像素始终输出 0
这些异常值在去马赛克前就已确定
(2)如果等到 RGB 再修复,会扩散错误
假设一个 R 通道的 hot pixel:
在 RAW 中:R=65535, G=?, B=?(只有 R 异常)
如果先去马赛克 → 插值得到 R=65535, G=xxx, B=yyy
再做坏点校正 → 需要同时修正 R、G、B 三个通道
但 G/B 本来是正常的!
🔥 后果:错误会从单通道扩散到全彩色,导致更大范围的伪影。
UYVY 中通常没有明显的坏点(或已被处理)
UYVY 是一种 YUV 4:2:2 packed 色彩格式
它已经经过了:
坏点校正(Defective Pixel Correction)
黑电平校正(Black Level Subtraction)
去马赛克(Demosaicing,如果是 Bayer 传感器)
白平衡、色彩校正、伽马校正等
换句话说:坏点校正通常是 ISP 流水线的第一步或早期步骤。
白平衡
人眼具有颜色恒常性,可以避免光源变化带来的颜色变化,但是图像传感器不具备这种特性,从而造成色偏,白平衡就是需要校正这个颜色的偏差;
颜色恒常性:颜色恒常是指在照度发生变化的条件下人们对物体表面颜色的知觉趋于稳定的心理倾向;
即使照明光源的颜色发生显著变化,人眼仍能大致保持对物体表面颜色的稳定感知。
🌰 举例:
在白炽灯(偏黄)下看一张白纸 → 你仍觉得它是“白”的,而不是“黄”的
在阴天(偏蓝)下看同一张白纸 → 你仍觉得它是“白”的,而不是“蓝”的
这是大脑的一种高级视觉补偿机制,目的是为了识别物体的真实材质/颜色,不受光照干扰。
那为什么夕阳看起来是金红/橙色,而不是“白色”?
关键在于:颜色恒常性作用的对象是“物体表面”,而不是“光源本身”。你看到的 “绚丽的橙红色天空” 是真实的入射光颜色,大脑不会对它做恒常性校正
黄昏看到的夕阳绚丽,但是拍摄出来颜色变淡。为什么,用白平衡来解释
- 白平衡的目标
让白色物体在任何光照下都看起来是“白色”。
为了实现这一点,相机会自动估计当前光源的颜色,然后反向校正图像,以“中和”光源色。 - 黄昏时的光源特性
夕阳光线富含 红/橙色成分(色温低,约 2000K–3500K)
人眼适应了这种暖光,所以觉得“正常”甚至“美丽”
但相机的 自动白平衡(AWB)会认为:
“整个画面太黄/太红了,这肯定是因为光源偏暖,我要把它‘调冷’回来!” - AWB 的“纠错”行为
相机检测到大量红色/橙色 → 判定为“白炽灯”或“烛光”环境
于是增强蓝色通道、抑制红色通道
结果:把本来绚丽的暖色调“纠正”成了接近中性色
假设夕阳下一张白纸的真实 RAW 值(未白平衡):
R = 200, G = 120, B = 80 → 明显偏橙
人眼看到的就是这种温暖的光,觉得很美。
但 AWB 会计算增益:
R_gain ≈ 1.0
G_gain ≈ 1.67
B_gain ≈ 2.5
校正后:
R = 200, G = 200, B = 200 → 变成灰色/白色
同时,天空中的橙红色云彩也被“去色”了,变得平淡。
你看到的 “绚丽的橙红色天空” 是真实的入射光颜色,大脑不会对它做恒常性校正
而你看到的 “人脸没有变成橙色”,是因为大脑对人脸做了恒常性补偿
💡 颜色恒常性 ≠ 把所有东西都看成白色
它只对 “反射光”(物体)起作用,不对 “直接光”(光源、天空)起作用。
相机的自动白平衡(AWB) 错误地把整个场景当作“被照亮的物体”,试图“纠正”光源色。
相机的逻辑(错误):
“整个画面太红了 → 这肯定是光照偏暖 → 我要加蓝色把它‘中和’成白色”
人眼的逻辑(正确):
“天空发红 → 这就是光源的颜色,保留它!
人脸有点红 → 这是被暖光照射,应该补偿回正常肤色”
为什么白平衡(AWB)也在 RAW 域做?
因为白平衡的本质是对传感器原始响应做增益调整
详细解释:
(1)白平衡 = 对 R/G/B 通道分别乘以增益
公式:R_corrected = R_raw × gain_R
这些增益(如 gain_R = 2.1, gain_G = 1.0, gain_B = 1.8)是针对 RAW 传感器响应 的
(2)如果在 RGB 域做白平衡,会引入非线性失真
去马赛克后,每个像素的 R/G/B 是 插值结果
插值本身是非线性的(尤其在边缘)
在插值后的数据上做增益 → 色彩失真 + 伪彩加剧
(3)物理意义要求在 RAW 域校正
白平衡的目标是 补偿光源光谱 + 传感器光谱响应不匹配
这个补偿必须作用在 最原始的光电转换信号 上
后续处理(去马赛克、CCM)都假设输入已经是“白平衡后”的线性数据
(4)工业标准 ISP 流程均在 RAW 域做 AWB
去马赛克
在图像信号处理(ISP)中,去马赛克(Demosaicing / Debayering)是将 Bayer 格式的 RAW 图像 转换为 全彩色 RGB 图像 的关键步骤。
拜耳滤色镜马赛克(Bayer filter mosaic)是一种彩色滤光阵列(Color Filter Array, CFA)。它将红、绿、蓝(RGB)滤光器按特定模式(通常是RGGB)排列在影像传感器像素上,用于在单片传感器上采集彩色图像,广泛应用于数码相机和摄像机。
Bayer 滤色阵列(CFA)
大多数 CMOS 图像传感器(如 OmniVision、Sony IMX 系列)使用 Bayer CFA:
R G R G ...
G B G B ...
R G R G ...
G B G B ...
每个像素只记录 R、G、B 中的一个颜色分量
输出的 RAW 图像是 单通道马赛克图像,无法直接显示或用于彩色处理
✅ 去马赛克 = 为每个像素插值重建缺失的两个颜色通道
更详细的isp介绍:
ISP图像处理综述 - 念时光的文章 - 知乎
https://zhuanlan.zhihu.com/p/1902847621166499472
典型数据流
Sensor RAW (Bayer)
↓
[1] Black Level Correction
↓
[2] Defective Pixel Correction
↓
[3] Lens Shading Correction
↓
[4] White Balance (apply R/G/B gains)
↓
[5] Demosaicing → Full RGB
↓
[6] Color Correction Matrix (CCM)
↓
[7] Gamma / Tone Mapping
↓
[8] RGB → YUV (e.g., UYVY, NV12)
↓
Video Encoder / Display
📸 完整 ISP 处理流水线(按顺序)

🔍 补充说明(可选模块)

ISP 前端为何都在 RAW 域?
核心原则:
所有与传感器物理特性相关的校正,都必须在去马赛克前的 RAW 域完成。
去马赛克是 RAW → RGB 的分水岭,之后的处理都是基于“完整彩色图像”的假设。
更多推荐


所有评论(0)