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. |
3rd March 2007, 08:33 | #1 | Link |
Registered User
Join Date: Nov 2006
Posts: 5
|
speeding up mvbob
hi , I've been lurking for some months and trying avisynth, I'm using mvbob to deinterlace HD video in 1080i, very good results but very slow, about 0.2 fps on a X2 3800+, thats about 5 days per hour of video, unpractical
is there any way to improve speed?, I'm using also fft3GPU and the speed increase is amazing from cpu version wonder if can be done a mvbobGPU version! Last edited by Guest; 3rd March 2007 at 14:30. Reason: fix title typo |
3rd March 2007, 10:09 | #2 | Link |
Registered User
Join Date: Apr 2005
Posts: 1,339
|
Hi drevel, welcome to the forums. If there were any signficant ways to speed up Mvbob, they would have been implemented long ago. Put SetMemoryMax(512) as the first line in your script; sometimes it can make a big difference.
My favorite deinterlacing for 1080i is pretty simple, but very nice looking. It bobs to 59.94 fps - not DVD player compatible, but who cares? Just try it on a 5 minute stretch of video. Code:
tdeint(mode=1) Crop(8,8,-8,-8) Lanczos4Resize(640,352) Code:
tdeint(mode=2) Crop(8,8,-8,-8) Lanczos4Resize(640,352) Last edited by Pookie; 3rd March 2007 at 12:44. |
3rd March 2007, 12:53 | #3 | Link |
Derek Prestegard IRL
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,989
|
I find that TDeint is a great choice for working on projects where time is an even remotely important vaue
MVBob is amazing, but TDeint is IMHO 90% as good, and runs so much faster! I get 1-2 fps for SD material with MVBob, and 10-20fps with TDeint.
__________________
These are all my personal statements, not those of my employer :) |
5th March 2007, 05:25 | #4 | Link |
Silver Über Alles
Join Date: Aug 2006
Location: Australia
Posts: 269
|
I guess it really depends on the source ? I usually try tdient and skip through every 1000 or so frames to make sure there are no nasties (that i can see anyway). If it doesnt work as planned i go and try securebob then mvbob or mcbob.
|
5th March 2007, 08:11 | #5 | Link |
Registered User
Join Date: Apr 2005
Posts: 1,339
|
Absolutely. The source dictates the method to fix it. Still, I wish we all had Crays to do motion compensated deinterlacing of 1080i sources But usually, 1080i doesn't need such intricate processing, and most deinterlacing artifacts are masked when reducing the image size anyway.
|
5th March 2007, 08:35 | #6 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
i suppose some accuracy could be sacrificed for speed if mvanalyse/compensate were replaced with clouded's motion.dll.
but for HD stuff it's probably not worth it - tdeint should be adequate (especially on HDV which is balls anyway).
__________________
sucking the life out of your videos since 2004 |
6th March 2007, 14:36 | #9 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
@ terka:
i don't know atm. there's analogous functions to mvtools in motion.dll, but i'm not sure about the mask making capabilities (mvtools has loads of them). i'm not too interested in developing something for it myself - i got a new job that doesn't involve interlace as much as the old one (instead it's 2k film scans ) [edit] feel free to have a shot yourself though. it'll be a good way to learn - it's not rocket science
__________________
sucking the life out of your videos since 2004 |
8th March 2007, 10:30 | #12 | Link |
AviSynth plugger
Join Date: Nov 2003
Location: Russia
Posts: 2,183
|
you can try blksize=16
__________________
My Avisynth plugins are now at http://avisynth.org.ru and mirror at http://avisynth.nl/users/fizick I usually do not provide a technical support in private messages. |
15th March 2007, 19:11 | #13 | Link |
Sys/A.D./min
Join Date: Feb 2007
Location: Russia
Posts: 5
|
...if somebody around have a documentation to motion.dll and latest build of it... pls can u paste a link for it in this thread or explain what parameters can to be used with it...because the default link to developer page is "forbidden" fo me...
|
2nd May 2008, 23:40 | #16 | Link |
Registered User
Join Date: May 2005
Posts: 44
|
Great method, just one question. If my original source is 30fps and I use this to go 60fps, what is the proper way to adjust my audio stream? (If I need to at all)
Sorry, I'm still new to all of this, but I really enjoy learning new methods. |
12th May 2008, 20:04 | #20 | Link |
LaTo INV.
Join Date: Jun 2007
Location: France
Posts: 701
|
You can also try this :
Code:
### "Light" MvBob (Speed Up) by LaTo ### ### Need: Motion.dll, Corrector.dll, EEDI2.dll, Vinverse.dll, Medianblur.dll ### ### Use: MvBobFaster() function MvBobFaster(clip Input) { # Input Order = ( Input.GetParity == True ) ? 1 : 0 Input = ( order == 1 ) ? Input.AssumeTFF() : Input.AssumeBFF() # Bobbed Bobbed = Input.Separatefields().EEDI2(field=-2) Bobbed = ( Order == 1 ) ? Bobbed.AssumeTFF() : Bobbed.AssumeBFF() # Motion Vectors MoCompFWD = Bobbed.Compensate(source = previous) MoCompBWD = Bobbed.Compensate(source = next) # Mismatch Detection AnalyseBobCurr = Bobbed.BicubicResize(Input.Width * 2, Input.Height).MedianBlur().BicubicResize(Input.Width, Input.Height) AnalyseCompFWD = MoCompFWD.BicubicResize(Input.Width * 2, Input.Height).MedianBlur().BicubicResize(Input.Width, Input.Height) AnalyseCompBWD = MoCompBWD.BicubicResize(Input.Width * 2, Input.Height).MedianBlur().BicubicResize(Input.Width, Input.Height) MoCompCorrected = Corrector(AnalyseBobCurr, Bobbed, AnalyseCompFWD, AnalyseCompBWD, MoCompFWD, MoCompBWD, Mode = 0, Th = 10) # Interpolated Fields Compensated_Even = MoCompCorrected.SelectEven().SeparateFields().SelectOdd() Compensated_Odd = MoCompCorrected.SelectOdd().SeparateFields().SelectEven() # Original Fields Original_Even = Input.SeparateFields().SelectEven() Original_Odd = Input.SeparateFields().SelectOdd() # Merge Output_Even = Interleave(Original_Even, Compensated_Even).Weave() Output_Odd = Interleave(Original_Odd, Compensated_Odd).Weave() Output = Interleave(Output_Even, Output_Odd) # Output Output = Output.Vinverse() Output = ( Order == 1 ) ? Output.AssumeTFF() : Output.AssumeBFF() Return Output } Last edited by LaTo; 13th May 2008 at 17:47. |
|
|