CUDA Image Trigger for High Speed Camera Applications
At high speed image applications quite often we need to synchronize camera and software with some events without having any possibility to get direct external signal to start with. If some quickly moving object is entering into camera field of view just for a moment and we need to start video recording immediately, it's a real problem. To solve that problem, we need to do online image processing with minimum possible latency. So we have to calculate a histogram for each image and check whether histogram data set belongs to specified limits. All these calculations should be done as fast as possible and we have to do that either on FPGA or on PC (if camera can stream online all the data to PC RAM). If histogram changes significantly, we can admit that some objects are entered camera field of view. That kind of algorithm is called Image Trigger. Actually, that image trigger serves as a start for the capture of single or multiple frames from a high speed camera by analysing the data from its sensor.
We have developed an image trigger as a PC software. We believe that it's not possible to do that kind of calculations on CPU and we have solved that problem on GPU with NVIDIA CUDA technology. We use CameraLink high speed cameras with PCIE framegrabber as a data source for imaging system. Camera sends all data to PC RAM and our software is capable to calculate histogram for every image received. In that architecture we still have some latency and the problem could be easily solved by organising a circle buffer in PC RAM. At each triggering event software calculates histogram data set and determines whether it differs from the starting histogram.
CUDA image trigger features
Data input: uncompressed 8-bit monochrome image in BMP format
Data output: final 256-bin histogram
Data processing rate: 60 GB/sec for images with resolution 1280x1024, 8-bit
Maximum processing rate: 74 GB/sec for data array 143 MB
Continuous data mode (input one image after another)
Parallel performance for image loading and computations
Unlimited input image size
Compatibility with NVIDIA mobile and table top video cards
Option: for 64-bin histogram data rate could be up to 110 GB/s