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 2 Guests are viewing this topic.

Danne

Thanks for sharing your build. I just compiled it on my mac. Do you have any nice test files maybe? EVen if code isn´t fullproof yet it´s still nice to test stuff :).

iaburn

I have just a couple of files for the pink stripes ("5K" and 2.5K) and the problematic clip that you pointed out:
https://mega.nz/folder/px0wEILA#Nw4286WtySSEeOBX0w4A9g

I had hundreds of dual ISO videos with problems, but delete the MLVs once I have the videos edited to save space u_u

Danne

Thanks. Those are enough. Will creates some files of my own eventually.

Danne

Did some testing. For comparison. Here are mlv_dump_on_steroids and cr2hdr processing the dualiso file from the 5d3 camera:
https://bitbucket.org/Dannephoto/mlv_app_compiler-git/downloads/dualiso_jip-hop_source.zip
Both binaries compiled from here:
https://bitbucket.org/Dannephoto/magic-lantern_jip_hop_git/src/master/
Branch:
crop_rec_4k_mlv_snd_raw_only

Unfortunately issues are still there from latest commits. Or can you get better results here?

Cropped examples from this file problematic_dualiso_5dIII.MLV:

Processed in program Switch(mlv_dump_on_steroids and cr2hdr)


Mlv App


iaburn

More or less the same for me. I have to disable "Alias map" to get rid of the weird shadow, but there are still stripes on the bright parts. The only way to get a clean image is to disable full reconstruction.
Fullres:


Halfres:


The only thing that I took from the existing Dual ISO code was the Amaze and Mean interpolation functions, because the ones on that code were producing weird colors and I thought they will be the same, but apparently not...
I'll check why the original functions were not working, maybe that will fix it  ???


Danne

Oh, had no idea about alias map and fullres blending. Should be turned off as starting point I´d say. Maybe dualios was working much better than I thought all along just because of these two mofos? Cr2hdr probably runs without fullres blending as a starting point?
EDIT: Seems it´s fullres blending that is the issue here. But what is alias mapping doing?

It´s already in crop_rec_4k_mlv_snd_raw_only in the master branch. I uploaded it to git but I have included hg in there but you can skip all that. Source files for cr2hdr and mlv_dump should be the very same you have worked with already.
You can open then source in Sourcetree app and navigate in that program. Should be easy to see where you are in there. Or I use this tool myself but might be a bit of overkill. https://bitbucket.org/Dannephoto/ml_compiler-git/src/master/

EDIT: hg roundtrip in Sourcetree will not work. Use Compiler.app if needed.

iaburn

Thanks! I'll take a look at all this.

Sadly, disabling the fullres reconstruction is giving much less detail. I think alias map is supposed to improve aliasing on dark and bright areas, but I don't notice much difference

By the way, how do you use mlv_dump_on_steroids and cr2hdr to process one frame of an MLV clip like you did?

Danne

Actually I processed all frames and just took the first one out.
https://www.magiclantern.fm/forum/index.php?topic=15108.0

Drag folder with mlv file.
Select option (ms)
Deselect from next menu so that dualiso automation is enabled in (ms) menu.
Select (r) and enter.

But so the major change now is you have a better amaze code for dualiso in there? All else was supposedly working when fullres was off? Let's disable that per default. I had so many files broken due to this. I.mean, even with less resolution we get betterr dynamic range, clean files and not having to worry about failing processing.

By the way. I think there's vertical stripes code working good with dualiso. Some older raw2dng code. Think I had that in cr2hdr too. Well, so much to do here  8)

iaburn

I could finally could make the Switch app work, couldn't make it when I tried before. An now I understand why the DNGs are so small, it was using just Halfres with dual ISO.

Quote from: Danne on January 28, 2023, 01:31:11 PM
But so the major change now is you have a better amaze code for dualiso in there? All else was supposedly working when fullres was off? Let's disable that per default. I had so many files broken due to this. I.mean, even with less resolution we get betterr dynamic range, clean files and not having to worry about failing processing.

I think there was no difference at all between the code that was there and the one I tool from cr2hdr, so basically the only useful things after all the mess are: The Fullres blending ON/OFF switch (was not working before), the Horizontal stripes fix (still need to find a clip where it's useful) and the horizontal pink strips fix when Fullres is ON (this fix needs testing on much more videos).

When including the multi threaded loops I see a big improvement on my measured times within the code, but when I test it it runs slower than the current version... very strange

Quote from: Danne on January 28, 2023, 01:31:11 PM
By the way. I think there's vertical stripes code working good with dualiso. Some older raw2dng code. Think I had that in cr2hdr too. Well, so much to do here  8)

If you find this code please tell me, I can add it now that I know where things are on the App  :D

Danne

In lv_rec folder you find raw2dng.c. Search for apply_vertical_stripes_correction.
In mlv_dump.c it´s called like this:
                        /* call raw2dng code, replaces frame_info.vertical_stripes */
                        if (fix_vert_stripes)
                        {
                            fix_vertical_stripes();
                        }

There is also this note in mlv_dump.c:
//frame_info.vertical_stripes     = fix_vert_stripes; //Unreliable and buggy with dualiso

I believe I tested this with a user and got good results with dualiso even. Worth to be tested. It´s all in the same jip-hop branch.
Regarding openmp stuff I suggest you contact @bouncyball to review your stuff since he´s the one doing the major work on this before.


iaburn

Thanks for the tip!
I've disabled the standard stripes fix when dual ISO is active and implemented the fix that you sent me, it's not breaking the image, but I cannot see differences either. I see that this part of the code is running, but no changes, maybe because I don't have any good MLV files to test  ::) Do you have any dual ISO files with the vertical stripes problem?

I'm testing now different configurations and videos with and without the openmp directives, trying to get consistent results to know what to do  ::)


Danne

Yes, that is very good work. I think it will show if the file is having issues. Hard to find a solid example right now but it was tested a year or two ago with a specific dualiso file and the result was striking.
Good work!

Danne

Around here was the moment where we confirmed issues and that the older vertical stripes code were more robust. 2017, oh my, time flies.
https://www.magiclantern.fm/forum/index.php?topic=15108.msg183884#msg183884

iaburn

Uff very hard to notice those vertical stripes, let's see if someone has an example that I can use.

In the meantime, I've done a lot of test and it seems that the new dual ISO code that I've added it's slower and the only benefit was that half-res was working, so I've fixed halfres on the old code and added the openmp directives there, and now I can get consistent results.

If someone with Windows have time to try, please use this version to compare with the current release.
Edit: Same for MacOS arm64[/s]]Same for MacOS arm64
I've noticed the biggest gains with this clip, from 6:25 on the current version, to 1:42 on this test version  :o
Edit: On my Mac M1, on the current version takes 2:16 and on the new one just 56 seconds.
Other clips doesn't have such big gains, but all my dual iso clips improved their speed (and the temporal fix for pink stripes is added as well)

Danne

Cool.
With older vert stripes code at least user can disable stripes correction when processing dualiso but also enable it once stripes shows. Before it was totally useless for dualiso  8).

masc

Quote from: iaburn on January 29, 2023, 03:58:42 PM
Edit: Same for MacOS arm64
I've noticed the biggest gains with this clip, from 6:25 on the current version, to 1:42 on this test version  :o
Unfortunately it doesn't work here. Can't open the app and also can't sign it. Something seems to be wrong.

Edit: downloaded and compiled your version:
the stripes are gone with it. Speed is better: 1:24min the main branch, 1:16min with your branch. Both exported to ProRes422 on my MacBookAir M1.

Nice work!
5D3.113 | EOSM.202

iaburn

Quote from: masc on January 29, 2023, 07:54:25 PM
Unfortunately it doesn't work here. Can't open the app and also can't sign it. Something seems to be wrong.

Edit: downloaded and compiled your version:
the stripes are gone with it. Speed is better: 1:24min the main branch, 1:16min with your branch. Both exported to ProRes422 on my MacBookAir M1.

Nice work!

The version on git is not updated because I started again in another copy and I cannot have 2 forks from the same project :(
So the one that you tried is actually slower on many clips, that's why I started again from the master branch.
Please try again with this code, it should be faster https://mega.nz/file/p4dn0QYA#ySjr95pBiri-2EUKM1Dk6Qp6sO3CdTT7mb2VLlRNZJc

Danne

Tested your first fork which exports at 1:08(test clip) against regular mlv app source 1:33. Your provided test source says 3 minutes but halfway in Mlv app unexpectedly quits. I´d say your fork at github was fastest ;).

masc

The uploaded codes, compiled and tested ends in strange processing. Each try looks different, for one and the same frame...
5D3.113 | EOSM.202

iaburn

Quote from: masc on January 29, 2023, 09:00:50 PM
The uploaded codes, compiled and tested ends in strange processing. Each try looks different, for one and the same frame...

Quote from: Danne on January 29, 2023, 08:58:20 PM
Tested your first fork which exports at 1:08(test clip) against regular mlv app source 1:33. Your provided test source says 3 minutes but halfway in Mlv app unexpectedly quits. I´d say your fork at github was fastest ;).

Sorry you are both right, I uploaded the code that I was working on, with some extra untested "pragma paralels" and it's probably broken, but before I broke it, it was significantly faster than the code on Github. I'll debug the latest changes.
For comparison, a clip that takes 2:23 on the Github code, took 1:42 on my WIP.
Another clip goes from 1:48 to 54 seconds, but on the current release was 1:28, so faster than on my latest code on Github.

I forgot to mention that I always turn off "alias map"!

Danne


iaburn

I've updated the source in mega with the lines breaking it commented:
https://mega.nz/file/p4dn0QYA#ySjr95pBiri-2EUKM1Dk6Qp6sO3CdTT7mb2VLlRNZJc

This should work and be faster, but there are a lot more parts that can be optimized with time and patience

Danne

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?

Danne

Tested some more wit dualiso. Very promising. Fast export, and files are as clean as a canon R5 in the shadows ;).