8.2 光电效应与半导体成像物理:光子如何化为数字矩阵

在黑暗的房间里打开手机相机,取景框中的画面会变得灰暗、发糊,还布满跳动的彩色颗粒。很多人认为这是镜头太小或者手机性能不够。真正的原因在更底层:照片中的每一个像素都来自一次次光子计数,而光子的到来本身带有随机性。第五章介绍过按下快门后的计算摄影接力,本节回到这条流水线的起点,看看图像传感器怎样把一束光变成一个数字矩阵,以及它为什么在夜里会“数不准”。

8.2.1 从“光是粒子”说起

手机摄像头里负责感光的芯片叫 CMOS 图像传感器(CMOS Image Sensor,简称 CIS)。它的工作原理可以追溯到 1905 年爱因斯坦对光电效应的解释:光不是连续流淌的水,而是一份一份的能量包,也就是光子。每个光子的能量由它的频率决定:

E = hν 其中 h 是普朗克常数,ν 是光的频率。

频率越高(波长越短),单个光子携带的能量越大。蓝光光子比红光光子能量高,红外光子的能量更低。按照这个思路,CIS 可以看成一台量子计数器。它不直接测量“亮度”,只统计在曝光时间内有多少个光子被成功捕获。

8.2.2 硅的门槛:1.12 eV 的禁带

光子撞进硅片后,能不能被记录下来,取决于它能否把一个电子“踢”到可以自由移动的状态。

在半导体能带理论里,硅中的电子平时待在价带,相当于被束缚在原子周围的低处。要变成可以导电的自由电子,它必须跃迁到更高的导带。两者之间的能量差叫禁带宽度(Band Gap),硅的禁带宽度约为 1.12 eV(电子伏特)。

可以用一个场景来理解:价带是一楼,导带是二楼,中间隔着一段高 1.12 eV 的楼梯,而且这段楼梯不能分几次爬完。光子的能量够一次跨上去,电子就进入导带,同时在原来的位置留下一个带正电的“空位”,叫作空穴。这一对电子-空穴对就是一次成功的光子计数。光子能量不够时,它只会穿过硅片或者变成热量,传感器记录不到它。

把 1.12 eV 换算成波长,对应的界限大约在 1100 nm。波长短于这个值的光子能量足够,可见光(约 400–700 nm)全部在这个范围内,所以硅天然适合做可见光传感器。近红外中的一部分也在范围内,这也是手机镜头组里要加红外截止滤光片的原因之一:去掉这部分人眼看不到的光,颜色才不会偏。

光的类型波长大致范围能否在硅中激发电子-空穴对
蓝光、绿光、红光约 400–700 nm能,属于主要成像光线
近红外(短于约 1100 nm)700–1100 nm能,通常被滤光片阻挡
更长波的红外长于约 1100 nm不能,光子能量不足

8.2.3 从电荷到数字:一个像素的旅程

每个像素底部都有一个光电二极管,作用类似一只小水桶,用来收集曝光期间产生的电子。整个过程可以分成四步:

  1. 收集:光子激发出电子,电子在像素内被电场收拢并积累起来;
  2. 转换:曝光结束后,像素电路把积累的电荷量转换成电压;
  3. 量化:模数转换器(Analog-to-Digital Converter,ADC)把电压变成整数;
  4. 排列:数以百万计的像素各自输出一个数,按行列排好,就得到一个数字矩阵。

像素上方覆盖着红、绿、蓝三色滤光阵列,所以每个像素只记录一种颜色的光子数。完整的彩色信息要靠后续的图像信号处理器(ISP)根据相邻像素推算出来。

8.2.4 两种“不请自来”的噪声

按理说,光子越多,数值越大,画面越亮。实际情况要复杂一些,因为桶里的电子并不都来自光子。

第一种是暗电流。 在常温下,硅晶格中的原子一直在热振动。偶尔会有电子靠热能获得足够能量,自己跨过禁带进入导带。这些电子和光子激发出来的电子无法区分,也会被计入读数。所以即使把镜头完全盖住,传感器也会输出一些微弱的“假信号”。温度越高,热振动越剧烈,暗电流越明显。手机长时间录像发热后画质下降,这是原因之一,也与第六章讨论的温控机制有关。

第二种是散粒噪声。 这种噪声来自光的粒子本性。光子到达像素的时间并不均匀,更像雨点落在地上,服从泊松统计分布。假设某个像素平均每次曝光接收 100 个光子,实际数到的可能是 92,也可能是 108。按照泊松分布的规律,这种涨落约等于平均值的平方根,所以:

  • 白天光子充足,平均值很大,涨落占比很小,画面干净;
  • 夜晚光子稀少,平均值很小,涨落占比明显上升,信噪比(Signal-to-Noise Ratio,SNR)严重变差,画面出现颗粒。

关键在于,散粒噪声不是电路设计上的缺陷,而是物理本身的随机性。再精密的电路也只能如实记录这种随机波动,无法通过硬件手段把它消除。

噪声来源产生原因主要影响场景
暗电流晶格热振动让电子自发跃迁高温、长曝光
散粒噪声光子到达服从泊松分布弱光、夜景

8.2.5 用数学对抗量子涨落

既然单次计数不可靠,可行的办法是多数几次。这正是夜景模式要连续拍摄多张照片的原因。

把多帧画面对齐后叠加平均,真实的景物信号会在每一帧中重复出现并逐渐累积,随机涨落则会相互抵消一部分。这就像用尺子量一张桌子,量一次可能有误差,量十次取平均会可靠得多。手机的计算摄影流水线还需要处理手抖带来的错位和画面中移动的物体,这些工作依靠第三章介绍过的 ISP 和 NPU 协同完成。夜景照片之所以能变干净,主要不是因为镜头变大了,而是算法在统计层面压低了量子涨落的影响。

8.2.6 小结

一张手机照片的起点是一连串物理过程:光子以 E = hν 的能量撞入硅片,越过 1.12 eV 的禁带后激发出电子-空穴对,电荷再被转换成电压,最后量化为矩阵中的数字。暗电流和散粒噪声决定了单次测量的精度上限,多帧算法则是工程师在这个上限之内做出的应对。从这里可以看出,硬件负责尽可能如实地记录光子,软件负责在统计意义上修正随机误差,两者配合才有了最终的成像结果。下一节将从光转到电,看锂离子如何在电池的晶格之间往返,为这一切提供能量。