Smoothing routine

SpotRemover performs smoothing of the video material in time.
That means it does no smoothing across neighboring pixels.
I think this is quite reasonable, because the main source of the video noise is the electrical/thermal oscillations in time.
The reason why there are still so many filters that denoise video in 2D is because smoothing in time can result in a well-known effect of the motion blur.

SpotRemover does not suffer from this problem and here is why:

1. The smoothing is made as the weighed average. That means, for a current pixel in time, its intensity is compared to the intensities of all the other pixels in the smoothing kernel. The smaller is the difference the more weight is assigned to the corresponding pixel. The weight does not depend on the pixel's position in the kernel.
What this gives is the weakened influence of pixels after a sudden intensity jump (e.g.scene change)

I should acknowledge that, up to this point, the original idea was borrowed from the temporal smoother filter of Avery Lee. And I am grateful to him for the best program for processing video, the VirtualDub.

2. The smoothing strength (that is the effective width on intensity scale for the weights assignment) can be changed in finer steps than in the original temporal smooother, which allows the precise control over the noise reduction while keeping the motion intact.

3. The smoothing kernel can be changed from 5 to 15 frames.
Smaller number saves the processing time. Higher number makes the smoothing more accurate (from the math point of view), but it does not smooth the motion. That's because this setting means the maximal kernel width, while the actual kernel is dynamically reduced if a scene change is detected.

4. The intensity and color components of a pixel are smoothed separately, with different smoothing strengths. This can be particularly useful for a VHS video.

Spot detection Intensity locking Color adjustment


Updated: 01/22/2009