FluxSmooth

Abstract

author: Ross Thomas (Sansgrip)
version: 1.1a
download: http://www.avisynth.org/warpenterprises/
category: Spatio-Temporal Smoothers
requirements: 

Description

One of the fundamental properties of noise is that it's random. One of the fundamental properties of motion is that it's not. This is the premise behind FluxSmooth, which examines each pixel and compares it to the corresponding pixel in the previous and last frame. Smoothing occurs if both the previous frame's value and the next frame's value are greater, or if both are less, than the value in the current frame.

I like to call this a "fluctuating" pixel, then I like to wipe that pixel from existence by averaging it with its neighbours. For FluxSmoothST, this is (by default) done in a spatio-temporal manner, in that for each fluctuating pixel its 8 immediate spatial neighbours as well as its 2 temporal neighbours (the abovementioned corresponding pixel from the previous and next frames) are considered for inclusion in the average. If the value of each pixel is within the specified threshold, it is included. If not, it isn't. FluxSmoothT performs only temporal averaging.

This filter seems to remove almost all noise from low-noise sources (such as DVD) and a lot of noise from high-noise sources (such as cable TV captures), while maintaining a good amount of detail.

If your CPU supports integer SSE operations (Intel Pentium III and better, AMD Athlon and better) an optimized version of the algorithm will be used.

Using FluxSmoothT instead of FluxSmoothST for temporal-only smoothing is much, much faster (50% faster on my system).

Usage

FluxSmoothT (clip, int "temporal_threshold")

FluxSmoothST (clip, int "temporal_threshold", int "spatial_threshold")

ParameterMeaningDefault
temporal_threshold

Temporal neighbour pixels within this threshold from the current pixel are included in the average.

If set to -1, no temporal smoothing occurs. (Cannot be set to -1 in FluxSmoothT.)

7
spatial_threshold

Spatial neighbour pixels within this threshold from the current pixel are included in the average.

If set to -1, no spatial smoothing occurs.

7

Known Issues

TODO

Author

Ross Thomas <ross at grinfinity.com>

History

$Date: 2004/08/13 21:57:25 $