fast gpu DNG processorGPU RAW Processor for Camera Applications

We offer high quality GPU-accelerated solution for RAW image/video processing with very high performance - much faster than realtime. Now it's possible by implementing the whole RAW image processing pipeline on NVIDIA GPU.

Advantages of RAW image processing on GPU

  • High speed DNG rendering (see benchmark below)
  • High quality debayering
  • Realtime adaptive denoising
  • Flexible image processing pipeline with 16/32-bit workflow
  • Smooth DNG video playback with full resolution (no screen tearing)
  • Realtime resize before OpenGL output to monitor (no aliasing)
  • Online RGB Parade and Histogram output
  • Software outputs: processed image to monitor, 16-bit TIFF for each frame or ProRes video in MOV to SSD, h264 stream with Full HD resolution to SSD

We have implemented full image processing pipeline on GPU to speed up every stage of RAW data workflow. That gives us opportunity to significantly decrease data transfer time over PCI-E bus and to improve total performance. At the same time, output image quality is comparable with Adobe Camera Raw (ACR) and LightRoom (LR), etc.

Features of GPU RAW Processor

  • Input images: 8/10/12/14/16-bit per pixel DNG, PGM, byte array in CPU/GPU memory
  • Optional input image formats: Uncompressed DNG and Blackmagic Design Cinema DNG RAW 3:1, 4:1, 5:1
  • Input video (Cinema DNG): 1080, 2K, 4K DNG clips and more, up to 8K
  • Output formats for image series: JPEG (24-bit), PPM (48-bit), TIFF (48-bit)
  • Output formats for video: AVI, MP4, MOV
  • Output compression options: MJPEG, ProRes, DNxHD, h264
  • Output color space: sRGB, Rec.709, AdobeRGB, ProPhoto, BMD Film, BMD Film 4K, BMD Film 4.6K
  • Fast demosaicing algorithms with 16-bit pipeline: HQLI, DFPD, MG with Enhance option
  • Denoise adaptive algorithm for luma and chroma (float workflow)
  • Resize algorithm: Lanczos (float workflow)
  • Sharpening with USM (float workflow)
  • Realtime playback of CinemaDNG files via OpenGL

Compatibility

  • Windows-7/8/10 (64-bit)
  • CUDA-8.0 (64-bit)
  • NVIDIA GPU (Fermi, Kepler, Maxwell, Pascal) for mobile, laptop, desktop, server
  • Compatibility with FFmpeg to read/write MJPEG streams (FFmpeg is under LGPLv2.1)

Camera Support for RAW DNG Workflow on GPU

  • Blackmagic Design Pocket/Production 4K/Cinema, URSA and URSA mini cameras
  • Kinefinity cameras: KINEMINI 4K, KINEMAX 6K, KINERAW-MINI (Full HD), KINERAW-S35 (Full HD)
  • AJA CION 4K/UHD and 2K/HD Production Camera
  • DJI Zenmuse X5R camera for Mavic, Phantom, Inspire, Matrice drones
  • Digital Bolex D16 and D16M
  • Atomos Ninja Shogun
  • Ikonoskop

The software supports DNG files, produced either by DNG-enabled digital cameras (see list below) or by Adobe software such as the Adobe DNG Converter or Adobe Lightroom (DNG 1.4 specification). Current list of supported cameras could be found here. GPU RAW Processor also supports 8/10/12/14/16-bit DNG and PGM files created by 3rd-party applications.

Image Processing Pipeline for DNG on GPU

  • Ingestion of DNG images from HDD/SSD
    • Multithreaded reading of DNG images from SSD to CPU memory
    • Parcing of DNG images
    • Multithreaded DNG decoding (lossless JPEG and RAW 3:1, 4:1 or 5:1)
  • Data transfer from CPU to GPU
  • Data linearization and transform to 16-bit representation
  • RAW historgam
  • White/Black points
  • White Balance (R, G1, G2, B)
  • Exposure compensation
  • Raw Tone Curve for each channel of Bayer data
  • Raw denoising
  • Demosaicing
  • Adaptive noise suppression
  • Color Correlated Temperature and Tint control
  • Color Correction with matrix profile
  • Tone mapping (RGB/HSV Curves for each channel)
  • Histogram and RGB Parade for processed image
  • Monitor output
    • Crop
    • Resize to specified width and height of output window
    • Sharp with USM
    • Transform with monitor profile
    • LUT 16-bit to 8/10-bit for each color channel
    • Copy data to OpenGL texture
    • Realtime monitor output via OpenGL (DNG video player)
    • Histogram output for RAW and processed data
    • RGB Parade output
  • Compressed video output
    • Crop
    • Resize to Full HD
    • Sharp with USM
    • LUT 16-bit to 8/10-bit for each color channel
    • MJPEG, ProRes, DNxHD or H.264 external compression via FFmpeg
    • Data transfer from GPU to CPU memory
    • Save compressed video to SSD/HDD
  • Image sequence output
    • Data transform to 16-bit TIFF or to 8/12-bit JPEG for each frame
    • Data transfer from GPU to CPU memory
    • Save image sequence to SSD/HDD

Benchmarks for NVIDIA GeForce GTX 1080

Standard image processing pipeline for 12-bit DNG images with 4K resolution on GPU GeForce GTX 980 could be done at frame rates up to 60 fps (dng and processed data reside in CPU memory, without denoising and USM), which is much faster than real time. Here you can find other benchmarks for our SDK.

Options for realtime output compression on GPU

  • JPEG/MJPEG codec
  • JPEG2000/MJ2K encoder (released in Q1/2017)

Standard tasks to solve with GPU RAW Processor

  • Batch image processing for DNG image sequences
  • Realtime full frame rendering, compression, preview and playback for video streams with RAW data
  • Full image processing pipeline for industrial cameras with 8/10/12/14/16-bit Bayer format

Workflow example for GPU RAW Processor

  • Upload video footage to computer (PC) from camera or card reader
  • Convert RAW files to DNG format with Adobe DNG Converter
  • Create new project and import DNG images
  • DNG image processing with GPU RAW Processor
  • DNG video player
  • Export TIFF (16-bit per channel) files or ProRes/DNxHD video
  • Export H.264 video in MP4 with Full HD resolution

Full version of that pipeline is implemented in Fast CinemaDNG software. Please visit www.fastcinemadng.com

     Home                   Contacts                 Site Map
GPU Image Processing