Point Grey Research Knowledge Base

Article 188 - Image data is corrupt and images being displayed are broken or torn.

Issue:
Image data is corrupt and images being displayed are broken or torn.

Solution:

Corrupt Images - Defined

Corrupt (“broken”, “torn”, or “chopped”) images can occur for a number of different reasons, which are discussed in further detail below. This problem has been seen on both laptop and desktop systems and across a wide variety of hardware platforms and operating systems. It is not specific to any particular system configuration, and has also been known to occur with both IEEE-1394a and IEEE-1394b devices. It is important to note that there is a difference between the “corrupt” images referred to in this article (the actual image data is corrupt) and the horizontal image “tearing” referred to in Related Article 145 below (the image data is fine, but there is a problem with the video display). The following images are some examples of the corrupt or broken images we are referring to in this article:


Example 1


Example 2

Common Causes

The most common cause of corrupt images is that the host system or PC cannot keep up with the data rates going across the PCI or laptop PCMCIA bus. Some specific examples of these types of situations include:

  • PCI bus gets saturated.
  • Memory bus bandwidth gets saturated.
  • PC not able to keep up with the interrupts being generated.

PCI bus saturation is a common situation and can happen for a number of reasons, including:

  • Running multiple 1394 cameras at high frame rates that push the 1394 bandwidth limits (see Related Article 22 below). For example, running two Dragonfly EXPRESS 1394b cameras on the same bus at 120Hz can often result in corrupt images. 
  • Large hard disk reads/writes
  • Heavy network traffic

With the PCI bus saturated, the system is not able to keep up with the data rates going across it. As a result, images cannot be pulled off the 1394 PCI card fast enough. The isochronous FIFO buffers on-board the card gradually fill up with image data from the camera, and eventually a general FIFO overflow occurs. These overflows can result in:

  • Tears through the middle of an image due to data packets being dropped and the current image being filled by data from the next image (example 1 above)
  • Broken images that are made up of many different images (example 2 above)
  • Images that are dropped completely (see Related Article 141 below)

It is important to note that general FIFO overflows occur at the lowest level of the Windows IEEE-1394 substructure, which means it is beyond the control of PGR drivers and software.

Corrupt images can also occur due to hardware issues, such as:

  • 1394 cables that are longer than the suggested maximum of 4.5m, as set out in the IEEE-1394 specification.
  • 1394 hub or repeater design issues.
  • Inadequate power supply to the camera.

How to Avoid

Avoiding corrupt images largely depends on the system components and configuration, speed and/or IEEE-1394 hardware. Some suggestions that may help with avoiding corrupt images include:

  1. When using a 64-bit 1394 PCI card (such as the 1394b card distributed with Dragonfly EXPRESS KITs), connect the card into a 64-bit 66MHz PCI or PCI-X bus. This will allow you to take full advantage of the wider bus bandwidth, and has been known to significantly reduce the number of corrupt image occurrences. Alternatively, use a 1394 PCI Express card, which provides far greater data bandwidth than conventional PCI. It should be noted that when using a PCIe card, performance has been improved by lowering the bit depth of the monitor on which the image is displayed.
  2. Avoid motherboards that use integrated graphics controllers. Integrated graphics usually allocate a chunk of available physical memory for the purpose of moving image data, which reduces the amount of memory bandwidth available for 1394 memory operations. Use an AGP video card with dedicated video memory. This is also true of most other onboard devices, such as audio cards. Disabling onboard devices can improve image tearing.
  3. Avoid PCMCIA 1394 host controllers on laptop / notebook systems. PCMCIA or CardBus controllers often have difficulty keeping up with the required data transfer rates. If the laptop supports a 4-pin built-in 1394 connector, we recommend using this together with a powered hub. See Related Article 93 below for information on powering 1394 devices connected to laptops.
  4. Ensure the host system has a fast CPU. A fast processor should help with the speed at which data can be pulled off the PCI bus.
  5. Limit any heavy IO operations, such as those described above, that might occur while running the 1394 devices.
  6. Try a different 1394 card that provides larger FIFO buffers. See Related Article 146 below.
  7. Avoid any troublesome hardware issues, such as those described above or those outlined in Related Article 21 below. This includes trying different powered hubs/repeaters, shorter cables, different power supplies, etc.
  8. Ensure adequate power is getting to the camera. PGR power consumption specifications can be found in the camera's Technical Reference or Getting Started manual.
  9. Another possible reason for this is related to the power saving features of USB root hubs on the system. To determine this, turn off these features, as follows:
    • Open Device Manager
    • Expand the Universal Serial Bus Controllers group
    • Right click USB Root Hub and choose Properties
    • Select Power Management
    • Uncheck Allow the computer to turn off this device to save power
    • Repeat these last 3 steps for each USB Root Hub

Note: all or some combination of the above may be required to completely minimize the occurrences of corrupt images i.e. simply adding a faster CPU may not resolve this problem.

Related Articles:
1.) Image discontinuities or horizontal tearing of images when displayed on monitor.
2.) Maximum number of IEEE-1394 cameras on a single 1394 bus.
3.) Avoiding dropped or missed images using PGR FlyCapture.
4.) My laptop's IEEE-1394 port or PCMCIA card doesn’t supply power to my camera.
5.) Troublesome hardware configurations
6.) Image capture freezes after a period of successful image capture.
7.) Maximum suggested IEEE-1394 cable lengths.
8.) Video or data corruption on laptop / notebook computer using 1394 connection.
9.) How to achieve 200 FPS using a Dragonfly Express.
10.) Some 1394b network configurations cause bus resets and image acquisition problems.
11.) Image tearing and corruption on host systems with multi-core Intel® processors.
12.) Connecting 16 Point Grey FireWire cameras to a laptop / notebook computer.

Related Links:
1.)  http://www.quatech.com/support/comm-over-pci.php
Quatech provides an excellent overview of the PCI bus and how it works. All IEEE-1394 image data transfers on PC's go across a PCI bus.
2.)  http://www.pcmcia.org/
Home page of the PCMCIA (Personal Computer Memory Card International Association) international standards body and trade association.


Article ID:
188
Published:
4/1/2005 12:11:53 PM
Last Modified:
4/27/2010 8:59:32 AM
Keywords:
PCI, PCMCIA, CardBus, bus saturation, corrupt, broken, torn, tearing, 1394b, artifacts, cable lengths, PCI-X
Issue Type:
Error

Copyright © 2004 Point Grey Research Inc.