fastcinemadng

Started by katrikura, February 22, 2017, 12:17:51 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

IDA_ML

Megapolis,

I was wondering if it might be possible to just add MLVFS to your software.  Although I agree that the preview quality of the DNGs is great, it simply takes to long to open a DNG folder and this really makes it too heavy to use unless you really have a very beefy videocard.  Opening MLV files directly would be a way better option, especially if this could be done fast.  MLVFS would help in that respect if it could be implemented.  Just a thought.

megapolis

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: http://www.fastcinemadng.com/download/FastCDNG_x64_Setup.exe
2. Download Dokany: https://github.com/dokan-dev/dokany/releases/download/v1.0.3/DokanSetup_redist.exe
3. Download MLVFS: http://www.dropbox.com/s/4ymbt8xxfrwtn1h/MLVFS.zip?dl=0
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.

megapolis

Sorry, the latest release of Dokany could be downloaded here:
https://github.com/dokan-dev/dokany/releases/download/v1.1.0/DokanSetup_redist.exe

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?

IDA_ML

Quote from: megapolis on December 11, 2017, 11:00:28 AM
P.S. Could you please give me a link to 4K MLV footage for testing?

Megapolis,

I have prepared a short (84 frames) 3K MLV file (3072x1920) for you to test.  It is about 590 MB and you can download it from here:

https://we.tl/mdeBlxLtvx

This download link will be active for 7 more days.

It takes about 20s. to open this file with FastCinemaDNG from Explorer with MLVFS installed as you suggested above.  If I want to view the next MLV file, I have to close the first one and if I forget to do this, the software crashes.  The computer that I used for this test and for editing my videos has a Q6600 CPU, 8GB of RAM and a GTX 750Ti GPU (2GB DDR5 RAM).  I am on Win7x64. An opening time of  20 s. for such a small file is way too long.  MLV Producer opens the same file in about 3 s. Moreover, in Producer I can open a whole batch of MLV files in just a few seconds.  I have just tested it with 15 MLV files (a total of 8 GB) and it created thumbnails of all of them within 9 s. after dragging them from Explorer onto the MLVProducer icon.  Once the thumbnails are in the preview window and I click on each of them, the MLV file opens in full size almost instantaneously.  So, if I want to browse between lots of MLV files, I prefer to use Producer since it is so fast and easy to use.  I use FastCinemaDNG only if I want to view a particular MLV file at a high quality and real-time playback.

Conclusion:  FastCinemaDNG is great in terms of preview quality and fast playback, as well as editing options but slow and not convenient to work with.  Converting files using the FFMPEG option is a pain.  This would be a great software if it would have been faster, better organized and would offer convenient and fast export/converting options.

I hope, this feedback is useful and wish you great success in making your software more user friendly to work with. 

megapolis

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.

IDA_ML

Megapolis,

Maybe, I should share another thought about FastCinemaDNG with you.  Working only with folders full of cDNG sequences is not a good idea at all.  This means that you have to drag all your MLV files that you wish to view, to a MLVFS folder and apply MLVFS to them.  This additional step is impractical and takes time and a lot of disk space.  In most cases, your MLV-files are spread in hundreds of directories on different internal and external drives.  What if you want to quickly view a specific MLV file or find it among 100 others?  Do you want to convert all of them into cDNG folders first?  This is very impractical.  It would be much easier if you could just click on the MLV-file and open it immediately.  This is how Producer works.  All you need to do is to set the file association .MLV to open with Producer. 

If you could add MLV support to FastCinemaDNG, this would make it much more user friendly.  Think about it.

megapolis

IDA_ML,
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.

IDA_ML

This is great, Megapolis!  May I make another, in my opinion, useful suggestion?  Could you possibly modify Fastcinemadng in such manner that the user could navigate to a folder with MLV files in Explorer and by clicking on that folder, Fastcinemadng would create inside Explorer a window with thumbnails of all MLVs inside the folder.  This thumbnail creation should happen very fast, as in Producer.  Once the user finds a  thumbnail of interest, he clicks on it and the MLV file opens in the full sized software window, ready for playback, adjustments, quick export, etc.  If the user wants to repeat the same thing with another MLV, he just clicks on its thumbnail and the file opens in the full sized window.  In other words, Fastcinemadng should work as any photo viewer (such as IrfanView for example), but with MLV-files, instead of JPEGs or CR2 files.  You don't even have to animate the thumbnails as DaVinci Resolve does.  All you need to do is to use a single frame from somewhere in the middle of MLV clip to create its thumbnail.  It should just give a hint to the user what that clip is all about and I think this would be very helpful and user friendly already.  Do you think, this would be possible?

megapolis

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.

megapolis

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:
http://www.fastcinemadng.com/info/jpeg/lossless-jpeg-decoder.html

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.

megapolis

The latest release is more stable and reliable, we've improved the performance, several bugs were removed. Now one can switch on/off every curve (RAW, RGB, HSV) to see the difference.

We've also added GUI to work with external 3D LUTs (RGB) in cube format. They could be applied via GPU in realtime. Duration in milliseconds of that stage of image processing could be seen at Benchmarks widget. Maximum cube size is 65x65x65. In order to switch on 3D LUT module, close current project, go to Options dialog, choose tab "Output and Extensions" and check the box for 3D LUTs module. All your luts should be placed in the folder C:\Users\User\Fastvideo\3D LUTs. On NVIDIA GeForce GTX 1060 processing time is around 2.5 milliseconds to apply 3D LUT 32x32x32 to 16-bit image with 4K resolution.

You can download the latest release of Fast CinemaDNG Processor here: http://www.fastcinemadng.com/download/download.html

megapolis

At the following page
http://www.fastcinemadng.com/download/download.html
we've created a list of direct links to download sample files and sequences of DNG or CinemaDNG footages. All the links are currently valid and they correspond to raw data from Blackmagic Design, Ikonoscop, DJI, Kinefinity, AXIOM, etc. We utilize these footages for testing of our software for realtime DNG processing. Please let us know if we missed any interesting CinemaDNG footages which are available on the net.

megapolis

We've implemented interoperability between 3DLUT Creator and Fast CinemaDNG Processor. Now we can create 3D LUTs with 3DLUT Creator and immediately include them into image processing pipeline to fulfill color grading on GPU.

Basically, user starts from choosing current DNG frame which could be a good source to create 3D LUT. Then Fast CinemaDNG software runs 3DLUT Creator which is responsible for 3D LUT design. This is very powerful and popular software with thousands of users all over the world. We actually send to 3DLUT Creator our 16-bit TIFF which will the basis to create/edit 3D LUT. Finally, we automatically get 3D LUT file in cube format from 3DLUT Creator and insert it into image processing pipeline on GPU. This is the way to get final grading in realtime at the same workflow with DNG processing.

megapolis

We carry on with further development and optimization of Fast CinemaDNG Processor and here you can see the latest improvements which are present in the current release:
1. In the previous version of the software on NVIDIA GeForce GTX 1080, to apply 3D LUT HSV with size 36x57x61 to 16-bit 4K image, we spent ~8.5 milliseconds. Now we can do the same at just ~0.8 milliseconds. Quite often such a 3D LUT is a part of DCP profile.
2. Previously, on NVIDIA GeForce GTX 1080, we applied 64x64x64 RGB LUT to 16-bit 4K image at ~8.8 milliseconds. Now the same 3D LUT can be applied within ~0.6 milliseconds. Processing time of a particular 3D LUT can be seen in the benchmark window, where all stages of image processing pipeline are displayed.
3. The maximum size of 3D LUT is 256 now. Processing time to apply such a 3D RGB LUT on GeForce GTX 1080 varies in the range of 4-8 milliseconds for 16-bit 4K image. Some users do work with such LUTs, one have to remember that such a large LUT needs around 500 MB of GPU memory. By default, we are working with 3D LUTs with cube size up to 64.
4. We've improved software stability in the case of insufficient GPU memory size. Nevertheless, mining on the GPU during image processing is not recommended :(.
5. GPU memory consumption for Unsharp Mack algorithm is reduced by three times.

Link to download the latest release of Fast CinemaDNG Processor:
http://www.fastcinemadng.com/download/download.html

pc_bel

Thanks!!!
Waiting for the mlv support!!!!
Hope it will be soon  :D

Tony Weller

Is there anyway to reset the interface?  have got my self into a pickle.

Sharpening and de-noising very nice features, also looking forward to MLV support.
700D 1.1.5, EOSM 202, 4k_crop_rec 160MHz UHS-1 overclock

bouncyball


megapolis

Sorry for late reply.
At the moment we haven't finished with UI management, so the only way to reset the interface is to delete the following branch in registry HKEY_CURRENT_USER\Software\Fastvideo\  and to reinstall the software.
MLV support is expected in April.

Tony Weller

OK thanks, I'll wait patiently

Credit to you it's flying along on my low spec i3 and gt1050 card and as I said earlier the DE-noising and sharpening are excellent.

IMO the best GUI is Resolve14 free or studio.
700D 1.1.5, EOSM 202, 4k_crop_rec 160MHz UHS-1 overclock

megapolis

We've implemented a new feature to import CinemaDNG raw footages to Adobe Premiere Pro. The subject is not straightforward, as soon as there are many possible choices for CinemaDNG encoding and formatting. For example, for the latest Blackmagic cameras one can't import CinemaDNG Raw files to Premiere Pro and it could be the case with other encoding options for CinemaDNG as well. An idea to save DNG series with better compression and correct formatting is also important for further editing in Premiere Pro. I hope that it could be relevant here as soon as ML users are working with Adobe Premiere as well.

We've implemented CinemaDNG transcoding to the format which is native to Adobe Premiere Pro CC.
This is converter pipeline at Fast CinemaDNG Processor:

  • CinemaDNG import, parsing, decoding
  • Export options: Uncompressed CinemaDNG, CinemaDNG with Lossless JPEG, CinemaDNG RAW 3:1, CinemaDNG RAW 4:1, CinemaDNG RAW 5:1
CinemaDNG workflow to prepare footage for Adobe Premiere Pro:

  • Run Fast CinemaDNG Processor
  • Load CinemaDNG footage via drag-n-drop or context menu
  • Choose project output format to be DNG
  • Choose encoding method: Uncompressed or Lossless JPEG
  • Press red button on Player
  • Wait for transcoding to be finished
  • After transcoding you can find at Output folder new footage with specified encoding
Uncompressed export option includes the following bit depths: 8-bit, 10-bit, 12-bit, 14-bit, 16-bit. For compatibility with Adobe Premiere Pro CC one have to utilize either Uncompressed or Lossless JPEG export options.

Tony Weller

So still no MLV support  Done
700D 1.1.5, EOSM 202, 4k_crop_rec 160MHz UHS-1 overclock

pc_bel

It's good to have a lot of options in same software, but I hope it doesn't mean not to have MLV direct support... :-[

Tony Weller

Just had email from fastcinema regarding the now included MLV support, and it works very well :)

Jusr drag and drop MLV file to the interface, very fast, focus dots also taken care of.

Only issue I have so far is cannot change aspect ratio to match my newly aquired EOSM RAW 1736*444 video.

Found it

700D 1.1.5, EOSM 202, 4k_crop_rec 160MHz UHS-1 overclock

megapolis

Thanks a lot to @g3gg0 for the help with MLV format understanding and for making the file mlv_structures.h to be LGPL. We are also very thankful to @AWPStar, @IDA_ML and to other people from ML forum for useful comments.

We've finally implemented MLV support at Fast CinemaDNG Processor software and we can play and process MLV on GPU natively. Now it's possible to open MLV files from Windows Explorer via context menu, or one can set file association .MLV to open MLV with Fast CinemaDNG or drag-n-drop MLV file to the application window. The latest version for Windows could be downloaded here:
www.fastcinemadng.com/download/download.html

Please bear in mind that the software is working on Windows with NVIDIA GPU only (Kepler or better), it's not working without such GPU. The latest NVIDIA driver should be installed as well. Your feedback is welcome. If your MLV file can't be loaded or it's loaded with errors, please send us the link to your MLV file for testing.

The software supports 10/12/14/16-bit uncompressed MLV files or compressed with lossless jpeg. We also extract and play audio. MLV to video transform could be done via interoperability with external FFmpeg which should be installed by user. We've also implemented support for spanned MLV files and option to export CinemaDNG series out of MLV with lossless or lossy encoding.

The first project is loaded not very fast as soon as we need time to load application, to initialize CUDA, to check and to allocate GPU memory. If the next project has the same frame resolution or less, and the same bit depth, then it will be loaded immediately. If new project has bigger resolution or different bit depth, then we will have to reallocate GPU memory and recreate GPU pipeline for image processing, so MLV import will take more time.

More info you can find here:
http://www.fastcinemadng.com/info/mlv/mlv-processing.html

What you can do with Fast CinemaDNG Processor software
1. This is fast MLV Player with image processing on NVIDIA GPU
2. Realtime debayering, denoising, resizing, sharpening, geometric transforms, etc.
3. Support for DCP and LCP profiles
4. Color grading with 3D LUTs (cube format)
5. MLV export to TIFF/JPG or to video

This solution could be quite fast if you have good SSD, CPU and GPU. MLV preview should be smooth. To check the performance, please have a look at benchmarks widget to see timing for each stage of image processing. One can also perform a transform from MLV to JPG series to see how fast it could be.

andy kh

good to know that now it starts supporting MLV. wil download and test it now

dit: it doenst work  on my laptop with 2gb nvidia graphic
5D Mark III - 70D