MLV App 1.14 - All in one MLV Video Post Processing App [Windows, Mac and Linux]

Started by ilia3101, July 08, 2017, 10:19:19 PM

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

iaburn

Quote from: Danne on January 30, 2023, 12:32:56 AM
Nice. About 50s now  8).
What about vertical stripes correction? When added I get porsterization again? Is it always on when disabled or not working with older raw2dng code? Maybe not connected yet?
Also, why aren´t you pushing all stuff to your original fork :)? Or can you create sub-branches of your own fork?

I wanted to fix things like the chroma smooth not working, and add bad pixels and vertical stripes fixes from the other code.
Make sense a new branch there, I don't know why I didn't do it xD

Danne

I noticed bad pixels and focus pixels worked on my eos m with dual iso. Badass!

iaburn

I've just fixed the chroma smoothing that I broke, and in theory the vertical stripes fix is "working", we cannot test because we have no dual iso videos with the vertical stripes problem!
I've reverted back to the normal bad pixels fix, I think it works better than the dual ISO specific method that was in the code  ::)

Danne


iaburn

Quote from: Danne on January 30, 2023, 09:04:46 PM
Nice. What branch can I suck the code from  8).
I'm trying to put the changes in dev/dual_iso_update and take the master back to the head of the original repository, but for now both the master and the branch have the same code Now just the dev/dual_iso_update is updated  ;D

iaburn

I have updated the branch with mutithread enabled for the demosaic function on Dual ISO, and the speed on the M1 just doubles :O From 56 seconds before for a 100 frames, to just 26 (with alias map disabled on both cases)
I always test the speed improvements on playback, disabling drop frame mode and measuring the time it takes to go through a 100 frames. I feel this way raw ISO processing has more weight on the total time than exporting.

The only problem on my computer at least, is that the bigger the window, the slower the playback... A 1080p clip plays at over 25fps if I make the window small, but just about 12fps when I make it bigger.  It doesn't happen on my windows PC.

masc

Quote from: iaburn on February 01, 2023, 12:35:14 PM
The only problem on my computer at least, is that the bigger the window, the slower the playback... A 1080p clip plays at over 25fps if I make the window small, but just about 12fps when I make it bigger.  It doesn't happen on my windows PC.
That is because of QPainter / QGraphicsScene engine. I found no way to have it always fast. It seems it draws the pixels individually...  ::)
5D3.113 | EOSM.202

iaburn

Quote from: masc on February 01, 2023, 08:28:15 PM
That is because of QPainter / QGraphicsScene engine. I found no way to have it always fast. It seems it draws the pixels individually...  ::)

At least I'm not crazy, I thought I was the only one  :D

I've added now the openmp directives to almost all the loops I could on Dual ISO. I took these screenshots while playing the same dual ISO video on windows and mac, an image is worth a thousand words  :o

Mac current arm64 release:


Mac arm64 with multithread:


Win current x64 release:


Mac x64 with multithread:

vastunghia

iaburn, I love you

Would be eager to test your code on Mac x86, not sure where I can get it. Did you fork ilia's master on GitHub?

PS: is it multi threading or multiprocessing, strictly speaking?
5D3 for video
70D for photo

iaburn

Here is the fork, it will only be faster with Dual ISO! https://github.com/anibarro/MLV-App
By all means, please test it on Mac x86 if you have the chance and report back any issues. My x86 macbook pro is a dual core from 2012, too old to benefit much from this...

I guess it's multi threading and multiprocessing. Openmp is handling the threads and distributing loops among them.

Danne

Cool stuff will test later. By the way. Uploaded a new eos m version build. With 2.8 it would not start recoridn dualiso until like the third frame but fixed now.

Another question. I believe dualiso was autodetected before? Seems the diso blcok is there but Mlv app isn´t following it anymore? @masc?
Block: DISO
  Offset: 0x000007f0
  Number: 17
    Size: 24
    Time: 7738.273000 ms
     Mode:        1
     ISO Value:   0

Mode: 1

iaburn

Quote from: Danne on February 01, 2023, 10:08:21 PM
Cool stuff will test later. By the way. Uploaded a new eos m version build. With 2.8 it would not start recoridn dualiso until like the third frame but fixed now.

Another question. I believe dualiso was autodetected before? Seems the diso blcok is there but Mlv app isn´t following it anymore? @masc?
Block: DISO
  Offset: 0x000007f0
  Number: 17
    Size: 24
    Time: 7738.273000 ms
     Mode:        1
     ISO Value:   0

Mode: 1

Thanks for the heads-up, I'll update. And I've also noticed that it was not auto-detecting dual iso  ::)

masc

@iaburn: VERY IMPRESSIVE! WOW! Tested your dualiso clips on Intel i7 Quadcore Mac. In playback it feels like double speed now. In export to ProRes422 AVFoundation: 1:26 vs. 1:00 for your 100frames 2.5K clip. The cores now are used!

However I found a problematic clip, which now looks worse than before - even if it is processed also in double speed. See all the artifacts around the tree. Left: yours, right: official. Most of this can be removed with MLVApp CA Desaturate slider. But in e.g. Resolve, this doesn't exist.


https://www.dropbox.com/s/642u0t8kqy9od3e/5DII-DualIso.MLV?dl=0

Quote from: Danne on February 01, 2023, 10:08:21 PM
Cool stuff will test later. By the way. Uploaded a new eos m version build. With 2.8 it would not start recoridn dualiso until like the third frame but fixed now.

Another question. I believe dualiso was autodetected before? Seems the diso blcok is there but Mlv app isn´t following it anymore? @masc?
Block: DISO
  Offset: 0x000007f0
  Number: 17
    Size: 24
    Time: 7738.273000 ms
     Mode:        1
     ISO Value:   0

Mode: 1

Here it still works... in both versions, official and iaburns. (if "force" button is hidden, all is fine. In my screenshot, the clip is too old for this.)
5D3.113 | EOSM.202

vastunghia

Quote from: iaburn on February 01, 2023, 09:53:41 PM
By all means, please test it on Mac x86 if you have the chance and report back any issues.

Ok so, tested uncompressed cDNG export for a lossless 14-bit 1x1 3584x1500 Dual ISO MLV clip (on i5-8500, 6-core) with 5x5 chroma smoothing. Here we go:

  • Official 1.14 release: 1.92 s / frame
  • ilia's 330563 commit with Qt6-llvm15: 1.79 s / frame
  • iaburn's 254ad90 commit with Qt6-llvm15: 0.75 s / frame (1.3 fps)
A nice 150% increase in export speed! 8)

Congrats iaburn and all.

Still have to check exported DNG quality, didn't have the time. Will update this post in 12h time.
5D3 for video
70D for photo

Mattia

Quote from: vastunghia on February 02, 2023, 08:56:59 AM
Ok so, tested uncompressed cDNG export for a lossless 14-bit 1x1 3584x1500 Dual ISO MLV clip (on i5-8500, 6-core) with 5x5 chroma smoothing. Here we go:

  • Official 1.14 release: 1.92 s / frame
  • ilia's 330563 commit with Qt6-llvm15: 1.79 s / frame
  • iaburn's 254ad90 commit with Qt6-llvm15: 0.75 s / frame (1.3 fps)
A nice 150% increase in export speed! 8)

Congrats iaburn and all.

Still have to check exported DNG quality, didn't have the time. Will update this post in 12h time.

Is this increase only on Mac? Any chance for the Windows version?

iaburn

Quote from: masc on February 02, 2023, 08:10:54 AM
However I found a problematic clip, which now looks worse than before - even if it is processed also in double speed. See all the artifacts around the tree. Left: yours, right: official. Most of this can be removed with MLVApp CA Desaturate slider. But in e.g. Resolve, this doesn't exist.

Thanks for testing! This artifacts on the tree are created by my "fix" for the pink lines on the fullres_reconstruction function  :-[
I will try to understand better what the values are to see if auto-adjusting the threshold will be possible and if that would be enough. I wish we could ask someone who really understand all this stuff... Maybe letting the user adjust the value using a slider could be a temporary solution at least

@vastunghia thanks a lot for sharing, I'm curious what the performance gain will be with different hardware :)

@Mattia I'm doing all the testing in Windows, every multicore processor should benefit from this (the more cores, the more benefit most likely)

vastunghia

Quote from: iaburn on February 02, 2023, 09:23:35 AM
Maybe letting the user adjust the value using a slider could be a temporary solution at least

My 2 cents: that could be a final solution as well. Guess it could be nearly impossible to devise an algorithm that achieves optimal results automagically in all circumstances. A final word left to the user would be very healthy IMO.
5D3 for video
70D for photo

masc

Quote from: Mattia on February 02, 2023, 09:15:13 AM
Is this increase only on Mac? Any chance for the Windows version?
The dualiso refactoring is for all OS. The compiler optimization is macOS only.

Quote from: iaburn on February 02, 2023, 09:23:35 AM
Maybe letting the user adjust the value using a slider could be a temporary solution at least
Let me know if you wish me to create another slider. I then need min/max value and number of steps.
5D3.113 | EOSM.202

Mattia

Quote from: iaburn on February 02, 2023, 09:23:35 AM

@Mattia I'm doing all the testing in Windows, every multicore processor should benefit from this (the more cores, the more benefit most likely)

When will you release an updated version on the website? :)

iaburn

Quote from: masc on February 02, 2023, 01:07:44 PM
Let me know if you wish me to create another slider. I then need min/max value and number of steps.

In theory they are 20bit unsigned integers, so up to 1048512 with the granularity on the slider like 10000 should work, and it should default to 0.
But let's wait a bit to see if there is a better solution to fix the stripes. I'm not convinced of going for this solution because if you would have pink stripes in your clip, there might not be a value that removes the stripes and don't mess the tree branches ::)

Quote from: Mattia on February 02, 2023, 04:04:57 PM
When will you release an updated version on the website? :)
Still testing and it has problems, but you can try and report your issues with this windows version (if it works): https://mega.nz/file/Vh1xVJTY#B6RM7zaSbMyOVgR6IByvN8F6LeoQS-HL-h1ZdYbvjQE https://mega.nz/file/ohMxxJqb#T2OKt8gRuRSauLakxVXfsoCLqC9M-lMVhfmcokkkMcc

masc

Quote from: Mattia on February 02, 2023, 04:04:57 PM
When will you release an updated version on the website? :)
Release comes when it is ready. Until that: feel free to compile as much commits you like. It is very easy.
5D3.113 | EOSM.202

theBilalFakhouri

Quote from: iaburn on February 02, 2023, 04:16:41 PM
Still testing and it has problems, but you can try and report your issues with this windows version (if it works): https://mega.nz/file/Vh1xVJTY#B6RM7zaSbMyOVgR6IByvN8F6LeoQS-HL-h1ZdYbvjQE

This version re-introduced the artifacts which was the reason why openmp was disabled completely in the past, the artifacts happens randomly in MLV clip:

-This is the same frame, first photo with artifacts and second without it:





-These two images were proceeded with the same MLVApp version linked above.

This version doesn't have the artifacts:
Quote from: iaburn on January 29, 2023, 03:58:42 PM
If someone with Windows have time to try, please use this version to compare with the current release.

iaburn

Quote from: theBilalFakhouri on February 02, 2023, 05:19:59 PM
This version re-introduced the artifacts which was the reason why openmp was disabled completely in the past, the artifacts happens randomly in MLV clip:

Hi, please note that Masc already reported an issue a few post above that's most likely the same, not related with openmp but with my faulty fix for pink stripes on higlights. I would like to find a solution that works in all cases, but still need to figure out how.

To make sure that was the issue, please clone the default branch on this repository,set offset_threshold here to 0 (edit: not to 0, the oposite! INT_MAX for example) and report back. Thanks!

PS: could you please share a few frames from that video for my tests?

Danne

Quote from: theBilalFakhouri on February 02, 2023, 05:19:59 PM
This version re-introduced the artifacts which was the reason why openmp was disabled completely in the past, the artifacts happens randomly in MLV clip:

-This is the same frame, first photo with artifacts and second without it:





-These two images were proceeded with the same MLVApp version linked above.

This version doesn't have the artifacts:
Could you test that file with fullres blending to OFF bilal?

iaburn

I've removed the "fix" from the branch so people can focus on actual problems from openmp and don't get confused with this, and also updated the compiled version that I posted before.