Scintilla's Guide to AVISynth Postprocessing Filters: Spatio-Temporal Smoothers

DeGrainMedian - FFT3DFilter - GoldDust - HQDN3D - LRemoveDust - PixieDust

( Home - Spatial Smoothers - Temporal Smoothers - Sharpeners - Dealing with Dot Crawl - Dealing with Rainbows )

Intro

So, you've got your spatial smoothers, which denoise/smooth among the pixels in individual frames (smoothing across the plane). Then you've got your temporal smoothers, which smooth out differences between pixels in different frames (smoothing across time). And then you've got spatio-temporal denoisers, which are basically a little from Column A and a little from Column B: they do denoising/smoothing across both time AND space (therefore 3 dimensions). And why not? They can often be highly effective.
DeGrainMedian
Meant ostensibly for grain removal but also useful for general denoising.

Type: Plugin
Found in file: DeGrainMedian.dll
Author: Fizick
Homepage: http://avisynth.org.ru/degrain/degrainmedian.html
Colorspaces: YUY2 or YV12
Interlacing: Interlaced or progressive
Speed: Fast! (190+ fps)

Defaults: DeGrainMedian(limitY=4, limitUV=6, mode=1, interlaced=false)
Parameters: Usage notes: Back to top
FFT3DFilter
A denoiser that makes use of the Fast Fourier Transform (FFT). It can also be used for limited sharpening.

Type: Plugin
Found in file: FFT3DFilter.dll
Author: Fizick
Homepage: http://avisynth.org.ru/fft3dfilter/fft3dfilter.html
Colorspaces: YUY2 or YV12
Interlacing: Progressive or interlaced
Speed: Slow (14 fps at default settings)

Defaults: FFT3DFilter(sigma=2.0, plane=0, bw=48, bh=48, bt=3, ow=16, oh=16, sharpen=0, interlaced=false)
Parameters:

Usage notes:

... Geez. Is there anything this filter can't do? On top of general denoising, it also combats mosquito noise and even removes dirt and spots. It's kind of like VagueDenoiser, except it uses the Fast Fourier Transform instead of wavelet transforms and it works in 3D instead of just the spatial domain. This also means that even if you overdo the smoothing, the effect usually isn't too bad -- an overdone FFT3DFilter is more of a blur than a washing-out (as opposed to, say, Deen). Heck, on top of the denoising, it can even sharpen your image if you want.

I originally didn't think I would be posting any comparison frames on this page, but I found one for which the effect was so striking that I simply had to. It's from Fushigi Yuugi: Eikou Den, episode 1, as filtered with FFT3DFilter(sigma=3,bw=32,bh=32,ow=16,oh=16,plane=4) (hover your mouse over the image to see the filtered version):

I think you'll agree that the difference is quite stunning; pick almost any mosquito noise on the original frame -- there's plenty to choose from -- and watch it disappear in the filtered frame. Higher sigma values will pound the noise even further into the ground, but often at the cost of harming other scenes by softening details. Back to top


GoldDust
The "heavier" spatio-temporal filter from the Dust family, meant for maximum noise removal.

Type: Plugin
Found in file: DustV5.dll
Author: Steady
Homepage: None
Colorspaces: RGB24, RGB32, or YUY2 (note: NO YV12 SUPPORT)
Interlacing: Progressive only (I believe)
Speed: Slow to very slow (8-16 fps at default settings, depending on scene changes, crossfades, etc.)

Defaults: GoldDust(limit=8)
Parameters: Usage notes: GoldDust is the "heavier", "not really very developed yet" filter from the Dust family of filters, coded by Steady for AVISynth 2.0.x (a version for 2.5.x was never released). All I know about its theory of operation is that it uses some kind of motion compensation. According to Steady, it should provide the maximum noise removal of any of the Dust filters. It can certainly provide some VERY handsome compressibility gains (some of the best I've seen from any single filter), but this often will come at the expense of some details. However, such loss can often be mitigated through use of the Repair filter, and in such a manner as this: Repair is a very handy filter; the idea is to restore details to a filtered clip from the original while keeping the noise filtered out. It really proves its usefulness with denoisers as strong as GoldDust, and the end result can often be very nice indeed.

The number one complaint about the Dust filters is blockiness; Repair may help some with this, but if you get this problem and you can't alleviate it, then you should probably switch to a different filter. Back to top


HQDN3D
A 3D denoiser that targets high-frequency noise.

Type: Plugin
Found in file: hqdn3d.dll
Author: Loren Merritt after Daniel Moreno
Homepage: http://akuvian.org/src/avisynth/hqdn3d/
Colorspaces: YV12 only
Interlacing: Progressive only (at least, it shouldn't be nearly as effective on field-based footage)
Speed: Average (65+ fps at default settings)

Defaults: HQDN3D(ls=4.0, cs=3.0, lt=6.0, ct=4.5)
Parameters:

Usage notes:

HQDN3D stands for "High Quality Denoiser in 3D"; it claims to perform a "3-way low-pass filter" (which probably means some kind of wave transform is involved), aimed at killing noise while keeping blending artifacts low. However, how well it succeeds at this depends on your source and your settings; it seems to do better when the details are strong (by that I mean dark, well-defined edges). It is a rather good denoiser and does not suffer from the blocking problems of PixieDust, which is reason enough to give it a look. Also, it's faster than PixieDust, FFT3DFilter, Deen, etc. There's not much else to say about it. Back to top
LRemoveDust
A scripted denoiser that uses the power of Kassandro's filters (RemoveGrain et al.).

Type: Script function
Requires: RemoveGrain (any one of the four DLLs), Repair (ditto), SSETools (ditto)
Author: Didée, using Kassandro's filters
Homepage: http://forum.doom9.org/showthread.php?s=&threadid=79751&pagenumber=5 is probably your best bet.
Colorspaces: YV12 only (Actually, there's a YUY2 version, but I'm not going to talk about it because getting it to work right can be a pain. If you can work it, then more power to you.)
Interlacing: Progressive only (at least, it shouldn't be nearly as effective on field-based footage)
Speed: FAST! (250+ fps in most scenes, at default settings)

Defaults: LRemoveDust_YV12(clmode=17, limit=2)
Parameters:

Usage notes:

LRemoveDust, as far as I can tell, stands for "Limited RemoveDust", Didée's modification of Kassandro's original RemoveDust script (found in the RemoveGrain documentation); it works by:

While it may not have motion compensation capabilities like the Dust filters do, LRemoveDust is still an excellent 3D denoiser. It's also one of the fastest (due to Kassandro optimizing his filters to hell and back), and it seems to retain plenty of detail. In addition, it does not suffer from the blocking problems of PixieDust. I highly recommend it. Back to top
PixieDust
The spatio-temporal filter from the Dust family meant for maximum compression.

Type: Plugin
Found in file: DustV5.dll
Author: Steady
Homepage: None
Colorspaces: RGB24, RGB32, or YUY2 (note: NO YV12 SUPPORT)
Interlacing: Progressive only (I believe)
Speed: Very slow (4-9 fps at default settings, depending on scene changes, crossfades, etc.)

Defaults: PixieDust(limit=5)
Parameters: Usage notes: This is it. This is the standard, the spatio-temporal compression monster to which all others were compared for a long time. If you're really desperate to get your AMV packed into the smallest file possible, you should not ignore this filter.

As with the other Dusts (except SpaceDust), all I know about its theory of operation is that it uses some kind of motion compensation. According to Steady, it should provide the maximum compression gains of any of the Dust filters; it certainly does usually provide awesome compressibility gains. Its two major downsides (for both of which it is notorious) are its painfully slow speed and the blocky noise it often causes. However, such blockiness can often be mitigated through use of the Repair filter, and in such a manner as this:

Repair is a very handy filter; the idea is to restore details to a filtered clip from the original while keeping the noise filtered out. Though with PixieDust you usually have to worry more about introducing blocks than about killing details, it turns out Repair can also help with the blocks.

Something to watch out for: Here you can find a screenshot from my FLCL video "My Evil Alien" after having been run through PixieDust. This frame is taken from the middle of a fade in from black; it's on such fades to/from black that I usually find PixieDust to cause the most blocking. I mean, look at the sky. Uuuuugly. But on the plus side, the file size is nice and low. Back to top


Home - Spatial Smoothers - Temporal Smoothers - Sharpeners - Dealing with Dot Crawl - Dealing with Rainbows

Last updated on 3/20/08
Questions? Comments? Concerns? Contact Scintilla
Fight Spam! Click Here!