022、全局快门的代价清单——为什么GS sensor比RS贵且灵敏度低,以及卷帘快门伪影的补偿
去年夏天,某款旗舰手机在实验室里翻车了。客户反馈说拍快速挥动的荧光棒,画面里出现了一条条斜向的暗带,像百叶窗没拉齐。我们第一反应是LED频闪,但换了白炽灯环境依旧。后来把曝光时间压到1/1000s,暗带还在,只是变细了。最后用示波器怼着sensor的VSYNC和曝光行同步信号一量,才发现问题出在卷帘快门本身——不是频闪,是行曝光时间差导致的亮度梯度。那台机器用的是一颗背照式RS sensor,全局快门版本要贵出将近一倍,而且量子效率掉得厉害,低光场景直接没法看。当时产品经理拍桌子问:为什么不能全用GS?这个问题,我花了三年才真正想明白怎么回答。
先拆开“贵”这个字。GS sensor的像素结构里,每个像素都要塞一个独立的存储电容,用来在曝光结束瞬间锁存电荷。这个电容不能太小,否则满阱容量缩水,动态范围崩掉;也不能离感光区太远,否则电荷转移路径变长,拖尾和残影就冒出来。于是像素面积被迫做大,同样一片晶圆,GS能切的die数量比RS少两成到三成。良率也是大坑——那个电容的漏电率对工艺波动极其敏感,稍微偏一点,暗电流就翻倍,黑电平校准都救不回来。所以GS sensor的晶圆成本、封装测试成本、筛选成本全线抬升,最终售价是RS的1.5到2倍,这还只是同代同规格的对比。更隐蔽的是,GS sensor的读出架构通常需要更多层金属布线,因为每个像素的存储节点要单独连到列放大器,这直接推高了芯片面积和功耗。手机那颗RS sensor功耗是180mW,GS版本直接飙到320mW,散热和电池双双报警。
再说灵敏度。RS sensor是边曝光边读出,像素里的电荷在曝光结束后立刻被转移走,感光区几乎不闲置。GS sensor呢,曝光结束后电荷先存进那个电容,等整帧所有行都曝光完了,再统一开始读出。问题来了——电容本身不感光,但它占着像素面积,而且它还会引入额外的寄生电容,把光电二极管的转换增益拉低。转换增益一低,同样的光子数产生的电压信号就变小,等效量子效率就下降。实测数据是,同一颗工艺节点下,GS的峰值量子效率比RS低8%到12%,在短波蓝光段差距更大,能到15%。更麻烦的是,GS sensor的满阱容量通常比RS小,因为光电二极管和存储电容要共享像素面积。满阱小了,最大信噪比就受限,高光溢出和光晕现象更严重。所以GS sensor在低照度下的表现,往往比同规格RS差半档到一档光圈,这就是为什么运动相机用GS但夜景噪点感人,而手机主摄死守RS。
但卷帘快门的伪影,不是一句“忍忍就好”能带过的。最典型的是果冻效应——快速横移镜头时,竖直的灯柱会变成斜线,因为每一行的曝光起始时间不同。还有运动物体变形,比如拍旋转的风扇叶片,叶片会变成弧形甚至扭曲成S形。更隐蔽的是频闪条纹,当环境光源是50Hz或60Hz交流电驱动时,光强本身在波动,RS sensor逐行曝光会把这种波动编码成明暗相间的横带,而且横带的位置和宽度会随着曝光时间变化。这些伪影在静态场景里完全看不见,一旦画面里有高速运动或强频闪光源,立刻原形毕露。
补偿思路分三层。第一层是硬件层面的“读出加速”——把RS的读出速度从1/30s压到1/120s甚至1/240s,这样行与行之间的曝光起始时间差就缩小了,果冻效应和频闪条纹的周期被压缩到肉眼不易察觉的程度。代价是读出噪声会随速度提升而增加,需要更激进的降噪算法兜底。第二层是算法层面的“运动补偿”——利用陀螺仪或光流估计出每行对应的运动矢量,然后把图像重映射回同一时间基准。这个方案对平移运动效果不错,但对旋转和局部形变就力不从心,而且计算量巨大,手机端跑起来发热明显。第三层是“频闪检测与曝光同步”——用sensor内置的频闪检测器识别光源频率,然后调整曝光起始相位,让每一行的曝光窗口都落在光强的波峰或波谷附近,这样条纹就变成均匀亮度偏移,而不是明暗交替。这个方法对工频光源有效,但对LED调光这类非正弦波就捉襟见肘。
我踩过最大的坑,是试图用纯算法解决果冻效应。当时给一台车载前视摄像头做电子防抖,为了省成本选了RS sensor,指望靠光流补偿把卷帘伪影抹平。结果在隧道口强逆光场景下,光流估计被高光区域干扰,补偿后的图像反而出现更严重的撕裂。后来才明白,算法补偿的前提是运动模型足够简单,而真实世界的运动往往是平移+旋转+缩放的复合,光流只能估计出平移分量,旋转分量一上来就崩。所以现在我的原则是:能用硬件解决的绝不上算法,算法只做最后5%的微调。
另一个容易忽略的点是GS sensor的全局复位与全局传输时序。有些GS sensor支持“全局复位+卷帘读出”的混合模式,曝光是全局同步的,但读出还是逐行。这种模式能消除果冻效应,但会引入“读出拖尾”——因为电荷在存储电容里待的时间不同,暗电流贡献就不同,导致画面从上到下出现亮度渐变。解决方法是做暗电流非均匀性校正,但校正系数会随温度漂移,需要实时监测sensor温度并查表更新。这个坑,我们是在做工业检测相机时踩到的,当时客户拍高速运动的电路板,发现图像上半部分比下半部分亮,查了半天才发现是混合模式的暗电流梯度。
给同行们的经验性建议,三条。第一,选型时别只看GS/RS的标称参数,一定要实测低照度下的信噪比和动态范围,特别是暗电流随温度的变化曲线。GS sensor在25度时可能只比RS差5%,但到60度时差距能拉到20%,车载和户外设备尤其要警惕。第二,如果必须用RS且场景里有强频闪光源,优先考虑“曝光时间=光源周期的整数倍”这个老办法,虽然会牺牲曝光灵活性,但至少条纹是静止的,后期处理简单得多。第三,GS sensor的存储电容不是越大越好,大电容虽然降低暗电流影响,但会拖慢读出速度,导致帧率上不去。平衡点在电容值约为光电二极管结电容的3到5倍,这个区间内灵敏度损失和读出速度的折中最优。最后说句掏心窝的——全局快门不是万金油,它解决的是“时间一致性”问题,但代价是“空间一致性”变差(像素面积大、灵敏度低)。真正的高手,是知道什么时候该用RS加算法补偿,什么时候该咬牙上GS,而不是一味追求参数表上的完美。