Log in

View Full Version : MC noise removal script


Pages : 1 2 3 4 5 [6] 7

Vesdaris
30th January 2009, 14:42
Oh. strange. It worked fine
here it is
http://img502.imageshack.us/img502/3739/3001gm1.th.jpg (http://img502.imageshack.us/my.php?image=3001gm1.jpg)

thetoof
1st February 2009, 04:19
mt_something = masktools2
Do you have it in your plugins folder? Else, make sure you explicitely load it with loadplugin("path\mt_masktools-25.dll")

JnZ
6th February 2009, 23:47
I tested MC last couple of days and I must only say: very nice job Spuds.

For strong noise I used only Neat Video, which was capable remove very hard noise, last few days I found mc_spuds and tested. Results are very good, almost unbeliveable. :)

Original:
http://img4.imageshack.us/img4/7808/originalhp8.th.png (http://img4.imageshack.us/my.php?image=originalhp8.png)

mc_spuds (fr3, str6, edge, chroma):
http://img23.imageshack.us/img23/6281/mcfr3st6chroedgeyv8.th.png (http://img23.imageshack.us/my.php?image=mcfr3st6chroedgeyv8.png)

I'm remastering DVD SG, it's really crappy source...

Thanks for this beutiful filter Spuds, and keep it going...:thanks:

rkalwaitis
8th February 2009, 14:59
salehin

It worked well on some old films I had. Very impressed.

rkalwaitis
14th February 2009, 08:43
Anyone,

I cant use focus=true as I receive an error of invalid use or RemoveGrain mode of 20. Does anyone know what Im doing wrong? I loaded all of the appropriate .dlls

Why cant I use temporal and aggressive at the same time? Is this taboo?

I also can not get debug to work. What is the correct syntax to use?

I can not use sharpp=3 it gives me the error or the invalid use of remove grain mode 19.

What are the advantages of using preprocessing and postprocessing as the obvious disadvantage is fps loss?

Sorry for so many questions, try to get the most of this excellant script.

Thanks K

Adub
14th February 2009, 20:49
Make sure that you have the latest version of RemoveGrain.

See here:
http://avisynth.org/mediawiki/Removegrain

rkalwaitis
16th February 2009, 22:19
Merlin7777, that seemed to help. To many versions of a wide variety of goodies to keep up with :) Ill play more and try to ask worthy questions.

rkalwaitis
20th February 2009, 08:37
I also tried FuPPs Hybridq with preset of Hybridq and gave very similar results if not a tad better (at least to my eye). The kicker FuPPs is much faster.

http://forum.doom9.org/showthread.php?t=131920&page=2

fjhdavid
25th February 2009, 00:48
I read all the thread. Right now I use fft3dfilter alone and I would like to test mc-spuds.

I found the last mc_spuds script and I read the mc_spuds.htm which list all the needed filters (great documentation).

I found some of the filters, but some links are broken (MVtools, deblock,...)...

Could you post somewhere a link to an archive "all in one package" .rar with all the filters?

It would be very helpful!

thanks
Francois

Yobbo
25th February 2009, 08:47
Could you post somewhere a link to an archive "all in one package" .rar with all the filters?

It would be very helpful!

thanks
Francois

Agreed.

fjhdavid
25th February 2009, 10:38
more simple for the moment,

Could someone of MC_spuds user on this forum create an archive of their avisynth\plugins directory and post it attached here?

thanks
Francois

Yobbo
11th March 2009, 21:24
(Here (http://www.zshare.net/download/5688818253373915/), fjhdavid.)

When using "temporal=true" I get "don't know what 'tlimit' means"? I am using 1.1 beta. :confused:

Vesdaris
30th April 2009, 09:50
Great script. Thank you.
btw i was wondering why the speed is faster with strength=3 than with strength=2
(MC_Spuds(strength=2,frames=4,search=3,sharpp=2) is slower than the same but with str=3

Dominiko
19th June 2009, 22:00
About Mc_Spuds(Temporal = true[,aggressive=false]), is it equal to Mc_Spuds(aggressive=false).TemporalDegrain() or something like? This Script is too complicated for me :(

rkalwaitis
18th October 2009, 08:52
Spuds, I havent seen any updates in a while. Is there a plan by you to update your script for the new version of dft?

K

rkalwaitis
23rd October 2009, 15:51
Which version of the removegrain packages must I use to enable the postprocess option. I get an error stating clense is not available.

Didée
23rd October 2009, 16:32
Noted the list (http://forum.doom9.org/showthread.php?p=1060208#post1060208)?

rkalwaitis
23rd October 2009, 18:18
Thanks Didee, I had the right Removegrain/Dirt packages, but I didnt get rid of the other dlls that I did not need. After rereading the instructions there was only to be one of them and not the SSE or S. This seemed to fix the problem as not post process works. Thank you again.

rkalwaitis
23rd October 2009, 18:44
Now I can not use the LSF option with MC_spuds. The postprocessor works but not sharpening. Contrasharpening works. LSF Does not. I get a RemoveGrain: Invalid mode 19. Same situation when trying to use LSFMod with it.

Does anyone know how to fix this? Thanks K

I did not mean to make Lato so upset,

But the read me at the beginning is confusing,

this is from another source and Didee said, "You need to get the "v1.0b "beta" release", and don't use the ~SSE3 versions." I downloaded the link Didee gave there and it seems to work. So the v1.0b "beta" release is so far working.

(The official v0.9 is too old, the intermediate pre-v1.0 exist in different versions with different bugs, and the actual v1.0 changed the internal framework by so much that it's quite incompatible with the old versions for which most scripts are layed out...)

LaTo
23rd October 2009, 18:55
Always, always the same thing... SEARCH!

rkalwaitis
23rd October 2009, 20:58
Nevermind, I see how this is going to go. Sorry for any inconvienances.

Didée
24th October 2009, 14:16
Admitted, there is lots of confusion with RemoveGrain versions, and finding the "fitting" one is not trivial. To make things worse, you can't just go with the very-latest version, since 99% of all scripts are not adopted to the final version v1.0.
(And yes, as far as my scripts are concerned, I'm part of the misery, too.)

Hint: this one (http://forum.doom9.org/showthread.php?p=976573&highlight=hurdy-gurdy#post976573) should work without problems, in almost all cases. Just note the SSE3-fix is *not* in there. Use the SSE2 versions, they're fine.

rkalwaitis
24th October 2009, 21:11
thanks Didee.

Dogway
23rd March 2010, 23:21
MC_Spuds(mode="high") freezes with srestore. Dont know why.

rkalwaitis
28th May 2010, 21:12
Is it possible to utilize all of the bells and whistles of MC_Spuds, but use dfttest as the main denoiser? I know it will be slow.

Dogway
28th May 2010, 21:22
Im still wondering how dfttest is any good, I would like to see tests...

rkalwaitis
28th May 2010, 21:25
I think DFTTest is a very good denoiser, all though a bit on the slow side. There is a script on this site for a motion compensated dfttest, check it out for yourself.

popper
11th October 2010, 05:00
Old script removed, get the latest here (http://www.rcboataholic.com/MC_Spuds.zip)

your link from the second post no longer works, its now a parked site apparently, is there other more current noise removal scripts available for download ?

Usedocne
11th October 2010, 16:39
@popper

Maybe try here (http://avisynth.org/mediawiki/MC_Spuds).

popper
13th October 2010, 07:29
thanks

javlak
3rd June 2011, 16:31
Apologies for necroing this thread, but I was porting this for MVTools2 and while browsing through the code I noticed a small typo:

line 292: global idx_poiner = idx_pointer + 1

This should clearly be:

global idx_pointer = idx_pointer + 1

So to anyone still using this script and to the maintainers of it, I would advise changing the particular line.

diimaan
20th July 2011, 20:52
when using this in my mc_spuds

removeblocks=true


I am getting the error "There is no function named Deblock_QED"

but I have the deblock_qed avs in my plugin's directory! what could be wrong here?

Gavino
20th July 2011, 22:18
but I have the deblock_qed avs in my plugin's directory!
If you want it loaded automatically from the plugin directory, you will need to rename it as .avsi.

althor1138
19th August 2012, 23:52
I'm a sci-fi fan and often find myself using avisynth to denoise stuff with starfields in it and they always seem "diminished" afterwards. If I understand correctly the function "starmask" in MC_Spuds preserves the stars so I've been trying to extract it from the script so I can use it as a standalone solution to my problem. The problem is I've gotten it to where I think it is correct however it doesn't really seem to do anything so I wonder if anybody has any input on where I've gone wrong. I'm not really sure what I'm doing so please be kind :).

FUNCTION Starmask(clip input,int thStar,int lthresh)
{

low = eval("input.greyscale.fft3dfilter(sigma=4,bt=1)")
high = eval("input.greyscale.fft3dfilter(sigma=12,bt=1).removegrain(17)")

maskstar = mt_makediff(low,high).mt_lut("x " + string(lthresh) + " < 0 x ?")
maskclip = maskstar.removegrain(4)
nullclip=blankclip(input)
check=Conditionalfilter(maskclip,nullclip.mt_binarize(upper=false),maskstar.mt_inflate().mt_inflate,"AverageLuma()","<",string(thStar),false)
output=mt_merge(input,check,maskstar,luma=false)
RETURN output
}

Jenyok
5th September 2012, 17:21
Didee
.
I am very sorry.
Why do you use MVxxxx (MVAnalyse, MVFlow and so on) functions in MC SPUDS script ?
Why do you NOT use Mxxxx (MAnalyse, MSuper and so on) functions in MC SPUDS script ?
.
May be you will rewrite script MC SPUDS to new MVTools functions (MSuper, MAnalyse and so on) ?
New version of MC SPUDS script.

Tempter57
6th September 2012, 07:01
Jenyok
MC_Spudsmod.avsi (http://multi-up.com/756728) with mvtools2.dll

Jenyok
6th September 2012, 09:52
Tempter57
.
Thanks.

Vesdaris
2nd October 2012, 21:05
I once used it ages ago and had no problems running it. Idecided to give it another go yesterday and couldnt get it working.
i downloaded MC_Spudsmod.avsi, all dlls that are needed to run it
but im getting this error "there is no function named clense"
im on win 7 64

here is what i have in my plugin directory
http://i47.tinypic.com/35lsxzm.jpg


any ideas would be greatly appreciated, guys)

cobo
2nd October 2012, 22:12
Using RemoveGrain v1.0 pre-release would give that error. The original requirement (http://forum.doom9.org/showthread.php?p=1060208#post1060208) was for RemoveGrain v0.9 - I didn't look through this thread to see if it had been updated though. I think RemoveGrain v1.0b "beta" release might work too.

Links to the different versions are here:
http://avisynth.org/mediawiki/Removegrain

Vesdaris
3rd October 2012, 20:45
hmm i tried using removegrain 0.9 then v1.0b "beta" release and now it says "there is no function named "removegrain" .instead of there is no function named clense.. im lost..
oh and there is a mistake on a picture above. instead of rsharpen it was of course RemoveGrainTSSE2.

Jenyok
5th October 2012, 14:22
Corrected version of script.
.

#############################################
# Motion Compensated dfttest #
# Really Really Really Slow #
# #
# For best results, use a mcradius equal to #
# (tbsize-1)/2 #
# #
# MDegrain will also be run if mdg == true #
# #
# mcradius is hardlimited at 5 #
# #
#############################################



LoadPlugin("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\MVTOOLS-V2_5_11_3\mvtools2.dll")
LoadPlugIn("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\DFTTEST-1_9_2\dfttest.dll")
LoadPlugIn("C:\PROGRAM FILES\AVISYNTH 2.5\PLUGINS\DEGRAINMEDIAN_20061008\degrainmedian.dll")



function dfttestMC (clip input, bool "Y", bool "U", bool "V", int "ftype", float "sigma", float "sigma2",
\ float "pmin", float "pmax",
\ int "sbsize", int "smode", int "sosize", int "tbsize", int "tmode", int "tosize",
\ int "swin", int "twin", float "sbeta",
\ float "tbeta", bool "zmean", float "f0beta", int "mcradius", bool "mdg", int "pp", int "ppstr",
\ int "thSAD", int "mdgthSAD", int "thSCD1", int "thSCD2",
\ int "blksize", int "pel", int "overlap", int "dct", int "search")
{
o = input

# dfttest-related options
Y = default(Y, true)
U = default(U, true)
V = default(V, true)
ftype = default(ftype, 0)
sigma = default(sigma, 16.0)
sigma2 = default(sigma2, 16.0)
pmin = default(pmin, 0.0)
pmax = default(pmax, 500.0)
sbsize = default(sbsize, 12)
smode = default(smode, 1)
sosize = default(sosize, 9)
tbsize = default(tbsize, 5)
tmode = default(tmode, 0)
tosize = default(tosize, 0)
swin = default(swin, 0)
twin = default(twin, 7)
sbeta = default(sbeta, 2.5)
tbeta = default(tbeta, 2.5)
zmean = default(zmean, true)
f0beta = default(f0beta, 1.0)

# mvtools-related options
mcradius = default(mcradius, 2)
mcradius = (mcradius > 5) ? 5 : (mcradius < 1) ? 1 : mcradius
mdg = default(mdg, false)
pp = default(pp, 1)
ppstr = default(ppstr, (pp >= 2) ? 16 : (pp == 1) ? 1 : 9001)
mdgthSAD = default(thSAD, 400)
thSAD = default(thSAD, 10000)
thSCD1 = default(thSCD1, 400)
thSCD2 = default(thSCD2, 130)
blksize = default(blksize, 8)
pel = default(pel, 2)
overlap = default(overlap, 2)
dct = default(dct, 0)
search = default(search, 5)

# Pre-ME denoising
pp = (pp >= 2) ? o.dfttest(sigma=ppstr) : (pp == 1) ? o.DeGrainMedian(mode=ppstr) : o

# MSuper
#pp_super = pp.MSuper(pel=pel)
pp_super = pp.MSuper(pel=pel, sharp=2)

# Motion vector search
b5vec = (mcradius >= 5) ? MAnalyse(pp_super, isb=true, search=search, delta=5, overlap=overlap, blksize=blksize, dct=dct) : NOP
b4vec = (mcradius >= 4) ? MAnalyse(pp_super, isb=true, search=search, delta=4, overlap=overlap, blksize=blksize, dct=dct) : NOP
b3vec = (mcradius >= 3) ? MAnalyse(pp_super, isb=true, search=search, delta=3, overlap=overlap, blksize=blksize, dct=dct) : NOP
b2vec = (mcradius >= 2) ? MAnalyse(pp_super, isb=true, search=search, delta=2, overlap=overlap, blksize=blksize, dct=dct) : NOP
b1vec = MAnalyse(pp_super, isb=true, search=search, delta=1, overlap=overlap, blksize=blksize, dct=dct)
f1vec = MAnalyse(pp_super, isb=false, search=search, delta=1, overlap=overlap, blksize=blksize, dct=dct)
f2vec = (mcradius >= 2) ? MAnalyse(pp_super, isb=false, search=search, delta=2, overlap=overlap, blksize=blksize, dct=dct) : NOP
f3vec = (mcradius >= 3) ? MAnalyse(pp_super, isb=false, search=search, delta=3, overlap=overlap, blksize=blksize, dct=dct) : NOP
f4vec = (mcradius >= 4) ? MAnalyse(pp_super, isb=false, search=search, delta=4, overlap=overlap, blksize=blksize, dct=dct) : NOP
f5vec = (mcradius >= 5) ? MAnalyse(pp_super, isb=false, search=search, delta=5, overlap=overlap, blksize=blksize, dct=dct) : NOP

# Optional MDegrain
#o_super = mdg ? o.MSuper(pel=pel, levels=1) : o
o_super = mdg ? o.MSuper(pel=pel, levels=1, sharp=2) : o
mdegrained =
\ (mcradius >= 3 && mdg) ? o.MDegrain3(o_super, b1vec, f1vec, b2vec, f2vec, b3vec, f3vec, thSAD=mdgthSAD, thSCD1=thSCD1, thSCD2=thSCD2) :
\ (mcradius == 2 && mdg) ? o.MDegrain2(o_super, b1vec, f1vec, b2vec, f2vec, thSAD=mdgthSAD, thSCD1=thSCD1, thSCD2=thSCD2) :
\ (mdg) ? o.MDegrain1(o_super, b1vec, f1vec, thSAD=mdgthSAD, thSCD1=thSCD1, thSCD2=thSCD2) : o

degrained = (mdg) ? mdegrained : o

# Motion Compensation
#degrained_super = degrained.MSuper(pel=pel,levels=1)
degrained_super = degrained.MSuper(pel=pel, levels=1, sharp=2)
b5clip = (mcradius >= 5) ? degrained.MCompensate(degrained_super, b5vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
b4clip = (mcradius >= 4) ? degrained.MCompensate(degrained_super, b4vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
b3clip = (mcradius >= 3) ? degrained.MCompensate(degrained_super, b3vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
b2clip = (mcradius >= 2) ? degrained.MCompensate(degrained_super, b2vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
b1clip = degrained.MCompensate(degrained_super, b1vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2)
f1clip = degrained.MCompensate(degrained_super, f1vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2)
f2clip = (mcradius >= 2) ? degrained.MCompensate(degrained_super, f2vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
f3clip = (mcradius >= 3) ? degrained.MCompensate(degrained_super, f3vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
f4clip = (mcradius >= 4) ? degrained.MCompensate(degrained_super, f4vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP
f5clip = (mcradius >= 5) ? degrained.MCompensate(degrained_super, f5vec, thSAD=thSAD, thSCD1=thSCD1, thSCD2=thSCD2) : NOP

# Create compensated clip
interleaved =
\ (mcradius >= 5) ? Interleave(f5clip, f4clip, f3clip, f2clip, f1clip, degrained, b1clip, b2clip, b3clip, b4clip, b5clip) :
\ (mcradius == 4) ? Interleave(f4clip, f3clip, f2clip, f1clip, degrained, b1clip, b2clip, b3clip, b4clip) :
\ (mcradius == 3) ? Interleave(f3clip, f2clip, f1clip, degrained, b1clip, b2clip, b3clip) :
\ (mcradius == 2) ? Interleave(f2clip, f1clip, degrained, b1clip, b2clip) :
\ Interleave(f1clip, degrained, b1clip)

# Perform dfttest
filtered = interleaved.dfttest(Y=Y, U=U, V=V, ftype=ftype, sigma=sigma, sigma2=sigma2, pmin=pmin, pmax=pmax,
\ sbsize=sbsize, smode=smode, sosize=sosize,
\ tbsize=tbsize, tmode=tmode, tosize=tosize, swin=swin, twin=twin,
\ sbeta=sbeta, tbeta=tbeta, zmean=zmean, f0beta=f0beta)

output = filtered.SelectEvery(mcradius * 2 + 1, mcradius)

return (output)
}

STJAM
16th October 2012, 01:17
I was hoping that MC_spudsmod.avsi could be mirrored on a site were membership or a download program is not required - possibly mediafire.
Thanks.

sinz718
12th February 2013, 17:23
MC_spudsmod.avsi Script Mirror @Request (http://www.4shared.com/file/2JTXlP3G/MC_SpudsMod.html)

STJAM
2nd March 2013, 20:10
Thanks, but no thanks. I neither want a 4Shared account or desktop.

qwerty1983
3rd December 2014, 09:18
Could someone be kind enough to post MC_spudsmod.avsi ?
Thank you.

GMJCZP
3rd December 2014, 17:35
Could someone be kind enough to post MC_spudsmod.avsi ?
Thank you.

I did not get it, the Russians seem to be the last who have used it.

StainlessS
3rd December 2014, 20:35
I spent abut 20/30 mins too, could not find.

udobroemme
3rd December 2014, 23:22
I've found it: :)

STJAM
6th December 2014, 23:33
Script error: Invalid argument to function "debug_view". One of the things I really liked about MC_Spuds were the debug outputs.

qwerty1983
7th December 2014, 12:19
use
MC_Spudsmod(debug=x) # 0 >= x < 10 , default is debug=0

# 1 = show settings
# 2 = show input/ouput what changed frame
# 3 = side by side input and output
# 4 = side by side, final view and grayscale difference map
# 5 = side by side motion mask and static mask
# 6 = side by side motion mask and motion vectors
# 7 = side by side edge mask and inverse edge view
# 8 = side by side motion mask and edge mask
# 9 = 4view of motion,static,edge and star masks


BUT there is a PROBLEM

the debug_view arguments are in the wrong order.
you have to replace lines 228-233 of the modified script with this :
(debug > 0 && debug < 10) ? debug_view(last, clp, debug, blocksize, overlap, thsad, ml, frames, strength, \
preprocess, postprocess, chroma, dct, maskmotion, maskstatic, maskedge, \
aggressive, bv1, dering, edgeclean, focus, anime, thscd1, thscd2,pel, sharp, rfilter, \
ls_x, ls_y, lsfstr, starfield, addnoise, maskstar, unblock, search, \
premax, sharpp, flow, temporal, edm_hi, edm_lo, thstar, lumathres, \
quant1, quant2, uv, truemotion, thsad, lambda, lsad, pnew, plevel, \
th_lo, th_hi, limit, mvglobal, fs1, fs2, fs3, fs4, prefast, premc) : last