CUDA JPEG Library for Application Developers
Updated:
Fastvideo CUDA JPEG library lets developers add extremely fast Baseline JPEG encoding and decoding to a C++ application without writing a single CUDA kernel or knowing the internals of the compression algorithm — the library encapsulates the fully parallel GPU implementation, and your code only supplies the images and collects the results. The underlying codec encodes 4K frames at roughly 3800 fps on the NVIDIA GeForce RTX 4090; the complete performance analysis, benchmark tables, and the explanation of how JPEG was parallelized live on the Fast JPEG codec page.
What You Get as a Developer
- C++ library with CUDA backend, delivered as a DLL for Windows or a shared library for Linux and L4T
- Sample applications with source code, ready to build in MS Visual Studio 2022
- Documentation with the complete API reference
- Full technical support up to successful integration into your application
Integration Model
The library is designed to slot into an existing processing chain with minimal data movement. Images can be supplied from CPU memory, from disk, or directly from GPU memory — so if your frames are already on the GPU (from a capture pipeline, a demosaicing stage, or an AI framework), encoding happens in place, without a round trip over the PCIe bus. The compressed result is likewise returned to CPU or GPU memory, and a continuous mode processes streams of images one after another. The same library is a module of the Fastvideo GPU Image & Video Processing SDK, so it combines natively with demosaicing, denoising, resize, and the other SDK stages when your application grows beyond compression alone.
Library Capabilities
- Baseline JPEG encoding and decoding, 100% standard-compliant: grayscale (8-bit) and color (24-bit) images, optional 12-bit mode
- Variable quality (1–100), subsampling 4:4:4 / 4:2:2 / 4:2:0, custom quantization tables, restart interval control
- Image sizes up to 16,000×16,000 and more (optional)
- Automatic restart markers at encoding, enabling fast parallel decoding of the produced files
- MJPEG streams via FFmpeg integration (FFmpeg is under LGPL v2.1); optional OpenGL interoperability
- OS: Windows 10/11, Linux Ubuntu, L4T; CUDA 12.6, with support for the latest GPU generations in final testing
Evaluating the Library on Your Hardware
A demo version is available upon request. It is a fully functional MSVS 2022 project with a DLL, restricted to evaluation use, and it accepts the working parameters of the codec: input and output image, device id, quality value, subsampling mode, and restart interval, for both 8/24-bit and 12/36-bit images. The intended workflow is simple: build the sample, run it on your own GPU and your own images, and compare the measured throughput against the CPU-based JPEG library your application currently uses — before any purchasing decision.
Typical Integration Scenarios
- Batch compression of large image sets, including RAW-to-JPEG conversion
- Real-time encoding of high-speed, high-resolution camera streams, together with GPU demosaicing
- Batch resize-and-recompress services: decoding → crop → resize → sharpening → encoding, all on the GPU
- Photo processing and storage software with high-volume JPEG output
- Machine vision and scientific applications where camera output must be compressed on the fly
- Complete camera pipelines — as in our own GPU RAW Processor and FastVCR software, which use this very library for their JPEG output
Licensing and Trial
The library is licensed to software developers, camera manufacturers, system integrators, and resellers, standalone or as part of the Fastvideo SDK. For the demo version, documentation, and a quotation, contact us via the form below.
CUDA JPEG Library FAQ
How do I integrate the CUDA JPEG library (C++ / DLL)?
It is a linkable C++ library / DLL: you call it inside your own GPU pipeline so JPEG encoding stays in GPU memory between your stages. A sample project (Microsoft Visual Studio 2022) shows the integration.
What is the difference between the JPEG library and the JPEG codec product?
The codec is a ready-to-run application for benchmarking and testing; the library is the same GPU JPEG engine as an embeddable component for your own software.
