USB 3.0 Maximum Bandwidth Utilization for See3CAMs using PCIe Expansion Cards
Many of us when we see the word “USB 3.0 SuperSpeed” camera, take it for granted the 5 Giga Bits per Second advertised maximum bandwidth. But the truth is that what you see is not always what you get. In-fact the theoretical bandwidth of 5GBps may just hold true only when you transfer data at such rate and do nothing but discard it at the receiving end. So what shall we actually get from USB 3.0 depends on different types of end applications they serve. This blog will concentrate on USB 3.0 standard USB Video Class (UVC) Devices and more importantly e-con’s See3CAM line of products.
To start off, let’s clear some common misconceptions. The maximum bandwidth advertised is per USB Host Controller and not per USB Port. A PC can generally have several ports & hubs which connects internally to a single Host Controller and so the bandwidth will effectively be shared among them.
So what really affects the theoretical bandwidth and what do we get at the end? The answer underlies on the 3 basic components to which an USB camera is connected to.
- Host Controller.
- Streaming Application.
- Display Driver.
Since the data from an USB camera has to end up on the display, the application used to stream and the display drivers has to match up with the speed of USB 3.0 to achieve the maximum bandwidths. With e-con’s streaming application e-CAMView and normal Intel HD graphics, the maximum practical bandwidth achieved is about 2 Giga Bits per Second.
Now as we begin to understand the practical bandwidth limitations and contributing factors, let’s talk about on how to optimize the bandwidth in a PC and achieve maximum out of it. Below are some points highlighting on how it could be optimized,
- Standard USB host controller like Intel or Renesas.
Not every host controller available in market are optimized for USB 3.0. There are some cheap ones which supports USB 3.0 but not up to the standards of an Intel or Renesas host controller.
- Optimized streaming applications instead of standard 3rd party ones.
A good streaming application should use best in class and updated software components to provide better results. Applications like e-CAMView which is regularly updated to make use of best and latest windows’ application layers will clearly out-perform the standard 3rd party streaming applications.
- Good graphic card for high end streaming applications.
Though standard Graphic drivers available like Intel HD graphics will be good for most of the streaming applications like 1080P 60 FPS in uncompressed formats like YUV, for more intensive applications, a dedicated graphic card will give an edge.
- Multiple Host Controller interfaces instead of Single.
This is the most important and the highest contributing factor for bandwidth optimization. As discussed earlier, the bandwidth of USB 3.0 will be shared among the ports which originate from a single host controller. In most of the PCs, inbuilt USB 3.0 ports in the mother board will have a common host which makes the effective bandwidth to be shared among them. One of the best ways in which this can be tackled is using Multi Host PCIe expansion cards which has a dedicated Host Controller for each USB 3.0 port. By using this method, the entire USB 3.0 bandwidth can be achieved in every single port of the PCIe card.
The following are few multi-Host PCIe cards checked in different mother boards. Important thing to note here is that, the mother board should support PCIe – Generation 2 or above and 4x speed or above.
- Startech PEXUSB3S44V
- IOI Tech U3X4-PCIE4XE111
The following mother boards were tested to stream 4 individual 1080P 60 FPS uncompressed UYVY streams (1.9 GBps each) and rendered onto display using e-CAMView.
- Intel® Desktop Board DB85FL with Intel HD graphics.
- GigaByte GA-B85M-D3H with Intel HD graphics.
- GigaByte GA-990FXA-UD3 R5 with NVIDIA GeForce GTX 960.
Any other mother board which supports at least Generation 2 and 4x speeds should have similar behaviour. Note: The tests were made with Windows 7, 8.1 (in e-CAMView) and Ubuntu 14.04 OSes (in e-con’s GUVCview).
To conclude, for extracting maximum bandwidth out of USB 3.0 in See3CAMs, the above options are recommended. Also worth noting is that a normal streaming scenario like one 1080P 60 stream in UYVY (1.9 GBps) or any other similar bandwidth requirements, doesn’t require any special hardware. A single USB 3.0 host with Intel HD graphics will be sufficient.