Technical Application Notes
Click an item to read from the list below.

Technical Application Notes


 

 

Factors to Consider When Designing a Multiple Camera Array

Technical Application Note TAN2008001

Revised April 16, 2009

 

Subject

Technical Application Note (TAN2008001): Factors to Consider When Designing a Multiple Camera Array

10392

Applicable Product(s)

  • All Point Grey Firewire cameras

 

Application Note Description

The purpose of this Technical Application Note is to examine the various factors to take into consideration when designing and implementing a multiple camera array.

 

Overview

There are many factors that should be taken into account when designing a large camera array. For the purposes of this TAN, large camera arrays will be defined as a system of more than 8 cameras. Large camera arrays require extra care in order to ensure stable and efficient processing of incoming data. These include physical factors such as hubs, cables and host PCs, as well as other factors such as image acquisition software.

 

Hardware Components

Bus interface (IEEE1394a/b)

Data rate
The choice of bus interface will determine the maximum data rate for all devices on the bus.
IEEE1394a – 400Mb/s
IEEE1394b – 800Mb/s

Note that any IEEE1394a devices that share a bus with IEEE1394b devices will cause the entire bus to operate at IEEE1394a speeds.

Maximum number of devices/hops
The IEEE1394 specification limits the maximum number of devices on a single bus to 64. Note that hubs may contain multiple hops internally. As a result, each hub may appear as more than 1 device on the bus.

Moreover, the absolute maximum hop count is 23. This generally means that the distance between any 2 nodes on the bus should be less than 23. However, depending on other factors such as voltage and wattage, the maximum hop count may be as low as 9.

The maximum number of cameras that can be used to stream images continuously is also limited by the number of DMA contexts supported by the 1394 chipset. This is mentioned below under “Host Adapters”.

Cameras

Power
Each camera requires sufficient power in order to operate properly. Power is provided by either the host adapter card or a powered hub to the camera via either the Firewire cable or GPIO port. The power that can be provided by the host adapter card varies but is generally around 12W. Check the camera’s Getting Started Manual for power requirements..

Daisy chaining
Selecting a camera that supports daisy chaining (e.g. Grasshopper) may reduce cable clutter as it may allow cameras to be connected to each other rather than directly to a hub. The maximum number of cameras that can be daisy chained may be limited by the target data rate per camera. Also, since the maximum hop count is 23, this means that the theoretical maximum number of cameras that can be daisy chained is 23.

The failure modes for daisy chained cameras are different as compared to cameras set up in a star configuration. For example, if the first camera in a line of multiple daisy-chained cameras fails, then all subsequent connected cameras will fail too. However, in a star topology, the rest of the cameras will not be affected.

Data throughput
Using pixel formats that contain fewer bits per pixel may allow the camera to achieve higher frame rates and/or resolutions while maximizing the number of cameras on each IEEE1394 bus. For example, MONO8 or RAW8 data only uses 8 bits/pixel, while RGB8 data uses 24bits/pixel. Keep in mind that the faster a camera runs, the more power it will usually consume.

Onboard color processing
Selecting a camera with onboard color processing may also reduce the computational requirements of the host PC, as the CPU is then freed up to perform other tasks.

Hubs

Power
Hubs can help to provide additional power over the Firewire cable to connected cameras. Point Grey 3-port and 5-port hubs are able to output 1A per port at 12V using the supplied external power supply.

Cable clutter
Hubs can help to reduce the number of cables arriving at the host PC by consolidating connections. For example, a 5-port hub is able to have up to 4 incoming connections which then can be reduced to a single cable to the host adapter on the PC. Note that the total amount of data that can be transferred is still limited by the IEEE1394 bus.

Cables

Length
The maximum length of cable allowed by the IEEE1394 specification is 4.5m. However, Point Grey has 10m IEEE1394b cables that have been tested to work with Point Grey cameras.

Host Adapters

DMA contexts
The number of cameras that can be used to stream images continuously is limited by the IEEE1394 chipset used. The LSI (Agere) chipset used in the Point Grey PCI Express card is able to support 8 simultaneous DMA contexts. This means that 8 cameras are able to stream at any given time, with a combined total bandwidth of 800Mb/s. TI chipsets are able to support 4 simultaneous DMA contexts.

FIFO buffers
The number of FIFO buffers varies between chipsets. A larger isochronous FIFO buffer reduces the chance of image corruption due to a slow PCI bus.

Interface
Depending on the type on interface, the maximum bandwidth of the host adapter varies greatly.

Bus

32-bit transfer rate

64-bit transfer rate

33MHz PCI

133 MB/s

266 MB/s

66MHz PCI

266 MB/s

533 MB/s

100MHz PCI-X

N/A

800 MB/s

133MHz PCI-X

N/A

1000 MB/s

PCI Express

250 MB/s per lane

250 MB/s per lane

It is highly recommended to use a host adapter with a PCI Express interface to minimize the possibility of image corruption.

Dedicated bandwidth
One advantage of PCI Express is that the overall bandwidth is not shared. Each lane is guaranteed to have a dedicated bandwidth of 250MB/s per lane. Other bus-based interfaces such as PCI share the same parallel bus. As a result, 1394 host adapters on a PCI bus may be affected in situations where other peripherals on the PCI bus such as a network adapter takes up bandwidth that is needed for streaming images from a camera.

Host PC

CPU
Using a CPU with multiple cores may accelerate image processing, at the expense of increased programming complexity.

Requiring the images to be processed or encoded into another format in real time may also have a significant impact on performance.

Memory
Each camera utilizes system memory for various functions such as internal buffers within the FlyCapture library, as well as any processing done by the end user application. For very large camera arrays, it may be advantageous to store images in their raw Bayer format (8 bits/pixel) as compared to storing the color processed RGB images (24 or 32 bits/pixel). However, this may mean that additional color processing may have to be performed at a later time.

Expansion slots
It is important to ensure that the motherboard used has sufficient expansion slots to support the number of host adapter cards needed for all cameras. The number of cards needed can be reduced by a factor of 2 by using Point Grey’s dual bus PCI Express card. Each dual bus card has 2 LSI host adapters and effectively behaves as 2 separate host adapters. It is possible to completely saturate both host adapters (2 x 80 MB/s = 160 MB/s) and not exceed the maximum bandwidth for a single PCI Express lane (250MB/s).

Storage
The streaming of images to the disk subsystem can be a very resource intensive task. It is recommended that a striped RAID array be used in cases where a single hard drive is unable to sustain the required write speeds.

 

Software

Image acquisition

Besides being able to capture images, the software may also need to have the following capabilities:

  • Colour processing raw bayer images
  • Saving images to disk
  • Appending images to a video file (e.g. AVI files)

Synchronization mechanism

All Point Grey 1394a and 1394b cameras support image acquisition synchronization.

When in free running mode, the cameras are automatically synced to within 125µs at the hardware level. Synchronization can also be achieved by triggering all cameras at the same time, either by an external trigger or by an asynchronous software trigger.

Point Grey’s Multisync software can also be used to perform automatic synchronization of cameras across buses. The software is also capable of synchronizing cameras across multiple PCs using a dedicated IEEE1394 timing bus.

 

Sample Configurations

32 Grasshoppers on desktop PC

This sample configuration contains 32 2.0MP Grasshoppers 1394b cameras which are synchronized and streaming 320MB/s of data into a single PC. All hardware components from the camera to the host adapter card are designed and manufactured by Point Grey.

Hardware components

Component

Quantity

Part Number

2.0MP Grasshopper 1394b camera

32

GRAS-20S4C-C

FirePRO 3-port hub

4

FWB-HUB-3PORT

FirePRO dual bus 1394b PCI Express card

2

FWB-PCIE-02

IEEE1394b cable

36

ACC-01-2012

Host PC (Dual core CPU, 2GB RAM)

1

N/A

Software components

  • Custom image acquisition software using FlyCapture SDK
  • Camera synchronization using Multisync software

Bus topology

 

Limitations

Data rate per camera
There are 8 cameras connected to each host adapter. Since each host adapter can support a maximum data rate of 80MB/s, in order to have all cameras streaming simultaneously, each camera is limited to 10MB/s of data.

Sample output formats (assuming 10MB/s per camera):

Resolution

Pixel Format

Bits per pixel

Frame Rate (Approximate)

1600x1200

MONO8 / RAW8

8

5fps

1600x1200

MONO16 / RAW16

16

2.5fps

1600x1200

YUV422

16

3fps

1600x1200

YUV444 / RGB8

24

1.7fps

Resolution

Pixel Format

Bits per pixel

Frame Rate (Approximate)

800x600

MONO8 / RAW8

8

20fps

800x600

MONO16 / RAW16

16

10fps

800x600

YUV422

16

13fps

800x600

YUV444 / RGB8

24

6.9fps

Note that an 800x600 image contains a quarter of the data as compared to a 1600x1200 image. As a result, the frame rates can be quadrupled at the same pixel format.

If the frame rates are unsatisfactory, the 32MB onboard frame buffer available in the Grasshopper can be used to store images temporarily which can then be transmitted off the camera at a later point in time.

System memory
Large amounts of RAM may be required to store the images in memory. For example, the amount of RAM required to store a single set of color processed 1600x1200 images from 32 cameras in BGR format is (32 * 1600 * 1200 * 3) = 184MB.

Power
The host adapter cards are unable to power all 8 cameras on each bus by themselves. As a result, the hubs are externally powered to provide additional power over the IEEE1394 cable.

16 Grasshoppers on laptop

This sample configuration contains 16 2.0MP Grasshoppers 1394b cameras which are synchronized and streaming 115.2MB/s of data into a single economically priced laptop.

Hardware components

Component

Quantity

Part Number

2.0MP Grasshopper 1394b camera

16

GRAS-20S4C-C

FirePRO 5-port hub

2

FWB-HUB-5PORT

FirePRO dual bus 1394b PCI Express card

1

FWB-PCIE-02

IEEE1394b cable

18

ACC-01-2006

Magma ExpressBox

1

EB1H

Host PC (HP Pavilion dv2500)

1

N/A

Software components

  • FlyCap (Part of FlyCapture SDK)
  • Camera synchronization using Multisync software

Bus topology 

 

Limitations

Laptop connectivity
In order to connect the IEEE1394 host adaptor card to the laptop, a Magma ExpressBox is used to interface between the host adaptor card and the ExpressCard slot on the laptop.

Data rate per camera
There are 8 cameras connected to each host adapter on the dual host card. Since each host adapter can support a maximum data rate of 80MB/s, in order to have all cameras streaming simultaneously, each camera is limited to 10MB/s of data.

In this case, the cameras were set up to run at 1600x1200 RAW8, with a frame rate of 3.75fps. The total amount of data is (1600 * 1200 * 3.75 * 16) = 115.2MB/s.

Battery life
It is highly recommended that the laptop be powered externally. With the amount of CPU utilization present, it is likely that the internal battery will only function for a short period of time.

System memory
Large amounts of RAM may be required to store the images in memory. This is especially true in laptops, which often have less memory as compared to desktop PCs.

Power
The host adapter cards are unable to power all 8 cameras on each bus by themselves. As a result, the hubs are externally powered to provide additional power over the IEEE1394 cable.