Frfun7
From Avisynth wiki
(Difference between revisions)
m (→Description) |
(v0.9) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{FilterCat5|External_filters|Plugins|Plugins_x64|Denoisers|Spatial_denoisers}} |
{{Filter3 | {{Filter3 | ||
− | | Prunedtree | + | |1=Prunedtree, {{Author/pinterf}} |
− | | | + | |2=0.9 |
− | | [ | + | |3=[https://github.com/pinterf/Frfun7/releases frfun7_v0.9.7z] |
− | [ | + | |4=Spatial Denoisers |
− | + | |5=[https://github.com/pinterf/Frfun7/blob/main/LICENSE GPLv2] | |
− | + | |6=[http://forum.doom9.org/showthread.php?t=110200 Doom9 Thread (2006)] - [https://forum.doom9.org/showthread.php?t=183206 Doom9 Thread (2021)] | |
− | |6=[http://forum.doom9.org/showthread.php?t=110200 Doom9 Thread]}} | + | }} |
− | + | ||
== Description == | == Description == | ||
− | frfun7 is a spatial fractal denoising plugin. | + | frfun7 is a spatial fractal denoising plugin. |
<br> | <br> | ||
<br> | <br> | ||
− | |||
− | |||
− | |||
− | |||
== Requirements == | == Requirements == | ||
− | * AviSynth 2. | + | * [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6] |
+ | * [x64]: [[AviSynth+]] | ||
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only | * [[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]] | + | * Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]] |
− | + | ||
− | + | ||
<br> | <br> | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
− | :{{Template:FuncDef| frfun7 (clip, ''float'' "lambda",''float'' "T", ''float'' "Tuv", ''int'' "P")}} | + | :{{Template:FuncDef| frfun7 (clip, ''float'' "lambda", ''float'' "T", ''float'' "Tuv", ''int'' "P", ''int'' "TP", ''int'' "R1")}} |
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
Line 33: | Line 28: | ||
:::Adjust the power of the local denoising. | :::Adjust the power of the local denoising. | ||
<br> | <br> | ||
− | ::{{Par2|T|float| | + | ::{{Par2|T|float|6.0}} |
:::Limits the max luma denoising power for edges; 0 disables processing. | :::Limits the max luma denoising power for edges; 0 disables processing. | ||
<br> | <br> | ||
Line 40: | Line 35: | ||
<br> | <br> | ||
::{{Par2|P|int|0}} | ::{{Par2|P|int|0}} | ||
− | ::: | + | :::It's a "speed -vs- quality" trade off setting. |
::::*0 : faster but slightly lower quality than frfun7_rev6 (may create minor artifacts around line edges). | ::::*0 : faster but slightly lower quality than frfun7_rev6 (may create minor artifacts around line edges). | ||
− | ::::*1 : slower than frfun7_rev6 but the quality is a little bit better. | + | ::::*1 : adaptive overlapping (see also TP1). slower than frfun7_rev6 but the quality is a little bit better. |
− | + | ::::*2 : temporal | |
+ | ::::*4 : adaptive radius | ||
+ | ::: Internally the parameter is treated as a bit mask but probably it has no point. | ||
+ | ::: Parameter is available since frfun7 2013. | ||
+ | <br> | ||
+ | ::{{Par2|TP1|int|0}} | ||
+ | :::A threshold which affects P=1 (adaptive overlapping). | ||
+ | :::Introduced as a separate parameter in v0.7. This value had to be encoded into P as TP1*1000 previously. | ||
+ | :::0 will always run into a final filtering part, the bigger it is, probably the more pixels it will skip. (?) | ||
+ | <br> | ||
+ | ::{{Par2|R1|int|3}} | ||
+ | :::Radius for first pass of the internal algorithm. | ||
+ | :::First pass in pre v0.7 was fixed to 3 (and was no separate parameter). | ||
+ | :::Valid values are 2 or 3. | ||
+ | <br> | ||
+ | <br> | ||
== Examples == | == Examples == | ||
frfun7 with default settings: | frfun7 with default settings: | ||
[[AviSource]]("Blah.avi") | [[AviSource]]("Blah.avi") | ||
− | frfun7(lambda=1.1, T=6.0, Tuv=2.0, P=0) | + | frfun7(lambda=1.1, T=6.0, Tuv=2.0, P=0, TP1=0, R1=3) |
<br> | <br> | ||
== Changelog == | == Changelog == | ||
Version Date Changes<br> | Version Date Changes<br> | ||
− | 2013 2013/09/04 - no longer buffers the input; yields a nice speed increase. | + | v0.9 2022/06/29 - Performance increase in Intel sse2 - backport from VapourSynth (dubhater): |
+ | * p=0 184 fps to 304 fps 65% faster | ||
+ | *p=1 36 fps to 61 fps 69% faster | ||
+ | *p=2 233 fps to 282 fps 21% faster | ||
+ | *p=4 263 fps to 401 fps 52% faster | ||
+ | *note: The output is slightly different at the left and right edges of the frame. | ||
+ | - additional fix bug when p=1 and tp1>0<br> | ||
+ | v0.8 2022/05/18 - backport some fixes and non-Intel C code from VapourSynth port by dubhater: | ||
+ | - Fix P=2 (temporal) blocky rectangular artifacts at the most top and bottom area | ||
+ | - Fix bug when p=1 and tp1>0 | ||
+ | - Avoid loss of precision when p=1 or p=2, Fixes https://github.com/pinterf/Frfun7/issues/1 | ||
+ | - Add C-only (other than Intel SIMD) code path, enable usage of ENABLE_INTEL_SIMD build option.<br> | ||
+ | v0.7 2021/09/10 - Code refresh and additions by pinterf | ||
+ | - Source to VS2019 solution | ||
+ | - Add/guess missing source parts, rename files | ||
+ | - Update AviSynth headers | ||
+ | - Add version resource | ||
+ | - Avisynth V2.6 style plugin | ||
+ | - Implement all mmx inline assembler as SIMD intrinsics | ||
+ | - x64 build | ||
+ | - fix some rounding and other issue | ||
+ | - re-enable T=0, Tuv=0 cases (unprocessed plane copy) | ||
+ | - add experimental TP1 (default 0) a threshold for P=1 (temporal overlapping) mode | ||
+ | - add experimental R1 (default 3, can be set to 2) first pass radius<br> | ||
+ | 2013 2013/09/04 - [http://forum.doom9.org/showpost.php?p=1047721&postcount=95 no longer buffers the input]; yields a nice speed increase. | ||
- "P" parameter added<br> | - "P" parameter added<br> | ||
rev6 2006/05/10 - bug fixes | rev6 2006/05/10 - bug fixes | ||
Line 60: | Line 94: | ||
rev1 2006/05/05 - initial release | rev1 2006/05/05 - initial release | ||
<br> | <br> | ||
+ | |||
== Archived Downloads == | == Archived Downloads == | ||
{| class="wikitable" border="1"; width="600px" | {| class="wikitable" border="1"; width="600px" | ||
Line 69: | Line 104: | ||
|- | |- | ||
!2013 | !2013 | ||
− | |[ | + | |[https://dl.dropboxusercontent.com/s/mrvuou0kpnkkeg9/frfun7%202013.zip frfun7 2013.zip] |
− | |[ | + | |[https://www.mediafire.com/download/8dktprhcle7rcst/frfun7_2013.zip frfun7 2013.zip] |
− | | | + | |[https://web.archive.org/web/20200625080421if_/https://files.videohelp.com/u/223002/frfun7_2013.zip frfun7_2013.zip] |
|- | |- | ||
!rev6 | !rev6 | ||
− | |[ | + | |[https://web.archive.org/web/20080905123941if_/http://soulhunter.chronocrossdev.com/data/frfun7_rev6.zip frfun7_rev6.zip] |
− | |[http://www.64k.it/andres/data/avisynth/frfun7_rev6.zip frfun7_rev6.zip] | + | |[https://web.archive.org/web/20160610180405if_/http://www.64k.it/andres/data/avisynth/frfun7_rev6.zip frfun7_rev6.zip] |
− | |[ | + | |[https://web.archive.org/web/20140605045057if_/http://www.64k.it/andres/data/avisynth/frfun7_rev6.zip frfun7_rev6.zip] |
|} | |} | ||
<br> | <br> | ||
==External Links == | ==External Links == | ||
+ | *[https://github.com/pinterf/Frfun7/ GitHub] - Source code repository. | ||
+ | *[https://github.com/dubhater/vapoursynth-frfun7 GitHub] - Source code repository (VapourSynth port). | ||
*[http://forum.doom9.org/showthread.php?p=825604#post825604 Doom9 Forum] - frfun7_rev6 discussion.<br> | *[http://forum.doom9.org/showthread.php?p=825604#post825604 Doom9 Forum] - frfun7_rev6 discussion.<br> | ||
*[http://forum.doom9.org/showthread.php?p=1643055#post1643055 Doom9 Forum] - frfun7 2013 discussion.<br> | *[http://forum.doom9.org/showthread.php?p=1643055#post1643055 Doom9 Forum] - frfun7 2013 discussion.<br> | ||
− | <br> | + | *[https://forum.doom9.org/showthread.php?t=183206 Doom9 Forum] - frfun7 2021 discussion.<br> |
<br> | <br> | ||
<br> | <br> | ||
----------------------------------------------- | ----------------------------------------------- | ||
'''Back to [[External_filters#Spatial_Denoisers|External Filters]] ←''' | '''Back to [[External_filters#Spatial_Denoisers|External Filters]] ←''' |
Latest revision as of 02:12, 30 June 2022
Abstract | |
---|---|
Author | Prunedtree, pinterf |
Version | 0.9 |
Download | frfun7_v0.9.7z |
Category | Spatial Denoisers |
License | GPLv2 |
Discussion | Doom9 Thread (2006) - Doom9 Thread (2021) |
Contents |
[edit] Description
frfun7 is a spatial fractal denoising plugin.
[edit] Requirements
- [x86]: AviSynth+ or AviSynth 2.6
- [x64]: AviSynth+
- Progressive input only
- Supported color formats: Y8, YV12, YV16, YV24
[edit] Syntax and Parameters
- frfun7 (clip, float "lambda", float "T", float "Tuv", int "P", int "TP", int "R1")
- clip =
- Input clip.
- clip =
- float lambda = 1.1
- Adjust the power of the local denoising.
- float lambda = 1.1
- float T = 6.0
- Limits the max luma denoising power for edges; 0 disables processing.
- float T = 6.0
- float Tuv = 2.0
- Limits the max chroma denoising power for edges; 0 disables processing.
- float Tuv = 2.0
- int P = 0
- It's a "speed -vs- quality" trade off setting.
- int P = 0
- 0 : faster but slightly lower quality than frfun7_rev6 (may create minor artifacts around line edges).
- 1 : adaptive overlapping (see also TP1). slower than frfun7_rev6 but the quality is a little bit better.
- 2 : temporal
- 4 : adaptive radius
- Internally the parameter is treated as a bit mask but probably it has no point.
- Parameter is available since frfun7 2013.
- int TP1 = 0
- A threshold which affects P=1 (adaptive overlapping).
- Introduced as a separate parameter in v0.7. This value had to be encoded into P as TP1*1000 previously.
- 0 will always run into a final filtering part, the bigger it is, probably the more pixels it will skip. (?)
- int TP1 = 0
- int R1 = 3
- Radius for first pass of the internal algorithm.
- First pass in pre v0.7 was fixed to 3 (and was no separate parameter).
- Valid values are 2 or 3.
- int R1 = 3
[edit] Examples
frfun7 with default settings:
AviSource("Blah.avi") frfun7(lambda=1.1, T=6.0, Tuv=2.0, P=0, TP1=0, R1=3)
[edit] Changelog
Version Date Changes
v0.9 2022/06/29 - Performance increase in Intel sse2 - backport from VapourSynth (dubhater): * p=0 184 fps to 304 fps 65% faster *p=1 36 fps to 61 fps 69% faster *p=2 233 fps to 282 fps 21% faster *p=4 263 fps to 401 fps 52% faster *note: The output is slightly different at the left and right edges of the frame. - additional fix bug when p=1 and tp1>0
v0.8 2022/05/18 - backport some fixes and non-Intel C code from VapourSynth port by dubhater: - Fix P=2 (temporal) blocky rectangular artifacts at the most top and bottom area - Fix bug when p=1 and tp1>0 - Avoid loss of precision when p=1 or p=2, Fixes https://github.com/pinterf/Frfun7/issues/1 - Add C-only (other than Intel SIMD) code path, enable usage of ENABLE_INTEL_SIMD build option.
v0.7 2021/09/10 - Code refresh and additions by pinterf - Source to VS2019 solution - Add/guess missing source parts, rename files - Update AviSynth headers - Add version resource - Avisynth V2.6 style plugin - Implement all mmx inline assembler as SIMD intrinsics - x64 build - fix some rounding and other issue - re-enable T=0, Tuv=0 cases (unprocessed plane copy) - add experimental TP1 (default 0) a threshold for P=1 (temporal overlapping) mode - add experimental R1 (default 3, can be set to 2) first pass radius
2013 2013/09/04 - no longer buffers the input; yields a nice speed increase. - "P" parameter added
rev6 2006/05/10 - bug fixes - remove mod8 restriction - process first and last frame
rev1 2006/05/05 - initial release
[edit] Archived Downloads
Version | Download | Mirror | Mirror 2 |
---|---|---|---|
2013 | frfun7 2013.zip | frfun7 2013.zip | frfun7_2013.zip |
rev6 | frfun7_rev6.zip | frfun7_rev6.zip | frfun7_rev6.zip |
[edit] External Links
- GitHub - Source code repository.
- GitHub - Source code repository (VapourSynth port).
- Doom9 Forum - frfun7_rev6 discussion.
- Doom9 Forum - frfun7 2013 discussion.
- Doom9 Forum - frfun7 2021 discussion.
Back to External Filters ←