複数の低解像度USBウェブカメラを1台のコンピューターに接続することを検討しています。これはパフォーマンスにどのような影響を与える可能性がありますか?たとえば、4台の320x240カメラが1台の640x480カメラに対してどのように機能しますか?USBインターフェイスのアーキテクチャに精通していませんが、パフォーマンスに関する注意事項は何ですか?パフォーマンスとは、単一のカメラと比較して、複数のカメラから画像データを読み取る時間にどのように影響するかを意味します。
3 に答える
各ウェブカメラは異なるUSBポートに接続されていますか?もしそうなら、その良い。
4つの接続されたWebカメラを備えた1つのポートであっても。4320x240でも問題はないと思います。USB 2.0=320Mbps。320x240のビデオのストリーミングは1mbpsを超えません。最悪のシナリオでは、320x240を2mbps+1mbの他のデータに配置します。これは、USBポートとデバイス間の帯域幅が12mbpsになります。
したがって、上記から、1つのUSBポートは、スプリッターによって接続された4つのWebカメラを1つの640x480Webカメラと同じ速度で処理できます。
これらの画像の処理は、コンピューターの速度とアルゴリズムの記述方法によって異なります。
USB の最大データ レートは、実際に得られるものよりもはるかに高くなっています。ウェブカメラはおそらくアイソクロナス転送を使用しますが、USB 2 では (私の記憶が正しければ) バス時間の約 40% しか取得できず、これにもかなりのオーバーヘッドがあります。確かなことはわかりませんが、USB ウェブカメラの解像度とデータ レートが数年前に頭打ちになったように見えるのはこのためだと思います。USB 3 を使用すると、再び増加し始める可能性があります。すべてのアイソクロナス接続で 40% が共有されるため、各カメラを専用の USB 2 ポートに接続することをお勧めします。キーボードや USB 大容量記憶装置と帯域幅を共有している接続の 1 つは、帯域幅の残りの部分しか使用しないため、問題ありません。
違う。
まず、USB 2.0 は理論上 480 mbps であり、直接接続するとその約 80% まで到達できるはずです。
次に、カメラが使用する帯域幅を計算するには、画像のビット深度を考慮する必要があります。したがって、BW = hresolution() * vresolution() * imagebitdepth(bit) * framerate(frame/s) (in bit/sec) imagebitdepthウェブカメラの場合、8、16、24、または 32 ビット (Y800 モノクロから RGBA/RGBT カラー フルまでの範囲、仕様を確認)
したがって、一般的な Web カメラ @ 640*480 解像度、30fps、16 ビット RGB ビットマスク RGBA 画像のビット深度は 147.456 Mbps を必要とし、その結果、同様の仕様で @ 320*240 解像度の Web カメラには 36.864 Mbps が必要になります。上記のショーンが 1mbps で述べた BS は、彼の他のほぼすべての間違ったデータとも一致しません。
それにもかかわらず、同時操作は主にドライバーに依存します。それ以外の場合は最小限の労力で、一意のデバイス ID を DirectShow に公開するのは製造元の責任です。