Log in

View Full Version : Seeking general advice about denoising


Avisynth_challenged
26th May 2008, 20:57
Hi all,

I'm trying to clean up an analog capture. The source is a live-action movie digitally converted from laserdisc, then saved to Huffyuv 2.1.1.

The main issues with my source video are video noise, and film grain. I plan to perform the following steps to clean the source:

Step 1: Preliminary spatial filtering, using "Defreq()" and "Undot()",

Step 2: Averaging three captures which have gone through Step 1, using either "Toot" (http://forum.doom9.org/showthread.php?t=78338) or the classic Dividee formula for capture averaging (http://forum.doom9.org/showthread.php?p=232167#post232167),

Step 3: Grain removal (best method TBD)


I've performed Step 1 on one of my three captures. I ran two versions of my Avisynth script:

1. Defreq(), followed by Undot()
2. Undot(), followed by Defreq()


The first script yielded a video which was slightly smaller (i.e. better compressed) than the video output of second script. To my eye, the two videos were visually identical.

I'm inclined to run with the first version of the script, because it compressed slightly better. But I'm wondering if my decision algorithm is correct. Basically I'm running two filters, and then deciding that the best order of the two filters is whichever one produces a smaller file, all other things being equal.

So I guess my general question to the community would be: is this a reasonable approach to decide in what order to apply denoising filters in Avisynth?

Thanks in advance for any feedback: :thanks:

Blue_MiSfit
27th May 2008, 00:42
Well, as you guessed - experimentation is usually the only way to go. It's hard to know ahead of time. Certain filters (rainbow / dot crawl removal) must always be done before inverse telecine/ deinterlacing to be effective.

It's hard to say.

I would suggest a couple things - first switch out UnDot for RemoveGrain(mode=1) It's identical, and much faster. You could try mode=5, which is a tiny bit stronger, and mode=2, which is even stronger.

If you want some really awesome degraining, MVDegrain2 is hard to beat. It's also very slow! Rendering slow scripts to a lossless intermediate (HuffYUV or Lagarith) can save a lot of time, if you plan on doing a 2 pass encode.

DeGrainMedian is also a good degrainer. It's very fast, and very flexible. Finally, for cleaning chroma, I like fft3dfilter/fft3dgpu, set to plane=3, with moderate sigma values, like 2-3. This will clean only chroma, and do a nice job. UtoY / VtoY are good commands to take a look at the chroma planes mapped to greyscale values.

Good luck!

Post a sample if you want some more targeted advice :)

~MiSfit