[Main Page][What's New] [Walrus Writings] [About The Walrus] [About This Site] [Links]


Jim Casaburi's free software download page


Page last updated on 3/26/2000
[News] [2D Cleaner][Temporal Cleaner] [Legal Notes] [Other Related Links] [Thanks]

News
3/26/2000
    I finally got the correct update to the page uploaded that includes beta 3 of 2d cleaner that I finished several days ago. Beta .3 of 2d cleaner adds in a user configurable averaging area so the filter is no longer limited to 3x3 averaging areas.  Optimization is probably next for both filters.
    Note:  As I am stuck in Los Angeles for the next few days with only my laptop, and my laptop stuck in Win98 so I can use my SCSI backup drive, I will probably not be able to do much development on either filter until Wednesday or so.  I also want to thank all of you who have been giving me this incredible amount of positive feedback on the filters.  It is appreciated.

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.


2D Cleaner Beta 0.3

    A Virtualdub's filter that that only averages pixels in a configurable radius around a source pixel that are within a configurable threshold of the central pixel.  This has the effect of blending low-level video noise while retaining sharp details.

    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.

Download the filter!
 

Temporal Cleaner Beta 0.2
    A modified version of Virtualdub's internal temporal smoother filter that only averages pixels between frames that are within a certain threshold.  This has the effect of blending away much of the random video noise that appears in one frame, but not another, but it does not blend motion leading to ghosting effects. It also has a feature dubbed "pixel lock" whereby pixels that do not change much between multiple frames end up being set to the same value. This feature, can substantially reduce or remove video noise by ignoring tiny pixel changes, and should aid MPEG-1, 2 or 4 compression, especially for moderatly noisy video sources.

    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!)

Download the filter!


Legal notes and such


    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


Other Related Links


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.


Thanks


     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.

[Return to my home page]

Copyright (C) 2000 Jim Casaburi