Articles Technology Blog News Company
Film Dirt Cleaner
Download now!
Free, 0.1 MB

Source code

This is a free plugin for VirtualDub (and Video Enhancer) for removing film dirt-like noise. It uses information from previous and next frames to understand what pixels are noise and fix them using values from neighbor frames. Some before / after examples:

=>   =>

How it works

It uses motion search and calculates motion flow in both directions - from previous and next frames. For each block of current frame it compares corresponding blocks from neighbor frames. If they are similar enough, they are used to bracket pixel values in the block of current frame. If they are not similar enough, the block in current frame remains intact. If too many blocks are kept intact, then there is probably a cut or just too much rapid changes, so the whole method is not applicable. In this case the whole frame is processed with degrain procedure instead.


When deciding whether two 8x8 blocks are similar, the plugin compares corresponding pixels and if more than N pixels differ in brightness by more than some noise threshold T, these two blocks are considered not similar. So the two parameters in the settings dialog are noise threshold T and max number of noisy pixels N.

Where it works

This plugin uses advanced features of VirtualDub API and works in YV12 colorspace, so it requires VirtualDub 1.9.1 or higher, or Video Enhancer 1.9.12 or higher.