2. 图像传感器基础

做AI ISP这行,传感器是绕不开的第一关。我常说一句话:“输入垃圾,输出也是垃圾”。不管你后面的AI算法多牛,传感器没选对、没配好,画质天花板就已经定死了。

这一章,我们聊聊CMOS传感器怎么工作的,Bayer阵列为什么长这样,RAW数据到底是个啥,还有MIPI和LVDS这两种接口怎么选。嗯,都是基本功,但也是坑最多的地方。

CMOS传感器工作原理

说白了,CMOS传感器就是把光转成电,再转成数字信号。每个像素点就是一个光电二极管,光子打上去产生电子,电子积累成电压,电压被ADC量化成数字值。

我刚开始做嵌入式视觉时,总觉得传感器就是个“高级摄像头”,直到有一次调试低照度场景,图像全是噪点,查了半天才发现是复位时序没配对。从那以后,我再也不敢小看传感器驱动了。

核心流程:

  1. 曝光(Exposure):光子入射,光电二极管积累电荷
  2. 读出(Readout):行选通,电荷通过源跟随器转为电压
  3. 放大(Amplification):可编程增益放大器(PGA)调整信号幅度
  4. 量化(ADC):模数转换器将模拟电压转为数字码值

这里有个关键参数——满阱容量(Full Well Capacity)。它决定了像素能装多少电子,直接影响动态范围。我见过不少方案,为了追求高灵敏度把像素做小,结果满阱容量掉得厉害,高光区域一片惨白。

Bayer阵列与RAW数据格式

为什么传感器不直接输出彩色图像?因为单个像素只能感知亮度,分不清颜色。所以工程师们想了个办法:在像素表面覆盖彩色滤光片,让每个像素只响应一种颜色。

最常见的模式就是Bayer阵列——RGGB排列。为什么绿色占一半?因为人眼对绿色最敏感,多给绿色像素能提升视觉分辨率。

像素位置 滤光片颜色 占比 说明
奇数行奇数列 R(红) 25% 红色通道采样
奇数行偶数列 G(绿) 25% 绿色通道采样
偶数行奇数列 G(绿) 25% 绿色通道采样
偶数行偶数列 B(蓝) 25% 蓝色通道采样

RAW数据就是传感器直接输出的原始数据,没经过任何处理。每个像素只有1个颜色通道的值,其他两个颜色要靠插值(Demosaic)算出来。

我个人习惯:调试阶段一定先看RAW数据,别急着开ISP pipeline。RAW数据能直接反映传感器本身的问题——坏点、暗电流、固定模式噪声(FPN)。这些在RAW域修起来最干净。

RAW数据的位深也很关键。常见的10bit、12bit、14bit,甚至有些工业传感器做到16bit。位深越高,动态范围越大,但数据量也越大。我做过一个项目,为了省带宽把12bit砍成10bit,结果暗部条纹噪声怎么都去不掉——后来发现是量化噪声被后续的增益放大了。

传感器接口协议:MIPI vs LVDS

传感器和ISP芯片之间怎么传数据?目前主流就两种:MIPI CSI-2和LVDS。选哪个,取决于分辨率、帧率、传输距离和功耗。

特性 MIPI CSI-2 LVDS
典型速率 每lane 1-4 Gbps 每lane 0.5-2 Gbps
最大lane数 4 lane(常用) 4-8 lane
传输距离 短距(<30cm) 中距(<3m)
功耗 低(1.2V) 中(1.8V-3.3V)
协议复杂度 高(带包结构、ECC) 低(纯数据流)
典型应用 手机、平板、车载 工业相机、安防

MIPI是手机生态的主流。它用差分信号传输,抗干扰能力强,而且协议层支持虚拟通道、帧同步、CRC校验。我调试MIPI时最头疼的是D-PHY的电压摆幅和偏置——PCB走线稍微长一点,眼图就闭合了。

LVDS则更“原始”一些。它只传数据,没有复杂的协议头。好处是延迟低、实现简单。工业相机特别喜欢用LVDS,因为可以拉长线缆,而且不需要额外的协议解析芯片。

我曾经踩过的坑:一个项目用了MIPI 4-lane,传感器和ISP之间隔了20cm FPC排线。结果高频信号衰减严重,图像出现行撕裂。后来加了retimer芯片才解决。记住:MIPI对PCB布局和阻抗匹配要求极高,别指望随便拉根线就能跑4Gbps。

曝光与增益控制

曝光和增益,是传感器端最直接的图像质量调节手段。但很多人搞混了它们的作用。

  • 曝光时间:控制光子积累的时间。曝光越长,信号越强,但运动模糊也越严重。
  • 模拟增益:在ADC之前放大电压信号。增益越大,信号和噪声一起放大。
  • 数字增益:在ADC之后乘一个系数。纯粹的数字放大,会放大量化噪声。

我的经验是:优先调曝光,其次模拟增益,最后才用数字增益。曝光是“免费”的信号增强,模拟增益会带噪,数字增益基本是下下策。

举个例子,一个12bit传感器,满阱容量10000e-,读出噪声5e-。曝光时间从10ms调到20ms,信号翻倍,信噪比提升3dB。但如果保持10ms曝光,把模拟增益从1x调到2x,信号翻倍的同时噪声也翻倍,信噪比不变。数字增益更惨——它把ADC的量化噪声也放大了。

曝光与增益的权衡策略:

  1. 场景亮度充足 → 短曝光 + 低增益(保证清晰度)
  2. 场景亮度不足 → 先拉曝光(上限是运动模糊容忍度)
  3. 曝光已到上限 → 加模拟增益(接受噪声增加)
  4. 模拟增益已到上限 → 加数字增益(最后手段)

你想想看,为什么手机夜景模式要拍好几帧合成?本质上就是在曝光时间和增益之间找平衡。单帧曝光太长会糊,增益太高噪点多,所以用多帧短曝光+对齐合成来兼顾。

本章知识结构

下面这张图,把传感器从光子到数字信号的完整链路串起来了。我建议你把它存下来,以后调试传感器时对照着看。

CMOS传感器信号链路 光子入射 光电二极管 Bayer滤光片 PGA放大 ADC量化 MIPI/LVDS RAW数据 曝光控制 关键控制点: • 曝光时间 → 控制光子积累时长,影响亮度与运动模糊 • 模拟增益 → PGA放大倍数,信号与噪声同步放大

这张图里,曝光控制模块通过虚线箭头影响光电二极管的积分时间,PGA放大受模拟增益控制。整个链路从光子到RAW数据,每一步都影响最终图像质量。

调试建议:拿到一个新传感器,先做三件事——1)读RAW数据检查坏点和暗电流;2)测曝光线性度,看有没有饱和或漏光;3)扫增益曲线,找到噪声拐点。这三步做完,传感器特性基本摸透了。

好了,传感器基础就聊到这儿。记住一句话:传感器是ISP pipeline的起点,也是画质的天花板。后面章节我们会深入每个模块的算法实现,但前提是你得先把传感器玩明白。