Theoretisch verbraucht eine USB-HD-Webcam mit 15 FPS eine Bandbreite von 18 MB / s - 1280 (Breite) x 960 (Höhe) x 3 (RGB-Kanäle) x 15 (FPS) - ohne Komprimierung. Ein USB 2.0-Controller hat einen effektiven Durchsatz von 35 MB / s und kann 2 Kameras verarbeiten (was ich in der Praxis bestätigt habe). Ein USB 3.0-Controller hat eine theoretische maximale Übertragungsgeschwindigkeit von 625 MB / s , der 34 Kameras verarbeiten kann (625/18 = 34,72). Angenommen, er kann maximal 8 Kameras verarbeiten (noch nicht bestätigt). Unter Verwendung beider Annahmen kann geschätzt werden, dass das Motherboard P8B75-V mindestens 50 gleichzeitige Webcams verarbeiten kann:
- 3 PCIe-Steckplätze (ein PCIe x4 und zwei PCIe x1, ausgenommen PCIe x16 für die Grafikkarte): Konvertieren Sie diese mithilfe eines Adapters + USB 3.0-HUBs in USB 3.0 , was 24 Webcams ergibt
- 2 USB 3.0-Controller (Hören und Front): USB 3.0-Hubs für 16 Webcams
- 3 PCI-Steckplätze : Konvertieren Sie jeden mit einem Adapter auf USB 2.0 , was zu 6 Webcams führt
- 2 USB 2.0 Controller : 4 Webcams
Meine Frage lautet also:
Ist diese Konfiguration wirklich möglich? Hat jemand versucht, das System mit so vielen USB-Webcams zu überlasten?
Probleme:
- Möglicherweise ist der Prozessor überlastet. Die Verwendung der unkomprimierten Bilderfassung kann dieses Problem beheben.
- Der SO kann mit so vielen Geräten Probleme haben.
Kommentare:
- Der CPU-Bus zu externen Geräten - Quick Path Interconnect (QPI) für Intel und Hyper-Transport für AMD - stellt kein Problem dar, da 50 MB / s * 18 MB / s = 900 MB / s. Das ist weit entfernt von der Busdatenrate von 25,6 GB / s für QPI und 51,2 GB / s für Hyper-Transport .
- Ich implementiere die Software dieser Anwendung mit OpenCV , das das Capture in DirectShow umschließt .
EDIT 12/11/12:
Also habe ich einige Tests durchgeführt und es gibt einige Punkte zu klären.
Das Streamen von HD-Bildern mit 30 FPS entspricht einer Bandbreite von 106 MB / s (53 MB / s bei 15 FPS), meine Mathematik war völlig falsch. Dies bedeutet, dass die HD-Webcams, die mit USB 2.0 arbeiten, die Datei komprimieren müssen, um nicht die gesamte Bandbreite zu verbrauchen. Selbst wenn ich in der Lage wäre, 50 Webcams in einem einzigen PC zu verbinden, würde die CPU wahrscheinlich große Probleme haben, diese Datenmenge in Echtzeit zu dekomprimieren.
Das eigentliche Problem tritt auf, wenn wir die USB 3.0-Spezifikation sehen :
Wie wir auf dem Bild sehen können, ist der USB 2.0 HUB vollständig vom USB 3.0 HUB (SuperSpeed) getrennt, was bedeutet, dass USB 2.0-Geräte die SuperSpeed-Bandbreite nicht nutzen können . Das ist ein großer Nachteil, wenn ich davon ausgehe, dass ich mehr USB 2.0-Geräte mit einem USB 3.0-Controller verwenden könnte.
Kann jemand bestätigen, ob es eine neue Implementierung der USB 3.0-Spezifikation gibt, die die SuperSpeed-Bandbreite zwischen USB 2.0-Geräten teilt, da diese Spezifikation ein bisschen alt ist (ca. 2 Jahre)?