Configuring Grasshopper GRAS-50S5 to output 5MP images at 15 FPS.
This article describes how to put the GRAS-50S5 into a 5MP 15 FPS mode, and the method used by the camera to achieve this data rate.
The Grasshopper GRAS-50S5 IEEE-1394b digital camera is capable of sending 2448x2048 8-bit images at 15 FPS via its 1394b interface. It is possible to access the full array of the camera using Format 7 Mode 0 Mono8 (monochrome model) or Raw8 (color model) pixel formats. Format 7 parameters are configured using the FlyCap demo program's Camera Control > Custom Image Mode dialog, as shown in the image below.
To achieve 5MP at 15 FPS, the byte per packet (BPP) value must be set to the maximum allowed by the camera, which is 9568 BPP. The 1394 specification actually allows only 8192 BPP, so in this case the Grasshopper actually ends up splitting each packet and sending two packets (4784 bytes each) per isochronous period.
This system of using dual packets to achieve higher data rates is a feature unique to the Grasshopper camera line, and supported by the FlyCapture SDK. At this time, this feature is not covered by any provision within the IIDC 1394-based DCAM specification.
This is implemented at the camera side as follows:
-
- When running the camera on a 1394b bus, the camera will send just a single packet when a byte per packet size of 8192 or less is selected. It will only go into dual packet mode when this size exceeds 8192. In the case where the camera is reporting a size of 9000, for example, the camera will actually send two 4500 byte packets.
- Similarly, when running on a 1394a bus, it should send a single packet when the size is 4096 or less. When the camera is in dual packet mode, it simply divides the packet evenly in two.
Software driver support is required to support this system of double packets. The FlyCapture SDK software and drivers provided support this. The standard PGRCAM FlyCapture driver, which sits on top of the Microsoft stack, simply queries the camera for the current byte per packet value. If the camera reports anything greater than 4096 (1394a) or 8192 (1394b), the software knows that the "single" packet will actually be sent using dual packets, and therefore simply waits until both packets arrive. The FirePRO low-level OHCI host adapter driver also supports this.
The following third-party software and drivers are known to support dual packets:
Vendor & Product |
Address |
A&B Software ActiveDcam SDK | http://www.ab-soft.com/activedcam.php |
National Instruments NI-IMAQdx driver | http://www.ni.com/ |
MVTec HALCON | http://www.mvtec.com/halcon/ |
Unibrain ubCore driver and FireAPI | http://www.unibrain.com/ |
CMU 1394 driver | http://www.cs.cmu.edu/~iwan/1394/index.html |
MathWorks Image Acquisition Toolbox | http://www.mathworks.com/products/imaq/ |
For third-party drivers that do not support this, the number of bytes per packet can be set to 8192, which yields approximately 13 FPS.
This dual packet functionality is supported by other Grasshoppper camera models that allow you to set a data rate higher than that allowed by the IIDC specification. It is ideal for allowing the camera to fully utilize the available IEEE-1394 bandwidth to achieve higher data rates. It is particularly useful for color cameras that can output high resolution RGB8 (24 bit-per-pixel) images at high frame rates.
NOTE: the maximum resolution currently supported by the color model (GRAS-50S5C) when using a mode that performs color processing on board the camera (e.g. Mono8, YUV422, RGB8) is 2040x2040. Use Raw8 or Raw16 pixel formats to access the full 2448x2048 array of raw Bayer data. Refer to Maximum possible image size of color 5.0MP Grasshopper varies with pixel format for further information.