15
6
Theoretically an USB HD webcam working at 15 FPS consume a bandwidth nearing 18MB/s - 1280 (width) x 960(height) x 3(RGB channels) x 15(FPS) - without compression. An USB 2.0 controller have a effective throughput of 35MB/s, being able to handle 2 cameras(witch I've confirmed in practice). An USB 3.0 controller have a theoretical maximum transmission speed of 625MB/s wich is capable of handling 34 cameras(625/18 = 34.72), for convenience, lets assume it can handle a maximum of 8 cameras(not confirmed yet). Using both assumptions, it's possible to estimate that the mother board P8B75-V can handle at least 50 simultaneous webcams:
- 3 PCIe slots (one PCIe x4 and two PCIe x1, excluding the PCIe x16 to the graphic card): Convert them to USB 3.0 using an adapter + USB 3.0 HUBS, resulting in 24 webcams
- 2 USB 3.0 Controllers (hear and front): USB 3.0 HUBS to achieve 16 webcams
- 3 PCI Slots: Convert each one to USB 2.0 using an adapter, resulting in 6 webcams
- 2 USB 2.0 Controllers: 4 webcams
So, my question is:
Is that configuration really possible? Anyone has tried to overload the system with so many USB webcams?
Problems:
- It's possible that the processor get's overloaded. Using uncompressed image capture may solve this.
- The SO can have a lot of trouble handling so many devices.
Comentaries:
- The CPU bus to external devices - Quick Path Interconnect (QPI) for Intel and Hyper-transport for AMD - doesn't seen to be a problem, since 50MB/s * 18MB/s = 900MB/s. That's really far from the bus data rate of 25.6GB/s for QPI and 51.2GB/s for Hyper-transport.
- I'm implementing the software of this application using OpenCV that wraps the capture around DirectShow.
EDIT 12/11/12:
So, I've done some test's and there are some points to clarify.
The streaming of HD images at 30 FPS represents a bandwith of 106MB/s (53MB/s at 15 FPS), my math was completely wrong. This means that the HD webcams working with USB 2.0 needs to compress the file to not consume all the bandwidth. So, even if I was able to connect 50 webcams in a single PC, probably the CPU would have a lot of trouble decompressing this amount of data in real time.
The real problem comes when we see the USB 3.0 specification:
As we can see in the image, the USB 2.0 HUB is completely separated from the USB 3.0 HUB (SuperSpeed), witch means that USB 2.0 devices can't use the SuperSpeed bandwidth. That's a major drawback on my assumption that I could use more USB 2.0 devices with a USB 3.0 controller.
As this specification is kinda old (about 2 years), can someone confirm if there is some new implementation of the USB 3.0 specification that shares the SuperSpeed bandwidth between USB 2.0 devices?
4What do you need 50 webcams for? – Dennis – 2012-11-01T19:26:03.527
1How are the webcams powered? By their own PSU or do their draw power from the USB bus? – Hennes – 2012-11-01T19:26:17.967
@Dennis I will use it to a computer vision application. – Ian Medeiros – 2012-11-01T19:30:12.560
@Hennes The USB HUB can be connected to a energy source to power the webcams. – Ian Medeiros – 2012-11-01T19:30:46.913
2The answer: Not Practical. But incredibly awesome sounding. – nerdwaller – 2012-11-01T19:33:11.810
I know, but not all hubs have that capability and I was not sure if you consider that point. It is a question best asked before the magic blue smoke escapes. – Hennes – 2012-11-01T19:34:13.667
There are possibly some useful bandwidth-related comments by David to my queries here.
– Karan – 2012-11-01T19:34:16.9905I've gotten 17 cameras to work for an Opencv 2 project (python wrapper). I was able to get camshift hsv detection and flann object detection working decently on all simultaneously but in nothing approaching real time and I wasn't able to display the results. – Snesticle – 2012-11-01T19:36:23.387
@Dennis Have in mind that I reduced drastically the total number of webcams for each USB 3.0 connection. The theoretical maximum number is 34 webcams for each one and I reduced it to 8 cameras. – Ian Medeiros – 2012-11-01T19:39:52.137
@Nerdwaller, can you ellaborate your comment? What make you think it's not possible? – Ian Medeiros – 2012-11-01T19:47:46.110
1I apologize, I was responding to it being "practical" (the title). Being practical or otherwise isn't correlated to possibility/impossibility. However, to pull it off you will probably need to power the camera's from something else and only have the data feeds in the computer (by computer, I mean USB3.0 hubs). – nerdwaller – 2012-11-01T19:52:38.630
@nerdwaller Edited the title. Sorry, English isn't my native language and to me "practical" is strongly related to "possible". – Ian Medeiros – 2012-11-01T20:14:51.347
No worries man! I also realize the sarcasm does not translate well across the internet or to non-native-english-speakers. Sounds like you have a sweet project. – nerdwaller – 2012-11-01T20:43:13.723
@Snesticle. Can you share some of your experiences with this setup? How did you managed to connect the cameras? What components has you used. – Ian Medeiros – 2012-11-12T14:34:54.853
Huh, this is really interesting. Did you ever find the answer to your thought experiment? – Tyler – 2013-01-04T15:46:09.087
1@TylerJFisher Sadly yes. It's not possible. It would be possible if there were usb 3.0 cameras that consumes the same amount of bandwidth of traditional usb 2.0 cameras, witch is not the case. I am promising myself to answer this question definitely for a long time, but sadly I was too busy to do it. – Ian Medeiros – 2013-01-07T18:44:45.917