Local Tone Mapping on CUDA

We offer a solution for a single shot High Dynamic Range (HDR) management. Adaptive local tone mapping (ALTMapper) algorithm is applied to images to compress the dynamic range of an image, to make image details more vivid, and most importantly, to produce a pleasing reproduction.

We've built a highly efficient and accurate adaptive local tone mapping engine for a single shot HDR. This is the case for camera and video applications because we can't get many frames with bracketing at real time, so we have to process each frame as soon as we've captured it.

The algorithm is based on image intensity transformations to achieve better visualization by using information acquired from local regions of each frame. The engine defines these local regions at each image as a grid of rectangular tiles. It processes each tile to compute local parameters to be utilized at further transformations. We minimize that amount of parameters to get very fast processing. Finally, we utilize local and global parameters to build a set of local tone curves to be applied to each pixel of the image.

ALTMapper: adaptive local tone mapper

16-bit linear TIFF is on the left, ALTMapper result is on the right (source image from here)

Local tone mapper on CUDA

  • Fast and precise adaptive local tone mapping engine
  • High Dynamic Range (HDR) management
  • Local and global contrast preservation and enhancement
  • Shadow recovery
  • Local gain control
  • Image detail preservation
  • ISP with 16/32-bit accuracy
  • Compact and low footprint algorithm without AI
  • Parallel algorithm implementaion on NVIDIA GPUs
tone mapping cuda

Compatibility issues

  • Compatibility with FastVCR software for machine vision cameras
  • Built-in timing and performance measurements
  • OS Windows-10/11, Linux Ubuntu, and L4T (Jetson Orin)
  • Supported NVIDIA GPUs: Jetson, GeForce, Quadro, CUDA-12.6

Quality and performance comparison for GPU-based Tone Mapping

Many current local tone mapping solutions are based on AHE (adaptive histogram equalization) or CLAHE (contrast-limited adaptive histogram equalization) algorithms. While they can sometimes produce decent results for still images, they are not stable and require manual control. "Not stable" means that processing with CLAHE could cover the image with unnatural shadows, particularly in areas of the same brightness. This exaggeration is undesirable and should be avoided. This is quite common in video processing with CLAHE. The video output is usually covered with dark, noisy spots, and blurred dark borders of tiles corresponding to the internal image partitioning of the CLAHE algorithm are visible.

Tone Mapping Benchmarks

  • Image resolution: 9344 × 7000 (62.4 MPix), 16-bit per channel, RGB
  • Test description: all data in GPU memory, timing includes GPU computations only
  • Software: OS Windows-10, CUDA-12.6
  • Hardware: CPU AMD Ryzen9 7950X (16 cores, 4.5–5.7 GHz)
  • Hardware: NVIDIA GeForce RTX 4090, PCI-Express 4.0 ×16
  • Processing time for ALTMapper algorithm on CUDA - 4.32 ms (14.4 GPix/s)

Such benchmarks are especially important for use cases involving enormous volumes of images or video. We are prepared for these demanding tasks, and we developed our ALTMapper algorithm with such applications in mind.

Applications for HDR processing

  • Digital photography and digital cinema
  • Display devices
  • Computer vision
  • Medical imaging
  • Industrial camera applications
  • Broadcasting and streaming
  • Street/view, mobile mapping and aerial imaging

Tone Mapping ISP Roadmap

  • Implementation of HDR engine on GPU for raw, color and monochrome images - done
  • Image quality improvements - done
  • Local tone mapping library on the CPU - done
  • Performance optimization - done
  • Local tone mapping for machine vision cameras with Dual Gain ADC option - in progress
  • High dynamic range image sensors support - 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.