Log in

View Full Version : Advice needed to reduce this kind of noise


Alex-Kid
20th February 2015, 22:20
Hi everybody, I did some night footage and, as I've seen on many consumer-level camcorders like mine, it shows a lot of noise. I've tested many filters and combinations of them, but I can't find an acceptable reduction of this noise. Here's a sample frame:

https://www.mediafire.com/convkey/f572/a1syiddltj2nzlb4g.jpg (http://www.mediafire.com/view/a1syiddltj2nzlb/PUCON.png)

Searching with Google for references, I think it could be ISO noise, but my knowledge is little so I can easily be wrong.

Here's a 25 seconds sample of the original video (1080p, 60 fps, 79 MB): http://www.mediafire.com/download/1j7vsg9pbzazmws/PUCON.MTS

Thanks in advance. Cheers

By ALEX-KID

johnmeyer
21st February 2015, 03:31
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:




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)
}

Alex-Kid
21st February 2015, 06:54
Thanks for the script, I had similar results but with more blur :p

It gets clearer but the noise is still present, especially on low-contrast areas. Could it be possible to improve the picture in those areas?

I'll do some more testing tomorrow.