We have created fast JPEG codec based on NVIDIA CUDA technology. CUDA JPEG codec developed by Fastvideo is a blend of strict compliance with standards and shocking encoding and decoding speed comparing with existing commercial solutions. This is full, performance-oriented implementation of Baseline JPEG. We got ultra fast JPEG compression and decompression on the GPU due to full parallel implementation of Baseline JPEG algorithm. Our CUDA JPEG codec is the fastest in comparison with the best commercial multithreaded JPEG codecs for multicore CPUs.
Fast JPEG image compression features for CUDA JPEG codec
We have succeeded to make parallel all stages of JPEG algorithm including entropy encoding and decoding. There was a widespread opinion that Huffman algorithm could be only serial. In our solution Huffman coding is not a bottleneck anymore and it's fully parallel. Now we don't off-load anything from GPU to CPU to make JPEG codec faster. CUDA JPEG codec is extremely fast and is functioning completely on GPU.
Benchmarks for JPG encoding on NVIDIA GeForce GTX 1080 TI (Windows-7 and CUDA-9.2, 64-bit)
Now we need just 0.51 ms for Baseline JPEG encoding of 24-bit color image with 4K resolution 3840 × 2160, JPEG quality 90% and subsampling 4:2:0 (it corresponds to image compression ratio ~10:1). We have chosen the above JPEG encoding parameters because they correspond to so called "visually lossless" compression.
These are the latest performance benchmarks for encoding of 2K and 4K images, 24-bit (JPEG compression on GPU, without DeviceIO latency, single image mode, no batch, no streaming) on NVIDIA GeForce GTX 1080 TI and Quadro P6000:
These are JPEG decoding performance benchmarks on NVIDIA GeForce GTX 1080 TI and Quadro P6000 (no DeviceIO latency, single image mode, no batch, no streaming):
The above results are much faster than benchmarks of libjpeg-turbo and turbojpeg on CPU. Even if we take into account host to device and device to host transfers, the performance of CUDA JPEG codec will be much higher than libjpeg-turbo. More results for performance measurements you can download here.
Options for Fast JPEG Codec
We have also included Fast JPEG codec to our main product - Fastvideo Image & Video Processing SDK. It includes dark frame subtraction, shading correction, white balance, demosaicing, denoising, color correction, tone mapping, image filtering, 1D LUT, gamma, color management, 3D LUT, histogram, parade, resize, crop, rotate, remap, integral image, defringe, undistortion, sharp, OpenGL or GLFW output, integration with FFmpeg, raw bayer compression, J2K codec, MXF player, etc. Here you can see some benchmarks for JPEG compression and decompression, debayering, resizing, denoising, J2K encoding on NVIDIA GeForce GTX 1080, Quadro P6000, Tesla V100, mobile Tegra X1 and X2.
Licensing for Fast JPEG Codec
We license Fast JPEG Codec and other components of Fastvideo Image & Video Processing SDK to software developers, camera manufacturers and resellers, internet providers, software integrators, etc. Our SDK is utilized in wide range of imaging applications. Demo SDK, documentation, licensing info and quotation are available upon request. We are also offering custom software design according to agreed specification. If you need to get significant speedup for your image processing application, don't hesitate to contact us.
More info about fast JPEG codec and SDK
Roadmap for further improvements of Fast JPEG Codec