CUDA image trigger for high speed cameras
Updated:
In many high speed imaging tasks the camera has to start recording on an event for which there is no external trigger signal. If a fast‑moving object enters the field of view only for a moment, you need to react immediately. The solution is to analyse the image stream itself: compute a histogram for every frame and start capture when the histogram departs from its baseline. That is an image trigger, and it has to run with minimal latency.
How it works
We could not do this reliably on the CPU, so the trigger runs on the GPU with NVIDIA CUDA. A CameraLink high speed camera streams frames to PC RAM through a PCIe frame grabber; the software builds a histogram for every received image, keeps frames in a circular buffer to hide latency, and compares each histogram data set against the starting histogram to detect the event.
Features
- Data input: uncompressed 8‑bit monochrome image (BMP)
- Data output: final 256‑bin histogram
- Continuous mode: one image after another, unlimited input size
- Parallel image loading and computation
- Compatible with NVIDIA mobile and desktop GPUs
Histogram throughput
| Case | Data rate |
|---|---|
| 256-bin histogram, 1280 × 1024, 8-bit | 60 GB/s |
| 256-bin histogram, 143 MB array (peak) | 74 GB/s |
| 64-bin histogram | up to 110 GB/s |
These figures were measured on an early test rig (GeForce‑class GPU, CUDA); on current NVIDIA GPUs the throughput is considerably higher. The rate scales with more powerful cards and with parallel computation across multiple GPUs.
Applications
- Image trigger for high speed cameras
- Image encoding and image processing that need fast histograms
- Custom HPC and CUDA image‑processing solutions
Support
Full technical support up to successful integration, documentation, and a DLL with or without source code.