CUDA Motion JPEG (MJPEG) Codec for NVIDIA GPU
Updated:
Fastvideo's CUDA MJPEG codec encodes and decodes Motion JPEG streams entirely on the NVIDIA GPU. Because it is built on our fully parallel CUDA JPEG codec, it reaches capture frame rates well beyond H.264/H.265/AV1 encoders — useful whenever intra-frame coding and high fps matter more than inter-frame compression.
Features
- Grayscale (RGB8) and colour (RGB24) MJPEG streams with 4:4:4, 4:2:2 and 4:2:0 subsampling
- Real-time image processing on the GPU
- FFmpeg integration to read and write MJPEG streams (FFmpeg under LGPL v2.1)
- Windows and Linux (Ubuntu/CentOS)
MJPEG benchmarks on NVIDIA GeForce RTX 4090
| Resolution | Encoding | Decoding |
|---|---|---|
| Full HD (1920×1080) | ~ 5500 fps | ~ 1500 fps |
Pipeline options
The MJPEG codec can be combined with a full GPU camera pipeline: image acquisition, dark-frame subtraction, flat-field correction, white balance, denoising, demosaicing, colour correction, LUT, crop, resize, remap, sharpening and MJPEG compression — for example Debayer + MJPEG encoder, or a full preprocess + debayer + crop + resize + sharp + OpenGL output + JPEG encode + FFmpeg chain.
Part of the Fastvideo SDK
The MJPEG codec ships as a module of our CUDA Image & Video Processing SDK and can be integrated with high-speed, high-resolution camera systems.
Roadmap
- 12-bit CUDA MJPEG and more input/output formats (YCbCr, YV12)
- Lower GPU memory usage and further codec optimisations
- Integration into Fast CinemaDNG Processor