CUDA Image & Video Processing SDK for NVIDIA GPU
Updated:
The Fastvideo SDK is a modular C/C++ library that runs a complete camera image signal processor (ISP) on the NVIDIA GPU. Every stage — from raw acquisition and debayer to colour, resize, sharpening and JPEG/JPEG2000/MJPEG coding — is a separate CUDA component, so you assemble exactly the pipeline your application needs and keep the whole path on the GPU for maximum throughput. It scales from desktop and server GPUs down to NVIDIA Jetson.
What the SDK does
The library covers the full path from sensor data to a compressed image or a rendered frame:
- Image ingestion from a camera, frame grabber, HDD/SSD/RAM or GPU memory (PGM, BMP, PPM, JPG, YCbCr, RAW, DNG, byte array, OpenGL texture or PBO)
- Raw data linearization, dark-frame subtraction (FPN), flat-field (shading) correction, bad-pixel correction
- White balance, exposure correction, raw Bayer curves (master and RGB)
- Raw denoising (wavelets, median) and luma/chroma denoising
- Demosaicing with HQLI, DFPD and MG algorithms plus an enhance option
- Colour correction with a matrix profile; colour transforms RGB↔YCbCr, RGB↔HSV, etc.
- 1D LUTs (8/10/12/14/16-bit, composite or per channel) and 3D LUT for RGB and HSV tone mapping
- RGB histograms and RGB parade (waveform monitor)
- Crop, rotate 90/180/270 and flip/flop, resize (up/down), remap, gamma, unsharp-mask sharpening
- Real-time OpenGL output
- JPEG codec (8/12-bit), Raw Bayer codec (8/12-bit lossy), JPEG2000 codec (8–16-bit)
- Trace, multiplexor, stream-per-thread execution, CUDA MPS on Linux
- NVIDIA Jetson TX2/TX2i/AGX Xavier/Orin support and FFmpeg GPU filters for video processing
Optional modules
- Unpacking for various raw formats; GPU Direct on Linux (camera→GPU over DMA)
- Image tiling, pyramid images, split into separate planes
- Auto white balance, RGB→Gray, DCT, discrete wavelet transforms (CDF 5/3 and 9/7, Haar, UHaar, UCDF)
- Per-module time measurements
- HD-SDI grabber input (Bluefish, Deltacast, Imperx)
- Multi-camera real-time setups; RAW and DNG (CinemaDNG) image and video processing on GPU
Platforms and tooling
- Windows 10/11, Linux Ubuntu, Linux4Tegra (L4T)
- CUDA 12.6, MSVS 2022, C/C++ sample applications with source code
- NVIDIA GPUs from Maxwell to Ampere and newer — mobile, laptop, desktop and server
- MJPEG integration with FFmpeg reader/writer (FFmpeg under LGPLv2.1)
Sample applications with source code
Ready-to-build samples show how to combine the components:
- CUDA JPEG codec, Debayer, Debayer + JPEG, Raw Bayer codec, Denoiser, Resizer, J2K encoder, SDI converter
- JPEG Resize (decode → crop → resize → sharp → encode)
- Full camera application: raw acquisition and unpacking, dark-frame subtraction, shading correction, white balance, exposure, debayer, luma/chroma denoise, colour correction, LUT tone mapping, rotate/crop/resize/sharp, OpenGL output, JPEG compression and MJPEG (AVI) writer
- AVI (MJPEG) player via GLFW and a CUDA Streams sample
Open-source projects
- gpu-camera-sample — GPU camera application for machine-vision and industrial cameras
- pgm2dng — PGM (raw CFA) to DNG converter
Custom pipelines and licensing
We license the SDK and its individual components to software developers, camera makers, integrators and service providers, and we build custom GPU pipelines to an agreed specification. If your exact pipeline is not listed above, or you need a large speed-up or better image quality in an existing application, contact us. A demo build, documentation, licensing details and a quotation are available on request.
Roadmap
- Fast CinemaDNG Processor – done
- JPEG2000 encoder and decoder, JPEG2000 SDK – done
- New MG debayer algorithm with enhance option – done
- RAW curve, DCP and LCP profile support – done
- 3D LUT transform on CUDA – done
- Remap and undistortion module – done
- MLV player and viewer – done
- Chromatic aberration suppression, integral image, defringe – in progress
- GPU memory manager, 12-bit JPEG codec, spatial/temporal denoising before demosaicing – planned