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 18th January 2018, 15:36   #1  |  Link
a1s2d3f4
Registered User
 
Join Date: Nov 2010
Posts: 53
working to get the most out of SVPFlow (getting rid of smudginess)

(This is posted already on the SVP-team forum, but it's not very active there.)

I have used MVTools for 7 years converting PAL or 24fps videos to 60fps.

I use AVISynth with VirtualDub
My MVTools part of the script would go something like this:

Code:
#currently I have PAL 25fps video as my last operation
num_frames = 12
super = MSuper(pel=2)
backward_vec = MAnalyse(super, overlap = 4, isb = true, search = 3)
forward_vec = MAnalyse(super, overlap = 4, isb = false, search = 3)
v100=MFlowFps(super, backward_vec, forward_vec, num = num_frames * FramerateNumerator(last), den = FramerateDenominator(last))
v200 = ConvertToY8(v100).AssumeFPS(300).ChangeFPS(60)

Now, with SVPFlow, I have:
Code:
num_frames  = 12

super = SVSuper("{pel: 2, gpu: 1}")
vectors     = SVAnalyse(super, "{overlap: 4}")
forward_vec = SVConvert(vectors, false)
backward_vec = SVConvert(vectors, true)
super_mv = MSuper(pel=2, hpad=0, vpad=0) #padding should be zero here!
v100 = MFlowFps(super_mv, backward_vec, forward_vec, num = num_frames * FramerateNumerator(last), den = FramerateDenominator(last))
v200 = ConvertToY8(v100).AssumeFPS(300).ChangeFPS(60)
I can already see the improvement:
mvtools:
https://drive.google.com/file/d/1mX4...ew?usp=sharing
SVPFlow:
https://drive.google.com/file/d/1qdk...ew?usp=sharing

What I am wondering about is can I do something else to further improve the "smudginess"?
I am including the original frames from the 25fps footage between which the interpolation occurs.
I wish there was a way to get the interpolation algorithm to recognize the non-moving background (piano keys) and the moving object - hand.
https://drive.google.com/file/d/12_w...ew?usp=sharing
https://drive.google.com/file/d/1nT3...ew?usp=sharing

Speed is not an issue as I export to a separate file and can let the computer sit overnight if necessary.
a1s2d3f4 is offline   Reply With Quote
Old 18th January 2018, 16:57   #2  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 3,634
Quote:
Originally Posted by a1s2d3f4 View Post
I wish there was a way to get the interpolation algorithm to recognize the non-moving background (piano keys) and the moving object - hand.
That sounds like the holy grail of frame interpolation.

This isn't perfect, but based on my limited experience, it's generally better.
FrameRateConverter

https://forum.doom9.org/showthread.php?t=174793

PS You probably should use it with these versions if you're not using them already:
https://github.com/pinterf/masktools/releases/
https://github.com/pinterf/mvtools/releases

Last edited by hello_hello; 18th January 2018 at 17:16.
hello_hello is offline   Reply With Quote
Old 18th January 2018, 17:43   #3  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,011
One of the keys to getting optimal results from motion estimation frame rate changes is to use your own block sizes. In both the code snippets you posted, you failed to do this.

If you look at some of the threads feeding into that FrameRateConverter thread you'll see some MVTools2 code I posted which became one of the benchmarks used to compare the improvements the FrameRateConverter author was trying to achieve. He worked really hard at making improvements and did some very clever things, but I am not convinced that his results are always better than what you can get with MVTools2 or SVPFlow, which is the same code re-worked and slimmed down (features removed) in order to run in real time using a GPU.

I strongly suggest you read through this thread, which discusses many of the issues surrounding frame rate conversion:

SlowMo: Simple slow motion, using interpolation

Slow motion is the exact same thing as changing the frame rate. The only difference is that you add a playback speed change when doing slow motion.

That thread led to this one:

SVP-like frame interpolation?

That thread then led to MysteryX developing FrameRateConverter. You can read about that here:

FrameRateConverter (Official)
johnmeyer is offline   Reply With Quote
Old 19th January 2018, 14:27   #4  |  Link
a1s2d3f4
Registered User
 
Join Date: Nov 2010
Posts: 53
Cool. Lots of reading. Hopefully, I can find some time over the weekend to read and try applying.

@johnmeyer Yes, I agree that if I figured out a way to use these "block sizes" correctly (I am a bit slow, and even though I have read through MVTools website, I haven't figured out what to do with all the parameters) things would improve.

Thanks for the replies.
a1s2d3f4 is offline   Reply With Quote
Reply

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 06:41.


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