UnFilter
UnFilter(clip source, int HSharp, int VSharp)
Abstract | |
---|---|
Author | Tom Barry |
Version | 0.0.1.5 |
Download | UnFilter.zip |
Category | Adjustment filters |
License | GPLv2 |
Discussion | Doom9 Thread |
Contents |
Abstract
UnFilter is a simple and reasonably fast Avisynth Soften/Sharpen filter.
It implements 5-tap user adjustable horizontal and vertical filters designed to (slightly) reverse previous efforts at softening or edge enhancement that are common (but ugly) in DVD mastering. Since DVDs were intended originally for interlaced displays this has caused content providers to vertically filter them even a bit more to hide interlacing artifacts. They sometimes overdo the edge enhancement.
When softening it will attempt to approximate the inverse of a simple 3-tap edge enhancement filter. When sharpening it will attempt to approximate the inverse of a simple 3-tap softening filter. For the math and logic involved see the comments in the UnFilterALL.inc member included in zip file.
The effects are fairly mild but be aware that excessive sharpening makes things harder to compress and may bring about the dreaded "edge enhancement artifacts" the people complain about in DVDs from some studios. And while excessive softness may hide noise it loses detail and generally just looks ugly. So it is probably best to just try to reverse whatever has already been done to your source.
UnFilter should run on all MMX machines or higher. It has also has some added code for 3DNOW instructions for when it is running on a K6-II or higher and some SSEMMX for P3 & Athlon.
Known issues and limitations
Assumes YUV (YUY2) or YV12 Frame Based input. Use an AVIsynth function to convert first if needed.
Currently still requires the pixel width to be a multiple of 2.
YV12 support for Avisynth 2.5 alpha release only.
Parameters
HSharp int (-100-100, default 0)
Horizontal sharpness. Valid values are from -100 (max softness) through zero (neutral) through +100 (max sharpness).
VSharp int (-100-100, default 0)
Vertical sharpness. Valid values are from -100 (max softness) through zero (neutral) through +100 (max sharpness).
Examples
Extreme sharpening
LoadPlugin("F:\UnFilter\UnFilter.dll") Avisource("D:\wherever\myfile.avi") UnFilter(100,100)