4. Sensor 延时分析:曝光时间、帧同步信号、Rolling Shutter 与 Global Shutter 延时差异

Sensor 是 Camera 流水线的起点,其内部时序直接决定了从光子入射到 RAW 数据输出的最小延时。本章深入分析曝光时间、帧同步信号以及两种主流快门模式(Rolling Shutter 与 Global Shutter)对 Pipeline 延时的具体影响,帮助工程师在系统设计时准确估算 Sensor 级延时。

4.1 曝光时间与帧周期的关系

Sensor 的帧周期(Frame Period)由曝光时间(Exposure Time)和帧消隐期(Frame Blanking)组成。曝光时间越长,单帧延时越大,但帧率受限于帧周期而非曝光时间本身。

参数 定义 对延时的影响
曝光时间 (Texp) Sensor 感光二极管累积电荷的时间 直接增加 Sensor 输出延时;长曝光(如 30ms)会显著拉长 Pipeline 起点
帧消隐期 (Tblank) 帧与帧之间的非曝光间隔,用于数据读出和同步 固定开销,通常为 1~4 行时间;影响帧率但不影响单帧曝光延时
帧周期 (Tframe) Texp + Tblank 决定 Sensor 最大输出帧率;Pipeline 延时至少为 1 个帧周期
关键指标: 在 30fps 场景下,帧周期为 33.33ms。若曝光时间设为 28ms,则消隐期仅剩 5.33ms,留给数据读出的时间窗口非常紧张,容易导致帧溢出或丢帧。

4.2 帧同步信号与 Pipeline 触发

帧同步信号(VSYNC / FSIN)是 Sensor 与 ISP 之间的时序基准。Sensor 通过 VSYNC 信号通知 ISP 一帧数据开始传输。常见的同步模式包括:

  • 硬件 VSYNC(Hardware VSYNC): Sensor 引脚直接输出脉冲,ISP 检测上升沿或下降沿触发帧捕获。延时最小,约 1~2 像素时钟。
  • 软件触发(Software Trigger): 通过 I2C/SPI 写入寄存器启动曝光。延时较大,通常包含 I2C 传输延时(几十微秒)和 Sensor 内部状态机响应延时(数百微秒)。
  • 外部触发(External Trigger / Strobe): 多摄像头同步场景下,主 Sensor 输出触发信号给从 Sensor。从 Sensor 接收到触发到开始曝光存在 Trigger-to-Exposure Delay,典型值 1~10 行时间。
优化建议: 多摄同步时,优先使用硬件 VSYNC 菊花链拓扑,避免软件触发引入的抖动。Trigger-to-Exposure Delay 需在系统标定中补偿,否则会导致多帧融合时的运动伪影。
帧同步信号时序与 Pipeline 触发关系 VSYNC 曝光 N 曝光 N+1 曝光 N+2 曝光 N+3 读出 N 读出 N+1 读出 N+2 读出 N+3 说明:VSYNC 上升沿触发曝光开始;曝光完成后立即进入读出阶段;读出期间下一帧曝光可并行开始(流水线模式)。 从 VSYNC 到 RAW 数据输出完成的总延时 = 曝光时间 + 读出时间 + 接口传输延时。

4.3 Rolling Shutter 延时特性

Rolling Shutter(卷帘快门)是 CMOS Sensor 最常用的快门方式。其核心特征是:逐行曝光、逐行读出。同一帧内不同行的曝光起始时间不同,导致:

  • 行间延时(Row Delay): 相邻行曝光起始时间差 = 1 行读出时间(通常为 10~30 μs)。对于 1080p 分辨率,帧读出总延时约为 15~25 ms。
  • 帧内延时分布: 第一行与最后一行曝光起始时间相差接近一个帧周期,导致运动物体出现“果冻效应”(Jello Effect)。
  • 最小 Pipeline 延时: 从第一行曝光开始到最后一行数据输出完成,至少需要 Texp + Treadout。其中 Treadout 为总读出时间。
避坑提示: 在 LED 照明场景下,Rolling Shutter 可能导致行间亮度差异(Flicker)。若曝光时间不是工频周期(50Hz/60Hz)的整数倍,不同行捕获的 LED 亮度不同,产生明暗条纹。解决方案是锁定曝光时间为 10ms(50Hz)或 8.33ms(60Hz)的整数倍。

4.4 Global Shutter 延时特性

Global Shutter(全局快门)所有像素同时开始曝光、同时结束曝光。读出阶段再逐行转移电荷。其延时特性与 Rolling Shutter 有本质区别:

对比维度 Rolling Shutter Global Shutter
曝光起始 逐行错开 所有行同时开始
帧内延时差 最大可达 Tframe - Texp 0(所有行曝光窗口完全对齐)
最小 Pipeline 延时 Texp + Treadout Texp + Treadout(但读出阶段无新曝光重叠)
运动伪影 果冻效应、倾斜、部分曝光 无几何失真,适合高速运动捕捉
读出噪声 较低(逐行读出,电荷转移简单) 较高(需要额外存储节点,增加读出噪声)
典型应用 手机、安防、行车记录仪 工业视觉、AR/VR、高速摄影
延时计算公式对比:
Rolling Shutter 帧延时 = Texp + Treadout + (Hactive - 1) × Trow
Global Shutter 帧延时 = Texp + Treadout
其中 Hactive 为有效行数,Trow 为单行读出时间。当分辨率较高时,Rolling Shutter 的 (Hactive - 1) × Trow 项可能增加数毫秒延时。

4.5 快门模式对 Pipeline 延时的综合影响

下图展示了两种快门模式下,从曝光开始到 RAW 数据输出完成的完整延时路径差异:

Rolling Shutter vs Global Shutter 延时路径对比 Rolling Shutter 行 0 曝光 行 1 曝光 行 2 曝光 ... 逐行错开 ... 行 N-1 曝光 读出 0 读出 1 读出 2 读出 N-1 总延时 = Texp + Treadout + 行偏移 Global Shutter 所有行同时曝光 读出 0 读出 1 读出 2 ... 逐行读出 ... 总延时 = Texp + Treadout

4.6 延时优化策略总结

  1. 缩短曝光时间: 在光照充足时优先降低 Texp,可同时减少延时和运动模糊。但需注意信噪比(SNR)下降。
  2. 减少读出时间: 使用更高速的 MIPI 接口(如 4-lane 2.5Gbps/lane)、开启 Sensor 的 Subsampling(Binning / Skipping)或降低分辨率。
  3. 选择快门模式: 高速运动场景(如自动驾驶、无人机)优先选用 Global Shutter Sensor,消除果冻效应并降低帧内延时差。
  4. 优化帧同步: 使用硬件 VSYNC 中断而非轮询,减少软件触发抖动。多摄系统采用主从同步拓扑,补偿 Trigger-to-Exposure Delay。
  5. 流水线并行: 确保 Sensor 支持曝光与读出流水线(Exposure-Readout Overlap),避免帧间空闲等待。
工程实践: 在 Camera HAL 的 Sensor 驱动层,通过 ioctl 或 V4L2_CID_EXPOSURE_ABSOLUTE 控制曝光时间,同时监听 V4L2_EVENT_FRAME_SYNC 事件获取精确的帧起始时间戳。对于 Rolling Shutter Sensor,建议在 ISP 侧根据行曝光时间戳校正运动矢量,减少果冻效应对 3A 算法的影响。