Jim Casaburi's free software download page
3/23/2000
Updated both 2d cleaner and temporal cleaner two
beta 0.2 with a few bug fixes, and added interlaced mode into 2d cleaner
and "pixel lock" into temporal cleaner.
3/21/2000
Initial release of the filters. There is an awful
lot of work which needs to be done on the filters, and doubtlessly many
bugs. Please email me at casaburi @ earthlink.net if you have any
suggestions or bug reports.
The options available for the filter are a threshold
value, a "show sharp edges" option, an interlaced option, and a configurable
radius around the source pixel.
Threshold can be anywhere from 0 to 255, and defines
the maximum difference between a source pixel and a surrounding pixel in
which the program will attempt to average the source pixel with the surrounding
pixels. Higher thresholds blend more. The default is 12, which
seems to work well for most of my video sources, but I highly recommend
experimenting with different values to find the perfect match of removing
noise and retaining details.
The "show sharp edges" option, inspired by Donald
Graft's equivalent feature in his Smart Deinterlacer, will turn any pixel
where less than half of its surrounding pixels black. This is useful
for being able to see what pixels are passing through the threshold without
being blended (as much). Do NOT leave this option on when you are
actually converting your files! (note: this setting is NOT
saved for batch operations or when you save processing settings, since
this option is meant only for "debugging" ones settings)
The interlaced video option when checked processes
the video as if it were interlaced. This means there is no attempt made
to blend between even and odd scanlines. This keeps interlaced motion intact
for those who are targeting full resolution interlaced video sources such
as DV .AVIs or interlaced MPEG-2. If the video file you are dealing with
is not interlaced, or under 288 pixels in height, it is recommended you
not enable this function.
The radius around source pixel option defines the
area around the source that will be considered by the filter. The
bigger the radius, the better the noise reduction can be, however, the
filter slows down geometrically the larger the radius is made. A
radius of 1 pixel means that the filter is doing 3x3 filtering for every
pixel. A radius of 10 pixels means that the filter is doing 21x21
filtering for every pixel, or over 20 fold the number of operations.
The options available for the filter are a threshold
value, a "show motion" option, a pixel lock threshold value and a scene
detection threshold value.
Threshold can be anywhere from 0 to 255, and defines
the maximum difference between a pixel in the current frame and the pixel
in the previous frame in which the program will blend the two together.
Higher thresholds blend more motion together, but will also blend more
video noise away. The default is 12, which seems to work well for
my video sources, but I highly recommend experimenting with different values
to find the perfect match of removing noise and not blending motion.
The "show motion" option, inspired by the equivalent
function in Donald Graft's Smart Deinterlacer, will turn any pixel in the
current frame that exceeds the threshold black. It also turns any
pixels that are "pixel locked" blue. This will show you the areas
of the frame that the filter considers to be moving. Do NOT leave
this option on when you are actually converting your files. (note:
this setting is NOT saved for batch operations or when you save processing
settings, since this option is meant only for "debugging" ones settings)
The "pixel lock" threshold value defines the maximum
difference between pixels between frames where the pixel from the previous
frame can replace the pixel in the current frame. It is recommended
that the "pixel lock" threshold be set to a value less than the main threshold
value.
The scene detection threshold defines the percent
of pixels in a frame that exceeds the threshold in order for the filter
to assume a new scene has begun. When a new scene is detected, all locked
pixels are ignored and the filter passes the new frame untouched.
This was necessitated since "pixel lock" would often keep some pixels from
previous scenes even after scene change. The default value of 50
seems to work for my video sources, but you should experiment to see what
works best.
BTW: Since I cache the last frame internally within the filter and do not rely on Virtualdub to keep track of it, this filter can (and perhaps should) be run multiple times within a filter chain to further blend out noise. (Thanks to Donald Graft for his great suggestion to handle previous frames this way!)
At this point, ALL of these filters are probably
quite buggy and VERY unoptimized. Do note that due to the nature
of these filters, I find it unlikely that they will ever be terribly fast.
I will be releasing the source code as soon as I get the source looking
a lot better, and hopefully more optimized. Right now I would be
quite embarrassed to let the world know how ugly my code can look.
When I do release the source it will be released under the GPL since I
believe in the idea of community software, and since I partially based
my code on other GPL covered source code.
As you may be able to surmise from my planned release of the code under the GPL, these filters are totally and completely free to download, distribute and use. Please check the GNU web page for more information about the specifics of the licensing model. I claim no liability for any use of these filters for any malicious or illegal activities nor any spontaneous combustion that may occur from use of the software, you alone are responsible for your actions.
Also if you would like to add a link to my filters,
PLEASE make the link to http://home.earthlink.net/~casaburi/download/
I cannot guarantee the links in this page will always work
Virtualdub
- This is the mother of them all. Avery Lee's page for the excellent
free video editing/capture package that is quickly becoming one of the
best in existence.
Smart Deinterlacer and Unsharp Mask - The home page for Donald Graft's filters, which just happens to include the best deinterlacer available anywhere, and a great unsharp mask filter, which despite what it sounds like, is a great sharpening filter.
bbMPEG - The home page for one of the best MPEG encoders in existence, that also happens to be free. It may not be the fastest encoder, but the results are truly amazing.
Chris LaRosa's Desktop Video Page - Home page to an optimized 2:1 reduction filter and frame tweaker filter for Virtualdub.
Thank you to Avery Lee for developing the
incredible program virtualdub, and for releasing his source code under
the GPL (which I used to as a template for several of these filters), and
to Donald Graft for his unending help, support, and useful suggestions.