ISP Pipeline 全景概览:从 Sensor 到显示器的图像信号处理流程
大家好,欢迎来到这门实战课。第一节课,我们先不急着调代码,而是把整个 ISP Pipeline 的全局图画清楚。你想想看,一个图像从 Sensor 捕捉到光线,到最终显示在屏幕上,中间到底经历了什么?我见过不少工程师,调了几年 3A 算法,却说不清 Demosaic 和 CCM 谁先谁后。这不行。
今天,我就带你从头到尾走一遍这条“图像流水线”。
一、ISP Pipeline 的整体流程
说白了,ISP(Image Signal Processor)就是一条加工流水线。Sensor 送进来的原始数据是 RAW 图,像一块未经雕琢的璞玉。经过 ISP 各个模块的打磨,最终变成我们肉眼看着舒服的 RGB 或 YUV 图像。
我个人习惯把这条流水线分成三大阶段:
- 前端预处理:修复 Sensor 的物理缺陷,比如坏点、暗角、黑电平。
- 中端色彩重建:从 Bayer 模式恢复全彩,做白平衡和色彩校正。
- 后端美化输出:调亮度、加锐化、降噪,最后编码显示。
下面这张图,是我自己画的一个标准 ISP Pipeline 框架。你可以把它当作整个课程的地图。
二、ISP 各模块功能简介
下面我把每个模块的核心功能拆开来讲。你不用一次性全记住,先有个印象就行。
| 模块 | 全称 | 一句话功能 | 输入/输出 |
|---|---|---|---|
| BLC | Black Level Correction | 减去 Sensor 暗电流带来的固定偏置 | RAW → RAW |
| LSC | Lens Shading Correction | 补偿镜头边缘亮度衰减(暗角) | RAW → RAW |
| AWB | Auto White Balance | 在不同光源下还原白色,消除偏色 | RAW → RAW |
| Demosaic | 去马赛克 | 从 Bayer 模式插值出每个像素的 R/G/B 值 | RAW → RGB |
| CCM | Color Correction Matrix | 用 3x3 矩阵校正色彩偏差,让红色更红 | RGB → RGB |
| Gamma | Gamma 校正 | 调整亮度曲线,适配人眼非线性感知 | RGB → RGB |
| Sharpen | 锐化 | 增强边缘对比度,让图像更清晰 | RGB/YUV → RGB/YUV |
1. BLC(黑电平校正)
Sensor 在没有光照时,像素也会产生微弱电流,这叫暗电流。BLC 就是把这个固定偏置减掉。嗯,这里要注意:不同 Sensor 的 BLC 值可能不同,甚至同一 Sensor 在不同温度下也会漂移。我曾经在调试一款安防摄像头时,忽略了温度对 BLC 的影响,结果夜间图像整体偏绿,查了两天才找到原因。
2. LSC(镜头阴影校正)
镜头中心透光多,边缘透光少,拍出来的照片四角发暗。LSC 就是给边缘像素“补光”。校正系数通常存在一个二维表格里,我建议你调试时先拍一张均匀灰板,看看暗角有多严重,再决定校正强度。
3. AWB(自动白平衡)
这个模块我会在后面的课程里花大篇幅讲。简单说,AWB 要回答一个问题:当前场景的光源是日光灯还是白炽灯?然后调整 R/G/B 增益,让白色物体在任何光源下都看起来是白的。
4. Demosaic(去马赛克)
Sensor 的每个像素只能感知一种颜色(R/G/B),排列成 Bayer 模式。Demosaic 就是通过插值算法,给每个像素补全缺失的两种颜色。插值算法的好坏,直接决定了图像边缘有没有锯齿或伪色。
5. CCM(色彩校正矩阵)
Sensor 的光谱响应和人眼不一样,拍出来的红色可能偏紫。CCM 用一个 3x3 矩阵把 Sensor 色彩空间映射到标准色彩空间。说白了,就是让红色更接近你记忆中“红”的样子。
6. Gamma 校正
人眼对暗部细节更敏感,对亮部不敏感。Gamma 校正就是压缩亮部、拉伸暗部,让图像看起来更自然。标准 Gamma 值通常是 2.2。
7. Sharpen(锐化)
经过前面一堆处理,图像边缘可能变模糊了。锐化就是提取边缘信息,叠加回原图,让轮廓更清晰。但锐化过度会产生光晕,我见过有人把锐化拉满,结果人脸边缘像镶了一圈金边,那效果……嗯,你懂的。
三、3A 算法在 Pipeline 中的位置与作用
3A 算法是 ISP 的灵魂。它们不直接处理像素,而是控制整个 Pipeline 的“参数”。
- AE(自动曝光):位于 Pipeline 最前端。它控制 Sensor 的曝光时间和增益,决定输入图像的亮度。如果 AE 没调好,后面所有模块都是在“垃圾数据”上做文章。
- AF(自动对焦):也位于前端。它驱动镜头马达,寻找对比度最大的位置。AF 的精度直接影响 Demosaic 和 Sharpen 的效果。
- AWB(自动白平衡):位于 AWB 模块内部。它根据统计信息计算色温,调整 R/G/B 增益。AWB 的偏差会导致 CCM 和 Gamma 输出偏色。
四、避坑指南
好了,这一章的内容就到这里。你不需要记住每个模块的细节,但一定要在脑子里形成这张 Pipeline 地图。后面的每一章,我们都会在这张地图上深入一个节点。