FluxSmooth
From Avisynth wiki
(Difference between revisions)
(FluxSmooth v1.1b) |
(Archived Downloads) |
||
Line 1: | Line 1: | ||
− | {{FilterCat|External_filters|Denoisers|Temporal Denoisers}} | + | {{FilterCat|External_filters|Denoisers|Spatial-Temporal Denoisers}} |
− | {{ | + | [[Category:Plugins]] |
+ | {{Filter3 | ||
| {{Author/SansGrip}} | | {{Author/SansGrip}} | ||
| v1.1b | | v1.1b | ||
| [http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip FluxSmooth-1.1b.zip] | | [http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip FluxSmooth-1.1b.zip] | ||
− | | Temporal Denoisers | + | | Spatial-Temporal Denoisers |
− | | | + | |'' "There is no copyright on this code, and there are no conditions on its distribution or use. Do with it what you will" '' |
|}} | |}} | ||
<br> | <br> | ||
Line 86: | Line 87: | ||
- First AviSynth 2.5/YV12 release.<br> | - First AviSynth 2.5/YV12 release.<br> | ||
v0.1 2002/11/16 - First release; alpha code. | v0.1 2002/11/16 - First release; alpha code. | ||
+ | <br> | ||
+ | == Archived Downloads == | ||
+ | {| class="wikitable" border="1"; width="400px" | ||
+ | |- | ||
+ | !!width="100px"| Version | ||
+ | !!width="150px"| Download | ||
+ | !!width="150px"| Mirror | ||
+ | |- | ||
+ | !v1.1b | ||
+ | |[http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip FluxSmooth-1.1b.zip] | ||
+ | |[http://web.archive.org/web/20070225212908/http://bengal.missouri.edu/~kes25c/FluxSmooth-1.1b.zip FluxSmooth-1.1b.zip] | ||
+ | |} | ||
<br> | <br> | ||
== Links == | == Links == | ||
− | |||
*[http://forum.doom9.org/showthread.php?t=38296 Doom9 Forum] - FluxSmooth discussion. | *[http://forum.doom9.org/showthread.php?t=38296 Doom9 Forum] - FluxSmooth discussion. | ||
*[http://forum.doom9.org/showthread.php?t=114051 Doom9 Forum] - FluxSmooth v1.1b discussion. | *[http://forum.doom9.org/showthread.php?t=114051 Doom9 Forum] - FluxSmooth v1.1b discussion. |
Revision as of 18:33, 22 June 2014
Abstract | |
---|---|
Author | SansGrip |
Version | v1.1b |
Download | FluxSmooth-1.1b.zip |
Category | Spatial-Temporal Denoisers |
License | "There is no copyright on this code, and there are no conditions on its distribution or use. Do with it what you will" |
Discussion |
Contents |
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 above mentioned 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.
Requirements
- - AviSynth 2.5.8 or later
- - Progressive input only
- - Supported color formats: YUY2, YV12
Syntax and Parameters
- FluxSmoothT (clip, int "temporal_threshold")
- FluxSmoothST (clip, int "temporal_threshold", int "spatial_threshold")
- int temporal_threshold = 7
- Temporal neighbour pixels within this threshold from the current pixel are included in the average.
- If set to -1, no temporal smoothing occurs. (FluxSmoothT cannot be set to -1)
- int temporal_threshold = 7
- int spatial_threshold = 7
- Spatial neighbour pixels within this threshold from the current pixel are included in the average.
- If set to -1, no spatial smoothing occurs.
- int spatial_threshold = 7
Examples
FluxSmoothT with default settings:
AviSource("Blah.avi") FluxSmoothT(temporal_threshold=7)
FluxSmoothST with default settings:
AviSource("Blah.avi") FluxSmoothST(temporal_threshold=7, spatial_threshold=7)
Known Issues/Limitations
- The very edges of the frame are unprocessed.
- The very first and very last frame of a clip is unprocessed.
Changelog
Version Date Changes
v1.1b 2006/11/09 - Changes by tritical. - Fixed assuming previous and next frame pitches were the same as the current frame pitch.
v1.1a 2004/07/29 - Yet another "oops" release. - Current pixel is once again considered in the averaging code -- I found the lack of it too aggressive, especially during fast motion. - Also fixed stupid "3am bug" involving a couple of variables I'd declared static that shouldn't have been. - Thanks to krieger2005 for spotting that one, and ARDA for diagnosing it.
v1.1 2003/07/26 - Changed the averaging code so that the current pixel is excluded, which produces better noise reduction. - Also split the code into two different filters, FluxSmoothT and FluxSmoothST. - FluxSmoothT does temporal-only smoothing (equivalent to setting "spatial_threshold=-1" in FluxSmoothST) and is about 50% faster. - Removed Avisynth 2.0x version to tidy up the code base. Does anyone actually use it any more? - My thanks to fabrice and sh0dan for the 1.01 release during my extended absence :).
v1.01 2003/??/?? - Added by sh0dan: - Removed leak in AviSynth 2.5 YV12 mode (code by fabrice) - Aligned tables and variables. - Use AviSynth BitBlt for copying chroma. - Don't use streaming store. (movntq) - All in all an approximate 15% speedup compared to previous version. - All changes are marked with "sh0:".
v1.0 2003/01/08 - First "stable" release. I think it's been tested enough, but wait for a bunch of bugs to emerge and make me a liar... - Fixed a bug that, in conjunction with a bug in the built-in resizers, caused an access violation under certain circumstances. Thanks to sh0dan for spotting that one :). - Added "SetCacheHints" and upgraded to "AvisynthPluginInit2" in 2.5 version.
v0.4 2002/12/16 - Implemented iSSE-optimized version, which runs roughly double the speed of the C++ version. - Some small optimizations to C++ version. - Now smooths chroma as well as luma.
v0.3 2002/11/19 - Fixed bad bug that caused incorrect smoothing: no more in-place filtering. - Changed defaults back to what they were, now that the algorithm works correctly. - Spent some time benchmarking and tweaking various pieces of code, so should now be significantly faster.
v0.2 2002/11/16 - Fixed non-fatal bug that caused a request for one frame beyond the end of the clip. - Changed to in-place filtering so could squeeze a few optimizations here and there. - Changed too-high defaults. - First AviSynth 2.5/YV12 release.
v0.1 2002/11/16 - First release; alpha code.
Archived Downloads
Version | Download | Mirror |
---|---|---|
v1.1b | FluxSmooth-1.1b.zip | FluxSmooth-1.1b.zip |
Links
- Doom9 Forum - FluxSmooth discussion.
- Doom9 Forum - FluxSmooth v1.1b discussion.
Back to External Filters ←