From Avisynth wiki
Jump to: navigation, search
Author Didée
Version 0.3g
Download SeeSaw.avs
Category Sharpeners
Discussion Doom9 Thread



SeeSaw is a function that uses a balance of denoising and sharpening to enhance a clip. This function provides a (simple) implementation of the "crystality sharpen" principle. In conjunction with a user-specified denoised clip, the aim is to enhance weak detail, hopefully without oversharpening or creating jaggies on strong detail, and produce a result that is temporally stable without detail shimmering, while keeping everything within reasonable bitrate requirements. This is done by intermixing source, denoised source and a modified sharpening process, in a seesaw-like manner. (Full Name: "Denoiser-and-Sharpener-are-riding-the-SeeSaw" )


AviSynth 2.5.8 or greater

Required Plugins

Syntax and Parameters

SeeSaw (clip clp, clip "denoised", int "NRlimit",int "NRlimit2", float "Sstr", int "Slimit", float "Spower", float "SdampLo", float "SdampHi", float "Szp", float "bias", int "Smode", int "sootheT", int "sootheS", float "ssx", float "ssy")

clip  clp =
Input clip; the noisy source.

clip  denoised =
Input clip; denoised clip.
You're very much encouraged to feed your own custom denoised clip into SeeSaw. If the "denoised" clip parameter is omitted, a simple "spatial pressdown" filter is used.

int  NRlimit = 2
Absolute limit for pixel change by denoising

int  NRLimit2 = NRlimit+1
Limit for intermediate denoising

float  Sstr = 1.5
Sharpening strength (don't touch this too much).

int  Slimit = NRlimit+2
Positive: absolute limit for pixel change by sharpening negative: pixel's sharpening difference is reduced to diff = pow(diff,1/abs(limit))

float  Spower = 4
Exponent for modified sharpener.

float  Szp = 16+2
Zero point - below: overdrive sharpening - above: reduced sharpening.

float  SdampLo = Spower+1
Reduces overdrive sharpening for very small changes.

float  SdampHi = 24
Further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.

float  bias = 49
Bias towards detail ( >= 50 ), or towards calm result ( < 50 ).

int  Smode = ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19
RemoveGrain mode used in the modified sharpening function (sharpen2).

int  sootheT = 49
0=minimum, 100=maximum soothing of sharpener's temporal instability.
(-100 .. -1 : will chain 2 instances of temporal soothing.)

int  sootheS = 0
0=minimum, 100=maximum smoothing of sharpener's spatial effect.

float  ss_x = 1.5
float  ss_y = 1.5
SeeSaw doesn't require supersampling urgently, if at all, small values ~1.25 seem to be enough.


a = TheNoisySource
b = a.YourPreferredDenoising()
SeeSaw( a, b, [parameters] )


Version      Date(D/M/Y)      Changes
0.3g 15/12/2015 - Mod by StainlessS * Force int call arguments to user script function float params to be explicit floats.
0.3f 13/12/2006 - Mod by foxyshadis * Update to use MaskTools2.
0.3e 02/01/2006 - Renamed "Sdamp" to "SdampLo" - "SdampHi" (new) will further reduce sharpening on detail that's already strong (even less aliasing, hopefully) - "SootheT=0" and "NRlimit=0" now are really NOPs (formerly these cases applied YV12Lutxy, with zero effect.) - Todo: replace [additive] sharpening with [multiplication] sharpening

External Links

Download: SeeSaw.avs : Current version, using masktools2.
Discussion: Doom9 thread.

Back to External Filters

Personal tools