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. |
9th June 2010, 21:14 | #221 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Quote:
The only additional DLLs you will need to run my version of this script are the RemoveDirt DLL and also the multi-threaded version of AVISynth, if you want the extra speed that comes from multi-threading portions of this script, and if you have a multi-core CPU. Both those links are given in the changelog of my script in my post above. BTW, I just noticed something in that before/after YouTube example I linked to in my previous post, and it is another testament to the brilliance of what VideoFred has done. Run the video full screen at 480p and then look at the side of the building in the lower left corner of the screen. In the before, you can't see anything, but in the after, you can see two murals on the side of the building the details of which remain steady and clear, despite the dirt and mold that comes and goes from frame to frame. Last edited by johnmeyer; 9th June 2010 at 21:18. Reason: Added postscript shortly after initial posting |
|
9th June 2010, 21:29 | #222 | Link |
Please, DeInterlace me!
Join Date: Jan 2007
Location: Portugal, Porto
Posts: 81
|
Thks johnmeyer.
btw if anyone want's more than an Mdegrain3, like an MDegrain5, here it is, (in many cases, it's not really necessary): Code:
#DENOISING PARAMETERS #---------------------------------------------------------------------------------------------------------------------------- denoising_strength=600 #denoising level of first denoiser: MVDegrain() block_size= 16 #block size of MVDegrain block_size_v= 16 block_over= 8 #block overlapping of MVDegrainMulti() dirt_strength=23 #sets amount of dirt removal (big spots) tm= true pel_value= 2 shrp_value= 1 idx_value= 11 Code:
#DENOISING #................................................................................................................................................................... input_to_removedirt=stab.crop(CLeft,CTop,-CRight,-CBottom) stabcrop=RemoveDirtMC(input_to_removedirt,dirt_strength,false) super = stabcrop.MSuper(pel=2) bvec1 = MAnalyse(super, isb = true, delta = 1, blksize=block_size, overlap=block_over) fvec1 = MAnalyse(super, isb = false, delta = 1, blksize=block_size, overlap=block_over) bvec2 = MAnalyse(super, isb = true, delta = 2, blksize=block_size, overlap=block_over) fvec2 = MAnalyse(super, isb = false, delta = 2, blksize=block_size, overlap=block_over) bvec3 = MAnalyse(super, isb = true, delta = 3, blksize=block_size, overlap=block_over) fvec3 = MAnalyse(super, isb = false, delta = 3, blksize=block_size, overlap=block_over) bvec4 = MAnalyse(super, isb = true, delta = 4, blksize=block_size, overlap=block_over) fvec4 = MAnalyse(super, isb = false, delta = 4, blksize=block_size, overlap=block_over) bvec5 = MAnalyse(super, isb = true, delta = 5, blksize=block_size, overlap=block_over) fvec5 = MAnalyse(super, isb = false, delta = 5, blksize=block_size, overlap=block_over) #Use the second line below, and un-comment two lines above if you want to average more frames. Doesn't seem necessary for most work IMHO. #denoised=stabcrop.MDegrain2(super, bvec1,fvec1,bvec2,fvec2,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0) #denoised=stabcrop.MDegrain3(super, bvec1,fvec1,bvec2,fvec2,bvec3,fvec3,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0) #Use this lines for MDegrain5 and activate ALL bvec and fvec above. superDenoised=stabcrop.MDegrain3(super, bvec1,fvec1,bvec2,fvec2,bvec3,fvec3,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0) denoised=stabcrop.MDegrain2(super, bvec4,fvec4,bvec5,fvec5,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation).unsharpmask(PRE_sharp_ness,PRE_radi_us,0) \ .Merge(superDenoised, 0.436) # correct weightings (hopefully)
__________________
Who am I?! I'm GOD... 8for it... father of my godchilds. |
9th June 2010, 22:55 | #223 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
In my quest for a faster script, I did a lot of testing using just two "before" and two "after" MAnalyze vectors. I couldn't tell any difference. However, this isn't to say that there might be. Have you found any substantial improvement in using the extra vectors, and if so, what did they look like, and in what circumstances did they occur?
|
9th June 2010, 23:24 | #224 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Just a quick update.
As I work my way through 100 reels of film, I keep experimenting. I have found that the main reason that VideoFred's script does a better job bringing out details in scenes containing lots of "structure" is due mostly to the LimitedSharpenFaster function. I removed this because it takes my script from 15 fps to about 9 fps. However, I have added it back in as an option and am occasionally using it on certain reels. As time permits I will see if I can get the LimitedSharpen MOD version to run faster under MT. I did spend some time with this yesterday, but wasn't able to get it to run any faster. There is also a similar sharpening script that I think is called "SeeSaw" or something like that. I may experiment with that. |
9th June 2010, 23:37 | #225 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
Even if it is, how did you derive the merge weight? I don't think it's possible to get the right final weighting for both the centre frame and the outermost ones at the same time. |
|
10th June 2010, 02:19 | #226 | Link | |
Please, DeInterlace me!
Join Date: Jan 2007
Location: Portugal, Porto
Posts: 81
|
Quote:
Check this: http://forum.doom9.org/showthread.php?p=1138514 Btw, I have been working around with the script, but for restore very old dvd animation. Soon I will post the "new" script and my results. best regards
__________________
Who am I?! I'm GOD... 8for it... father of my godchilds. |
|
10th June 2010, 04:03 | #227 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
@Gavino: yes, mdegrainX allows to use vectors with such deltas. And, yes, there is no "fully correct" way to make that particular averaging.
@ Leinad4Mind - you're linking to the wrong thread/post/script. That one is TGMC, and the averaging used in there is quite a bit different. What you would have wanted to link is this here, most probably. But again - that averaging is a reasonable approximation, but not-at-all mathematically exact (since that's impossible.). In any case, you seem to have reversed the weighting: you've small weight for the 3-frame-clip, and bigger weight for the 2-frame-clip. It should be exactly the other way round.
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
10th June 2010, 07:14 | #228 | Link |
Please, DeInterlace me!
Join Date: Jan 2007
Location: Portugal, Porto
Posts: 81
|
I mean here: http://forum.doom9.org/showthread.php?p=1138690 ^^'
And I think I've fixed the weighting ^^' Code:
#Use this lines for MDegrain5 and activate ALL bvec and fvec above. superDenoised=stabcrop.MDegrain3(super, bvec1,fvec1,bvec2,fvec2,bvec3,fvec3,thSAD=denoising_strength).levels(0,gamma,255,0,255).tweak(sat=saturation)#.unsharpmask(PRE_sharp_ness,PRE_radi_us,0) denoised=superDenoised.MDegrain2(super, bvec4,fvec4,bvec5,fvec5,thSAD=denoising_strength) \ .Merge(superDenoised, 0.436) # correct weightings (hopefully) I have made my own modded version, aim for old and ugly animation xD Here it is the result:Anime-Restoration
__________________
Who am I?! I'm GOD... 8for it... father of my godchilds. Last edited by Leinad4Mind; 10th June 2010 at 08:05. |
10th June 2010, 09:18 | #229 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
|
|
10th June 2010, 17:58 | #231 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
John, firstly well done for your work on the script.
Quote:
This sounds like an urban myth to me since as far as I know SetMTMode does not touch the audio in any way and it continues to run single-threaded. |
|
10th June 2010, 19:38 | #232 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,691
|
Quote:
http://forum.doom9.org/showthread.ph...42#post1345342 You'll have to read several posts down from this one to see where the killaudio() command was suggested as a way to stop crashes when using setmtmode() with MVTools2. Not only did it work, but when I have forgotten to include it in other scripts, I have experienced crashes until I remember to add it. |
|
10th June 2010, 21:31 | #233 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
I can't confirm that urban myth. It seems that SetMTmode + MVTools really has a nasty tendency to crash. From what I experienced so far, it seems related to SetMemoryMax. Rule of thumb: when SMM is <1GB (32bit Avisynth) resp. <2GB (64bit Avisynth), then usually all is good. When going beyond 1GB (32) / 2GB (64bit), I can literally sit there and wait for the crash, it won't take long.
I tried the KillAudio() thingy, but it doesn't change anything for me. (Well, how should it? With Mpeg2source, there is no audio to start with...)
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
10th June 2010, 22:00 | #234 | Link | |
Avisynth language lover
Join Date: Dec 2007
Location: Spain
Posts: 3,431
|
Quote:
Your experience shows there is definitely some memory-related problem with SetMTMode+MVTools, even when there is no audio in sight (or in earshot). I suspect adding KillAudio simply changes the memory location of other filters and the real problem lies elsewhere. In the script johnmeyer referenced that originally had a problem, killaudio was already present and simply moving it made the problem (appear to) go away. So it is not related to the presence or absence of an audio-processing execution path. Problems that come and go with random script changes are nearly always due to memory corruption of some kind. Still, if KillAudio makes a particular script work (and you don't want the audio anyway), then you might as well keep it in... |
|
17th June 2010, 16:44 | #235 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,718
|
Code:
# based on videoFred's script and johnmeyer's modification of it # PLEASE NOTE THAT THIS FUNCTION IS NOT SMART, IT IS JUST SOME THINGS POURED TOGETHER! # THE THREAD http://forum.doom9.org/showthread.php?t=144271 CONTAINS THE ORIGINAL SCRIPT function RestoreOldFilm (clip film, string "result", int "trim_begin", float "play_speed", float "saturation", float "gamma", \ int "blue", int "red", int "black_level", int "white_level", int "output_black", int "output_white", \ int "CLeft", int "CTop", int "CRight", int "CBottom", int "W", int "H", int "bord_left", int "bord_top", \ int "bord_right", int "bord_bot", int "in_bord_left", int "in_bord_top", int "in_bord_right", int "in_bord_bot", \ int "maxstabH", int "maxstabV", int "range", float "trust", int "est_left", int "est_top", int "est_right", int "est_bottom", \ float "est_cont", int "mirror", int "denoising_strength", int "block_size", int "block_size_v", int "block_over", \ int "thscd1", int "thscd2", int "rfilter", int "search", int "searchparam", int "lambda", int "pnew", int "plevel", \ int "lsad", int "badsad", int "dirt_strength", int "smode", int "lsfstrength", int "X", int "X2", \ bool "stabilize", bool "denoise", bool "sharpen", bool "despot") { result=default(result, "resultS3") trim_begin=default(trim_begin, 0) play_speed=default(play_speed, 18) saturation=default(saturation, 1.2) gamma=default(gamma, 1.2) blue=default(blue, -0) red=default(red, -0) black_level=default(black_level, 0) white_level=default(white_level, 255) output_black=default(output_black, 0) output_white=default(output_white, 255) CLeft=default(CLeft, 0) CTop=default(CTop, 0) CRight=default(CRight, 0) CBottom=default(CBottom, 0) W=default(W, 720) H=default(H, 576) bord_left=default(bord_left, 0) bord_right=default(bord_right, 0) bord_top=default(bord_top, 0) bord_bot=default(bord_bot, 0) range=default(range, 3) trust=default(trust, 4.0) in_bord_left=default(in_bord_left, 0) in_bord_right=default(in_bord_right, 0) in_bord_top=default(in_bord_top, 0) in_bord_bot=default(in_bord_bot, 0) maxstabH=default(maxstabH, 20) maxstabV=default(maxstabV, 20) est_left=default(est_left, 0) est_right=default(est_right, 0) est_top=default(est_top, 0) est_bottom=default(est_bottom, 0) est_cont=default(est_cont, 1.3) mirror=default(mirror, 0) denoising_strength=default(denoising_strength, 600) block_size=default(block_size, 16) block_size_v=default(block_size_v, block_size) block_over=default(block_over, block_size/2) thscd1=default(thscd1, 400) thscd2=default(thscd2, 130) rfilter=default(rfilter, 4) search=default(search, 5) searchparam=default(searchparam, 8) lambda= default(lambda, 100*block_size*block_size/64) pnew= default(pnew, 25) plevel= default(plevel, 0) lsad= default(lsad, 400*block_size*block_size/64) badsad=default(badsad, 10000) dirt_strength=default(dirt_strength, 23) smode=default(smode, 5) lsfstrength=default(lsfstrength, 100) X=default(X, 4) X2=default(X2, 2) stabilize=default(stabilize, true) sharpen=default(sharpen, true) denoise=default(denoise, true) despot=default(despot, true) source1= film.killaudio().assumefps(play_speed).trim(trim_begin,0).converttoYV12() cropped_source=source1.crop(in_bord_left,in_bord_top,-in_bord_right,-in_bord_bot) stab_reference = (stabilize == true) ? cropped_source.crop(est_left,est_top,-est_right,-est_bottom).mt_binarize(threshold=round(80/est_cont),upper=true,U=-128,V=-128) : cropped_source mdata = (stabilize == true) ? DePanEstimate(stab_reference,trust=trust,dxmax=maxstabH,dymax=maxstabV,range=range) : NOP() stab = (stabilize == true) ? DePanStabilize(cropped_source,data=mdata,info=false,cutoff=0.5,dxmax=maxstabH,dymax=maxstabV,method=1,mirror=mirror) : cropped_source WS = width(stab) HS = height(stab) stab4 = (stabilize == true) ? stab.addborders(10,10,10,10,$B1B1B1).Lanczos4Resize(WS,HS) : cropped_source.addborders(10,10,10,10,$B1B1B1).Lanczos4Resize(WS,HS) spot = (despot == true) ? RemoveSpots(stab) : stab input_to_removedirt = (denoise == true) ? spot.crop(CLeft,CTop,-CRight,-CBottom) : NOP() stabcrop = (denoise == true) ? RemoveDirtMC(input_to_removedirt,dirt_strength,false) : NOP() super = (denoise == true) ? stabcrop.MSuper(pel=2,rfilter=rfilter) : NOP() bvec1 = (denoise == true) ? MAnalyse(super, isb = true, delta = 1, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() fvec1 = (denoise == true) ? MAnalyse(super, isb = false, delta = 1, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() bvec2 = (denoise == true) ? MAnalyse(super, isb = true, delta = 2, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() fvec2 = (denoise == true) ? MAnalyse(super, isb = false, delta = 2, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() #bvec3 = (denoise == true) ? MAnalyse(super, isb = true, delta = 3, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() #fvec3 = (denoise == true) ? MAnalyse(super, isb = false, delta = 3, blksize=block_size, overlap=block_over, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) : NOP() denoised = (denoise == true) ? stabcrop.MDegrain2(super,bvec1,fvec1,bvec2,fvec2,thSAD=denoising_strength,thscd1=thscd1,thscd2=thscd2).levels(0,gamma,255,0,255).tweak(sat=saturation) : spot sharp1 = (sharpen == true) ? denoised.LSFMod(defaults="slow",smode=smode,strength=lsfstrength) : NOP() PreBorderFrame = (sharpen == true) ? sharp1.Lanczos4Resize(W - bord_left - in_bord_left - bord_right - in_bord_right, H - bord_top - in_bord_top - bord_bot - in_bord_bot) : denoised #RESULT1: AUTOLEVELS,AUTOWHITE #...................................................................................................................................................................... result1= PreBorderFrame.coloryuv(autowhite=true).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels(filterRadius=2).crop(X,0,-X2,-0).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot) #RESULT2: MANUAL LEVELS, AUTOWHITE #...................................................................................................................................................................... result2= PreBorderFrame.levels(black_level,gamma,white_level,0,255).coloryuv(autowhite=true).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot) #RESULT3: AUTOLEVELS, MANUAL COLOR CORRECTIONS #..................................................................................................................................................................... result3= PreBorderFrame.coloryuv(off_U=blue,off_V=red).addborders(X,0,0,0,$FFFFFF).addborders(0,0,X2,0,$000000).autolevels(filterRadius=2).crop(X,0,-X2,-0).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot) #RESULT4: MANUAL LEVELS, MANUAL COLOR CORRECTIONS #..................................................................................................................................................................... result4= PreBorderFrame.coloryuv(off_U=blue,off_V=red).levels(black_level,gamma,white_level,0,255).addborders(bord_left+in_bord_left, bord_top+in_bord_top, bord_right+in_bord_right, bord_bot+in_bord_bot) result5= overlay(source1,stab_reference,x=est_left,y=est_top).addborders(2,2,2,2,$FFFFFF).Lanczos4Resize(WS,HS) #PARAMETERS FOR THE COMPARISONS #..................................................................................................................................................................... W2= W+bord_left+bord_right H2= H+bord_top+bord_bot source4=Lanczos4Resize(source1,W2,H2) #COMPARISONS: ORIGINAL VS RESULTS #...................................................................................................................................................................... resultS1= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result1,"autolevels, autowhite",size=28,align=2)) resultS2= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result2,"autowhite, manual levels correction",size=28,align=2)) resultS3= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result3,"autolevels, manual color correction",size=28,align=2)) resultS4= stackhorizontal(subtitle(source4,"original",size=28,align=2),subtitle(result4,"manual colors and levels correction",size=28,align=2)) resultS5= stackhorizontal(subtitle(result5,"baseclip for stabiliser -only the B/W clip is used",size=32,align=2),subtitle(stab4,"test stabiliser: dx=horizontal, dy=vertical",size=32,align=5)) Eval(result) } # END SCRIPT, BEGIN FUNCTIONS #================================================================================================================================= #REMOVE DIRT FUNCTION #...................................................................................................................................................................... function RemoveDirt(clip input, int limit, bool _grey) { clensed=input.Clense(grey=_grey, cache=4) alt=input.RemoveGrain(2) return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,dmode=2,debug=false,noise=limit,noisy=4, grey=_grey) # Alternative settings # return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=4,cthreshold=6, gmthreshold=40,dist=1,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey,show=true) # return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=6,cthreshold=8, gmthreshold=40,dist=3,tolerance= 12,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey,show=false) } function RemoveDirtMC(clip,int limit, bool "_grey", int "block_size", int "block_over", int "thscd1", int "rfilter", int "search", int "searchparam", int "lambda", int "pnew", int "plevel", int "lsad") { _grey=default(_grey, false) limit = default(limit,6) i=MSuper(clip,pel=2,rfilter=rfilter) bvec = MAnalyse(i,isb=false, blksize=block_size, overlap=block_over, delta=1, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=500) fvec = MAnalyse(i,isb=true, blksize=block_size, overlap=block_over, delta=1, search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=500) backw = MFlow(clip,i,bvec,thscd1=thscd1) forw = MFlow(clip,i,fvec,thscd1=thscd1) clp=interleave(backw,clip,forw) clp=clp.RemoveDirt(limit,_grey) clp=clp.SelectEvery(3,1) return clp } function Removespots (clip i, int "ml", int "thscd1", int "rfilter", int "block_size", int "block_over", int "search", int "searchparam", int "lambda", int "pnew", int "plevel", int "lsad", int "badsad") { prefilt=i.DeGrainMedian(mode=3) # prefiltered for better motion analysis #analyse and compensate motion forward and backward (to current frame) ml=default(ml, 100) # mask scale thscd1=default(thscd1, 400) # scene change super=i.MSuper(pel=2,rfilter=rfilter) # super clip superprefilt=prefilt.MSuper(pel=2,rfilter=rfilter) # super filtered clip vf = superprefilt.MAnalyse(isb=false,blksize=block_size,overlap=block_over,search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) # forward vectors cf = i.MFlow(super, vf, thscd1 = thscd1) # previous compensated forward sadf = i.MMask(vf, ml=ml,kind=1,gamma=1, thscd1 = thscd1) # forward SAD mask msadf=sadf.MT_Binarize() # binary inverted forward SAD mask vb = superprefilt.MAnalyse(isb=true,blksize=block_size,overlap=block_over,search=search, searchparam=searchparam, truemotion=false, global=true, lambda=lambda, pnew=pnew, plevel=plevel, lsad=lsad, badsad=badsad) # backward vectors cb = i.MFlow(super, vb, thscd1 = thscd1) # next compensated backward sadb = i.MMask(vb, ml=ml, gamma=1, kind=1, thscd1 = thscd1) # backward SAD mask msadb = sadb.MT_Binarize() # binary inverted backward SAD mask msad = MT_Logic(msadf,msadb,"or") # combined inverted SAD mask msad = msad.MT_Expand() # expanded inverted SAD mask msadi = Interleave(msad, msad, msad) # interleaved 3-frame inverted SAD mask #This mask is high (255) where at least one motion estimation is good, #so these areas will be protected Interleave(cf,i,cb) # interleave forward compensated, source, and backward compensated DeSpot(p1=30,p2=12,pwidth=800,pheight=600,mthres=20,merode=33,\ sign=0,show=0,seg=0,color=true,motpn=true, extmask=msadi) Eval("SelectEvery(3,1)") }
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
30th June 2010, 10:21 | #236 | Link |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Script update
I am working on an improved script.
It looks like RemoveDirtMC() followed by MVDegrainMulti() gives realy spectacular results. With special thanks to JohnMeyer for pionting me to RemoveDirtMC. I have a few questions: 1) Who has made RemoveDirtMC() and what is the difference with the original RemoveDirt()? 2) Several step sharpening (big radius first) is absolutely the way to go for maximum quality. But, from a pure technical view, should I apply sharpening before or after dirt removing and degraining? 3) The use of MT. I must place SetMTMode(5) on top of the script, if I understand it good. But then, where to place SetMTMode(2)? Will RemoveDirtMC() has benefit of this? But MVDegrainMulti() comes after RemovedirtMC(). And as far as I know MVDegrainMulti() is multi core allready. Sunny greetings from Belgium, (it's hot here now ) Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
30th June 2010, 12:12 | #237 | Link | |||
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,389
|
That's easy. (But I didn't remember, either.)
Search forum -> search term "RemoveDirtMC" --> show results as posts ---> sort results ascending This will (should) find the first-ever mentioning of the search term on this board. Here it is. Quote:
Quote:
(One can argue like this or like that, but there's not really any technical imperative.) Quote:
__________________
- We´re at the beginning of the end of mankind´s childhood - My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!) |
|||
30th June 2010, 13:17 | #238 | Link | ||||
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Quote:
Quote:
Quote:
Quote:
Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
||||
30th June 2010, 15:11 | #240 | Link | |
Registered User
Join Date: Dec 2004
Location: Terneuzen, Zeeland, the Netherlands, Europe, Earth, Milky Way,Universe
Posts: 689
|
Quote:
Fred.
__________________
About 8mm film: http://www.super-8.be Film Transfer Tutorial and example clips: https://www.youtube.com/watch?v=W4QBsWXKuV8 More Example clips: http://www.vimeo.com/user678523/videos/sort:newest |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|