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 below (the image data is fine, but there is a problem with the video display). 


Common Causes

The most common cause of corrupt images is that the host system or PC cannot keep up with the data rate going across the PCI or laptop PCMCIA bus. Some specific examples of these type 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. 
  • Large hard disk reads/writes
  • Heavy network traffic

With the PCI bus saturated, the system is not able to keep up with the data rate 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 
  • Broken images that are made up of many different images
  • Images that are dropped completely 

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 PixeLINK 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 depend on the system components and configuration, speed and/or IEEE-1394 hardware. Some suggestions that may help with avoiding corrupt images include:

  • When using a 64-bit 1394 PCI card, 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.
  • 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.
  • 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.
  • Limit any heavy IO operations, such as those described above, that might occur while running the 1394 devices.
  • Try a different 1394 card that provide a larger FIFO buffer. PixeLINK recommends using a FireWire card with a TI chipset.
  • Avoid any troublesome hardware issues, such as those described above. This includes trying different powered hubs/repeaters, shorter cables, different power supplies, etc.
  • Ensure adequate power is getting to the camera. PixeLINK power consumption specifications can be found on the online knowledge base.
  • 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.