With more bandwidth available, USB 3.0 eliminates the need for compression and can transmit high-resolution, high-frame rate video content without loss of quality. As a result, USB 3.0 brings no compromise to image quality and helps to promote miniaturization in machine vision camera. Figure 1 shows the available bandwidth in USB 3.0 versus other interface standards used in machine vision cameras. With its 5 Gbps data rate, USB 3.0 supports a wider range of frame size and frame rate, thus making it a more versatile technology for many applications.
. Bandwidth of USB 3.0 and common interface standards used in machine vision today
Machine Vision Quality and Consumer Cost
The overall system cost to implement a USB 3.0 machine vision system is much lower than that of GigE, IEEE 1394b and especially Camera Link. This cost is also continually decreasing due to consumer adoption of USB 3.0. 90% of PCs sold today come with USB 3.0 built into the computer at no additional cost to the consumer. Components such as USB 3.0 connectors and cables are readily available off the shelf. In addition, a USB 3.0 cable is capable of delivering 4.5W of power, enough to power a machine vision camera without an additional power supply.
The cost difference becomes even more apparent in multi-camera systems for applications such as 3D imaging. Since a single USB host can support up to 255 devices, multiple USB 3.0 cameras can run in parallel on a single bus via inexpensive and commercially available USB 3.0 hubs. Not all other standards allow this sort of flexibility, and in the case of Camera Link, an additional frame grabber is required for every camera. Figure 2 shows the costs compared with the available bandwidth of other machine vision standards. USB 3.0 has a strong advantage here as its costs are comparable with IEEE 1394b and GigE but it has the bandwidth close to Camera Link, which costs 3-4 times more.
. Cost vs. Bandwidth of competing machine vision standards
Implementing USB 3.0 Cameras
Integrating a camera into a system requires a software application that reads data from the image sensor and sends control information to the image sensor controller. This is done using a USB driver. The standard, readily-available USB driver for a video camera is based on the USB video class (UVC). It is plug-and-play compatible with all personal computers and is commonly used in video capture applications like PC webcams. However, the UVC driver imposes several restrictions that are not ideal for machine vision applications. Specifically, the UVC driver only supports images in uncompressed YUV formats such as YUY2 and NV12, thus limiting the selection of image sensors. Since image sensors usually capture Bayer, RGB, or monochromatic images, an ISP (Image Signal Pipeline) function must be used to convert the raw image data into the YUV format. This is done on the image sensor, using an FPGA, or via software application on the host PC. This is not desirable for certain high frame rate or high-resolution cameras that produce raw Bayer and RGB data and do not need additional header or ISP in the system.
Since the UVC driver was initially built for consumer video application, it does not allow a high degree of customization desirable in machine vision applications, nor does it provide all camera control features that may be required for machine vision applications.
With the shortcomings of UVC, the machine vision camera industry needs a completely different device class or custom driver solutions. With a custom driver, designers can use an image sensor of choice and design control features specifically for the target application. However, the added flexibility and control come at the expense of a longer design cycle.
To eliminate this delay, a new standard proposed by leading members of the Automated Imaging Association (AIA), USB3 Vision, has been defined. Under USB3 Vision, the basic discovery of the camera device, reporting of capabilities (like gain, brightness, gamma, image resolutions, frame rates, etc.), and data streaming over bulk or isochronous pipes used by UVC remain the same.
Where USB3 Vision differs is in its support for more image sensors that stream non-YUV images, more camera control features, and application-level compatibility for software programs such as GenICam. The idea is to re-use as many blocks as possible from the existing standards like GigE Vision and CoaXPress to make development easy and familiar for designers. This makes it easy for vendors and designers to utilize the same software front-end with the fastest hardware back-end using USB 3.0.
USB3 Vision also allows custom driver implementations to accommodate vendors who do not support the full features and capabilities in their hardware. For example, if the hardware does not have sufficient code space to discover and store all camera control parameters, these can be spoofed by the custom driver on the USB host to retain compatibility with existing software applications.