3、硬件同步方案:Genlock、帧同步信号、硬件触发线
聊到多摄像头帧级对齐,很多人第一反应是软件时间戳。嗯,软件方案确实方便,但精度嘛……说实话,几十毫秒的误差都算好的。真要达到微秒级甚至纳秒级的对齐,你得靠硬件。
我入行那会儿,做过一个八目立体视觉的项目。八个相机拍同一个场景,软件同步的结果是——画面里快速移动的乒乓球,每个相机拍到的位置都不一样。后来换成硬件同步,问题一下子就解决了。今天我就把三种主流的硬件方案掰开揉碎讲清楚。
3.1 Genlock:广播级的老大哥
Genlock,全称是Generator Locking。说白了,就是给所有相机一个共同的「心跳」。
这个心跳信号通常是黑场信号(Black Burst)或三电平同步信号(Tri-Level Sync)。所有相机都锁在这个信号上,像素时钟、行同步、场同步完全一致。
核心要点:Genlock 保证的是「相位对齐」,不是「时间对齐」。所有相机在同一时刻开始扫描同一行像素,这才是真正的帧级同步。
我在项目中遇到过一个问题:两台相机都接了 Genlock,但画面还是有微小的偏移。查了半天,发现是其中一台相机的 PLL 锁相环配置不对,锁相时间常数设得太大了。你想想看,锁相环反应慢,信号抖动就大,对齐精度自然就差了。
Genlock 的典型参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 信号类型 | 黑场 / 三电平 | 模拟信号,75Ω 阻抗 |
| 抖动 | < 1ns | 高质量方案可达 100ps |
| 传输距离 | 100-300m | 同轴电缆,需中继器 |
| 适用场景 | 广播、影视 | 多台高端摄像机 |
我的经验:Genlock 信号分配时,一定要用专业的分配放大器(DA)。我曾经图省事,用 BNC 三通直接分信号,结果反射波导致相机同步不稳。后来老老实实加了 DA,问题就没了。
3.2 帧同步信号:工业相机的标配
工业相机领域,Genlock 用得不多。大家更习惯用帧同步信号——也就是 FSYNC 或 Trigger Ready 信号。
原理很简单:主机发一个脉冲,所有相机收到后同时开始曝光。曝光结束,同时开始读出。这样就能保证所有相机的曝光窗口完全重叠。
我习惯把帧同步信号分成两种:
- 硬件触发线:直接用 GPIO 线缆连接,TTL 或 LVDS 电平
- 相机内部同步:通过相机配置,让多台相机共享同一个时钟源
举个例子,Basler 的相机有个「Line Start」信号。你可以把一台相机设为主机,输出同步信号;其他相机设为从机,接收这个信号。这样多台相机就能做到微秒级的同步。
注意:帧同步信号只能保证「开始时间」对齐,不能保证「曝光时长」完全一致。如果相机型号不同,曝光时间有微小差异,累积起来还是会有偏差。我建议用同一批次、同一型号的相机。
我曾经踩过一个坑:用五台不同品牌的工业相机做同步。结果发现,有的相机收到触发信号后延迟 10μs 才开始曝光,有的延迟 50μs。你想想看,这 40μs 的差异,对于高速运动物体来说,画面偏差肉眼可见。后来我统一换了同型号相机,延迟差异控制在 1μs 以内。
3.3 硬件触发线:最直接也最麻烦
硬件触发线,说白了就是一根线。主机拉高电平,所有相机开始干活。
听起来简单吧?但实际做起来,坑不少。
首先,信号传输有延迟。线缆越长,延迟越大。我算过一笔账:
- 普通同轴电缆:信号传播速度约 0.7c,每米延迟约 4.7ns
- 差分对线缆:传播速度约 0.8c,每米延迟约 4.2ns
如果相机分布在 10 米范围内,最远和最近的相机之间可能有 40-50ns 的延迟差。对于大多数应用来说,这个量级可以忽略。但如果你做的是高速摄影,帧率在 1000fps 以上,那这 50ns 就不可忽视了。
我建议的做法是:
- 所有触发线缆等长,或者用可编程延迟芯片补偿
- 使用差分信号(如 RS-422、LVDS)提高抗干扰能力
- 在相机端加施密特触发器,消除信号抖动
避坑指南:我曾经用普通的杜邦线做触发线,结果在电机启动时,电磁干扰导致相机误触发。后来换成屏蔽双绞线,问题就解决了。记住,工业环境下的信号完整性,怎么强调都不过分。
3.4 三种方案怎么选?
我个人的选择逻辑是这样的:
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 广播级视频拍摄 | Genlock | 相位对齐要求高,设备支持好 |
| 工业视觉检测 | 帧同步信号 | 灵活,成本低,精度够用 |
| 高速运动捕捉 | 硬件触发线 + 延迟补偿 | 纳秒级精度,可控性强 |
| 分布式多摄像头 | 帧同步 + 网络时间戳 | 兼顾精度和部署便利性 |
说白了,没有完美的方案。Genlock 精度高但设备贵,帧同步信号灵活但需要相机支持,硬件触发线直接但布线麻烦。你得根据项目需求来权衡。
我记得有一次做户外多摄像头监控,相机之间距离超过 100 米。Genlock 信号传不过去,硬件触发线又太长。最后我用了帧同步信号 + PTP 网络时间戳的混合方案。帧同步保证曝光对齐,PTP 保证时间戳对齐。虽然精度不如纯硬件方案,但胜在部署方便。
嗯,硬件同步这块,说到底就是「信号完整性」和「延迟一致性」两个问题。把这两个问题想透了,方案自然就出来了。