View Full Version : MV tools script question
Serbianboss
2nd December 2006, 12:22
I try this script to load but have problems it sais: Clip must be YUY2 or YV12(line 6). I am using cedocida codec 0.1.7(my source is dv avi,pal interlaced) and for decoder i put yuy2 and again said that clip must be yuy2 or yv12
AVISource("C:\Documents and Settings\\Desktop\film.avi")
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
backward_vec2 = film.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = film.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = film.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = film.MVAnalyse(isb = false, lambda = 1000, delta = 2)
return film.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
I have installed MVtools 1.5.8, Mask tools(old and new version), seesaw avsi,remowe grain SSE2 and SSE3 version.
Serbianboss
2nd December 2006, 12:30
And when put converttoyuy2() in line 6, now said Image width must be evan.Use crop(line 6)
AVISource("C:\Documents and Settings\\Desktop\film.avi")
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
backward_vec2 = film.MVAnalyse(isb = true, lambda = 1000, delta = 2)
converttoyuy2()
backward_vec1 = film.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = film.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = film.MVAnalyse(isb = false, lambda = 1000, delta = 2)
return film.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
Didée
2nd December 2006, 12:47
Did you ever use Avisynth before?
All filters you're using refer to the clip "film". But the clip "film" does not exist. You must declare a variable (of type clip) with that name. The circumstance that your AVI file is named "film.avi" has nothing to do with this.
Look at this modification of your first script:
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\\Desktop\NameOfYourAviFile.avi")
backward_vec2 = source.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = source.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = source.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = source.MVAnalyse(isb = false, lambda = 1000, delta = 2)
return( source.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300) )
which should clear up this point.
Your 2nd script is utterly wrong, too ;) ... but by accident, it shows that the source might have "unusual" dimensions.
Easiest way, probably, would be to post a screenshot of the result of
AVISource("C:\Documents and Settings\\Desktop\film.avi")
Return( info() )
Serbianboss
2nd December 2006, 13:00
I little confused.
This is my source
http://img145.imageshack.us/img145/1308/untitledxr5.jpg (http://imageshack.us)
As i say its DV avi,Pal interlaced, BFF
I first time using MVtools and that function so its little confusing at beginning. What to change to work properly
Didée
2nd December 2006, 13:21
Oh, the source dimensions are okay. Strange. But then, I don't understand why your 1st script gives "Clip must be YUY2". What you shoud get is "I don't know what "film" means" ...
What happens when you use the script like I posted? (With correct full pathname & filename, of course.) That one should work ...
Serbianboss
2nd December 2006, 13:48
Succeed,thanks
This script now work.Problem was in path, it was incorrect.
This script is from MVtools documentation. I first time work with that, so i dont understand all parametars like lambda, delta, isb...
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\Desktop\film.avi")
backward_vec2 = source.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = source.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = source.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = source.MVAnalyse(isb = false, lambda = 1000, delta = 2)
return( source.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300) )
Does this script can be used with interlaced sources ?Because i mostly work with DV avi interlaced files.
I see on MVtool documentation one script for interalced, so i will try now.
Serbianboss
2nd December 2006, 17:09
Any comment?
krieger2005
2nd December 2006, 17:22
You should not use the Script in this way on interlaced content. Bob the movie or separate Fields before.
This way it would work like this:
source=avisource("XXY").AssumeBFF().anybob()
MV-Stuff
source.MVDenoise(xxy)
reinterlace()
Serbianboss
2nd December 2006, 18:13
You should not use the Script in this way on interlaced content. Bob the movie or separate Fields before.
This way it would work like this:
source=avisource("XXY").AssumeBFF().anybob()
MV-Stuff
source.MVDenoise(xxy)
reinterlace()
Something like this:
AssumeBFF()
LeakKernelBob(Order=0,threshold=3)
PeachSmoother(NoiseReduction = 80, Stability = 25, Spatial = 200)
limitedsharpenfaster(strength=300)
AssumeBFF()
SeparateFields()
SelectEvery(4,0,3)
Weave()
This is reinterlance method which i use for interlacing material. Can this with some changes may used for MVDegrain or MVDenoise ?
Didée
2nd December 2006, 19:20
Sure. When inserting the "MV-stuff" in the middle like krieger advised (and writing full syntax instead of his short quasi-code), it looks like
AssumeBFF()
LeakKernelBob(Order=0,threshold=3)
bobbed = last
#PeachSmoother(NoiseReduction = 80, Stability = 25, Spatial = 200) # no more needed
backward_vec2 = bobbed.MVAnalyse(isb=true, delta=2, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
backward_vec1 = bobbed.MVAnalyse(isb=true, delta=1, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
forward_vec1 = bobbed.MVAnalyse(isb=false, delta=1, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
forward_vec2 = bobbed.MVAnalyse(isb=false, delta=2, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
bobbed.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300) # either ...
#bobbed.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1) # ... or
#limitedsharpenfaster(strength=300) # you may activate again when the strength has been reduced :P
AssumeBFF()
SeparateFields()
SelectEvery(4,0,3)
Weave()
Just to confuse you:p, I swapped "source" for "bobbed" ... to get familiar with the concept of variables & naming. :)
krieger2005
2nd December 2006, 19:43
Sure. When inserting the "MV-stuff" in the middle like krieger advised (and writing full syntax instead of his short quasi-code)
Sorry... I was just too lazy :p
Serbianboss
3rd December 2006, 00:15
Didee,thanks for script.
It works, i put last= AVISource and works.
But this script is amazing slow. I have 0.01 speed in CCE
Can i use this interlacing script(from MV documentation) and to adopt for my needs. I mean can i here insert MVdegrain2 or MVDenoise instead MVdegrain1. Because this script is much fuster than with bobing.
LoadPlugin("mvtools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\desktop\film.avi")
fields=source.AssumeBFF().SeparateFields()
backward_vec2 = fields.MVAnalyse(isb = true, delta = 2, pel = 2, overlap=4, sharp=2, idx = 1)
forward_vec2 = fields.MVAnalyse(isb = false, delta = 2, pel = 2, overlap=4, sharp=2, idx = 1)
fields.MVDegrain1(backward_vec2,forward_vec2,thSAD=400,idx=1)
Weave()
Serbianboss
3rd December 2006, 19:45
I try to make interlaced script based on MVtools documentation. I took script from mv documentation(script with MVDegrain1) and insert MVDegrain 2/MVDenoise instead MVdegrain1.
So this is interlaced script with MVDenoise or MVDegrain2:
#LoadPlugin("mvtools.dll") ##no needed in this function
LoadPlugin("MaskTools.dll")
#import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs") ##just if we use seesaw filter
source = AVISource("C:\capture.avi")
fields=source.AssumeBFF().SeparateFields()
backward_vec2 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 2)
fields.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
#fields.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1)
Weave()
I try this script on short dv avi source and it was ok.I must to try on more dv dources. It works much faster than with bobing.
I have few questions:
1. Is this script ok, i mean on syntax form?
Does is separate fields/weave enough for interalced contexts?
2. Which value is important for filter strength. I know for thsad and tht, but does some more parameter is important for filter strength?
krieger2005
3rd December 2006, 21:07
I would apply the MV-Tools results fieldswise, so yopur script would look like:
source.AssumeBFF().SeparateFields()
o=SelectOdd()
e=SelectEven()
Obv2 = MVAnalyse(o,isb = true, lambda = 1000, delta = 2, idx=1)
Obv1 = MVAnalyse(o,isb = true, lambda = 1000, delta = 1, idx=1)
Ofv1 = MVAnalyse(o,isb = false, lambda = 1000, delta = 1, idx=1)
Ofv2 = MVAnalyse(o,isb = false, lambda = 1000, delta = 2, idx=1)
o=MVDenoise(o,Obv2,Obv1,Ofv1,Ofv2,tht=10,thSAD=300, idx=1)
#o=MVDegrain2(o,Obv1,Ofv1,Obv2,Ofv2,thSAD=400,idx=1, idx=1)
Ebv2 = MVAnalyse(e,isb = true, lambda = 1000, delta = 2, idx=2)
Ebv1 = MVAnalyse(e,isb = true, lambda = 1000, delta = 1, idx=2)
Efv1 = MVAnalyse(e,isb = false, lambda = 1000, delta = 1, idx=2)
Efv2 = MVAnalyse(e,isb = false, lambda = 1000, delta = 2, idx=2)
e=MVDenoise(e,Ebv2,Ebv1,Efv1,Efv2,tht=10,thSAD=300, idx=2)
#e=MVDegrain2(e,Ebv1,Efv1,Ebv2,Efv2,thSAD=400,idx=1, idx=2)
interleave(e,o)
Weave()
I don't remember, if pel is 2 or one at default. When it is 2, then you get with the idx-parameter a speed-boost... Maybe there should in somewhere a AssumexFF()-command. i don't know.
When you try bobbing you can try a faster bobing-filter. Leak's one is a good one, but not one of the fastest...
Serbianboss
3rd December 2006, 23:00
Thanks for script
MVDegrain and MVDenoise are temporal filter right? IF so, than is better to use your script,because i read when work with temporal filters is better to work with fields(odd and evan)
I just need to remove idx=1 from MVDenoise and MVDegrain because sais that mvdenoise dont support idx.
This script is little faster than mine.
So script looks like:
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\Nenad\Desktop\film.avi")
source.AssumeBFF().SeparateFields()
o=SelectOdd()
e=SelectEven()
Obv2 = MVAnalyse(o,isb = true, lambda = 1000, delta = 2, idx=1)
Obv1 = MVAnalyse(o,isb = true, lambda = 1000, delta = 1, idx=1)
Ofv1 = MVAnalyse(o,isb = false, lambda = 1000, delta = 1, idx=1)
Ofv2 = MVAnalyse(o,isb = false, lambda = 1000, delta = 2, idx=1)
o=MVDenoise(o,Obv2,Obv1,Ofv1,Ofv2,tht=10,thSAD=300)
#o=MVDegrain2(o,Ebv1,Efv1,Ebv2,Efv2,thSAD=400,idx=1, idx=1)
Ebv2 = MVAnalyse(e,isb = true, lambda = 1000, delta = 2, idx=2)
Ebv1 = MVAnalyse(e,isb = true, lambda = 1000, delta = 1, idx=2)
Efv1 = MVAnalyse(e,isb = false, lambda = 1000, delta = 1, idx=2)
Efv2 = MVAnalyse(e,isb = false, lambda = 1000, delta = 2, idx=2)
e=MVDenoise(e,Ebv2,Ebv1,Efv1,Efv2,tht=10,thSAD=300)
#e=MVDegrain2(e,Ebv1,Efv1,Ebv2,Efv2,thSAD=400,idx=1, idx=2)
interleave(e,o)
Weave()
For MVdegrain2 i need to change this
MVDegrain2(o,Ebv1,Efv1,Ebv2,Efv2,thSAD=400)
to this
MVDegrain2(o,Obv1,Ofv1,Obv2,Ofv2,thSAD=400)
Because in first case sais that dosnt know what Ebv1 means. So i change to Obv1. But it seems that with thati have some little artifacts.
Just to know, does my script is good(post above).
krieger2005
3rd December 2006, 23:10
MVDegrain and MVDenoise are temporal filter right? IF so, than is better to use your script,because i read when work with temporal filters is better to work with fields(odd and evan)
yes.
I just need to remove idx=1 from MVDenoise and MVDegrain because sais that mvdenoise dont support idx.
I don't know the changes on MVDenoise. I used it last time in version 0.9.XX (i think).
For MVdegrain2 i need to change this
MVDegrain2(o,Ebv1,Efv1,Ebv2,Efv2,thSAD=400)
to this
MVDegrain2(o,Obv1,Ofv1,Obv2,Ofv2,thSAD=400)
i changed this in my script. But you know, that lines, which has an '#' in are comments (the comments is all after the '#' in the line). So the MVDeGrain-Call will not executed in every Script. It is just an option to switch fast between MVDenoise-Routine and MVDegrain.
But it seems that with thati have some little artifacts.Could be... I mean the motion is on a field much faster than on two fields.. This is the reason why people use bobing-filters...
Serbianboss
4th December 2006, 00:02
This script now work:
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\Nenad\Desktop\film.avi")
source.AssumeBFF().SeparateFields()
o=SelectOdd()
e=SelectEven()
Obv2 = MVAnalyse(o,isb = true, lambda = 1000, delta = 2, idx=1)
Obv1 = MVAnalyse(o,isb = true, lambda = 1000, delta = 1, idx=1)
Ofv1 = MVAnalyse(o,isb = false, lambda = 1000, delta = 1, idx=1)
Ofv2 = MVAnalyse(o,isb = false, lambda = 1000, delta = 2, idx=1)
#o=MVDenoise(o,Obv2,Obv1,Ofv1,Ofv2,tht=10,thSAD=300)
o=MVDegrain2(o,Obv1,Ofv1,Obv2,Ofv2,thSAD=400)
Ebv2 = MVAnalyse(e,isb = true, lambda = 1000, delta = 2, idx=2)
Ebv1 = MVAnalyse(e,isb = true, lambda = 1000, delta = 1, idx=2)
Efv1 = MVAnalyse(e,isb = false, lambda = 1000, delta = 1, idx=2)
Efv2 = MVAnalyse(e,isb = false, lambda = 1000, delta = 2, idx=2)
#e=MVDenoise(e,Ebv2,Ebv1,Efv1,Efv2,tht=10,thSAD=300)
e=MVDegrain2(e,Ebv1,Efv1,Ebv2,Efv2,thSAD=400)
interleave(e,o)
Weave()
From MVDegrain and MVdenoise i delete idx=1 because with that dosnt work.
Now script work good with MVDegrain, i didnt see any artifacts. I must test this script on same longer material. I just test on 37 second DV avi source.
changed this in my script. But you know, that lines, which has an '#' in are comments (the comments is all after the '#' in the line). So the MVDeGrain-Call will not executed in every Script. It is just an option to switch fast between MVDenoise-Routine and MVDegrain.
I know that # is comment. I first test just with MVdenoise and was ok. Than i test just with MVdegrain(add comment to mvdenoise) and have some blocky artifacts. But know i tested again i dont have artifact with MVdegrain. Its confusing.
With your script i have speed 0.15 in CCE, but when bob with leakkernel i have 0.01 speed which is terrible slow.
So, which is also good bob to test?
And one more, does my scritp(two post above) is good for interalced material. I mean in documentation is one interlaced script with separatefield/weave and i just little change(insert MVdegrain and MVdenoise instead MVdegrain1).
thanks
krieger2005
4th December 2006, 15:29
The script above looks okey. I don't use the "simple-bobber", but Didée used this one: "Bob(0,0.5)" in this thread: http://forum.doom9.org/showthread.php?t=118796
However. I don't know what the parameters means, so you should look in the doku of avisynth. I thinks this bobber is one of the fastest one around here...
Dikiy
4th December 2006, 19:02
... little notes ... MVTools bad work with not progressive source (with any used ... vertical resolution reduce by ~1.5,~2)
but if deinterlace source (Kernel 10 ... or any deinterlacer) vector of motion finds much better...
...and if used !MVDenoise! with two forward and two backward verctors ... result very blured
...but if used MVDenoise with one forward and one backward verctors and after MVDegrain2 with two vectors rezult more sharpen(corrected).
if source very distortion... place: very slow but good 2D denoise "TNLMeans" before MVTools:
visual errors after used TNLMeans good corrected MVTools!!!
... AND small horizontal object NO blured (small needed lines hight of one pexel is seved)
... if no add "idx" parameter little slow but noise delete more...
LoadPlugin("TNLMeans.dll") #ver 1.0.2.0
LoadPlugin("RemoveGrain.dll")
LoadPlugin("MVTools.dll") #ver 1.6.2.0
LoadPlugin("asharp.dll")
LoadPlugin("UnDot.dll")
LoadPlugin("RemoveDirt.dll")
avisource("C:\CAPTURE.00.avi") #720x576
ConvertToYV12()
Crop(12,0,-12,-16)
#TNLMeans(Ax = 4,Ay = 4,Az = 0,ms=true,rm=3,h=3.6) # >h - more blur (no temporal artefacts)
RemoveGrain(mode=2)
backward_vec2 = last.MVAnalyse(isb = true, delta = 2, pel = 2, overlap=4, sharp=2, search= 3, searchparam=3)#, idx = 1)
backward_vec1 = last.MVAnalyse(isb = true, delta = 1, pel = 2, overlap=4, sharp=2, search= 3, searchparam=3)#, idx = 1)
forward_vec1 = last.MVAnalyse(isb = false, delta = 1, pel = 2, overlap=4, sharp=2, search= 3, searchparam=3)#, idx = 1)
forward_vec2 = last.MVAnalyse(isb = false, delta = 2, pel = 2, overlap=4, sharp=2, search= 3, searchparam=3)#, idx = 1)
last.MVDenoise(backward_vec1,forward_vec1,thSAD=400)
last.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400)#, idx=1)
UnDot()
aSharp(0.5,10,4,true)
BicubicResize(600,480,b=0,c=2.5) # with sharpen
TemporalSoften(5,4,4,15,2) # for best compression
ImproveSceneSwitch(last,last)
Tweak(Bright=-12,Cont=1.02,coring=false)
..... Very slow but result is ....
...Athlon64 3500+ (with code to XVid Qual-2 Motion search best)
overlap=4 ~1.68FPS for best find vectors for jumping objects
overlap=2 ~3.00FPS
overlap=0 ~4.20FPS
Serbianboss
4th December 2006, 23:22
The script above looks okey
Did you mean on this script:
#LoadPlugin("mvtools.dll") ##no needed in this function
LoadPlugin("MaskTools.dll")
#import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs") ##just if we use seesaw filter
source = AVISource("C:\capture.avi")
fields=source.AssumeBFF().SeparateFields()
backward_vec2 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 2)
fields.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
#fields.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1)
Weave()
That script is my modification based on MVtools documentation. In documentation is used MVdegrain1 with one backward and forward. I just add 2 backward and 2 forward and MVdenoise and MVdegrain2 instead MVdegrain1. I think that this script is OK(for interlaced material), but i want for shore to know does this script is surely syntax ok?
I recently note in MV documentation this:
Notes: The plugin is still under development. Current version has some limitations. Only progressive YV12, YUY2 video is supported. Use color format conversion and try use (smart) bob-deinterlace for interlaced video (SeparateFields may works too with or without SelectEven/SelectOdd).
By this its just enough to Separate fields/weave for interalced source ?
I know that bob may be better method but its very very slow to use bob on MV script. In cce its 0.01 on my amd 3800+ So i want to make proper "interlaced" script which use MVDegrain or MVdenoise.
One more: Can someone recommend values for weak, medium and strong denoising ?
krieger2005
5th December 2006, 01:42
I know that bob may be better method but its very very slow to use bob on MV script. In cce its 0.01 on my amd 3800+ So i want to make proper "interlaced" script which use MVDegrain or MVdenoise.
One more: Can someone recommend values for weak, medium and strong denoising ?
It's your movie and your opinion. From the syntax all last scripts are ok. From the visualize-aspect you must decide by yourself. From the point of technical-view it is better to use a bobber, the next better solution is to do the job fieldwise (selecteven, selectodd), and for my opition the worse choise to take both fields for denoising.
Serbianboss
5th December 2006, 16:00
From the point of technical-view it is better to use a bobber, the next better solution is to do the job fieldwise (selecteven, selectodd), and for my opition the worse choise to take both fields for denoising.
So it will be:
1. Best way-bobber
2. Fieldwise(evan,odd)
3. Just Separate fields/weave
Just to know, which parameters is good for strong/medium/little denoising(lambda,delta,pel,overlap...)
thanks
krieger2005
5th December 2006, 16:39
So it will be:
1. Best way-bobber
2. Fieldwise(evan,odd)
3. Just Separate fields/weave1. any bobber (and here again there are different around, so you can take mcbob or mvbob or just bob)
2. agree
3. agree
Just to know, which parameters is good for strong/medium/little denoising(lambda,delta,pel,overlap...)Why you don't read the manual? lambda, delta and so on does not act directly on the denoise-process. they just tune the motion-vectors. thSAD is the one, which decide the strength of the denoise-process. The values are also different for diferent Denoiser (MVDenoise or MVDegrain1 or MVDeGrain2). In general you must look by yourself what you mean is ok. For MVDeGrainX for me values about 400 are ok. 250 is for little-denoise. Above 500 are all strong-denoise-strengths.
Serbianboss
5th December 2006, 17:39
For MVDeGrainX for me values about 400 are ok. 250 is for little-denoise. Above 500 are all strong-denoise-strengths.
Every example script which i saw on forum for thsad are 400 or 300. That's why asked for parameter. Because its impossible that every source have same/value of noise so for each source we must to tweak parameters.
I will now post 3 interlaced scripts, because this may be usefull for some members who want to use MVtools on interlaced sources:
1. This is probably the best method but the slowest: Bob (by Didee):
LoadPlugin("mvtools.dll")
last = AVISource("C:\Documents and Settings\Nenad\Desktop\film.avi")
AssumeBFF()
LeakKernelBob(Order=0,threshold=3)
bobbed = last
backward_vec2 = bobbed.MVAnalyse(isb=true, delta=2, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
backward_vec1 = bobbed.MVAnalyse(isb=true, delta=1, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
forward_vec1 = bobbed.MVAnalyse(isb=false, delta=1, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
forward_vec2 = bobbed.MVAnalyse(isb=false, delta=2, pel=2, blksize=8, overlap=4, sharp=1, idx=1)
#bobbed.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300) # either ...
bobbed.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1) # ... or
#limitedsharpenfaster(strength=300) # you may activate again when the strength has been reduced :P
AssumeBFF()
SeparateFields()
SelectEvery(4,0,3)
Weave()
2. This is with even and odd (by krieger2005):
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\Nenad\Desktop\film.avi")
source.AssumeBFF().SeparateFields()
o=SelectOdd()
e=SelectEven()
Obv2 = MVAnalyse(o,isb = true, lambda = 1000, delta = 2, idx=1)
Obv1 = MVAnalyse(o,isb = true, lambda = 1000, delta = 1, idx=1)
Ofv1 = MVAnalyse(o,isb = false, lambda = 1000, delta = 1, idx=1)
Ofv2 = MVAnalyse(o,isb = false, lambda = 1000, delta = 2, idx=1)
#o=MVDenoise(o,Obv2,Obv1,Ofv1,Ofv2,tht=10,thSAD=300)
o=MVDegrain2(o,Obv1,Ofv1,Obv2,Ofv2,thSAD=400)
Ebv2 = MVAnalyse(e,isb = true, lambda = 1000, delta = 2, idx=2)
Ebv1 = MVAnalyse(e,isb = true, lambda = 1000, delta = 1, idx=2)
Efv1 = MVAnalyse(e,isb = false, lambda = 1000, delta = 1, idx=2)
Efv2 = MVAnalyse(e,isb = false, lambda = 1000, delta = 2, idx=2)
#e=MVDenoise(e,Ebv2,Ebv1,Efv1,Efv2,tht=10,thSAD=300)
e=MVDegrain2(e,Ebv1,Efv1,Ebv2,Efv2,thSAD=400)
interleave(e,o)
Weave()
3. This is from MV documentation:separate fields/weave (i added MVdegrain 2 and MVDenoise instead MVdegrain1):
LoadPlugin("mvtools.dll")
LoadPlugin("MaskTools.dll")
import("C:\Program Files\AviSynth 2.5\plugins\SeeSaw.avs")
source = AVISource("C:\Documents and Settings\Nenad\Desktop\film.avi")
fields=source.AssumeBFF().SeparateFields()
backward_vec2 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 2)
backward_vec1 = fields.MVAnalyse(isb = true, lambda = 1000, delta = 1)
forward_vec1 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 1)
forward_vec2 = fields.MVAnalyse(isb = false, lambda = 1000, delta = 2)
fields.MVDenoise(backward_vec2,backward_vec1,forward_vec1,forward_vec2,tht=10,thSAD=300)
Weave()
Thats it for now. I asked if have some problems.
If someone had something to add just post.
hushkamala
7th December 2006, 18:26
is there any way of interleaving the 2 fields to get 720x576 25fps not interlaced?(w/o deinterlacing in the end)
a filter to interleave without interlace?:confused:
i'm using this script (source=PAL DV Interlaced)
its slow 0,1fps (cce sp2,1-passVBR) on my P4HT 3.2 1GDDR2533, still did not test this with MT Avisynth
AviSource("C:\DV.avi",audio=false)
#-------------------------------------------------------
#HDRAGC(min_gain = 2.0, coef_sat = 2.8)
#-------------------------------------------------------
FFT3DFilter(sigma=3,plane=4,sharpen=0.1,interlaced=true)
AssumeBFF().SeparateFields()
o=SelectOdd()
e=SelectEven()
odd = Soothe(o.Deen("a3d",4,10,12),o,32)#
even = Soothe(e.Deen("a3d",4,10,12),e,32)#
interleave(even.MergeChroma(odd),odd.MergeChroma(even)).AssumeBFF().Weave()
FlipVertical()
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.