cuda raw processing

RAW Processing for Images and Video on CUDA

We have designed high quality CUDA-accelerated solution for RAW image and 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 with CUDA technology.

Advantages of CUDA RAW Processor

  • High speed Raw image/video rendering (see benchmark below)
  • High quality demosaicing
  • Realtime adaptive denoising
  • Flexible image processing pipeline with 16/32-bit workflow
  • Realtime resize before OpenGL output to monitor (minimum aliasing)
  • Smooth DNG video playback with full resolution (no screen tearing)
  • Online RGB Parade and Histogram outputs
  • 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 CUDA to make fast each stage of RAW data workflow. That gives us opportunity to significantly decrease data transfer time over PCI-Express bus and to improve total performance. Now we can do CUDA-based DNG rendering much faster than real time. At the same time, output image quality is comparable with Adobe Camera Raw (ACR) and LightRoom (LR), etc.

Features of CUDA RAW Processor

  • Input images: 8-16 bits 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, Cinema DNG RAW, MLV): 1080, 2K, 4K DNG clips and more, up to 8K
  • Output formats for image series: JPEG (24-bit), PPM (48-bit), TIFF (48-bit), J2K (24/48-bit), EXR (48-bit)
  • Output formats for video: AVI, MP4, MOV
  • Output color space: sRGB, Rec.709, AdobeRGB, ProPhoto, BMDFilm, BMDFilm 4K, BMDFilm 4.6K
  • Fast demosaicing algorithms with 16-bit pipeline: HQLI, DFPD, MG
  • Denoise adaptive algorithms for raw, luma and chroma (float workflow)
  • Resize algorithm: Lanczos (float workflow)
  • Sharpening with USM (float workflow)
  • Realtime smooth playback of CinemaDNG files via OpenGL

Compatibility

  • Windows-7/8/10 (64-bit)
  • CUDA-10 (64-bit)
  • NVIDIA GPU (Kepler, Maxwell, Pascal, Volta) 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 CUDA

The software supports CinemaDNG/DNG and MLV formats, produced either by DNG/MLV-enabled digital cameras or by Adobe software such as Adobe DNG Converter or Lightroom (DNG 1.4 specification). List of supported cameras could be found here. CUDA RAW Processor also supports DNG and PGM files which were created by 3rd-party applications.

DNG-enabled digital cameras

  • 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

Image/Video Processing Pipeline for DNG/CinemaDNG on CUDA

  • Ingestion of DNG images from HDD/SSD
    • Multithreaded reading of DNG images or MLV from SSD to CPU memory
    • Parsing of DNG images or MLV video
    • Multithreaded DNG decoding (lossless JPEG and BMD 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 Curve for each channel of Bayer data
  • Raw denoising
  • Demosaicing
  • Adaptive noise suppression
  • Color Correlated Temperature and Tint control
  • Color Correction with matrix or DCP profile
  • Tone mapping (RGB/HSV Curves for each color channel)
  • Histogram and RGB Parade for processed image
  • Monitor output
    • Crop
    • Resize to specified width and height in 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
    • Native MJPEG compression
    • External compression via FFmpeg to H.264
    • 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 rendering of 12-bit DNG images with 4K resolution on GPU GeForce GTX 980 could be done at frame rates up to 60 fps (raw dng and processed data reside in CPU memory, without denoising and USM). Here you can find other benchmarks for our SDK.

Options for realtime output compression on CUDA

  • JPEG/MJPEG codec
  • Thumbnail generation for each image of the sequence
  • JPEG2000 codec

Standard tasks to solve with CUDA 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-16 bits Bayer format

Workflow example for CUDA RAW Processor

  • Upload video footage to computer (PC) from camera or card reader
  • Convert RAW files to DNG format with Adobe DNG Converter (option)
  • Create new project and import DNG images
  • DNG image processing with CUDA RAW Processor
  • DNG video player
  • Export JPEG (8/12-bits) or TIFF (16-bits) files
  • Export H.264 video in MP4 with Full HD or 4K resolution

Full version of that pipeline is implemented in FastCinemaDNG Processor software. Please visit www.fastcinemadng.com to download demo.

Contact Form

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