图像传感器与曝光:CCD与CMOS传感器原理

做图像质量优化,绕不开传感器。说白了,传感器就是相机的「视网膜」。你曝光算法调得再好,传感器底子不行,一切都是白搭。我个人习惯,拿到一款新平台,第一件事就是去翻传感器的datasheet,看它的满阱容量和读出噪声。这两个参数,直接决定了你的动态范围能做多宽。

CCD与CMOS:两种主流传感器架构

先聊聊CCD和CMOS的区别。很多刚入行的朋友觉得这是老掉牙的话题,但我在项目中遇到过好几次,因为选错传感器类型,导致整个ISP pipeline重做的情况。嗯,这里要注意。

对比项 CCD CMOS
读出方式 电荷逐行转移,统一输出 每个像素独立放大、ADC转换
噪声水平 低(读出噪声约2-5 e⁻) 较高(读出噪声约5-20 e⁻)
功耗 高(需要多路高压时钟) 低(单电源供电)
速度 慢(串行读出) 快(并行读出,支持高帧率)
成本 高(特殊工艺) 低(标准CMOS工艺)
主流应用 科研、天文、高端工业 手机、安防、汽车、消费电子

你想想看,为什么手机摄像头清一色用CMOS?因为要低功耗、高帧率、还要集成ISP逻辑。CCD虽然画质干净,但那个功耗和速度,手机根本扛不住。我做过一个工业检测项目,客户非要上CCD,结果帧率卡在15fps,产线根本跑不起来。后来换了全局快门CMOS,问题才解决。

核心结论:CMOS是消费电子的主流,CCD在特定高画质、低帧率场景仍有优势。做曝光算法时,CMOS的卷帘快门效应(Rolling Shutter)是必须处理的坑。

传感器动态范围:你能看到多亮和多暗

动态范围(DR)是传感器最重要的指标之一。公式很简单:

DR = 20 * log10(满阱容量 / 读出噪声)  单位:dB

举个例子,一个传感器满阱容量60000 e⁻,读出噪声5 e⁻,那它的动态范围就是:

DR = 20 * log10(60000 / 5) = 20 * log10(12000) ≈ 81.6 dB

81.6 dB什么概念?大约能区分13.6档曝光(每6 dB一档)。我建议你把这个公式刻在脑子里,因为后面讲HDR融合、多帧合成时,全都要用到它。

个人经验:我曾经调试一款安防摄像头,发现暗部噪声特别大。查了半天,发现是传感器驱动配置错了,读出噪声从5 e⁻飙到了15 e⁻,动态范围直接掉了9.5 dB。所以,驱动配置一定要仔细核对。

满阱容量与读出噪声:曝光的天花板和地板

满阱容量(Full Well Capacity)决定了传感器能存多少电子。读出噪声(Read Noise)决定了你能分辨的最小信号。这两个参数,一个管上限,一个管下限。

  • 满阱容量大 → 高光不容易饱和,适合拍亮场景
  • 读出噪声低 → 暗部细节丰富,适合拍暗场景
  • 两者比值 → 决定了单帧的动态范围

我遇到过最头疼的问题,是某款传感器的满阱容量标称70000 e⁻,但实际测下来只有45000 e⁻。为什么?因为像素的pinning层工艺有缺陷,电子还没存满就漏掉了。所以,永远不要完全相信datasheet,拿到实物一定要做标定。

避坑指南:我曾经在量产前发现,某批次传感器的满阱容量一致性很差,同一片wafer上,不同像素的满阱容量能差30%。这直接导致HDR合成时出现亮度跳变。解决方案是在标定阶段做像素级满阱容量校正。

量子效率与灵敏度:光转电的效率

量子效率(QE)就是光子转换成电子的比例。QE 50%意味着每两个光子才能产生一个电子。灵敏度则通常用单位lux下的输出信号来衡量。

波长 典型QE(背照式CMOS) 典型QE(前照式CMOS)
450 nm(蓝) 60-70% 40-50%
550 nm(绿) 75-85% 55-65%
650 nm(红) 65-75% 45-55%

背照式(BSI)为什么比前照式(FSI)灵敏?因为光线不用穿过金属布线层,直接打到光电二极管上。我做过对比测试,BSI在暗光下的信噪比能比FSI高3-5 dB。所以现在旗舰手机清一色BSI,就是这个道理。

灵敏度还有一个重要指标:转换增益(Conversion Gain)。它决定了每个电子能产生多少电压。高转换增益有利于低光性能,但会压缩满阱容量。低转换增益则相反。很多现代传感器支持双转换增益(DCG),就是让你在不同光照条件下切换。

实战要点:做曝光算法时,QE和灵敏度决定了你的最小曝光时间。如果QE太低,暗光下必须拉长曝光时间,但手抖和运动模糊就来了。这时候就需要多帧降噪或者闪光灯来补。

知识体系总览

下面这张图,是我自己总结的传感器曝光核心逻辑。你看一遍,应该能对整个体系有个全局印象。

传感器曝光核心知识体系 传感器曝光核心知识体系 图像传感器类型 CCD 传感器 CMOS 传感器 满阱容量 (FWC) 读出噪声 (RN) 量子效率 (QE) 动态范围 (DR = FWC / RN) 灵敏度 (QE × 转换增益) 曝光算法设计约束 曝光时间 · 模拟增益 · HDR策略 · 多帧合成 核心逻辑 传感器物理参数 → 动态范围/灵敏度 → 曝光算法策略

这张图把传感器类型、核心参数、衍生指标和曝光算法串在了一起。你从顶层往下看,就能理解为什么曝光算法不能脱离传感器物理特性来设计。

实战中的参数权衡

做曝光算法,本质上是在这几个参数之间做权衡:

  1. 满阱容量 vs 灵敏度:像素做大,满阱容量大,但分辨率下降;像素做小,灵敏度高,但满阱容量小。
  2. 动态范围 vs 信噪比:提高模拟增益可以提升暗部信噪比,但会压缩动态范围。
  3. 帧率 vs 曝光时间:高帧率下,每帧的曝光时间被压缩,暗光性能下降。

我建议你在做曝光策略时,先搞清楚传感器的这几个关键参数,然后根据场景需求做取舍。比如夜景模式,我倾向于降低帧率、拉长曝光时间、配合多帧合成;而运动场景,我宁愿牺牲一点动态范围,也要保证帧率和短曝光。

一个小技巧:很多传感器支持「行交织HDR」模式,就是在一帧内,不同行用不同的曝光时间。这能有效提升动态范围,但会引入行间亮度差异。我一般会在ISP里做行间校正,把差异抹平。