From Avisynth wiki
Jump to: navigation, search
Author Didée
Version 2.0b
Download LimitedSharpenFaster.avsi
Category Sharpeners
Discussion Doom9 Thread



Applies a strong sharpening to edges and fine details by controlling halos and minimising artifacts. All sharpening is a 3-way struggle between edge-halos, edge-aliasing, and confetti artifacts; LimitedSharpen is an attempt to minimize each in the most visually pleasing way. For a similar filter that integrates denoising and sharpening into a single step, look at SeeSaw.


  • AviSynth 2.5.8 or greater
  • Supported color formats: YV12

Required Plugins

Latest version of the following plugins are recommended unless stated otherwise.

Syntax and Parameters

This should be used as the last filter in a chain if possible, like any sharpener. The different Smodes cause different defaults to be used in certain cases, or limit the ranges differently. See the source for specifics.

LimitedSharpenFaster (clip clp, float "ss_x", float "ss_y", int "dest_x", int "dest_y", int "Smode" , int "strength", int "radius", int "Lmode", bool "wide", int "overshoot", int "undershoot", int "soft", int "edgemode", bool "special", int "exborder" )

clip   =
Input clip.

float  ss_x = 1.5
float  ss_y = 1.5
Supersampling when > 1, which reduces aliasing on edges.

float  dest_x = width
float  dest_y = height
Resize directly to final size, saves a resize step.

int  Smode = 3
Sharpen mode:
Each mode has progressively less haloing in its sharpening.

int  strength = 160
Sharpening strength:
  • For Smode=1, it can be 0~127 (simple sharpening), 128~255 (simple overdrive), 255~4096 (big overdrive).
  • For Smode=2, values 0~100 are handled over to Sharpen() as 0.0~1.0. Values >100 are mapped to 100.
  • For Smode=3, 0~100 is common, but 100~inf. can be used if necessary.
Default is strength=160 for Smode=1, and strength=100 otherwise.

int  radius = 1
Radius of UnsharpMask, only used in Smode=1.
Range: 1 to 10

int  Lmode = 1
  • 0 : No effect
  • 1 : Clamp to over/undershoot.
  • 3 : Zero over/undershoot on edges, normal over/undershoot on not-edges.

bool  wide = false
With wide=true, the local [min,max] limits are gathered from the 5x5 neighborhood, instead just 3x3. Enables more gain in detail contrast. Increasingly useful with increasing supersampling factors.

int  overshoot = 1
Sharpening limit: a sharpened pixel may not exceed [min,max] of the local neighborhood by more than 'overshoot'. (High values remove the "Limited" of LimitedSharpen, and cause excessive haloing.)

int  undershoot = [overshoot]
Separate limit for pixels that get darker during sharpening. Good for cartoons with strong lines. (If not specified, then undershoot==overshoot.)

int  soft = 0
Softens the effect of sharpening. -1 will (try to) autocalculate a good value.
Range: 0 to 100

int  edgemode = 0
  • -1 : shows edges.
  • 0 : does nothing.
  • 1 : restricts sharpening to edges
  • 2 : restricts sharpening to mostly non-edges (I think?)

bool  special = false
special=true tries to raise detail contrast in dark areas of a frame. (Usage not really recommended - the method is simple and might cause artefacts.)

int  exborder = 0
Border exclusion; range: 0 to 16




Version      Date           Changes
2.0b 2006/01/14 - LimitedSharpenFaster; modified 2005/11/29 version using MaskTools 2.0 by Manao released in MaskTools-v2.0a18
2005/12/23 - NOTE: these changes are not available in LimitedSharpenFaster. - new:[1] * "strengthV" parameter, used only when Smode=2. Enables asymetric sharpening, internally it's just "sharpen( strength/100, strengthV/100 ). - * Smode=0: "custom" unsharp masking (bicubic resizing approximation). Radii can be given through "radius" (--> x-radius) and "radiusV" (--> y-radius).
2005/11/29 - the small bug in Smode=4 was only fixed in the version for MaskTools 2.0alpha by Socio.[2] now corrected this version for old MaskTools, too[3]
2005/11/01 - it adds a new Smode, a new Lmode as well, allows a seperate "undershoot", and handles the "soft" option completely different.[4]
2004/11/26 - made the "wide=true" limiting mode working correctly
2004/10/24 - added "exborder" parameter (border exclusion)
2004/10/21 - LimitedSharpen; initial release

External Links

  • Doom9 Forum - LimitedSharpen discussion thread.
  • LSFmod - Advanced version, alias "v3.x"

Back to External Filters

Personal tools