SeeSaw
(reformat) |
|||
Line 1: | Line 1: | ||
− | {{ | + | {{FilterCat4|External_filters|Scripts|Other_filters|Multipurpose_filters}} |
− | {{ | + | {{Filter3 |
− | + | |Didee|0.3e | |
− | |}} | + | |[[Media:SeeSaw.avs|SeeSaw.avs]] |
− | + | |Sharpeners | |
+ | | | ||
+ | |6=[http://forum.doom9.org/showthread.php?t=104701 Doom9 Thread]}} | ||
+ | == Description == | ||
+ | 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" ) | ||
+ | == Requirements == | ||
+ | * AviSynth 2.5.8 or later | ||
+ | * [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only | ||
+ | * Supported color formats: [[YV12]] | ||
− | + | === Required Plugins === | |
− | == | + | |
− | + | ||
− | + | ||
− | == | + | |
− | + | ||
*[[MaskTools2]] | *[[MaskTools2]] | ||
+ | *RemoveGrain - part of the [[RemoveGrain v1.0b]] package. | ||
− | |||
− | |||
− | {{ | + | == [[Script variables|Syntax and Parameters]] == |
− | Absolute limit for pixel change by denoising | + | :{{Template:FuncDef|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") }} |
− | + | <br> | |
− | {{ | + | ::{{Par2|clp|clip| }} |
− | Limit for intermediate denoising | + | :::Input clip; the noisy source. |
− | + | <br> | |
− | {{ | + | ::{{Par2|denoised|clip| }} |
− | Sharpening strength (don't touch this too much). | + | :::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. | |
− | {{ | + | <br> |
− | + | ::{{Par2|NRlimit|int|2}} | |
− | negative: pixel's sharpening difference is reduced to diff=pow(diff,1/abs(limit)) | + | :::Absolute limit for pixel change by denoising |
− | + | <br> | |
− | {{ | + | ::{{Par2|NRLimit2|int|NRlimit+1}} |
− | Exponent for modified sharpener. | + | :::Limit for intermediate denoising |
− | + | <br> | |
− | {{ | + | ::{{Par2|Sstr|float|1.5}} |
− | Zero point - below: overdrive sharpening - above: reduced sharpening. | + | :::Sharpening strength (don't touch this too much). |
− | + | <br> | |
− | {{ | + | ::{{Par2|Slimit|int|NRlimit+2}} |
− | Reduces overdrive sharpening for very small changes. | + | :::Positive: absolute limit for pixel change by sharpening negative: pixel's sharpening difference is reduced to <code>diff = pow(diff,1/abs(limit))</code> |
− | + | <br> | |
− | {{ | + | ::{{Par2|Spower|float|4}} |
− | Further reduces sharpening for big sharpening changes. Try 15~30. "0" disables. | + | :::Exponent for modified sharpener. |
− | + | <br> | |
− | {{ | + | ::{{Par2|Szp|float|16+2}} |
− | Bias towards detail ( >= 50 ), or towards calm result ( < 50 ). | + | :::Zero point - below: overdrive sharpening - above: reduced sharpening. |
− | + | <br> | |
− | {{ | + | ::{{Par2|SdampLo|float|Spower+1}} |
− | + | :::Reduces overdrive sharpening for very small changes. | |
− | + | <br> | |
− | {{ | + | ::{{Par2|SdampHi|float|24}} |
− | 0=minimum, 100=maximum soothing of sharpener's temporal instability. | + | :::Further reduces sharpening for big sharpening changes. Try 15~30. "0" disables. |
− | (-100 .. -1 : will chain 2 instances of temporal soothing.) | + | <br> |
− | + | ::{{Par2|bias|float|49}} | |
− | {{ | + | :::Bias towards detail ( >= 50 ), or towards calm result ( < 50 ). |
− | 0=minimum, 100=maximum smoothing of sharpener's spatial effect. | + | <br> |
− | + | ::{{Par2|Smode|int|ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19}} | |
− | {{ | + | :::RemoveGrain mode used in the modified sharpening function (sharpen2). |
− | {{ | + | <br> |
− | SeeSaw doesn't require supersampling urgently, | + | ::{{Par2|sootheT|int|49}} |
− | if at all, small values ~1.25 seem to be enough. | + | :::0=minimum, 100=maximum soothing of sharpener's temporal instability. |
+ | :::(-100 .. -1 : will chain 2 instances of temporal soothing.) | ||
+ | <br> | ||
+ | ::{{Par2|sootheS|int|0}} | ||
+ | :::0=minimum, 100=maximum smoothing of sharpener's spatial effect. | ||
+ | <br> | ||
+ | ::{{Par2|ss_x|float|1.5}} | ||
+ | ::{{Par2|ss_y|float|1.5}} | ||
+ | :::SeeSaw doesn't require supersampling urgently, if at all, small values ~1.25 seem to be enough. | ||
+ | <br> | ||
== Examples == | == Examples == | ||
Line 72: | Line 83: | ||
SeeSaw( a, b, [parameters] ) | SeeSaw( a, b, [parameters] ) | ||
</pre> | </pre> | ||
− | + | <br> | |
− | == Links == | + | ==External Links == |
Download: [[Media:SeeSaw.avs|SeeSaw.avs]] : Current version, using masktools2.<br/> | Download: [[Media:SeeSaw.avs|SeeSaw.avs]] : Current version, using masktools2.<br/> | ||
Discussion: [http://forum.doom9.org/showthread.php?t=104701 Doom9 thread.] | Discussion: [http://forum.doom9.org/showthread.php?t=104701 Doom9 thread.] | ||
+ | <br> | ||
+ | <br> | ||
+ | ----------------------------------------------- | ||
+ | '''Back to [[External_filters#Sharpeners|External Filters]] ←''' |
Revision as of 14:40, 2 January 2015
Abstract | |
---|---|
Author | Didee |
Version | 0.3e |
Download | SeeSaw.avs |
Category | Sharpeners |
License | |
Discussion | Doom9 Thread |
Contents |
Description
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" )
Requirements
- AviSynth 2.5.8 or later
- Progressive input only
- Supported color formats: YV12
Required Plugins
- MaskTools2
- RemoveGrain - part of the RemoveGrain v1.0b package.
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 clp =
- 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.
- clip denoised =
- int NRlimit = 2
- Absolute limit for pixel change by denoising
- int NRlimit = 2
- int NRLimit2 = NRlimit+1
- Limit for intermediate denoising
- int NRLimit2 = NRlimit+1
- float Sstr = 1.5
- Sharpening strength (don't touch this too much).
- float Sstr = 1.5
- 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))
- Positive: absolute limit for pixel change by sharpening negative: pixel's sharpening difference is reduced to
- int Slimit = NRlimit+2
- float Spower = 4
- Exponent for modified sharpener.
- float Spower = 4
- float Szp = 16+2
- Zero point - below: overdrive sharpening - above: reduced sharpening.
- float Szp = 16+2
- float SdampLo = Spower+1
- Reduces overdrive sharpening for very small changes.
- float SdampLo = Spower+1
- float SdampHi = 24
- Further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
- float SdampHi = 24
- float bias = 49
- Bias towards detail ( >= 50 ), or towards calm result ( < 50 ).
- float bias = 49
- int Smode = ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19
- RemoveGrain mode used in the modified sharpening function (sharpen2).
- int Smode = ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19
- int sootheT = 49
- 0=minimum, 100=maximum soothing of sharpener's temporal instability.
- (-100 .. -1 : will chain 2 instances of temporal soothing.)
- int sootheT = 49
- int sootheS = 0
- 0=minimum, 100=maximum smoothing of sharpener's spatial effect.
- int sootheS = 0
- 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.
- float ss_x = 1.5
Examples
avisource("Blah.avi") SeeSaw()
a = TheNoisySource b = a.YourPreferredDenoising() SeeSaw( a, b, [parameters] )
External Links
Download: SeeSaw.avs : Current version, using masktools2.
Discussion: Doom9 thread.
Back to External Filters ←