FineSharp

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (1 revision)
Line 1: Line 1:
{{FilterCat|External_filters|Adjustment_filters|Sharpeners}}
+
{{FilterCat|External_filters|Restoration_filters|Sharpeners}}
{{Filter|{{Author/Didee}}|v1.0 - Update 2012/04/12|[http://forum.doom9.org/showthread.php?p=1569035#post1569035 FineSharp]|Sharpeners|
+
{{Filter2
[[YV12]]
+
| {{Author/Didée}}
 +
| 2012/04/12
 +
| [http://avisynth.nl/images/FineSharp.avsi FineSharp.avsi]
 +
| Sharpeners
 +
|
 
|}}
 
|}}
 +
<br>
 +
== Description ==
 +
:Small and relatively fast realtime-sharpening function, for 1080p, or after scaling 720p -> 1080p during playback (to make 720p look more like being 1080p)
 +
:It's a generic sharpener. Only for good quality sources! (If the source is crap, FineSharp will happily sharpen the crap.) ;)
 +
:Noise/grain will be enhanced, too. The method is GENERIC.
  
== Abstract ==
+
:Modus operandi: A basic nonlinear sharpening method is performed, then the *blurred* sharp-difference gets subtracted again.
A quick sharpening filter by Didee for sharpening high quality content, such as Bluray.
+
<br>
 +
== 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]]
  
== The script ==
+
==== Required Plugins: ====
Located [http://forum.doom9.org/showthread.php?p=1569035#post1569035 here].
+
:*[[MaskTools2]] 2.0a48+
 
+
:*[[RemoveGrain v1.0b/RemoveGrain|RemoveGrain]] - part of the [[RemoveGrain v1.0b]] package.
And mirrored below in case of disaster (not guarranteed to be up to date, retrieved July 16th, 2012).
+
:*[[RemoveGrain v1.0b/Repair|Repair]] - part of the [[RemoveGrain v1.0b]] package.
 
+
<br>
<pre>
+
== Syntax and Parameters ==
# Small and relatively fast realtime-sharpening function,
+
:{{Template:FuncDef|FineSharp (''clip'' c, ''int'' "mode", ''float'' "sstr", ''float'' "cstr", ''float'' "xstr", ''float'' "lstr", ''float'' "pstr", ''float'' "ldmp")}}
# for 1080p, or after scaling 720p -> 1080p during playback (to make 720p look more like being 1080p)
+
<br>
# It's a generic sharpener. Only for good quality sources!
+
::{{Par2|c|clip| }}
# (If the source is crap, FineSharp will happily sharpen the crap.) ;)
+
::::Input clip.
# Noise/grain will be enhanced, too. The method is GENERIC.
+
<br>
#
+
::{{Par2|mode|int|1}}
# Modus operandi: A basic nonlinear sharpening method is performed, then the *blurred* sharp-difference gets subtracted again.
+
:::Range: 1 to 3
#
+
::::1 to 3, weakest to strongest. When negative -1 to -3, a broader kernel for equalization is used.
# - Didée
+
<br>
 
+
::{{Par2|sstr|float|2.0}}
function FineSharp(clip c, int "mode", float "sstr", float "cstr", float "xstr", float "lstr", float "pstr", float "ldmp")
+
:::Range: 0.0 up to ??
{
+
::::Strength of sharpening.
+
<br>
mode = default(mode, 1   )  #  1 to 3, weakest to strongest. When negative -1 to -3, a broader kernel for equalisation is used.
+
::{{Par2|cstr|float|AUTO}}
sstr = default(sstr, 2.0 )  #  strength of sharpening, 0.0 up to ??
+
:::Range: 0.0 - 2.0 ?<br>
+
::::Strength of equalization.
_cstr = spline(sstr, 0,0, 0.5,0.1, 1.0,0.6, 2.0,0.9, 2.5,1.00, 3.0,1.09, 3.5,1.15, 4.0,1.19, 8.0,1.249, 255.0,1.5)
+
::::Recommended value: 0.5 to 1.25
_cstr = (mode>0) ? _cstr : pow(_cstr,1./1.25)
+
::::If all settings are left at their default value then {{Template:FuncDef|cstr}}=0.9
 
+
<br>
cstr  = default(cstr, _cstr)  #  strength of equalisation, 0.0 to ? 2.0 ? (recomm. 0.5 to 1.25, default AUTO)
+
::{{Par2|xstr|float|0.19}}
xstr = default(xstr, 0.19 )  #  strength of XSharpen-style final sharpening, 0.0 to 1.0 (but, better don't go beyond 0.249 ...)
+
:::Range: 0.0 - 1.0 (but, better don't go beyond 0.249 ...)<br>
 
+
::::Strength of XSharpen-style final sharpening.
                            #  Viscera parameters
+
<br>
lstr = default(lstr, 1.49 )  #  modifier for non-linear sharpening
+
::{{Par2|lstr|float|1.49}}
pstr = default(pstr, 1.272)  #  exponent for non-linear sharpening
+
::::Modifier for non-linear sharpening.
ldmp = default(ldmp, sstr+0.1) # "low damp", to not overenhance very small differences (noise coming out of flat areas)
+
<br>
 
+
::{{Par2|pstr|float|1.272}}
str1  = sstr
+
::::Exponent for non-linear sharpening.
str2  = cstr
+
<br>
SSTR  = string(sstr)
+
::{{Par2|ldmp|float|{{Template:FuncDef|sstr}}+0.1}}
CSTR  = string(cstr)
+
::::"low damp", to not overenhance very small differences (noise coming out of flat areas).
LSTR  = string(lstr)
+
::::If {{Template:FuncDef|sstr}} is left at its default value (2.0) then {{Template:FuncDef|ldmp}}=2.1
PSTR  = string(pstr)
+
<br>
LDMP  = string(ldmp)
+
== Examples ==
rg=mode>0?11:20
+
FineSharp with default settings:
   
+
  [[AviSource]]("Blah.avi")
b = (abs(mode)==1) ? c.removegrain(11,-1).removegrain(4,-1)
+
FineSharp(mode=1, sstr=2.0, cstr=0.9, xstr=0.19, lstr=1.49, pstr=1.272, ldmp=2.1)
\ : (abs(mode)==2) ? c.removegrain(4,-1).removegrain(11,-1)
+
<br>
\ : (abs(mode)==3) ? c.removegrain(4,-1).removegrain(11,-1).removegrain(4,-1) : c
+
== Changelog ==
   
+
  Version        Date            Changes<br>
shrpD = mt_lutxy(c,b,"x y - abs "+LSTR+" / 1 "+PSTR+" / ^ "+SSTR+" * x y - x y - abs 0.001 + / * x y - 2 ^ x y - 2 ^ "+LDMP+" + / * 128 +")
+
2012/04/12      2012/04/12      - Added "ldmp" parameter, and slightly modified the (auto) cstr defaults<br>
   
+
  2012/04/08      2012/04/08      - Initial release
shrp = (str1<0.01) ? c : c.mt_adddiff(shrpD,U=2,V=2)
+
<br>
 
+
== External Links ==
shrp = (str2<0.01) ? shrp : shrp.mt_makediff(shrpD.mt_lut("x 128 - "+CSTR+" * 128 +").removegrain(rg,-1),U=2,V=2)
+
- [http://forum.doom9.org/showthread.php?p=1569035 Doom9 Forum] - FineSharp discussion.
 
+
<br>
shrp = (xstr<0.01) ? shrp
+
<br>
\    : mt_lutxy(shrp,shrp.removegrain(20,-1),"x x y - 9.9 * +",U=2,V=2).repair(shrp,12,0).mergeluma(shrp,1.0-xstr)
+
<br>
 
+
-----------------------------------------------
return(shrp)
+
'''Back to [[External_filters#Sharpeners|External Filters]] &larr;'''
}
+
</pre>
+

Revision as of 16:18, 2 February 2014

Abstract
Author Didée
Version 2012/04/12
Download FineSharp.avsi
Category Sharpeners
License


Contents

Description

Small and relatively fast realtime-sharpening function, for 1080p, or after scaling 720p -> 1080p during playback (to make 720p look more like being 1080p)
It's a generic sharpener. Only for good quality sources! (If the source is crap, FineSharp will happily sharpen the crap.) ;)
Noise/grain will be enhanced, too. The method is GENERIC.
Modus operandi: A basic nonlinear sharpening method is performed, then the *blurred* sharp-difference gets subtracted again.


Requirements:

- AviSynth 2.5.8 or later
- Progressive input only
- Supported color formats: YV12

Required Plugins:


Syntax and Parameters

FineSharp (clip c, int "mode", float "sstr", float "cstr", float "xstr", float "lstr", float "pstr", float "ldmp")


clip  c =
Input clip.


int  mode = 1
Range: 1 to 3
1 to 3, weakest to strongest. When negative -1 to -3, a broader kernel for equalization is used.


float  sstr = 2.0
Range: 0.0 up to ??
Strength of sharpening.


float  cstr = AUTO
Range: 0.0 - 2.0 ?
Strength of equalization.
Recommended value: 0.5 to 1.25
If all settings are left at their default value then cstr=0.9


float  xstr = 0.19
Range: 0.0 - 1.0 (but, better don't go beyond 0.249 ...)
Strength of XSharpen-style final sharpening.


float  lstr = 1.49
Modifier for non-linear sharpening.


float  pstr = 1.272
Exponent for non-linear sharpening.


float  ldmp = sstr+0.1
"low damp", to not overenhance very small differences (noise coming out of flat areas).
If sstr is left at its default value (2.0) then ldmp=2.1


Examples

FineSharp with default settings:

AviSource("Blah.avi")
FineSharp(mode=1, sstr=2.0, cstr=0.9, xstr=0.19, lstr=1.49, pstr=1.272, ldmp=2.1)


Changelog

Version         Date            Changes
2012/04/12 2012/04/12 - Added "ldmp" parameter, and slightly modified the (auto) cstr defaults
2012/04/08 2012/04/08 - Initial release


External Links

- Doom9 Forum - FineSharp discussion.



Back to External Filters

Personal tools