View Full Version : Frame doubling and motion blur function
Atak_Snajpera
2nd January 2009, 22:24
I have interlaced footage from NTSC Canon HF100 camcorder and I want to achieve smooth 23.976 fps. In first place I would deinterlace footage to 59.94 fps and then I would need some good function to interpolate to 119.88. My question is which function would you recommend? Is MVflowfps good ?
I also need function which can emulate 1/25 (or 1/30) shutter speed (added motion blur). I need that because interlaced footage at 1/50 shutter speed does not look good after deinterlacing to 25 fps. (Jerky playback)
Sagekilla
2nd January 2009, 22:41
MVFlowFPS is about as good as you'll get. I'd do something like:
Deinterlacer() # 30i --> 60p
MFlowFPS(num=120000,denom=1001) # 60p --> 120p
MFlowBlur() # Motion blur
# Drop Frames for 120p --> 24p? Or maybe blend?
if you play around with those 3 appropriately you may be able to achieve some good results. Do you have any samples for us to play with?
Atak_Snajpera
2nd January 2009, 22:45
Yes! I'm uploading now! Thanks!
Sagekilla
2nd January 2009, 23:23
I can't guarantee this will look good (because I faked having a 30i --> 60p by forcing a 30p clip I had to 60p) but I had some good results with the following:
src = last # Assuming you've already deinterlaced to 60p
blur = 0.5 # Tweak to taste.
super = src.MSuper(pel=2)
bvec = super.MAnalyse(isb=true,delta=1,blksize=8,overlap=4)
fvec = super.MAnalyse(isb=false,delta=1,blksize=8,overlap=4)
src = src.MFlowFPS(super,bvec,fvec,num=120000,den=1001)
super = src.MSuper(pel=2)
bvec = super.MAnalyse(isb=true,delta=1,blksize=8,overlap=4)
fvec = super.MAnalyse(isb=false,delta=1,blksize=8,overlap=4)
src = src.MFlowBlur(super,bvec,fvec,blur=blur)
super = src.MSuper(pel=2)
bvec = super.MAnalyse(isb=true,delta=1,blksize=8,overlap=4)
fvec = super.MAnalyse(isb=false,delta=1,blksize=8,overlap=4)
output = src.MFlowFPS(super,bvec,fvec,num=25,den=1)
return output
I'm pretty sure I may have messed something up a bit though. You'll just need to tweak the numbers (specifically num and den in my 2 MFlowFPS calls) to get it right. It's a bit unwieldy and slow, but it actually worked really well for me
Edit: On another note, you can also try switching the order of the last two calls. Meaning do: FlowFPS --> FlowFPS --> FlowBlur instead of FlowFPS --> FlowBlur --> FlowFPS. You may get better results.
Atak_Snajpera
2nd January 2009, 23:34
Is FlowFPS compatible with AviSynth MT?
Sagekilla
2nd January 2009, 23:36
If you use MVTools 2 (which the script above uses) then you should be able to use MT without issue. Only issue is how complex the flow is, which means you may need to use a fairly large cache for it.
Atak_Snajpera
3rd January 2009, 00:10
25 fps
http://www.sendspace.com/file/se1oz8
29.97 fps
http://www.sendspace.com/file/98m1ug
2Bdecided
5th January 2009, 17:09
@Sagekilla,
For 60i > 24p I don't think the final MFlowFPS back to 25 (or 24) is much use - selectevery(something) is good enough once it's blurred.
FWIW I did what the OP wants, but using the old version of mvtools:
http://www.hv20.com/showthread.php?p=26929#post26929
Cheers,
David.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.