It's not as simple as that with old film or any analog tape. Look at the image at the bottom of this page:
http://www.geocities.com/fredthompson6
This shows a number of things including:
1) scratch/dropout restoration must be done on a per-field basis.
2) spatial filtering must be done on a per-field basis
3) scratch/dropout filtering must be done before decombing
(believe me, it's a LOT harder otherwise)
4) chroma filtering needs to be done first
In this case, greyscale() or tweak() works for chroma but only because this is a B&W film captured from VHS tape.
I'm also looking at near-black swim on camcorder and satellite source. That's where DarkSmoother comes in.
Am also wondering how to get rid of the swimming near the edges of satellite MPEG and at the beginning of a scene change. Some of that source is pre-compressed so very good but hte streamed stuff is noisy as all getout.
Tried encapsulating the optimal script but AviSynth is choking on it.
The idea is to have global variable at the top of the script so Joe Sixpack can easily configure it. These are followed by media-specific cleaning then the field split like so:
GetParity() ? nop() : ReverseFieldDominance()
even=SelectEven(SeparateFields()).KVCD_Filter()
odd=SelectOdd(SeparateFields()).KVCD_Filter()
Interleave(even,odd).Weave()
(That first line is to ensure order because DV is reversed.)
Problem is, AviSynth doesn't like the encapsulation. I'm PMing you the script right now.