Real time CUDA JPEG Compression Module for high speed cameras

Realtime long term recording from high speed camera is a problem because of camera data rate. Usually data rate is more than 1000 MByte/s and one have to use RAID or SSD drives to write video stream to disk. File size could be really big and it's one more problem for end user. To tackle these problems we offer realtime JPEG compression on GPU. This technology gives us opportunity to solve both problems altogether: to write compressed video stream to conventional HDD and to make file size 10-20 times less.

We've implemented high performance JPEG codec on NVIDIA GPU. In this way we can compress each frame from raw data to JPEG and write compressed video stream to HDD in real time. Continuous high-speed video recording requires both serious bandwidth and plenty of disk capacity due to huge data rates of high-speed cameras (1000 MByte/s or more). Addressing this issue requires real-time compression of video data stream.

Fastvideo has developed real-time JPEG compression that resolves both problems: by compressing each frame of a video stream with real-time JPEG compression algorithm we are able to significantly reduce the requirements to performance and capacity of the disk system.

Here you can find a brief description how the process goes in details:

JPEG logoIn the preliminary stage we need to define the following

  • High speed camera parameters: image width and height, fps, operation mode, bit depth (24-bit RGB or 8/12-bit grayscale)
  • Camera calibration procedures: Dark frame (black offset), FFC, and White Balance (for color cameras)
  • Demosaicing algorithm and parameters (for color cameras)
  • JPEG parameters: compression quality, subsampling mode for color camera, restart marker frequency

Data path for realtime image compression on GPU from high speed camera

  • Driver (Full CameraLink or PCIE framegrabber) gets raw data from high speed camera
  • Driver writes data to CPU memory
  • Application sends raw data from CPU to GPU
  • Dark image subtraction
  • Flat-Field Correction
  • White balance (for color images only)
  • Image demosaicing (for color images only)
  • Data transform with LUT or gamma (8/10/12/14/16-bit to 8 bits per component)
  • Color correction on GPU with ICC profiles of camera and monitor
  • MJPEG video compression
  • Application sends compressed data from GPU to CPU
  • Application writes compressed data to HDD/SSD/RAID

Contact Form

This form collects your name and email. Check out our Privacy Policy on how we protect and manage your personal data.