Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 23rd October 2016, 05:33   #921  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Quote:
Originally Posted by johnmeyer View Post
Is the MVTools for vapousynth substantially different than MVTools for AVISynth? I keep putting off using vapoursynth, but if I can get visibly better results, then I'll take the time to install and learn.
you were obviously gratified with how I fixed that Iceland footage last time, and you gave up anyways..
why should this time be any different?
feisty2 is offline   Reply With Quote
Old 23rd October 2016, 10:36   #922  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by StainlessS View Post
Kolak, If you come up with a 'one size fits all' solution, be sure to post it, thank you sir. EDIT: or, A one size fits nearly all.
There maybe solution, which is adaptive block
The things is that Groucho2004 is not using 1 command with a block size, but recalculate option, which I assume may help with quality.

Last edited by kolak; 23rd October 2016 at 11:39.
kolak is offline   Reply With Quote
Old 23rd October 2016, 10:38   #923  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by johnmeyer View Post
Is the MVTools for vapousynth substantially different than MVTools for AVISynth? I keep putting off using vapoursynth, but if I can get visibly better results, then I'll take the time to install and learn.
I think it's the same. Not sure about speed, but there is new version for vs coming with some speed optimisation.
kolak is offline   Reply With Quote
Old 23rd October 2016, 13:33   #924  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Quote:
Originally Posted by kolak View Post
There maybe solution, which is adaptive block
The things is that Groucho2004 is not using 1 command with a block size, but recalculate option, which I assume may help with quality.
It definitely helps with denoising and stuff like that, not with frame interpolation
feisty2 is offline   Reply With Quote
Old 23rd October 2016, 13:45   #925  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Thanks, but I have some idea.

Some scenes benefit from search=6 or search=7 (they produce double edges but no artefacts which is better when watched in full motion), so if I use 3 step re-calculate: search=4, then search=6, then search=7 then in theory I should get better interpolation (assuming best vectors are picked properly). No?
This is almost like my 2 pass adaptive search/block idea.

Last edited by kolak; 23rd October 2016 at 13:48.
kolak is offline   Reply With Quote
Old 23rd October 2016, 14:01   #926  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Quote:
Originally Posted by kolak View Post
Thanks, but I have some idea.

Some scenes benefit from search=6 or search=7 (they produce double edges but no artefacts which is better when watched in full motion), so if I use 3 step re-calculate: search=4, then search=6, then search=7 then in theory I should get better interpolation (assuming best vectors are picked properly). No?
This is almost like my 2 pass adaptive search/block idea.
Recalculate works by minimizing the vector SAD, it recalculates a vector if its SAD is above the threshold
You get search=3 by picking vectors calculated by exhaustive search in different (horizontal or vertical) directions based on SAD
and you claimed that search=3 sucked,,,
feisty2 is offline   Reply With Quote
Old 23rd October 2016, 14:20   #927  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Yes, search=3,4 or 5 maybe produced best vectors SAD wise, but they introduce artefacts on some scenes (e.g. car going quickly across the frame). In such a case search=7 will do bit of double edges, but this is way better than artefacts from e.g. search=3.
kolak is offline   Reply With Quote
Old 23rd October 2016, 14:27   #928  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Then your recalculating different kinds of searching algorithms method won't work cuz it's basically a less efficient search=3
feisty2 is offline   Reply With Quote
Old 23rd October 2016, 14:40   #929  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
I thought this will use search=3 for most frames and than just switch to eg. search=7 only for some frames (or none).
I'm running test now which then I will compare against pure search=3 mode (PSNR wise).
kolak is offline   Reply With Quote
Old 23rd October 2016, 18:50   #930  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Looks like this makes most frames about the same as pure search=3, but then some of them (those with artefacts) are different as they are coming from search=7. So it does behave sort of hybrid and gives different result than pure search=3. Speed suffers a lot also
but... some scenes don't look good on TV- bit juddery...
DCT=1 is stil best bet for quality and slow speed

Last edited by kolak; 23rd October 2016 at 20:04.
kolak is offline   Reply With Quote
Old 24th October 2016, 01:19   #931  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
In my humble opinion the Feisty2, is the replacement for Didee [EDIT: time will tell if of worth] , the big dog, on the block.
Unfortunately, he is not that nice.
He is what he is, we have to accept that and deal with it, not nice I know, but that is the Feisty2, thing.

Me Loves him, but what a pain. (Feisty, had a few beers, Forgive me or die)
[EDIT: You might want to specify how you will die, ie tragic accident etc]
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 24th October 2016 at 02:08.
StainlessS is offline   Reply With Quote
Old 24th October 2016, 03:47   #932  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,691
Quote:
Originally Posted by StainlessS View Post
In my humble opinion the Feisty2, is the replacement for Didee [EDIT: time will tell if of worth] , the big dog, on the block.
Unfortunately, he is not that nice.
He is what he is, we have to accept that and deal with it, not nice I know, but that is the Feisty2, thing.

Me Loves him, but what a pain. (Feisty, had a few beers, Forgive me or die)
[EDIT: You might want to specify how you will die, ie tragic accident etc]
He just took another minor shot at me, but I don't mind it because he's just trying to tell grandpa to get off his butt and get on with it.

He is not entirely wrong about that.

And I agree with the Didée comparison: neither of them suffer fools (which, I guess, includes me), but they both have pretty unique ways of looking at video problems and therefore develop very unusual solutions to problems.

The only real downside is that very few of us can understand how the scripts work and the presentation is often more cryptic than it really needs to be. This makes it very difficult to build on their work or take it in a new direction. This is my only real complaint: both "open source" and the work done in these forums requires a collegial approach because one person can seldom do everything needed to create great software.

Last edited by johnmeyer; 24th October 2016 at 03:50. Reason: added last sentence
johnmeyer is offline   Reply With Quote
Old 25th October 2016, 16:30   #933  |  Link
urukazuto
Registered User
 
Join Date: Oct 2016
Posts: 3
Thank you for the explanation and Suggestion.

I want to ask about MBlockFps Processing Mode, a lot of people apparently using mode = 0 (the fastest), and I read the documentation, it seems the mode 3 to 8 mentioning masking, are they further increased masking and quailty also? Anyone that try this?
urukazuto is offline   Reply With Quote
Old 6th November 2016, 00:49   #934  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
Quote:
Originally Posted by Groucho2004 View Post
I like MBlockFPS:

Code:
function foo(clip source, int "multi")
{
  last = source
  multi = default(multi, 2)

  super = MSuper(source, pel = 2, hpad = 0, vpad = 0, rfilter = 4)
  backward_1 = MAnalyse(super, chroma = false, isb = true, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
  forward_1 = MAnalyse(super, chroma = false, isb = false, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
  backward_2 = MRecalculate(super, chroma = false, backward_1, blksize = 8, searchparam = 1, search = 3)
  forward_2 = MRecalculate(super, chroma = false, forward_1, blksize = 8, searchparam = 1, search = 3)
  backward_3 = MRecalculate(super, chroma = false, backward_2, blksize = 4, searchparam = 0, search = 3)
  forward_3 = MRecalculate(super, chroma = false, forward_2, blksize = 4, searchparam = 0, search = 3)
  MBlockFps(source, super, backward_3, forward_3, FramerateNumerator(last) * multi, FramerateDenominator(last), mode = 0)

  return last
}
Perhaps might try this mod

Code:
Function foo2(clip source, int "multi") {
    last       = source
    multi      = default(multi, 2)
    prefilt    = DeGrainMedian()                                        # some smoothing
    superfilt  = MSuper(prefilt, hpad=16, vpad=16)                         # all levels for MAnalyse
    super      = MSuper(source, pel = 2, hpad = 16, vpad = 16, rfilter = 4) # one level is enough for MRecalculate
    bw_1       = MAnalyse(superfilt, chroma = false, isb = true, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1       = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    bw_2       = MRecalculate(super, chroma = false, bw_1, blksize = 8, searchparam = 1, search = 3)
    fw_2       = MRecalculate(super, chroma = false, fw_1, blksize = 8, searchparam = 1, search = 3)
    bw_3       = MRecalculate(super, chroma = false, bw_2, blksize = 4, searchparam = 0, search = 3)
    fw_3       = MRecalculate(super, chroma = false, fw_2, blksize = 4, searchparam = 0, search = 3)
    MBlockFps(source, super, bw_3, fw_3, FramerateNumerator(Source) * multi, FramerateDenominator(Source), mode = 0, Blend=False)
    return last
}
Hpad, and vpad are recommended in docs
Quote:
In MVTools before v2.0 the value of padding = block size was always used internally. Now it is not strict but recommended value.
With hpad=0, you can get oscillating (disappearing/reappearing) verticals at left and right edges when things move near screen edges.
Same top and bottom if vpad=0.
EDIT: I have not been able to reproduce this during current testing, but have noticed it in the past.

during some test comparisons, not using MRecalculate() produced some blockiness that was squashed by a single MRecalculate(blksize = 8).

I really dont like Blend=True default, it makes detecting scene changes bloody impossible.

This is probably what I will use in future, unless someone can suggest something better.
Code:
Function DoubleRate(clip c) {
    c
    prefilt   = DeGrainMedian() # some smoothing
    superfilt = MSuper(prefilt, hpad=16, vpad=16, rfilter = 4)             # all levels for MAnalyse
    super     = MSuper(pel=2, hpad=16, vpad=16,rfilter=4,levels=1) # one level is enough for MRecalculate
    bw_1      = MAnalyse(superfilt, chroma = false, isb = true, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1      = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    bw_2      = MRecalculate(super, chroma = false, bw_1, blksize = 8, searchparam = 1, search = 3)
    fw_2      = MRecalculate(super, chroma = false, fw_1, blksize = 8, searchparam = 1, search = 3)
    MBlockFps(super, bw_2, fw_2, num=0, den=0, mode=0, Blend=false)
    Return Last
}
EDIT: Maybe Overlap of say 2, could improve a little (on MRecalculate). ???
EDIT: Scratch above EDIT, produces weird flashing with Overlap=2 in MRecalculate.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 6th November 2016 at 01:08.
StainlessS is offline   Reply With Quote
Old 6th November 2016, 01:03   #935  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Quote:
Originally Posted by StainlessS View Post
Perhaps might try this mod

Code:
Function foo2(clip source, int "multi") {
    last       = source
    multi      = default(multi, 2)
    prefilt    = DeGrainMedian()                                        # some smoothing
    superfilt  = MSuper(prefilt, hpad=16, vpad=16)                         # all levels for MAnalyse
    super      = MSuper(source, pel = 2, hpad = 16, vpad = 16, rfilter = 4) # one level is enough for MRecalculate
    bw_1       = MAnalyse(superfilt, chroma = false, isb = true, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1       = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    bw_2       = MRecalculate(super, chroma = false, bw_1, blksize = 8, searchparam = 1, search = 3)
    fw_2       = MRecalculate(super, chroma = false, fw_1, blksize = 8, searchparam = 1, search = 3)
    bw_3       = MRecalculate(super, chroma = false, bw_2, blksize = 4, searchparam = 0, search = 3)
    fw_3       = MRecalculate(super, chroma = false, fw_2, blksize = 4, searchparam = 0, search = 3)
    MBlockFps(source, super, bw_3, fw_3, FramerateNumerator(Source) * multi, FramerateDenominator(Source), mode = 0, Blend=False)
    return last
}
Hpad, and vpad are recommended in docs

With hpad=0, you can get oscillating (disappearing/reappearing) verticals at left and right edges when things move near screen edges.
Same top and bottom if vpad=0.

during some test comparisons, not using MRecalculate() produced some blockiness that was squashed by a single MRecalculate(blksize = 8).

I really dont like Blend=True default, it makes detecting scene changes bloody impossible.

This is probably what I will use in future, unless someone can suggest something better.
Code:
Function DoubleRate(clip c) {
    c
    prefilt   = DeGrainMedian() # some smoothing
    superfilt = MSuper(prefilt, hpad=16, vpad=16, rfilter = 4)             # all levels for MAnalyse
    super     = MSuper(pel=2, hpad=16, vpad=16,rfilter=4,levels=1) # one level is enough for MRecalculate
    bw_1      = MAnalyse(superfilt, chroma = false, isb = true, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1      = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    bw_2      = MRecalculate(super, chroma = false, bw_1, blksize = 8, searchparam = 1, search = 3)
    fw_2      = MRecalculate(super, chroma = false, fw_1, blksize = 8, searchparam = 1, search = 3)
    MBlockFps(super, bw_2, fw_2, num=0, den=0, mode=0, Blend=false)
    Return Last
}
Make "overlap" > 0 and the blockiness will disappear
And then you'll see why small blocks suck at frame interpolation
feisty2 is offline   Reply With Quote
Old 6th November 2016, 01:16   #936  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
MAnalyse(blksize=16, overlap=8, ...)
And no extra pointless MRecalculate
feisty2 is offline   Reply With Quote
Old 6th November 2016, 01:27   #937  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
These two are garbage, I must have screwed up somewhere (weird flashing, EDIT: Green and Pink frames).

Code:
Function DoubleRate3(clip c) {
    c
    prefilt   = DeGrainMedian() # some smoothing
    superfilt = MSuper(prefilt, hpad=16, vpad=16, rfilter = 4)             # all levels for MAnalyse
    super     = MSuper(pel=2, hpad=16, vpad=16,rfilter=4)
    bw_1      = MAnalyse(superfilt, chroma = false, isb = true,  blksize = 16, OverLap=8, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1      = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, OverLap=8, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    MBlockFps(super, bw_1, fw_1, num=0, den=0, mode=0, Blend=false)
    Return Last
}

Function DoubleRate4(clip c) {
    c
    super     = MSuper(pel=2, hpad=16, vpad=16,rfilter=4)
    bw_1      = MAnalyse(super, chroma = false, isb = true,  blksize = 16, OverLap=8, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1      = MAnalyse(super, chroma = false, isb = false, blksize = 16, OverLap=8, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    MBlockFps(super, bw_1, fw_1, num=0, den=0, mode=0, Blend=false)
    Return Last
}
But this works ok
Code:
Function DoubleRate2(clip c) {
    c
    prefilt   = DeGrainMedian() # some smoothing
    superfilt = MSuper(prefilt, hpad=16, vpad=16, rfilter = 4)             # all levels for MAnalyse
    super     = MSuper(pel=2, hpad=16, vpad=16,rfilter=4,levels=1) # one level is enough for MRecalculate
    bw_1      = MAnalyse(superfilt, chroma = false, isb = true,  blksize = 16, OverLap=2, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    fw_1      = MAnalyse(superfilt, chroma = false, isb = false, blksize = 16, OverLap=2, searchparam = 3, plevel = 0, search = 3, badrange = (-24))
    bw_2      = MRecalculate(super, chroma = false, bw_1, blksize = 8, searchparam = 1, search = 3)
    fw_2      = MRecalculate(super, chroma = false, fw_1, blksize = 8, searchparam = 1, search = 3)
    MBlockFps(super, bw_2, fw_2, num=FramerateNumerator(c) * 2, den=FramerateDenominator(c), mode=0, Blend=false)
    Return Last
}
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 6th November 2016 at 03:56.
StainlessS is offline   Reply With Quote
Old 6th November 2016, 01:31   #938  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Overlap=8
Plus whirling and blockiness, you can only avoid one
feisty2 is offline   Reply With Quote
Old 6th November 2016, 01:45   #939  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
The two above Garbage functions still fail with Overlap=8, Green, Pink and Gray frames (sometimes), and jumping backwards and forwards in time.

EDIT: The two Garbage functions above, both work ok if changed to MFlowFps() and removing mode=0 (not an arg to MFlowFps).

Looks like something may be broken in latest (I think) mvtools MBlockFps.
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 6th November 2016 at 02:05.
StainlessS is offline   Reply With Quote
Old 6th November 2016, 02:00   #940  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Quote:
Originally Posted by StainlessS View Post
The two above Garbage functions still fail with Overlap=8, Green, Pink and Gray frames (sometimes), and jumping backwards and forwards in time.
So chroma was screwed, gotcha
Append "convettoy8()" at the end of the script and check if luma is okay
If it is, then that's probably an mvtools bug
feisty2 is offline   Reply With Quote
Reply

Tags
48fps, 60fps, framedoubling, interframe, smooth motion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 21:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.