Fast CinemaDNG Processor on GPU

We have designed high quality CUDA-accelerated solution for CinemaDNG processing with very high performance - much faster than realtime. Now it's possible by implementing full CinemaDNG processing pipeline on NVIDIA GPU with CUDA technology.

Advantages of Fast CinemaDNG Processor

  • 4K CinemaDNG processing at 24-30 fps, up to 60 fps
  • 8K DNG photo editing with fast response
  • High performance DNG decoding on CPU
  • RAW Curves and Levels before demosaicing
  • High quality demosaicing with MG algorithm
  • High speed denoising for raw, luma and chroma
  • No proxies, 4K dailies can be processed in realtime
  • Smooth and scalable Player for CinemaDNG footages
  • MLV and DNG player, viewer, converter, transcoder
  • Software for footage Culling and Reviewing before editing

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

  • Import images: 8/10/12/14/16-bit DNG or CinemaDNG (compressed or uncompressed)
  • Other input image formats: MLV, Blackmagic CinemaDNG RAW 3:1 and 4:1, PGM, CR2, CR3, NEF, ARW, IIQ
  • Input video (Cinema DNG or MLV): 1080, 2K, 4K CDNG clips and more, up to 8K
  • Output formats for image series: JPG (24/36-bit), PPM (24/48-bit), TIFF (24/48-bit)
  • Output video compression: Apple ProRes (MOV), Motion JPEG (AVI), any codec from external FFmpeg
  • Output Color Spaces: sRGB, Rec.709, AdobeRGB, Rec.2020, BMD Film, BMD Film 4K, BMD Film 4.6K
  • Highly optimized multi-threaded DNG and MLV reading, parsing and decoding on CPU
  • White Balance and Exposure Correction
  • Curves and Levels for each channel of RAW data
  • RAW denoising (float workflow)
  • Demosaicing algorithms: L7 (7×7), DFPD (11×11), MG (23×23)
  • Denoise adaptive algorithm for luma and chroma (float workflow)
  • Correlated Color Temperature and Tint control
  • Color correction with matrix or DCP profile
  • RGB and HSV Curves and Levels
  • 3D LUTs for RGB and HSV, DCP support, Tone curve
  • Image rotation to arbitrary angle, other geometric transforms
  • LCP support: undistortion, chromatic aberrations, vignetting suppression
  • RGB Histograms for each frame in realtime
  • RGB Parade monitor
  • Resize algorithm: Lanczos (float workflow)
  • Sharpening with Unsharp Mask algorithm (float workflow)
  • Smooth playback of CinemaDNG or MLV sequences via OpenGL in realtime

Compatibility

  • Windows-10 (64-bit)
  • Linux Ubuntu 18.04, 19.10, 20.04 (64-bit)
  • NVIDIA GPU driver 466.11 or later
  • CUDA-11.7 (64-bit)
  • NVIDIA GPU (Maxwell, Pascal, Volta, Turing, Ampere) for laptop, desktop, server
  • Compatibility with FFmpeg to read/write MJPEG streams (FFmpeg is under LGPLv2.1)

CinemaDNG Workflow on CUDA

The software supports DNG/CinemaDNG files, produced either by DNG-enabled digital cameras 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. Fast CinemaDNG Processor also supports 8/10/12/14/16-bit DNG and PGM files created by 3rd-party applications.

DNG-enabled digital cameras

  • Blackmagic Design Pocket/Production 4K/Cinema, URSA Mini 4K, URSA Mini 4.6K, Ursa Mini Pro, Pocket 6K
  • 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 X5S, X5R or X7 cameras for Mavic, Phantom, Inspire, Matrice drones
  • Digital Bolex D16 and D16M
  • Atomos Ninja Shogun
  • Ikonoskop
  • XIMEA 4/5/8/12/20/50/65 MPix
  • IOI cameras

Image/Video Processing Pipeline for DNG/CinemaDNG/MLV on CUDA

  • Ingestion of DNG images from HDD/SSD
    • Multithreaded reading of RAW data from SSD to CPU memory
    • CinemaDNG / MLV parcing
    • DNG / CR2 / CR3 / NEF / ARW / IIQ parcing
    • Multithreaded decoding for 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
  • Dark Frame Subtraction and Flat-Field Correction
  • Bad Pixel Correction
  • 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 or MJ2K encoding
    • Native export to Apple ProRes 422 LT, 422, 422 HQ, 4444, 4444 XQ
    • 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 / EXR / JP2 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 1080 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
  • JPEG2000 codec

Standard tasks to solve with Fast CinemaDNG 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
  • Fast processing of MLV video files from Canon cameras with Magic Lantern formware
  • RAW Converter: MLV to DNG, BMD RAW to CinemaDNG, MLV to ProRes, CinemaDNG to ProRes, etc.
  • Converter from MLV/DNG to ProRes

Workflow example for Fast CinemaDNG 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 Fast CinemaDNG Processor
  • DNG video player
  • BRAW player and converter
  • Export JPEG (8/12-bit), JPEG2000 (8/16-bit), TIFF (16-bit), EXR (16/32-bit) files
  • Export video to Apple ProRes 422 LT, 422, 422 HQ, 4444, 4444 XQ
  • External FFmpeg options: export H.264/H.265 video in MP4, etc.

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

Roadmap for Fast CinemaDNG Processor

  • Support of IOI cameras: IOI format, transcoding of IOI files to CinemaDNG, IOI Player - done
  • Defringe module - done
  • Highlight Recovery on GPU - done
  • CUDA 11.7 support - done
  • Chromatic aberration removal - in progress
  • Noise profiles support - in progress
  • HDR - in progress

Useful links:

Contact Form

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