DeNoise
From Avisynth wiki
(Difference between revisions)
m (→Description) |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{FilterCat|External_filters|Plugins|Denoisers}} | |
− | {{ | + | |
− | + | ||
{{Filter3 | {{Filter3 | ||
− | |1= | + | |1={{Author/vcmohan}} |
− | |2= | + | |2=22 Nov 2015 |
− | |3= [http://www.avisynth.nl/users/vcmohan/ | + | |3= [http://www.avisynth.nl/users/vcmohan/DeNoise/DeNoise_2_6.zip DeNoise_2_6.zip] |
− | |4= | + | |4=External filters |
|5=<!-- license -->[https://www.gnu.org/licenses/gpl-3.0.en.html GPLv3] | |5=<!-- license -->[https://www.gnu.org/licenses/gpl-3.0.en.html GPLv3] | ||
− | |6= | + | |6=[https://forum.doom9.org/showthread.php?p=712586#post712586 Doom9 Forum]}} |
<br> | <br> | ||
== Description == | == Description == | ||
− | + | This is an adaptive local noise reduction filter. It uses global variance of the noise, local mean and local variance in a moving grid of specified size. It tries to preserve edges as closely as possible. | |
− | + | ||
− | + | ||
+ | *Official documentation: http://www.avisynth.nl/users/vcmohan/DeNoise/DeNoise.html | ||
+ | *For AviSynth+ see [[modPlus]], includes high bit depth colorspace support and 64-bit. | ||
<br> | <br> | ||
+ | |||
== Requirements == | == Requirements == | ||
− | * AviSynth+ | + | * [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6] |
− | + | * Supported color formats: [[RGB24]], [[RGB32]], [[YUY2]], [[Y8]], [[YV12]], [[YV16]], [[YV24]] | |
− | * | + | |
<br> | <br> | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
− | :{{Template:FuncDef| | + | :{{Template:FuncDef| DeNoise (clip, int "sf", int "ef", int "xgrid", int "ygrid", bool "getvar", bool "clip", int "lx", int "ty", int "rx", int "by", int "elx", int "ety", int "erx", int "eby", int "var", int "evar", bool "uv", bool "usey", bool "show")}} |
+ | |||
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
Line 29: | Line 30: | ||
<br> | <br> | ||
::{{Par2|sf|int|0}} | ::{{Par2|sf|int|0}} | ||
− | ::: | + | :::Starting frame number to process. |
+ | <br> | ||
+ | ::{{Par2|ef|int| }} | ||
+ | :::End frame number to process, default is the last frame. | ||
<br> | <br> | ||
::{{Par2|xgrid|int|5}} | ::{{Par2|xgrid|int|5}} | ||
::: Number of pixels along x axis in moving grid. | ::: Number of pixels along x axis in moving grid. | ||
− | + | :::* Between 3 to 9 | |
− | + | ||
− | ::* Between 3 to 9 | + | |
<br> | <br> | ||
::{{Par2|ygrid|int|xgrid}} | ::{{Par2|ygrid|int|xgrid}} | ||
::: Number of pixels along y axis in moving grid. | ::: Number of pixels along y axis in moving grid. | ||
− | + | :::* Between 3 to 9 | |
− | + | <br> | |
− | + | ::{{Par2|getvar|bool|true}} | |
− | ::* Between 3 to 9 | + | ::: Is Global variance to be computed? |
+ | :::* True for yes, false for is specified. | ||
+ | <br> | ||
+ | ::{{Par2|clip|bool|true}} | ||
+ | ::: Is variance valid for all clip or only frame? | ||
+ | :::* True for yes, false for for frame. | ||
<br> | <br> | ||
::{{Par2|lx|int|None. Must be specified}} | ::{{Par2|lx|int|None. Must be specified}} | ||
− | ::: Window left x computing global variance. | + | ::: Window left x at start frame for computing global variance. |
− | + | :::* Within clip, less than <code>rx</code>. | |
− | + | ||
− | + | ||
− | ::* Within clip | + | |
− | + | ||
<br> | <br> | ||
::{{Par2|ty|int|None. Must be specified}} | ::{{Par2|ty|int|None. Must be specified}} | ||
− | ::: Window top y for computing global variance. | + | ::: Window top y at start frame for computing global variance. |
− | + | :::* Within clip, less than <code>by</code>. | |
− | + | ||
− | + | ||
− | ::* Within clip | + | |
− | + | ||
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rx|int|None. Must be specified}} |
− | ::: Window | + | ::: Window right x at start frame for computing global variance. |
− | + | :::* Within clip, more than <code>lx</code>. | |
− | + | ||
− | + | ||
− | ::* lx | + | |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|by|int|None. Must be specified}} |
− | ::: Window | + | ::: Window bottom y at start frame for computing global varianc. |
− | + | :::* Within clip, more than <code>ty</code>. | |
− | + | ::{{Par2|elx|int|None. Must be specified}} | |
− | + | ::: Window left x at end frame for computing global variance. | |
− | ::* | + | :::* Within clip, less than <code>erx</code>. |
+ | <br> | ||
+ | ::{{Par2|ety|int|None. Must be specified}} | ||
+ | ::: Window top y at end frame for computing global variance. | ||
+ | :::* Within clip, less than <code>eby</code>. | ||
+ | <br> | ||
+ | ::{{Par2|erx|int|None. Must be specified}} | ||
+ | ::: Window right x at end frame for computing global variance. | ||
+ | :::* Within clip, more than <code>elx</code>. | ||
+ | <br> | ||
+ | ::{{Par2|eby|int|None. Must be specified}} | ||
+ | ::: Window bottom y at end frame for computing global variance. | ||
+ | :::* Within clip, more than <code>ety</code>. | ||
+ | <br> | ||
+ | ::{{Par2|var|int|100}} | ||
+ | :::Variance specified at start frame. | ||
+ | :::*Range: greater than 0 | ||
+ | <br> | ||
+ | ::{{Par2|evar|int|<code>var</code>}} | ||
+ | :::Variance at end frame. | ||
+ | :::*Range: greater than 0 | ||
<br> | <br> | ||
::{{Par2|uv|bool|true}} | ::{{Par2|uv|bool|true}} | ||
::: Whether U and V of YUY2 and YUV formats to be processed. | ::: Whether U and V of YUY2 and YUV formats to be processed. | ||
− | + | :::* true = uv process | |
− | + | :::* false = do not process uv | |
− | + | ||
− | ::* true | + | |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|usey|bool|false}} |
− | ::: Whether | + | ::: Whether variance of Y to be used for u and v also. |
− | + | :::* true = yes | |
− | + | :::* false = no | |
− | + | ||
− | ::* true yes | + | |
<br> | <br> | ||
::{{Par2|show|bool|false}} | ::{{Par2|show|bool|false}} | ||
::: Whether variance values are to be displayed as an error message. | ::: Whether variance values are to be displayed as an error message. | ||
+ | :::* true = yes | ||
+ | :::* false = no | ||
+ | <br> | ||
+ | == Examples == | ||
+ | <!-- example code block: 1st char in each line = space --> | ||
+ | *DeNoise with default values: | ||
+ | AviSource("blah.avi") | ||
+ | DeNoise() | ||
− | + | *Process all frames (sf and ef parameters are omitted): | |
− | + | DeNoise(getvar=false, var=120, evar=160, xgrid=5, ygrid=7) | |
− | |||
− | |||
− | + | *Process only frames 35-55: | |
− | + | DeNoise(sf=35, ef=55, clip=false, lx=220, rx=245, ty=322, by=402) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<br> | <br> | ||
<br> | <br> | ||
----------------------------------------------- | ----------------------------------------------- | ||
− | '''Back to [[External_filters|External Filters]] ←''' | + | '''Back to [[External_filters#Denoisers|External Filters]] ←''' |
Latest revision as of 03:44, 10 June 2020
Abstract | |
---|---|
Author | V. C. Mohan |
Version | 22 Nov 2015 |
Download | DeNoise_2_6.zip |
Category | External filters |
License | GPLv3 |
Discussion | Doom9 Forum |
Contents |
[edit] Description
This is an adaptive local noise reduction filter. It uses global variance of the noise, local mean and local variance in a moving grid of specified size. It tries to preserve edges as closely as possible.
- Official documentation: http://www.avisynth.nl/users/vcmohan/DeNoise/DeNoise.html
- For AviSynth+ see modPlus, includes high bit depth colorspace support and 64-bit.
[edit] Requirements
[edit] Syntax and Parameters
- DeNoise (clip, int "sf", int "ef", int "xgrid", int "ygrid", bool "getvar", bool "clip", int "lx", int "ty", int "rx", int "by", int "elx", int "ety", int "erx", int "eby", int "var", int "evar", bool "uv", bool "usey", bool "show")
- clip =
- Input clip.
- clip =
- int sf = 0
- Starting frame number to process.
- int sf = 0
- int ef =
- End frame number to process, default is the last frame.
- int ef =
- int xgrid = 5
- Number of pixels along x axis in moving grid.
- Between 3 to 9
- Number of pixels along x axis in moving grid.
- int xgrid = 5
- int ygrid = xgrid
- Number of pixels along y axis in moving grid.
- Between 3 to 9
- Number of pixels along y axis in moving grid.
- int ygrid = xgrid
- bool getvar = true
- Is Global variance to be computed?
- True for yes, false for is specified.
- Is Global variance to be computed?
- bool getvar = true
- bool clip = true
- Is variance valid for all clip or only frame?
- True for yes, false for for frame.
- Is variance valid for all clip or only frame?
- bool clip = true
- int lx = None. Must be specified
- Window left x at start frame for computing global variance.
- Within clip, less than
rx
.
- Within clip, less than
- Window left x at start frame for computing global variance.
- int lx = None. Must be specified
- int ty = None. Must be specified
- Window top y at start frame for computing global variance.
- Within clip, less than
by
.
- Within clip, less than
- Window top y at start frame for computing global variance.
- int ty = None. Must be specified
- int rx = None. Must be specified
- Window right x at start frame for computing global variance.
- Within clip, more than
lx
.
- Within clip, more than
- Window right x at start frame for computing global variance.
- int rx = None. Must be specified
- int by = None. Must be specified
- Window bottom y at start frame for computing global varianc.
- Within clip, more than
ty
.
- Within clip, more than
- Window bottom y at start frame for computing global varianc.
- int elx = None. Must be specified
- Window left x at end frame for computing global variance.
- Within clip, less than
erx
.
- Within clip, less than
- Window left x at end frame for computing global variance.
- int by = None. Must be specified
- int ety = None. Must be specified
- Window top y at end frame for computing global variance.
- Within clip, less than
eby
.
- Within clip, less than
- Window top y at end frame for computing global variance.
- int ety = None. Must be specified
- int erx = None. Must be specified
- Window right x at end frame for computing global variance.
- Within clip, more than
elx
.
- Within clip, more than
- Window right x at end frame for computing global variance.
- int erx = None. Must be specified
- int eby = None. Must be specified
- Window bottom y at end frame for computing global variance.
- Within clip, more than
ety
.
- Within clip, more than
- Window bottom y at end frame for computing global variance.
- int eby = None. Must be specified
- int var = 100
- Variance specified at start frame.
- Range: greater than 0
- Variance specified at start frame.
- int var = 100
- int evar =
var
- Variance at end frame.
- Range: greater than 0
- Variance at end frame.
- int evar =
- bool uv = true
- Whether U and V of YUY2 and YUV formats to be processed.
- true = uv process
- false = do not process uv
- Whether U and V of YUY2 and YUV formats to be processed.
- bool uv = true
- bool usey = false
- Whether variance of Y to be used for u and v also.
- true = yes
- false = no
- Whether variance of Y to be used for u and v also.
- bool usey = false
- bool show = false
- Whether variance values are to be displayed as an error message.
- true = yes
- false = no
- Whether variance values are to be displayed as an error message.
- bool show = false
[edit] Examples
- DeNoise with default values:
AviSource("blah.avi") DeNoise()
- Process all frames (sf and ef parameters are omitted):
DeNoise(getvar=false, var=120, evar=160, xgrid=5, ygrid=7)
- Process only frames 35-55:
DeNoise(sf=35, ef=55, clip=false, lx=220, rx=245, ty=322, by=402)
Back to External Filters ←