LimitedSharpen
From Avisynth wiki
Abstract | |
---|---|
Author | Didée |
Version | 2.0b |
Download | LimitedSharpenFaster.avsi |
Category | Sharpeners |
License | |
Discussion | Doom9 Thread |
Contents |
Description
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.
Requirements
Required Plugins
Latest version of the following plugins are recommended unless stated otherwise.
- MaskTools2
RemoveGrain- part of the RemoveGrain v1.0b package.- RgTools - recommended drop-in replacement for RemoveGrain!
- WarpSharp - only required when
Smode=1
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.
- clip =
- float ss_x = 1.5
- float ss_y = 1.5
- Supersampling when > 1, which reduces aliasing on edges.
- float ss_x = 1.5
- float dest_x = width
- float dest_y = height
- Resize directly to final size, saves a resize step.
- float dest_x = width
- int Smode = 3
- Sharpen mode:
- 1 : UnsharpMask
- 2 : Sharpen
- 3 : Range sharpening.
- 4 : nonlinear sharpening.
- Each mode has progressively less haloing in its sharpening.
- Sharpen mode:
- int Smode = 3
- 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.
- Sharpening strength:
- int strength = 160
- int radius = 1
- Radius of UnsharpMask, only used in Smode=1.
- Range: 1 to 10
- int radius = 1
- int Lmode = 1
- Lmode:
- 0 : No effect
- 1 : Clamp to over/undershoot.
- 3 : Zero over/undershoot on edges, normal over/undershoot on not-edges.
- Lmode:
- int Lmode = 1
- 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.
- bool wide = false
- 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 overshoot = 1
- 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 undershoot = [overshoot]
- int soft = 0
- Softens the effect of sharpening. -1 will (try to) autocalculate a good value.
- Range: 0 to 100
- int soft = 0
- int edgemode = 0
- -1 : shows edges.
- 0 : does nothing.
- 1 : restricts sharpening to edges
- 2 : restricts sharpening to mostly non-edges (I think?)
- int edgemode = 0
- 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.)
- bool special = false
- int exborder = 0
- Border exclusion; range: 0 to 16
- int exborder = 0
Examples
avisource("Blah.avi") LimitedSharpenFaster()
Changelog
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 ←