cuda jpeg2000 codec

CUDA JPEG2000 codec for NVIDIA GPUs

We have implemented very fast JPEG2000 codec which is based on NVIDIA CUDA technology. This is fully parallel and performance-oriented implementation of JPEG2000 encoder and decoder. We've done JPEG2000 compression and decompression on CUDA due to parallel implementation and thorough optimization of J2K algorithm. Our JPEG2000 encoder on CUDA is definitely the fastest on the market.

cuda jpeg2000 codec

Features of CUDA JPEG2000 CodecJPEG2000

  • JPEG2000 encoding and decoding for grayscale and color images with arbitrary width and height
  • Lossy (wavelet CDF 9/7) and lossless (wavelet CDF 5/3) image compression and decompression
  • Bit depth: 8-16 bits per channel (up to 24 bits per channel)
  • Color spaces RGB, YCbCr, XYZ
  • Number of decomposition levels from 1 to 12
  • Code-block size 16×16, 32×32 or 64×64
  • Color sampling modes: 4:4:4, 4:2:2, 4:2:0
  • Image quality in the range of 1–150 (float value)
  • Rate control option to set image compression ratio
  • Data input: images from HDD/RAID/SSD/CPU/GPU
  • Data output: final compressed or uncompressed image in HDD/RAID/SSD/CPU/GPU
  • Modes of operation
    • Single image mode
    • Batch mode (multiple image streaming)
    • Multiple tile mode for big images
  • Standard set of computations for JPEG2000 compression and decompression on CUDA
    • CUDA JPEG2000 Encoder
      • Input data parsing
      • Color Transform (ICT/RCT)
      • 2D Discrete Wavelet Transform with CDF 9/7 or 5/3
      • Quantization
      • EBCOT Tier-1 (Context modeling and Bit-plane MQ-Coder)
      • PCRD (Post Compression Rate Distortion)
      • Tier-2 (Tag Tree Coding)
      • Output formatting
    • CUDA JPEG2000 Decoder
      • Input parsing
      • Tag Tree Decoding
      • Binary Decoder
      • Inverse Quantization
      • IDWT
      • Inverse Color Transform
      • Output formatting
  • Optimized for the latest NVIDIA GPUs
  • Fastvideo J2K encoding performance is more than 100 times faster in comparison with CPU-based JPEG2000 encoders JasPer and OpenJPEG
  • Fastvideo J2K encoding performance is more than 10 times faster than CUDA-based JPEG2000 encoders CUJ2K and GPU JPEG2K
  • Optional integration with OpenGL
  • Compatibility with FFmpeg to read/write Motion JPEG2000 streams (FFmpeg is under LGPLv2.1)
  • Compatible with Windows-7/8/10, Linux Ubuntu/CentOS, L4T

We can integrate JPEG2000 codec in your image processing pipeline to perform the whole job completely on GPU. Please check the description of our CUDA Image & Video Processing SDK to evaluate what we can do on CUDA.

JPEG2000 encoder performance on the NVIDIA GeForce RTX 4090 at batch multithreaded mode

These are the some benchmarks on the GeForce RTX 4090:

JPEG2000 encoding parameters Lossy encoding Lossless encoding
2K image, 24-bit, cb 32×32 2215 fps 1370 fps
4K image, 24-bit, cb 32×32 750 fps 470 fps

Support

Roadmap for JPEG2000 codec

  • CUDA JPEG2000 Encoder - done
  • CUDA JPEG2000 Decoder - done
  • Fast JPEG2000 Viewer on CUDA - done
  • JPEG2000 performance optimization - in progress

Contact Form

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