View Single Post
Old 21st February 2015, 03:31   #2  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
A more-or-less generic MDegrain call seems to provide a pretty good start (see code below). You could add CNR2 or some other function prior to MDegrain2 to work more on the chroma noise.

Here is the result of this script:




Code:
SetMemoryMax(768)

Loadplugin("C:\Program Files\AviSynth 2.5\plugins\MVTools\mvtools2.dll")
Loadplugin("C:\Program Files\AviSynth 2.5\plugins\Film Restoration\Script_and_Plugins\removegrain.dll")

SetMTMode(5,6)
source=AVISource("E:\fs.avi").AssumeTFF().ConvertToYV12(interlaced=false).killaudio()
SetMTMode(2)

output=MDegrainProg(source,16,4,0)
return output

#-------------------------------------
#Denoising function, progressive video
function MDegrainProg(clip source, int "blksize", int "overlap", int "dct")
{
  overlap=default(overlap,0) # overlap value (0 to 4 for blksize=8)
  dct=default(dct,0) # use dct=1 for clip with light flicker
  preNR = source.fft3dfilter(sigma=4,interlaced=false)

  preNR_super = preNR.MSuper(pel=2, sharp=1)
  src_super =   source.MSuper(pel=2, sharp=1,levels=1)

  backward_vec2 = MAnalyse(preNR_super,isb = true,  delta = 2, blksize=blksize, overlap=overlap, dct=dct)
  backward_vec1 = MAnalyse(preNR_super,isb = true,  delta = 1, blksize=blksize, overlap=overlap, dct=dct)
  forward_vec1 =  MAnalyse(preNR_super,isb = false, delta = 1, blksize=blksize, overlap=overlap, dct=dct)
  forward_vec2 =  MAnalyse(preNR_super,isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct)

  MDegrain2(source,src_super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=800)
}
johnmeyer is offline   Reply With Quote