Fast CinemaDNG Processor

High performance software for CinemaDNG processing on GPU

Fast CinemaDNG Processor on CUDA

What's the main problem to solve with Fast CinemaDNG Processor?

Problem description: you have many terabytes of footages in CinemaDNG format from any camera, CinemaDNG RAW 3:1 or 4:1 from BlackMagic cameras, MLV from Canon cameras with Magic Lantern firmware, and you need fast preview for these footages. Before NLE you need to choose the best series, to remove bad footages, etc. It will last too long with Adobe Camera Raw or Lightroom. It could be much faster with Adobe Premier Pro, but it just can't work with CinemaDNG RAW format from Blackmagic nor with MLV, debayer quality is not excellent and there are no denoisers in that software. Full version of Davinci Resolve software can do that in realtime only with proxies, though free version doesn't have built-in denoisers.

Solution: Fast CinemaDNG Processor in realtime can read CinemaDNG, CinemaDNG RAW images or MLV video from SSD, parse and decode RAW, do all image processing on GPU and play video smoothly with any resolution. Now you don't need proxies at all, everything could be done on GPU in realtime with maximum resolution. Finally one can get at output image series of JPEG (8/12 bits per channel, quality 90-100%, 4:4:4), 16-bit TIFF, 16/32-bit EXR or high quality video in Motion JPEG (AVI) or MotionJPEG2000 (MXF). Other output encoding options and formats are available via external FFmpeg. So you can see Cinema DNG video directly from raw data.

What's CinemaDNG format?

The CinemaDNG file format (CDNG) is designed to store high-resolution video streams in camera raw format and typically adds several KBs of overhead per image. Each video frame is independently encoded in a lossless way using the DNG (Digital Negative) image format. The video stream is stored either as a picture track in an MXF (Material Exchange Format) file or as a sequence of individual frame files. CinemaDNG uses fully-documented, vendor-neutral, standard formats for video and imaging – DNG, TIFF/EP, and MXF. The format is unencrypted and free from intellectual property encumbrances or license requirements. The CinemaDNG format allows vendors to add functionality on set or in post, for example, by extending the decoder SDKs with additional image processing or metadata processing.

What's the DNG format? The camera sensor output can be stored directly into the DNG image file, without in-camera pixel processing or repackaging of the sensor data. The DNG image format is widely used to capture and archive camera raw images. Tools are available to convert images from over 200 proprietary camera raw file formats to the DNG format. The DNG format specification is now being incorporated into the ISO 12234-2 standard as TIFF/EP Profile 2.

Which CinemaDNG images could be processed with Fast CinemaDNG Processor software?

Fast CinemaDNG Processor software can work with uncompressed and losslessly compressed CinemaDNG images. It can also work with proprietary extension to the CinemaDNG format, usually referred to as BMD RAW 3:1 and 4:1 or CinemaDNG RAW, introduced by Blackmagic Design in DaVinci Resolve for their URSA cameras. Now this is the only option for Blackmagic Pocket 4K, Micro and URSA Mini Pro cameras to shoot RAW. CinemaDNG parsing and decoding are performed on multicore CPU in realtime. Bit depth of RAW data could vary from 8-bit to 16-bit.

Can the software work with non-DNG RAW images?

The software can work with various RAW images from cameras which have Bayer pattern, but not directly at the moment. At first you need to convert these RAW images to DNG format with Adobe DNG Converter software. Usually it's better to run Adobe DNG Converter to create corresponding DNG images and to store them in a separate folder. Then you can run Fast CinemaDNG Processor software.

Can we run the software at PC or laptop without NVIDIA GPU?

No. GPU-based image and video processing in Fast CinemaDNG Processor is implemented for NVIDIA GPUs only. The software doesn't have CPU-based version because one can't get realtime processing on CPU for CinemaDNG footage with modern camera resolutions and bit depths without proxies. To get better results, please utilize GPU with NVIDIA Maxwell or Pascal architecture and 8-12 GB memory or more.

Is it possible to get a speedup with AMD or Intel GPUs?

No. In Fast CinemaDNG Processor software, AMD and Intel GPUs could be utilized for visualization purposes only.

How one can get significant acceleration from GPU for image and video processing?

To get significant acceleration from GPU usage we need to perform full image and video processing pipeline on GPU, rather than to get GPU acceleration for some stages of image processing. There are lots of software which announce significant acceleration on GPU for image and video processing. Nevertheless, quite often this is not the case. For example, one could easily get 10-20-30 times acceleration on GPU for White Balance transform in comparison with CPU, but it could hardly improve the total performance for full image processing pipeline. We need to consider the timing for the whole pipeline to be able to say that we do have acceleration. Usually we have up to ~20 transforms in the pipeline and we need to accelerate all of them on GPU to get better performance. That's exactly what we do at Fast CinemaDNG Processor.

How to choose PC and monitor for realtime CinemaDNG processing?

Realtime CinemaDNG processing is very complicated task, so the hardware should be powerful and well balanced to do lots of things at the same time at frame rate 24-30 fps or even more. For example, just to read 4.6K losslessly compressed 12-bit CinemaDNG images at 24-30 fps, we need SSD or NVMe with minimum performance 250-350 MB/s for reading, that's why the choice of SSD/NVMe with 500 MB/s or better is quite reasonable. For fast DNG decoding we need powerfull multicore CPU as well. Below you can find some recommendations concerning the hardware:

  • Fast SSD or NVM Express for image and video reading/writing
  • RAM 8-16-32 GB or more: CPU processing (mostly decoding), cache, all temp buffers
  • Intel Core i7 or Xeon with 8-12 logical cores for multithreaded software: CDNG reading, parsing and decoding, other CPU-based computations, optional output encoding on CPU
  • NVIDIA GeForce/Quadro (Maxwell, Pascal, Volta): main part of CinemaDNG processing
  • Motherboard with PCI-Express 3.0 to ensure fast data transfer over PCIE to and from GPU
  • Well-calibrated monitor with resolution from Full HD to 4K

Does Fast CinemaDNG Processor support High DPI monitors?

High DPI monitors are becoming very popular. 4K monitors have pixels which are too small to run them at their native resolution and so these will most commonly be used at higher DPI scaling levels. Instead of 96 dots-per-inch on a standard monitor, they may be run at 125% (120 dpi), 150% (144 dpi), 200% (192 dpi) or even higher. This lets texts and icons be sharper and clearer, but without providing any more “usable” screen space. In practical terms, this means that software GUI has to support higher DPI natively. This exactly what we've done at Fast CinemaDNG Processor software.

Frequently asked questions and topics for discussion

Licensing