RAW图基础与Sensor特性:Bayer阵列原理、RAW图格式与Sensor关键参数
各位同学,今天我们来聊聊ISP Pipeline的起点——RAW图。说白了,RAW图就是Sensor直接输出的原始数据,未经任何处理。我刚开始接触ISP时,总觉得RAW图就是个“半成品”,后来才发现,恰恰是这“半成品”里藏着图像质量的命门。
Bayer阵列原理
为什么Sensor要用Bayer阵列?人眼对绿色最敏感,所以Bayer阵列里绿色像素占了50%,红色和蓝色各占25%。这个设计很巧妙——用更少的像素模拟人眼的感知。
核心要点:Bayer阵列不是随机排列的,它遵循固定的模式。最常见的RGGB模式,第一行是RGRG,第二行是GBGB,以此类推。
我在项目中遇到过一个问题:某款Sensor的Bayer排列顺序和ISP默认配置不一致,结果出来的图像全是彩噪。排查了半天才发现是Bayer顺序配错了。嗯,这里要注意——拿到新Sensor时,第一件事就是确认Bayer排列顺序。
常见RAW图格式
| 格式 | 排列方式 | 典型应用 | 特点 |
|---|---|---|---|
| RGGB | R-G-G-B | 主流手机、相机 | 标准Bayer,兼容性好 |
| RCCB | R-C-C-B | 安防、车载 | 进光量提升约40% |
| RYYCy | R-Y-Y-Cy | 低照度场景 | 灵敏度更高,但色彩还原复杂 |
| RGBW | R-G-B-W | 暗光环境 | 白色像素提升亮度 |
你想想看,RCCB用两个Clear像素替换了绿色像素,进光量确实上去了,但色彩还原的难度也大了。我曾经调试过一款RCCB Sensor,为了把颜色调准,光色彩校正矩阵就迭代了十几版。
个人经验:非标准Bayer格式(如RCCB、RYYCy)在ISP Pipeline中需要额外的demosaic处理。我建议在项目早期就确认ISP芯片是否支持这些格式,否则后期改硬件成本很高。
Sensor关键参数
动态范围
动态范围决定了Sensor能同时记录的最亮和最暗细节。单位是dB,计算公式很简单:
DR = 20 * log10(满阱容量 / 噪声底噪)
举个例子,满阱容量60000e-,噪声底噪10e-,动态范围就是20*log10(6000) ≈ 75.6dB。我见过一些低端Sensor,动态范围只有60dB出头,拍大光比场景时高光一片死白,暗部全是噪点。
避坑指南:我曾经被Sensor datasheet上的动态范围参数坑过——标称70dB,实际测下来只有62dB。后来发现他们用的是“像素级”动态范围,不是“场景级”。所以拿到Sensor后,一定要自己实测。
信噪比
信噪比(SNR)直接决定了图像的干净程度。Sensor的SNR主要受两个因素影响:
- 光子散粒噪声:物理极限,无法消除
- 读出噪声:电路设计决定,好的Sensor可以做到1-2e-
我个人的习惯是,评估Sensor SNR时看两个点:18%灰卡下的SNR和暗场SNR。前者反映正常曝光下的表现,后者反映暗电流和读出噪声的水平。
帧率
帧率不是越高越好,它和曝光时间、读出速度、带宽都有关系。高帧率意味着每帧的曝光时间变短,进光量减少,SNR会下降。
| 应用场景 | 典型帧率 | 注意事项 |
|---|---|---|
| 手机拍照 | 30fps | 预览和录像兼顾 |
| 高速摄影 | 120-240fps | 需要大带宽接口 |
| 安防监控 | 15-25fps | 低帧率换取更长曝光 |
| 车载感知 | 30-60fps | 低延迟是关键 |
黑电平与暗电流校正
黑电平(Black Level)是Sensor在完全无光情况下的输出值。理论上应该是0,但实际上由于暗电流的存在,会有个偏移量。
暗电流说白了就是Sensor在没光的时候自己产生的电荷。温度越高,暗电流越大。我记得有一次在户外40度的高温下测试,暗电流比常温下大了3倍多,黑电平直接从64跳到了128。
校正方法:大多数Sensor会提供OB(Optical Black)像素区域,这些像素被遮挡了,可以用来实时估算黑电平。ISP Pipeline的第一步就是减去这个黑电平值。
具体做法很简单:
// 伪代码示例
uint16_t black_level = get_ob_pixel_average();
for (each pixel in raw_image) {
pixel = (pixel > black_level) ? (pixel - black_level) : 0;
}
但要注意,不同温度下黑电平会漂移。我建议在ISP中做温度补偿,或者用OB像素做动态校正。否则你会发现,白天拍的照片和晚上拍的照片,暗部表现完全不一样。
实战技巧:黑电平校正后,记得检查暗场的均值是否接近0。如果还有明显的偏色,说明校正参数没算对。我曾经遇到过Sensor的OB像素布局和datasheet不一致,导致校正后暗场偏绿,折腾了两天才找到原因。
本章知识体系
下面这张图总结了RAW图基础与Sensor特性的核心脉络:
这张图把本章的核心知识点串起来了。从Bayer阵列到RAW格式,再到Sensor参数和黑电平校正,每一步都是ISP Pipeline的基石。说白了,RAW图质量决定了整个图像质量的上限——后面再怎么调,也补不回来Sensor端丢失的信息。