Fast MLV processing on GPU
Magic Lantern (ML) is a firmware add-on for Canon digital single-lens reflex (DSLR) cameras and the EOS M. It adds features for DSLR filmmaking and still photography, and is free and open-source. The most important feature of ML is the ability to shoot video in RAW.
The most interesting thing about Magic Lantern, that it adds 4K RAW mode to Canon 5D Mark III. Actually this is 14-bit raw format with lossless compression. The latest update brings 4K to the 5D Mark III as part of eight new resolution modes, including a 4,096 × 1,440 resolution at 25 fps, a 4,096 × 2,560 at 12.5 fps and a 3,840 × 1,600 at 24 fps. The aspect ratios aren’t quite the 16:9 traditional 4K, but a narrower variation of Super 35 4K. There are also some additional HD video options, including 1,920 × 800 at 60 fps as well as a square-crop-video mode.
What are main disadvantages of current solutions to play MLV files?
- Long time to prepare video (ProRes/h264) out of MLV/RAW
- One have to convert MLV to DNG, which is also time consuming
- One can utilize mlvrawviewer/mlvfs/mlv_dump, but this approach is quite complicated and slow
- Raw image processing pipeline on CPU is always slow, even at MLVP and MLV App
- Smooth playback is limited by insufficient debayer performance (Amaze demosaicing algorithm is good, but not fast)
- One can utilize Davinci Resolve for debayering on GPU, but it can't work with RAW/MLV directly
- LJ92 is quite fast Lossless JPEG decoder, but not the fastest
Fast CinemaDNG Processor can work with Magic Lantern raw files natively, without MLVFS or any other software. In that case one can do MLV processing very fast because it's done completely on NVIDIA GPU. To load MLV file, just click with right button on the file at Windows Explorer and run Fast CinemaDNG software via context menu or one can drag-n-drop MLV to main window. Smooth MLV playback is achieved due to realtime image processing on GPU. To get high quality 3D LUTs for grading, there is interoperability with 3DLUT Creator software. To get various options for video encoding, Fast CinemaDNG Processor can work with external FFmpeg.
What we can do for fast MLV processing
- MLV import, parsing, decoding for single and multi-file versions
- MLV viewer and player with full image processing pipeline on GPU
- MLV post processing with DCP and LCP profiles
- Realtime MLV grading with 3D LUT
- MLV to DNG export (uncompressed DNG or CDNG, lossless compression, lossy BMD RAW 3:1 and 4:1)
- MLV to TIFF/JPG/JP2 export
- Export of processed video from MLV (mlv to movie)
To summarize, one can emphasize the most important features of Fast CinemaDNG Processor software for realtime MLV video processing on GPU: native support of MLV format, fast MLV decoding on CPU, high quality debayering, realtime denoising, DCP and LCP profiles, 3D LUT, smooth mlv playback for 4K, export options, etc.
Instead of conventional MLV workflow, where we need to convert MLV to DNG sequence, then to create proxies for further color grading, now we can do all these thing at the same pipeline, because we don't need neither DNG not proxies for MLV processing, everything could be done on GPU in realtime, starting from RAW MLV to final color corrected video.
Useful third-party software for better MLV processing
One can download and install that software, then create links from FastCinemaDNG Processor (dialog Options) and interoperability with FFmpeg and 3DLUT Creator will be established.
P.S. Release of MLV Media Player on GPU is expected at March-April 2018.