UnFilter

From Avisynth wiki
Revision as of 19:30, 17 September 2014 by Raffriff42 (Talk | contribs)

Jump to: navigation, search

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)

External Links

Personal tools