一台计算机上有 50 个 USB 网络摄像头。这真的可能吗?

Ian*_*ros 15 usb webcam drivers

理论上,以 15 FPS 运行的 USB 高清网络摄像头消耗的带宽接近 18MB/s - 1280(宽度)x 960(高度)x 3(RGB 通道)x 15(FPS) - 没有压缩。USB 2.0 控制器的有效吞吐量为 35MB/s,能够处理 2 个摄像头(我已经在实践中确认过)。USB 3.0 控制器的理论最大传输速度为 625MB/s,可以处理 34 个摄像头(625/18 = 34.72),为方便起见,假设它最多可以处理 8 个摄像头(尚未确认)。使用这两个假设,可以估计主板P8B75-V可以同时处理至少 50 个网络摄像头:

  • 3 个 PCIe 插槽(一个 PCIe x4 和两个 PCIe x1,不包括 PCIe x16 到显卡):使用适配器+ USB 3.0 HUBS将它们转换为 USB 3.0 ,从而产生 24 个网络摄像头
  • 2 个 USB 3.0 控制器(听觉和前置):USB 3.0 HUBS 实现 16 个网络摄像头
  • 3 个 PCI 插槽:使用适配器将每个插槽转换为 USB 2.0 ,从而产生 6 个网络摄像头
  • 2 个 USB 2.0 控制器:4 个网络摄像头

所以,我的问题是:

这样的配置真的可以吗?有没有人试图用这么多 USB 网络摄像头使系统过载?

问题:

  • 处理器可能过载。使用未压缩的图像捕获可以解决这个问题。
  • SO 在处理如此多的设备时可能会遇到很多麻烦。

评论:

  • CPU 到外部设备的总线 - Intel 的 Quick Path Interconnect (QPI) 和 AMD 的 Hyper-transport - 没有问题,因为 50MB/s * 18MB/s = 900MB/s。这与QPI 的25.6GB/s 和Hyper-transport的 51.2GB/s 的总线数据速率相差甚远。
  • 我正在使用OpenCV实现此应用程序的软件,该软件将捕获内容封装在DirectShow周围。

编辑 12/11/12:

所以,我做了一些测试,有一些要点需要澄清。

以 30 FPS 流式传输高清图像表示带宽为 106MB/s(15 FPS 时为 53MB/s),我的数学完全错误。这意味着使用 USB 2.0 的高清网络摄像头需要压缩文件才能不消耗所有带宽。因此,即使我能够在一台 PC 上连接 50 个网络摄像头,CPU 在实时解压缩如此大量的数据时可能会遇到很多麻烦。

当我们看到USB 3.0 规范时,真正的问题来了:

USB 3.0 规范

正如我们在图片中看到的,USB 2.0 HUB 与 USB 3.0 HUB (SuperSpeed) 完全分离,这意味着USB 2.0 设备不能使用 SuperSpeed 带宽。这是我假设我可以使用更多带有 USB 3.0 控制器的 USB 2.0 设备的主要缺点。

由于这个规范有点旧(大约 2 年),有人可以确认是否有一些新的 USB 3.0 规范实现在 USB 2.0 设备之间共享 SuperSpeed 带宽?

Mos*_*ose 7

这种在 USB-3 中增加一个 USB-2-Hub-Device 的设计永远不会改变,因为这是提供合理向下兼容性的唯一方法。如果您想使用 USB-3 速度,您需要使用 USB-3 网络摄像头。

让我举个例子来进一步说明。让我们说:

好的,我们建一条高速铁路。因为铁路是高速的,所以我们可以在上面放置比慢速铁路更多的慢车。欢呼!

从技术上讲,它与 USB 相同。仅仅因为您可以在铁路上开得更快并不意味着慢车 (USB2) 有更多空间(带宽)。慢车会在快轨上缓慢行驶,使得快车(USB3)无法全速使用铁路。为了解决这个问题,一些工程师决定不用更快的铁路取代慢速铁路,而是在它旁边建造它。通过这种设置,快速列车可以在快速铁路上高速行驶,而慢速列车在慢速铁路上行驶。USB3 向下兼容也是如此。