我正在研究将多个低分辨率 USB 网络摄像头连接到一台计算机。这可能对性能产生什么影响?例如,四个 320x240 摄像头与单个 640x480 摄像头相比如何?我不熟悉 USB 接口的架构,有哪些性能注意事项?我所说的性能是指与单个摄像头相比,它将如何影响从多个摄像头读取图像数据的时间。
3 回答
每个网络摄像头都连接到不同的 USB 端口?如果是这样,那就太好了。
即使它只有 1 个端口和 4 个连接的网络摄像头。我认为 4 320x240 也不会有任何问题。USB 2.0 = 320Mbps。流式传输 320x240 视频不会超过 1mbps。最坏的情况,将 320x240 设置为 2mbps + 1mb 的其他数据。那将是您的 USB 端口和设备之间的 12mbps 带宽。
综上所述,1 个 USB 端口可以处理 4 个通过分路器连接的网络摄像头,速度与 1 个 640x480 网络摄像头一样快。
处理这些图像取决于您的计算机速度以及您编写算法的方式。
USB 的最大数据速率远高于您实际获得的数据速率。网络摄像头可能会使用同步传输,在 USB 2 下只能获得大约 40%(如果我没记错的话)的总线时间,这也有很大的开销。我不确定,但我怀疑这就是为什么几年前 USB 网络摄像头的分辨率和数据速率似乎已经达到上限的原因。随着使用 USB 3,它们可能会再次开始增加。我建议您将每个相机连接到它自己的 USB 2 端口,因为 40% 由所有同步连接共享。其中一个与键盘甚至 USB 大容量存储设备共享带宽的连接应该没问题,因为它们只会使用剩余带宽的一部分。
错误的。
首先,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。