View Full Version : Static noise removal
anton_foy
3rd May 2006, 12:51
Hi!
I want to know if there is a way to remove static (non-moving) noise/grain without loosing too much detail.
I know there are filters like RemoveNoiseMC that looks very good and doesn't seem to loose much detail afterwards but will it work on static noise aswell?
EDIT: maybe static wasn't the right word.
What I mean is non-moving grain.
Mr. Brown
3rd May 2006, 20:05
If you want to remove static noise try temporal filters like
TTempSmooth() (very good but slow)
TTempSmoothF() (good and faster)
TemporalCleaner (fast)
CNR2() (fast and only UV would be denoised)
FluxSmoothT() (fast)
anton_foy
3rd May 2006, 22:53
Thanks! I have read alot of good things about TTempsmooth so I will try it out.
Mug Funky
4th May 2006, 05:37
hang on... if the noise is static (ie doesn't move), then all a temporal filter will do is remove detail - if the noise is more temporally corellated than the signal, a temporal filter can only remove signal.
a sample would be real nice. it's possible you could create a mask containing _only_ the noise, then subtract it from the video at the correct amount. this would be sort of like transparent logo removal.
anton_foy
4th May 2006, 11:20
@Mug Funky
Yeah, I thought so too. By filming against a white wall or something I could make an anti-pattern but the problem is when I use steadyshot function in the camcorder, it will move the grain pattern around a little bit. Then again I could turn off steadyshot but I would get a shakier appearance.
I will see if I can post a sample later today, right now im at work.
foxyshadis
4th May 2006, 20:58
So if you used steady-shot on your other flicks, wouldn't that mean the grain isn't entirely stable anyway? (Though fft-based removal would work wonders, neat image/video is designed with overlit pixels in mind.) Then you'd probably be better off with some combination of removegrain and mcnr.
Identify the noise on a picture by doing abs( source - source.blur() ), then average that over a very long period ( ideally, the whole video ). You should get a mask containing only the static noise. ( you can replace blur() by any spatial denoiser, edge aware denoisers should be the bests though )
Then it's just a matter of using your favorite denoiser and masking the result and the source with that mask.
anton_foy
5th May 2006, 09:17
@ foxyshadis
I am filming a grainy area that is in front of the lens thats why the grain is stable and why steadyshot will make it move. Steadyshot has not been used previously but if I need to turn it on I want the script to work on it too. Otherwise I guess I have to film without steadyshot at all.
@ manao
Yeah it will be over the whole video because I just import clip by clip, scene by scene into avisynth so there are not going to be any scene changes. Im not familiar with spatial denoiser but would this kill some detail?
You don't have a choice, since your noise is static, any temporal denoising can only strengthen it. And since you'll be applying the blur only where the noise is, details should be relatively well preserved.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.