理論的には、15 FPSで動作するUSB HDウェブカメラは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の同時Webカメラを処理できると推定できます。
- 3個のPCIeスロット(1個のPCIe x4と2個のPCIe x1、PCIe x16をグラフィックカードに除く):アダプター + USB 3.0 HUBSを使用してUSB 3.0に変換し、24のWebカメラを作成
- 2つのUSB 3.0コントローラー(聴覚と正面):16のWebカメラを実現するUSB 3.0ハブ
- 3 PCIスロット:アダプターを使用してそれぞれをUSB 2.0に変換し、6つのWebカメラを作成します
- 2つのUSB 2.0コントローラー:4つのWebカメラ
だから、私の質問は:
その構成は本当に可能ですか?誰もが非常に多くの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のバスデータレートとはかけ離れています。
- DirectShowのキャプチャをラップするOpenCVを使用して、このアプリケーションのソフトウェアを実装しています。
編集12/12/12:
だから、私はいくつかのテストを行ったが、明確にするいくつかのポイントがあります。
30 FPSでのHD画像のストリーミングは、106 MB / s(15 FPSで53 MB / s)の帯域幅を表し、私の計算は完全に間違っていました。これは、USB 2.0で動作するHD Webカメラがすべての帯域幅を消費しないようにファイルを圧縮する必要があることを意味します。そのため、1台のPCで50台のWebカメラを接続できたとしても、CPUはこの量のデータをリアルタイムで解凍するのに多くの問題を抱えているでしょう。
本当の問題は、USB 3.0仕様を見たときに発生します。
画像からわかるように、USB 2.0 HUBはUSB 3.0 HUB(SuperSpeed)から完全に分離されているため、USB 2.0デバイスはSuperSpeed帯域幅を使用できません。これは、USB 3.0コントローラーでより多くのUSB 2.0デバイスを使用できるという私の仮定の大きな欠点です。
この仕様は少し古い(約2年)ので、USB 2.0デバイス間でSuperSpeed帯域幅を共有するUSB 3.0仕様の新しい実装があるかどうかを誰かが確認できますか?