Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - megapolis

Pages: [1]
Post-processing Workflow / Re: fastcinemadng
« on: December 19, 2017, 09:25:48 AM »
When we do GPU-based image processing with Fast CinemaDNG Processor software, we have to bear in mind that performance of CPU and SSD also play an important role in this process, since for any image we have to read, to download, to parse, to decode DNG, and only then we can upload uncompressed raw data into GPU memory for image processing and display.

The main bottleneck for CPU is fast DNG decoding. Typically DNG images are encoded with lossless compression algorithm and usually this is Lossless JPEG.
Lossless JPEG algorithm is essentially serial, so GPU can't help at decoding. To speed up decompression on CPU, it is possible to do decoding of each tile or of the entire image in a separate thread, and one can accelerate Huffman decoding algorithm on CPU.

We have implemented both methods, so we can do lossless jpeg decoding at multi-threaded mode, and we have also optimized the process of DNG decoding on CPU. It's difficult to say how fast that new DNG decoder, because decoding performance strongly depends on image content. Here you can see some benchmarks which correspond to the best and the worst cases of Lossless JPEG decoding for multithreaded applications. These examples illustrate the idea of multithreading performance for lossless jpeg decoding on multicore CPU.

16-bit image, compression ratio 10.4 bpp (lossless compression)
   LJ92 (library liblj92): 266 MPix/s
   Fastvideo LJ Decoder: 407 MPix/s

12-bit image, compression ratio 5.6 bpp (lossless compression)
   LJ92 (library liblj92): 284 MPix/s
   Fastvideo LJ Decoder: 475 MPix/s

These results show that fast DNG decoding on CPU is possible in realtime for DNG series with 4K resolution and more. Decoding optimization, vectorization and multithreading are key factors to achieve high performance decoding.

At the following link there is more detail concerning benchmarks and other info about lossless jpeg decoding on CPU:

Our new DNG decoder helps to reduce CPU load. Earlier, due to lack DNG decoding speed on CPU, we ran into problems with smooth video playback for 4.6K footages from BMD URSA, and now we don't have these jerks on good PC even in the case if we switch on gpu-based denoiser.

Post-processing Workflow / Re: fastcinemadng
« on: December 14, 2017, 11:21:53 AM »
Thanks for your suggestions. We do have such plans, but we are going to implement them in a way of Windows Explorer shell extension, that would generate thumbnails for MLV files while viewing folder content. It shouldn't be time consuming procedure as soon as image processing pipeline for such a task is very simple. The same feature is implemented in Adobe DNG Codec for Windows. It will be done later, because currently we are working on MLV support and on fast DNG decoding.

Post-processing Workflow / Re: fastcinemadng
« on: December 13, 2017, 08:25:56 AM »
Thanks for sharing your thoughts. This is exactly what we are doing now and we hope to release direct support of MLV format soon. We are going to open MLV instantly from Explorer without running MLVFS and without convertion to cDNG.

Post-processing Workflow / Re: fastcinemadng
« on: December 12, 2017, 11:56:19 AM »
Thanks a lot for your MLV file and for your feedback. On my PC (Core i7-3820 3.6 GHz, RAM 16 GB, NVIDIA GeForce GTX 580), which is quite old, it takes 5-6 seconds to load your project. I agree that 20 s is not acceptable, but generally, for DNG image processing we need to have good CPU, GPU and SSD, so the PC should be quite powerful. We always load new project without offloading previous one. We will check why it causes crash.

The first run of each software takes around 2-4 seconds, so it's not surprising. For GPU-based image processing we also have to initialize CUDA and allocate GPU memory, which are not very fast procedures. That's why 5-6 seconds for such a task at the first run should be reasonable. To insure fast loading for the next project we need to optimize our software and I hope to cope with that in a couple on weeks.

Interface to work with FFmpeg is quite simple, you just need to put there right command line. We have prepared a list of frequently used command lines, so it should be not very difficult, you can find that info in the manual.

The main idea of our software is to insure fast image processing and smooth output for 4K with maximum possible options like high quality debayering, denoising, undistortion, geometry transforms, 3D LUTs, etc. We think that it could be done on GPU in realtime with GeForce GTX 1060 or better.

Post-processing Workflow / Re: fastcinemadng
« on: December 11, 2017, 11:00:28 AM »
Sorry, the latest release of Dokany could be downloaded here:

This is a benchmark for GPU-based image processing of MLV which was loaded via MLVFS, processing is done with Fast CinemaDNG Processor on NVIDIA GeForce GTX 580 (PCI-Express x16 Gen2):

Total memory 1536 MB, free 179 MB, allocated 109 MB
Input image: 1280x720 pixels
Host-to-device transfer = 0.47 ms
Linearization LUT = 0.35 ms
White balance = 0.03 ms
Raw curve = 1.06 ms
Debayer = 1.15 ms
ProPhoto space transform = 0.09 ms
RGB Lut = 0.21 ms
Output color space transform = 0.09 ms
Crop time: 0.00 ms
Resize = 0.00 ms
16 to 8 bit transform = 0.06 ms
Histogram = 1.20 ms
RGB parade = 2.31 ms
Viewport crop = 0.00 ms
Viewport resize = 0.88 ms
Total GPU = 7.90 ms
Total GPU + CPU = 10.95 ms

P.S. Could you please give me a link to 4K MLV footage for testing?

Post-processing Workflow / Re: fastcinemadng
« on: December 07, 2017, 10:46:53 AM »
As I know, usually there is no need to have beefy video card for image processing of DNG images with resolutions less than 2K. If I haven't understood you correctly, please advise. If our software is working slow, please send me a link to your MLV file for evaluation.

You can test your MLV files by running MLVFS and Fast CinemaDNG Processor. What you need in Windows-7/10 (64-bit):
1. Download Fast CinemaDNG Processor:
2. Download Dokany:
3. Download MLVFS:
4. Run the following command: mlvfs -f Z: --mlv-dir=\mlvdir

Then from Windows Explorer you can click with right button on your MLV file and choose in the context menu “Preview with Fast CinemaDNG”. Actually we haven't done anything here. Transform from MLV to DNG is done by MLVFS.

Post-processing Workflow / Re: fastcinemadng
« on: December 06, 2017, 10:58:25 AM »
It's difficult to agree that
All of this is available in Resolve or in ACR as well.
Just try to play DNG series with 4.6K resolution and Denoiser option on, you could hardly get smooth video output with ACR. It's much better with Resolve, but still this is a problem.
The most frequent usage of that software is preview of DNG series. You just need to choose a folder with DNG in Windows Explorer to see realtime video. This is fast and simple. The latest release is working with our new CPU-based Lossless JPEG decoder which is faster than decoders from dcraw, libraw, lj92, Adobe DNG SDK.
P.S. Unfortunately MLV support is not yet ready.

Post-processing Workflow / Re: fastcinemadng
« on: November 09, 2017, 08:50:39 AM »
New features in the latest release:
1. Project templates to save current set of parameters and settings. Now one can utilize that template to process next DNG series with the same parameters. Have a look at Project templates widget.
2. DNG player is working with audio from wav-file.
3. This is the first release with accelerated lossless jpeg decoder on CPU. We will publish more info about that soon.

Download link to Fast CinemaDNG Processor:

Post-processing Workflow / Re: fastcinemadng
« on: August 15, 2017, 11:14:58 AM »
Current version is working with Windows only. At the moment we need to design and to implement on CUDA quite a lot of algorithms for DNG image processing. Other OS will be a subject for implementation in the future, but not now.

Post-processing Workflow / Re: fastcinemadng
« on: August 11, 2017, 02:56:04 PM »
In the latest release of Fast CinemaDNG Processor we've fully redesigned CUDA code for Histogram/Parade module and Denoiser (which is working before debayer). We have also implemented some more features for image processing on GPU:
1. Rotation to arbitrary angle in realtime.
2. Now we can work with LCP (lens profiles) to do undistortion and CA removal. We utilize ready LCP or prepare them from Adobe Lens Profile Creator.
You can download the latest version from

Post-processing Workflow / Re: fastcinemadng
« on: June 02, 2017, 12:03:35 PM »
Could you please share a link to "new" 4k raw?
At the moment we support DNG/CinemaDNG only. MLV support is expected soon.

Post-processing Workflow / Re: fastcinemadng
« on: May 31, 2017, 11:00:41 AM »
Fast CinemaDNG Processor is currently used in the Aeon Motion Scanning System for 3D scanning and 4D capture with 20 MPix industrial cameras:

This is comparison with Adobe Lightroom for DNG image processing performance:
«FastVideo is lightning fast. It’s still in early development but it can process sequence data on the fly, on the GPU in real-time in ms, rather than in minutes per frame. This means we can now process a 28,800 image sequence set in under 10 minutes, instead of 10 hours. Literally a game changer.»

Post-processing Workflow / Re: fastcinemadng
« on: April 28, 2017, 09:38:18 AM »
I'm not sure where you got your Cinelog profile(s) from? - but Cinelog-C profiles don't contain HSV luts and they will only work correctly in Adobe Camera Raw.
Thanks, I will check that. I tested profiles from ACR and RT. Cinelog profile was tested by our customer. If it doesn't work, I will definitely remove it from the list of supported profiles.

Even though you can read/apply Cinelog profiles in RawTherapee or other apps they will only produce Cinelog-C colorspace in Adobe Camera Raw because the profiles contain compensation for a limitation that is unique to ACR when it is used in conjunction with After Effects. Using the profiles in any other raw app (i.e. raw apps without that limitation i.e. any raw app that isn't ACR) you will be introducing a new issue.
Thanks for the info.

I'm not sure why you would even want to use a fixed colorspace management DCP anyway as your app is built on GPU accelerated shaders!?
That application is built on CUDA and we can utilize any colorspace management in realtime. Currently we are working on DCP support. What approach would you suggest to implement?

Post-processing Workflow / Re: fastcinemadng
« on: April 27, 2017, 01:03:29 PM »
@hyalinejim: In the latest release of Fast CinemaDNG Processor software we've implemented support for external DCP profiles. Now it's possible to utilize any DCP profile from Adobe ACR, RawTherapee, Cinelog, etc. User can create his own DCP profile with any profiler and then add it to the current project. All computations for 1D and 3D LUTs from DCP are done on GPU in real time. Timing for each stage of DNG image processing on GPU is shown in the Benchmark window.

We've also added check boxes for GUI to switch on/off  Hue/Saturation Map, LookTable and Tone Curve to see what we can really get from DCP profile. Default path for a folder with DCP profiles are defined at Options section.

The latest release of Fast CinemaDNG Processor can be downloaded here:

Post-processing Workflow / Re: fastcinemadng
« on: March 16, 2017, 11:37:31 AM »
@hyalinejim: Thanks again for your image and your question. I've checked your image and your solution once more and I can see the following:

You've solved the problem by applying Cinelog DCP profile for Canon 5D. Inside that profile one can see ToneCurve (log-like gamma) and HSV 3DLUT. It means that in Adobe ACR the task of Highlights Recovery was solved after debayering by applying gamma to RGB and 3D LUT to HSV. That solution makes sense and we see good result. We will be able to utilize that method, as soon as we add DCP support to our software in the near future. Anyway, there is also another possible solution.

One can do Highlights Recovery before debayering and it seems to be a better approach. If we remove highlights before debayer, then image quality after debayering will be better because this is the way to avoid interpolations with clipped pixels. We've added to Fast CinemaDNG software widget “Raw Curve” to be able to apply curves to RAW data before debayering. There is a master curve which is always applied to all three channels of RAW data, and individual curves for each color channel.

Here you can have a look at your image which is processed with curves before debayering:

What Fast CinemaDNG software is doing before demosaicing:
1. Multithreaded reading and parcing of all DNGs in the current folder
2. Multithreaded DNG decoding for compressed data
3. Data copy from CPU to GPU (host to device transfer)
4. DNG crop
5. Data linearization according to 1D LUT from DNG
6. Black and white points from DNG
7. WB coefficients for R, G, B
8. Exposure correction
9. Composite raw curve (the same curve for all three channels)
10.  Individual curve for each raw channel
11.  Raw bayer denoiser
12.  Debayer HQLI, DFPD or MG with Enhance option

All these stages from image processing pipeline one can see at Benchmarks widget to check timing on GPU for each stage. To get fast result, we need to have powerful CPU, GPU and SSD.

Please let me know your opinion about suggested pipeline and about the results of our software for DNG image processing both in terms of quality and performance. You can download the latest release of Fast CinemaDNG software with “Raw Curve” module from

Post-processing Workflow / Re: fastcinemadng
« on: March 04, 2017, 04:07:36 PM »
@hyalinejim: Thanks for your image and for your comparison.
I agree with you, but please note that for that specific image the job was done due to Cinelog camera profile which removed the problem with highlights in red on arms and candle flame. We see the only solution here – to process red channel with a curve before debayering.

Here you can see an example of processing with Fast CinemaDNG:
Everything was set to its default value, we just reduced Red channel down (it's applied before debayer) and changed R curve to avoid highlights crashing in R channel. RGB Parade would help you in making proper settings.

We expect to release some features for solving such problems (3D LUT support, highlights recovery, DCP profiles support, LUTs for RAW data) within 2-3 months and we will check your image after that once more.

I also agree that panel docking is not working well. We got that module from QT and it seems to be not the best choice.

Post-processing Workflow / Re: fastcinemadng
« on: March 03, 2017, 08:04:19 PM »
@hyalinejim: In order to be able to work with weak GPUs with 1-1.5 GB memory, we've implemented image processing pipeline manager. This is the way to exclude some image processing stages from the pipeline. You need to run the software without loading any project (or you can close current project) and click on Options button, then go to “Output and Extensions” tab. You will see there denoising, sharpening and other options for image processing which are excluded from the pipeline. Check necessary modules and try to open new project. If you have enough GPU memory, it should work. To get the same colors as ACR, please try both RGB and HSV LUTs as well. Manual in PDF you can find at the same folder as the software.
Usually we set "Enhance level" around 2.5-3.0 or even less. I think that 5 is often too much.
Could you please supply a link to DNG source image?

Post-processing Workflow / Re: fastcinemadng
« on: March 03, 2017, 12:45:01 PM »
@reddeercity: We've checked the issue with Exposure Time and have found that it's changed by a function from Adobe DNG SDK. Actually the software has found right value for Exposure Time in the original DNG and then compared it with predefined list of values. The closest one to 53 is 50, so 1/53 was switched to 1/50. Sure, we can fix that function, but there is a question. Does exist Exposure Time 1/53 s at your camera?

P.S. Please have a look at debayer quality for MG algorithm with enhance option.

Post-processing Workflow / Re: fastcinemadng
« on: March 02, 2017, 03:17:42 PM »
@reddeercity: We've fixed the issue with framerate tag, now it's working. Please check that once more.

In the latest release we've added two significant improvements for CinemaDNG processing:

1. For all demosaicing algorithms we've added “Enhance level” option and this improvement removed many debayer artifacts that we used to have. To compare with our previous debayer versions, you can set “Enhance level” = 1. That value is individual for each image and it's up to you what to choose. Actually we've added some more image processing stages before and after debayering to get the result.

Please test that software and share your experience with us. We would be interested to find out your results of comparison with demosaicing algorithms from ML, Davinci Resolve, Adobe Premiere Pro, ACR, Lightroom, etc.

2. We've improved Lossless JPEG decoder on CPU. This is one of the most important bottlenecks to overcome, before we could get smooth output in Player window. As soon as we don't use proxies and do all image processing for full-frame images, this is not simple, especially for 4K and 4.6K resolutions.

With new decoder on PC with NVIDIA GeForce GTX 1080 and CPU Intel Core i7 5930 we can process CinemaDNG footage with 4.6К resolution smoothly, with full image processing pipeline, including MG debayer, denoiser and unsharp mask.

Post-processing Workflow / Re: fastcinemadng
« on: February 25, 2017, 09:40:47 AM »
@megapolis can Fast CinemaDng use multiply GPU's, 2 or more (I have 2 gtx580 installed)
Current version of Fast CinemaDNG is working with just one GPU, though our core SDK can work with multiple NVIDIA GPUs as well. We think that for resolutions like 2K and 2.5K, one GPU should be enough for full image processing in realtime. 4K and 4.6K resolutions could be processed on just one GPU GeForce GTX 1070 or 1080. We are still working on optimization issues for CPU/GPU, and final solution should be faster.

We plan to use the second GPU for more complicated denoising or for JPEG2000 encoding and decoding (instead of ProRes or DNxHD/HR). These algorithms need a lot of computations and GPU memory, and it's difficult to incorporate them into existing pipeline on the first GPU in realtime.

Also do you or will you have support for a Capture/Playback card/device for monitoring on a external calibrated Grading HDMI & or HDSDI monitor?
At the moment we support just one monitor which is connected to the same GPU. We take into account ICC-profile of the monitor and you can define corresponding profile in the software settings. We do that color correction on CUDA and send processed data to the monitor.
You can work with multiple monitors, which are connected to the same GPU, but the software will take into account just one ICC profile.
We are also considering a task of 10-bit monitor support, but at the moment NVIDIA is offering that feature only for the latest Quadro GPUs, which are quite expensive.

Since to have already integrated some blackmagic stuff maybe have support for there USB 3.0 device "UltraStudio SDI" has HDMI & HDSDI playback/output and or any of the blackmagic PCIe capture cards
In order to support any external USB3 device, we need developer kit and API to work with such a device. At the moment we don't have that.
As far as concerns Blackmagic PCIe capture cards, we have such an experience and we can use them as input to offer realtime image acquisition and processing. That feature is not yet released and if you need it, please specify the task in more detail.

Post-processing Workflow / Re: fastcinemadng
« on: February 24, 2017, 07:53:22 AM »
Tried running this on OS X 10.12.3 under Wine and got up to the point where it's 80% installed this error pops up...

Unfortunately we haven't tested the setup on OS X under Wine yet. We will definitely check that soon. The message says that one can't register dll which is responsible for context menu in Windows Explorer. We've already seen such a situation and in all cases Windows was corrupted.

Haven't seen any NVIDIA GPU in your hardware. The software can't work with Intel built-in GPU (Intel HD Graphics 4000).

Post-processing Workflow / Re: fastcinemadng
« on: February 23, 2017, 06:39:04 PM »
Mac version possible?
In the core of Fast CinemaDNG software we have our own image processing SDK which is working on NVIDIA CUDA. Apart from DNG/CinemaDNG decoding we do almost everything on GPU. We believe that GPU could offer the fastest way of image processing and we do need that to insure realtime performance for 4K and higher resolutions. You can check the content of that SDK and have a look at performance benchmarks:

So we are working with NVIDIA GPUs only and unfortunately at the moment Apple doesn't manufacture any PC/laptop with NVIDIA GPUs, they install AMD/Intel only. This is the main obstacle. Our image processing SDK can work with Windows and Linux, and we can port it to MacOS as well, but our users don't have right hardware to work with. So we are waiting for good news from Apple.

Post-processing Workflow / Re: fastcinemadng
« on: February 23, 2017, 09:05:19 AM »
So it seems it's was intended for Blackmagic Camera up to 8K, I highly recommend trying this out even if it's to convert your ML Cdng's to BDM raw 3:1 to save space
We don't have any 8K source CinemaDNG images yet, currently it's working well with 4.6K BMD. The software is intended to work not only with image series from Blackmagic cameras but also with any CinemaDNG images. If something goes wrong with your CinemaDNG, please send these images to me.
It's not correct that the software is always converting your ML CDNG images to BMD RAW 3:1. You can choose lossless compression for any data source, even if it was originally BMD RAW 3:1 or 4:1.

NVIDIA GeForce GTX 580 is ok for image resolutions up to Full HD. For higher resolutions you will need more powerful GPU. If the player is working smoothly, it means that your CPU, GPU and SSD are ok.

There are some important issues which you have not mentioned:
1. One can play your CinemaDNG series from Windows Explorer. Just click right button on the folder and choose Fast CinemaDNG in the list. By pressing Tab you can run viewer at full screen mode.
2. Project culling by choosing starting and finishing points at the timeline.
3. One can crop and save DNG to reduce image size of RAW data.

Also tried 3:1 which gave me a frame size of 133KB
I agree that the image could be too much compressed and it could be a good idea to add a function for arbitrary compression ratio instead.

The only thing I see there's no frame rate tag
Yes, we've missed that, thanks for pointing out. This is our mistake and we will fix that soon. We are also going to add some more CDNG editing to the software. Our users are mostly asking us to add 1D LUT and denoising preprocessing features (both before debayering) with intention to save DNG for further processing.

Please have a look at Debayer options. Our latest debayer with MG algorithm is a recent improvement and we would be interested to get your feedback concerning debayer quality. You can zoom still image or video to see all details.

P.S. This year we are going to add support of MLV format to work directly with MLV files, without doing any preliminary MLV-CDNG conversion. Thanks to g3gg0, we've got necessary info.

Pages: [1]