2013-06-22 29 views
1

我试图通过将文本时间戳写入终端窗口来调试滞后机器视觉相机,然后观察相机“检测”屏幕更改需要多长时间。我的显示器具有60Hz的刷新率,所以屏幕每更新一次约17ms。有没有一种方法可以确定在17ms窗口内的哪一点刷新计时器当前是针对X11应用程序的。如何确定自X11上次屏幕刷新以来的时间长度?

编辑:经过近一天的问题摔跤后,我认为我应该问的真正问题是如何生成足够快的视觉信号来测试相机图像。我的工作假设是相机在传输之前缓冲帧,因为视频流似乎滞后于其他同步数字事件(在这种情况下,输出信号到机器人控制器)

+0

X11应用程序对监视器刷新一无所知。 –

+0

同意,但服务器确实这是我需要的信息,以便尝试隔离摄像机输入中假定的“延迟” –

+1

显示时间戳的简单程序可以轻松地每秒钟更新视频缓冲区20000次,每帧之后有'XSync'。这是像我一样的旧笨重的硬件。视频卡应该以其标称刷新率更新显示器。 –

回答

0

'xrefresh'是一种工具,它可以触发X服务器上的刷新事件。它通过绘制指定颜色的全局窗口然后将其删除,导致所有后续窗口重新绘制。即使如此,无论我尝试做什么,试图将捕获的帧与监视器输出相关联时,我仍然得到非常不一致的结果,视频流似乎滞后于我期望的监视器状态。这可能意味着相机拍摄速度缓慢或显示器更新速度缓慢。幸运的是,我最终想到了使用键盘LED来验证相机帧的同步性。 ('xset led'和'xset -led')。这立即向我显示,实际上,我的电脑显示器更新缓慢,而不是相机滞后。