SeeSaw

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(Undo revision 1645 by Reel.Deal (talk))
(reformat)
Line 1: Line 1:
{{FilterCat|External_filters|Other_filters|Multipurpose_filters}}
+
{{FilterCat4|External_filters|Scripts|Other_filters|Multipurpose_filters}}
{{Filter|Didee|0.3e|[[Media:SeeSaw.avs|SeeSaw.avs]]|Sharpeners|
+
{{Filter3
* YV12
+
|Didee|0.3e
|}}
+
|[[Media:SeeSaw.avs|SeeSaw.avs]]
{{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") }}
+
|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 ===
== Abstract ==
+
SeeSaw is a function that uses a balance of denoising and sharpening to enhance a clip
+
 
+
=== Requires Filters ===
+
*[[RemoveGrain]] 1.x
+
 
*[[MaskTools2]]
 
*[[MaskTools2]]
 +
*RemoveGrain - part of the [[RemoveGrain v1.0b]] package.
  
== Description ==
 
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.
 
  
{{Par|NRlimit|int|2}}
+
== [[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>
{{Par|NRLimit2|int|NRlimit+1}}
+
::{{Par2|clp|clip| }}
Limit for intermediate denoising
+
:::Input clip; the noisy source.
 
+
<br>
{{Par|Sstr|float|1.5}}
+
::{{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.
{{Par|Slimit|int|NRlimit+2}}
+
<br>
positive: absolute limit for pixel change by sharpening
+
::{{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>
{{Par|Spower|float|4}}
+
::{{Par2|NRLimit2|int|NRlimit+1}}
Exponent for modified sharpener.
+
:::Limit for intermediate denoising
 
+
<br>
{{Par|Szp|float|16+2}}
+
::{{Par2|Sstr|float|1.5}}
Zero point - below: overdrive sharpening - above: reduced sharpening.
+
:::Sharpening strength (don't touch this too much).
 
+
<br>
{{Par|SdampLo|float|Spower+1}}
+
::{{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>
{{Par|SdampHi|float|24}}
+
::{{Par2|Spower|float|4}}
Further reduces sharpening for big sharpening changes. Try 15~30. "0" disables.
+
:::Exponent for modified sharpener.
 
+
<br>
{{Par|bias|float|49}}
+
::{{Par2|Szp|float|16+2}}
Bias towards detail ( >= 50 ), or towards calm result ( < 50 ).
+
:::Zero point - below: overdrive sharpening - above: reduced sharpening.
 
+
<br>
{{Par|Smode|int|ssx<1.35 ? 11 : ssx<1.51 ? 20 : 19}}
+
::{{Par2|SdampLo|float|Spower+1}}
Uh?
+
:::Reduces overdrive sharpening for very small changes.
 
+
<br>
{{Par|sootheT|int|49}}
+
::{{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}}
{{Par|sootheS|int|0}}
+
:::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}}
{{Par|ss_x|float|1.5}}
+
:::RemoveGrain mode used in the modified sharpening function (sharpen2).
{{Par|ss_y|float|1.5}}
+
<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]] &larr;'''

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


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.


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

Personal tools