source=Avisource()
##separate channels and adjust levels
red=source.converttorgb32().showred("yv12")#.levels(8,1,255,0,255)
green=source.converttorgb32().showgreen("yv12")#.levels(7,1,255,0,255)
blue=source.converttorgb32().showblue("yv12")#.levels(14,1,255,0,255)
##temporal denoise (used as an auxiliary clip for the spatial denoiser)
vectors=red.MVAnalyseMulti(refframes=5, pel=2, blksize=16, blksizev=16, overlap=8, idx=1,chroma=false)
auxred=red.MVDegrainMulti(vectors, thSAD=400, SadMode=1, idx=2,plane=0)
auxgreen=green.MVDegrainMulti(vectors, thSAD=400, SadMode=1, idx=2,plane=0)
auxblue=blue.MVDegrainMulti(vectors, thSAD=400, SadMode=1, idx=2,plane=0)
##spatial denoise of separate channels
redvd=red.vaguedenoiser(0,interlaced=false,wiener=true,auxclip=auxred,chromat=-1)
greenvd=green.vaguedenoiser(0,interlaced=false,wiener=true,auxclip=auxgreen,chromat=-1)
bluevd=blue.vaguedenoiser(0,interlaced=false,wiener=true,auxclip=auxblue,chromat=-1)
##fft3d for noise in dark areas
redfft=redvd.fft3dfilter(sigma=.5,sigma2=1,sigma3=3,sigma4=8,plane=0,sharpen=0,bt=2,degrid=2)
greenfft=greenvd.fft3dfilter(sigma=.5,sigma2=1,sigma3=3,sigma4=8,plane=0,sharpen=0,bt=2,degrid=2)
bluefft=bluevd.fft3dfilter(sigma=2,sigma2=3,sigma3=5,sigma4=8,plane=0,sharpen=0,bt=5,degrid=2)
##mix channels and adjust levels if needed
mix=mergergb(redfft,greenfft,bluefft,"rgb32").levels(16,1,255,0,235).converttoyv12()
#sc=stackhorizontal(source.converttoyv12(),mix.histogram())
return(mix)
Here is the script I used to denoise the 2 test clips. I have never used RGB before. Is there a better way? I guess I'm bothering because most people nowadays don't like noise in the picture. Is there some recommended settings that anybody can offer me that would unoffensively reduce noise?