网络摄像头的原始输出不总是 RGB 或 YUV 吗?

网络摄像头的原始输出不总是 RGB 或 YUV 吗?

[实际问题在最后一段,我发表了我的假设和思考过程,只是为了让事情变得清晰]

这一切始于我想看看当太多网络摄像头在同一 USB 2.0 总线上传输时会发生什么。所以我特意通过一个 USB 2.0 集线器连接了三个 USB 2.0 网络摄像头,确保最大吞吐量为 480 Mbps(根据 USB 2.0 标准)。

然后我同时播放了所有 3 个网络摄像头;令我惊讶的是,没有延迟,没有卡顿,也没有来自 USB 2.0 控制器的“超出带宽”尖叫声。

我感到很惊讶,因为我知道每个网络摄像头的帧速率、分辨率和每像素的色彩位数。根据乘法:

每秒帧数 * 高度 * 宽度 * 每像素位数

这 3 个网络摄像头应该已经占满 USB 2.0 总线但是却没有。

我使用 AForge 框架来捕获单个帧:每个单个帧都以位图的形式给出,其大小和每像素位数与我的计算相匹配,计算结果预测 USB 2.0 便秘。

最后,我观察了 USB 2.0 带宽使用情况,虽然一个网络摄像头符合我预期的带宽消耗,但其他网络摄像头的带宽消耗却低于该值的两倍或更多。


实际问题:

因此,我的结论(我希望已经得到证实或更正)是:网络摄像头可以通过 USB 传输任何它们想要的内容。它可能是一个巨大的位图,可能是 JPEG,可能是专有格式,甚至是 MPEG4 流。因此,网络摄像头在通过 USB 连接发送帧之前可能会或可能不会对其进行压缩。在 USB 主机端,网络摄像头的驱动程序接收网络摄像头通过 USB 发送的任何内容,并简单地重建一个位图(这就是为什么我总是得到位图,无论实际使用的带宽是多少)。我怎么会错呢?如果我是对的,是否有一个方便的数据库,记录不同网络摄像头通过 USB 发送的数据格式?

相关内容