Power-Saving Features on Host Systems
Power saving features added to the chipsets of some CPUs can interfere with data transmission. Adjusting the settings of some of these features may address streaming performance issue with Pixelink cameras at higher data rates. The affects of these power saving features can be particularly apparent when running IEEE 1394 (Firewire) cameras, as the resulting lower CPU performance may not be sufficient to meet the real-time demands of the 1394 bus.
Idle ('sleep') State
Frame loss may result from the CPU entering an idle state. Pixelink provides a command line utility to disable CPU idle states, which can be used with Windows operating systems. For more information about usage and parameters, run PxLProcessorIdle from the command prompt.
The parameters are:
disable - Specifies that the processors are NOT permitted to enter idle states (use this if you experience performance issues).
enable - Specifies that the processors are permitted to enter idle states (system default).
print - Indicates if the processors are currently permitted to enter idle states.
hide – Hides the idle state control of all power schemes.
expose - Un-hides the idle state control for all power schemes from (it's default) hidden state.
Enhanced Halt State
Pixelink has found that the C1E Enhanced halt State can be particularly problematic. This is best typified when streaming 1394 images, as the C1E slows the transfer of image data off the FireWire host adapter card, resulting in FIFO overflows. In some cases, it is possible to disable this feature in the host system's BIOS. The RightMark CPU Clock Utility, described in the following section, can also be used to disable the C1E state. Please review their system requirements for the software.
Popdown/Popup Mode on Laptop/Notebook Computers
On laptop/notebook systems, changing the Popdown or Popup Mode may fix the issue. To do this, use the RightMark CPU Clock Utility, downloadable from: http://cpu.rightmark.org/download/rmclock_235_bin.exe. (Please note, this tool does not support 64-bit OS's)
The relevant settings are found in the Advanced CPU settings window, as shown in the following screenshot:
Bandwidth issues on FireWire systems
Another common cause of corrupt images is that the host system or PC cannot keep up with data rates across the 1394 PCI or laptop PCMCIA bus. Examples of these types of situations include:
The PCI bus gets saturated.
Memory bus bandwidth gets saturated.
The PC cannot 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 1394 bandwidth limits.
Large hard disk reads/writes.
Heavy network traffic.
In particular, when the PCI bus saturates, the system cannot 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 with image data from the camera, and eventually a general FIFO overflow occurs. These overflows can result in frame loss.
Typically, synchronization packets prevent repeated image tearing. When data is dropped, the current image is lost, but the image corrects itself for the next frame, unless data is dropped from that image as well. Note that general FIFO overflows occur at the lowest level of the Windows IEEE-1394 substructure, making them beyond the control of Pixelink drivers and software.
Laptop (Notebook) C3 Power State Transition
Transitions in and out of the C3 Power state (commonly used with laptops) can cause large-ish system latency issues. Again, the negative affects of these latencies can be particularly pronounced on the 1394 bus, as they often lead to buffer underrun conditions. In other words, the interrupts associated with the processor's ability to dynamically change speeds conflict with the high demand on the processor that is needed when streaming video or data across the IEEE 1394 port. This has been seen on laptops from various manufacturers.