Let us start with a general fact that USB 3.0 supports so called Direct Memory Access (DMA) which helps to minimizes CPU usage.
This is a critical feature for high bandwidth applications.
Question of bandwidth usually arises when using high resolution cameras and XIMEA does have several models with high data throughput climbing over 370 MB/s which pushes the limit and boundaries of USB 3.0 getting closer to its maximum of 440 MB/s.
To help you utilize full potential of the cameras we would like to present several suggestions.
1. PC performance¶
Before using the camera it is important to ensure that you have a high performance PC with enough dedicated CPU resources for image acquisition in order to receive and process all the data that you will get from the camera.
This will help you to avoid bottlenecks and increase speed.
Also avoid or at least minimize asynchronous calls to the camera when developing your application.
2. PC Host adapters¶
With USB3 becoming increasingly popular the market keeps supplying more and more different USB 3.0 host controller cards.
You need to check for an important component when selecting the right one and that is chipset.
The ones like new Fresco FL1100, Renesas µPD720202 and Intel Z77 (Ivy Bridge) or Z87 (Haswell) are capable to secure higher bandwidth.
Be careful with the PCI Express version of the motherboard as well.
If you have a single lane (x1) PCI Express 1.0 interface you will not be able to have full transfer speed of USB 3.0.
Unfortunately, many laptops do not have this information commonly published in specification.
Full frame rate will require a PCIe 1.0 x4 interface (1GB/s) or a newer versions like PCIe 2.0 (500 MB/s per lane) and 3.0 (985 MB/s per lane).
In general, with high bandwidth cameras try to limit single camera per one controller.
3. Video card and disk¶
Now that you have the data in the PC you will need to process it.
So in addition to throughput next important part is having a powerful and possibly discrete video card to manage all the data fast enough and offload image display work from the CPU.
If you plan to write large volume of image data to the disk it would be helpful to look for RAID array or SSD (Solid State Drives).
When you are setting up a USB 3.0 camera with high bandwidth or even multiple cameras for one application it is vital to evaluate step by step different stages of the system to secure that the imaging pipeline fully harnesses the optimal hardware (and software) providing highest performance by eliminating any bottlenecks.
This point is specific for xiD line of cameras.
Usually most of XIMEA USB3 cameras receive enough power via USB 3.0 cable, but power consumption of xiD line is higher than that of xiQ line for example because xiD uses large format CCD sensors and combines them with fast, 4 TAP (quad tap) readout.
In result, power requirement can climb up to 4.5 W, which is reaching the limit of USB 3.0 potential.
Additionally, such consumption can present a problem for certain laptops.
In case you use the cameras with desktop PC, please check if your interface card has power supply cable connected to it and to computer's main power supply.
Better still is to use GPIO connector and cable to attach it directly to power source.
6. Skipped/Lost frames¶
Skipped or otherwise lost frames can be a major problem for application and a lot of manufacturers try to resolve this issue with involving frame buffers, but in a sense this usually just postpones the reliability obstacles.
To tackle such cases XIMEA created Control panel called xiCOP which can help to find the bottleneck that prevents reliable streaming of the whole packets by optimizing the setup.
Examples of such bottlenecks can be some of the above mentioned points as well as others like packet size interconnected with Frame rate speed settings or bandwidth reduction by lowering packet size with different Pixel Formats or readout modes.