【问题标题】:Implications of using many USB web cameras使用许多 USB 网络摄像头的影响
【发布时间】:2010-03-25 20:20:26
【问题描述】:

我正在考虑将多个低分辨率 USB 网络摄像头连接到一台计算机。这可能对性能产生什么影响?例如,四个 320x240 摄像头与单个 640x480 摄像头相比如何?我不熟悉 USB 接口的架构,有哪些性能注意事项?我所说的性能是指与单个摄像头相比,它将如何影响从多个摄像头读取图像数据的时间。

【问题讨论】:

  • 与编程无关。改为使用超级用户
  • 属于 superuser.com
  • 我敢打赌,在 USB IO 受到影响之前,从多个摄像头捕获图像将使 CPU 和磁盘 IO 不堪重负。也许内存也是如此,但这取决于您在捕获后处理图像的程度。 (参考您问题的性能影响部分)

标签: usb scalability bandwidth


【解决方案1】:

每个网络摄像头都连接到不同的 USB 端口?如果是这样,那就太好了。

即使它只有 1 个端口和 4 个连接的网络摄像头。我认为 4 320x240 也不会有任何问题。 USB 2.0 = 320Mbps。流式传输 320x240 视频不会超过 1mbps。最坏的情况,将 320x240 设置为 2mbps + 1mb 的其他数据。那将是您的 USB 端口和设备之间的 12mbps 带宽。

所以从上面看,1 个 USB 端口可以处理 4 个通过分路器连接的网络摄像头,速度与 1 个 640x480 网络摄像头一样快。,

处理这些图像取决于您的计算机速度以及您编写算法的方式。

【讨论】:

  • 谢谢。是的,我只是想知道读取/传输图像,而不是处理它们。
  • 但是 USB 通信是由 CPU 处理的,而不是像火线这样的硬件。驱动程序是否会为每个新的像素/行/帧中断,需要多长时间?这不仅仅与带宽有关。
【解决方案2】:

USB 的最大数据速率远高于您实际获得的速率。 网络摄像头可能会使用等时传输,在 USB 2 下只能获得大约 40%(如果我没记错的话)的总线时间,这也有很大的开销。 我不确定,但我怀疑这就是为什么几年前 USB 网络摄像头的分辨率和数据速率似乎已经达到上限的原因。随着使用 USB 3,它们可能会再次开始增加。 我建议您将每个相机连接到它自己的 USB 2 端口,因为 40% 是在所有同步连接之间共享的。 其中一个与键盘甚至 USB 大容量存储设备共享带宽的连接应该没问题,因为它们只会使用剩余带宽的一部分。

【讨论】:

    【解决方案3】:

    错了。

    首先,USB 2.0 的理论速度为 480mbps,通过直接连接您应该能够达到大约 80%。

    其次,要计算相机使用的带宽,必须考虑图像位深,因此: BW = hresolution() * vresolution() * imagebitdepth(bit) * framerate(frame/s) (in bit/sec) 对于网络摄像头,imagebitdepth 可以是 8、16、24 或 32 位(范围从 Y800 单色到 RGBA/RGBT 全彩,请查看规格)

    因此,典型的网络摄像头 @ 640*480 分辨率、30fps、16 位 RGB 位掩码 RGBA 图像位深度将需要 147.456 Mbps,因此,类似规格之一但 @ 320*240 分辨率将需要 36.864 Mbps,相反上面 Shawn 用他的 1mbps 表示的主要 BS,然后这也与他几乎所有其他的、也是错误的数据不一致。

    尽管如此,模拟操作很大程度上依赖于驱动程序,制造商可以尽最大努力将唯一的设备 ID 公开给 DirectShow。

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2019-09-28
      • 2022-06-13
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多