USB Camera Limitations
USB Camera Charateristics
USB cameras, both 1.1 and 2.0, have a fundamentally different interface to the computer than do frame grabber based cameras (e.g., FTA's RS170 and CameraLink cameras). This difference offers obvious advantages but also comes at a cost. First, the advantages:
Plugs into an existing port. Your computer already has the USB port installed, so there is nothing to add physically inside your computer. This makes operation from laptops possible. All frame grabbers require adding a plug-in printed circuit board to the internal bus of the computer, which means opening the case.
CMOS megapixel camera chips. High pixel count cameras offer a degree of electronic zoom and pan, which are sometimes handy. Note that in consumer applications, zoom and pan are necessary because the camera manufacturer does not want to provide these in moveable optics due to the cost. In a scientific application, we provide these with real glass optics because the optical resolution is better.
Disadvantages of USB cameras:
Variable frame rate. The frame rate is not controlled precisely as it is with frame grabbers. USB cameras basically work on a handshake scheme from the host computer: the host signals it is ready for an image, the image is sent and processed by the host, and the host requests another image. If the host has anything else to do, the image-to-image timing will be varied.
CPU load. USB camera images require decoding and conversion to Windows image format before storage in memory. This requires significant attention by the CPU. Note that frame grabber cards provide the equivalent decoding separately by circuitry on the card and require no CPU intervention.
When to Use USB Cameras
USB cameras can be used in most applications. Examples of when to use USB:
- portable laptop operation
- minimal cost (with USB 1.1)
- you will take snap shots rather than movies
- you want color images
- any movies you take will be short (less than 100 images)
- precision timing not required in movies
When Not to Use USB Cameras
Because of frame rate timing and CPU loading, you should never use USB cameras in the following applications. Instead use a frame grabber.
- millisecond-level timing required: frame-to-frame time varies too much
- high frame count movies: CPU can not handle memory management (see below)
Long duration (more than a few minutes) and high frame count (more than a 100) movies pose special problems. These occur when the CPU runs out of large empty regions of RAM in which to store images. Remember each image is roughly 1/2 megabyte. As RAM becomes cluttered, Windows starts moving things to and from disk. This disk swapping also takes CPU time. Because the movie you are acquiring is basically stored in RAM until its capture is complete, there can be a traffic jam and Windows can lose track of incoming images. The result is a crash. Note you will not see this if the movie is short as there will be enough space in RAM to hold it.