卷帘快门工作原理:逐行曝光与读出机制详解

卷帘快门,英文叫 Rolling Shutter。说白了,就是传感器不是一次性拍下整张画面,而是像扫描仪一样,一行一行地曝光、一行一行地读出。

我第一次接触这个概念是在做一款无人机航拍相机的时候。当时看到画面里螺旋桨变成了弯的,还以为是镜头畸变。查了半天才发现——嗯,是卷帘快门在“捣鬼”。

逐行曝光:不是同时开始,也不是同时结束

你想想看,传统胶片相机是整张底片同时感光。但卷帘快门 CMOS 不一样。它的每一行像素,曝光开始时间和结束时间都错开一点。

我习惯用一个比喻来理解:卷帘快门就像一扇百叶窗。从上往下,一行一行地打开,再一行一行地关上。

核心概念:卷帘快门传感器中,每一行像素的曝光起始时刻相差一个固定的行间隔时间(Row Interval)。整帧图像的总读出时间 = 行数 × 行间隔时间。

具体来说,逐行曝光的过程分三步:

  1. 复位行(Reset Row):当前行像素被复位,清除之前的电荷,开始积累新电荷。
  2. 曝光等待(Integration):该行像素持续感光,积累光生电荷。曝光时间由复位和读出之间的间隔决定。
  3. 读出行(Readout Row):该行像素的电荷被转移到读出电路,转换为电压信号。

这三步是流水线作业。上一行在读出的同时,下一行正在曝光,再下一行正在复位。我当年调试第一颗卷帘快门芯片时,看到时序图里这些波形交错在一起,说实话,头有点大。

读出机制:流水线式的行扫描

卷帘快门的读出,本质上是一个行扫描流水线。每一行像素的读出时间很短,但整帧图像需要把所有行串起来读完。

我画了一张流程图,帮你理清这个关系:

卷帘快门逐行曝光与读出流程图 卷帘快门逐行曝光与读出流程 行 N 复位 行 N+1 复位 行 N+2 复位 ... 行 N 曝光 行 N+1 曝光 行 N+2 曝光 ... 行 N 读出 行 N+1 读出 行 N+2 读出 ... 时间 → 流水线操作:上一行在读出的同时,下一行正在曝光,再下一行正在复位

从上图你能看到,复位、曝光、读出三个阶段是错位重叠的。每一行都经历同样的三个步骤,但起始时间依次推迟一个行间隔。

行间隔与帧时间的计算

行间隔(Row Interval)是卷帘快门最重要的时序参数之一。它决定了每一行开始曝光的时间差。

我整理了一个表格,方便你对照理解:

参数 符号 典型值 说明
行间隔 Trow 10 ~ 50 μs 相邻两行开始曝光的延迟时间
总行数 Nrow 480 ~ 4000 传感器有效像素行数
帧读出时间 Treadout Nrow × Trow 从第一行开始到末行读出完毕
帧周期 Tframe Treadout + 消隐 两帧之间的总时间间隔

举个例子。一个 1080p 的传感器,有 1080 行。如果行间隔是 20 μs,那么帧读出时间就是:

T_readout = 1080 × 20 μs = 21.6 ms

这意味着,第一行和最后一行开始曝光的时间差了 21.6 毫秒。你想想看,如果拍摄对象在这 21.6 毫秒内移动了,画面就会产生果冻效应。

我的经验:在选型时,我习惯先算一下帧读出时间。如果目标场景有快速运动(比如 60 km/h 的汽车),帧读出时间最好控制在 10 ms 以内。否则,果冻效应会非常明显。

曝光时间的控制方式

卷帘快门的曝光时间,是通过复位和读出之间的延迟来控制的。具体来说:

  • 短曝光:复位后很快读出,电荷积累时间短。
  • 长曝光:复位后等待较长时间再读出,电荷积累时间长。

这里有个关键点:所有行的曝光时间是一样的,只是开始时间不同。曝光时间由传感器内部的时序控制器统一设定。

我遇到过一个问题:在低光照环境下,想把曝光时间拉长到 100 ms。结果发现画面亮度不均匀——上面几行比下面几行暗。后来排查发现,是行间隔太长,导致上面几行读出后,下面几行还在曝光,环境光变化造成了亮度差异。

注意:卷帘快门在长曝光或闪光灯同步场景下,容易出现亮度不均匀或部分过曝的问题。这是因为不同行的曝光窗口在时间上错开了。使用闪光灯时,必须确保闪光脉冲覆盖所有行的曝光窗口。

卷帘快门 vs 全局快门:一个直观对比

为了帮你更清楚地理解卷帘快门的特性,我把它和全局快门放在一起对比:

特性 卷帘快门 全局快门
曝光方式 逐行曝光,时间错开 所有像素同时曝光
读出方式 逐行读出,流水线操作 整帧同时读出或逐行读出
果冻效应 明显,快速运动时画面扭曲 无果冻效应
噪声水平 较低,读出噪声小 较高,需要额外存储单元
像素面积 小,填充因子高 大,每个像素需要存储电容
成本 低,工艺成熟 高,工艺复杂
适用场景 消费电子、慢速或中等速度场景 工业检测、高速摄影、自动驾驶

说白了,卷帘快门用时间换面积。它牺牲了时间一致性,换来了更小的像素尺寸和更低的成本。这也是为什么手机摄像头几乎全是卷帘快门的原因。

避坑指南:我踩过的几个坑

做卷帘快门项目这些年,我积累了一些经验。分享给你,希望能帮你少走弯路:

  • 闪光灯同步:我曾经在开发一款扫码设备时,发现闪光灯拍出来的照片上半部分亮、下半部分暗。原因就是闪光脉冲只覆盖了部分行的曝光窗口。解决方案是使用慢同步模式,延长闪光灯持续时间。
  • LED 频闪:在拍摄 LED 屏幕或路灯时,卷帘快门会产生明暗条纹。这是因为 LED 的 PWM 调光频率和行扫描频率产生了差拍。我建议在驱动中增加防频闪模式,或者调整曝光时间避开频闪周期。
  • 运动畸变:拍摄快速移动的物体时,物体会被拉斜或扭曲。我记得有一次调试无人机图传,发现地面上的汽车变成了平行四边形。后来通过缩短行间隔、提高帧率,才把畸变控制在可接受范围内。

总结一下:卷帘快门的工作原理,核心就是“逐行曝光、流水线读出”。理解了这个机制,你就能解释为什么卷帘快门会产生果冻效应,为什么闪光灯同步需要特殊处理,以及为什么它更适合静态或慢速场景。