Frfun7

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (space)
(v0.9)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{FilterCat4|External_filters|Plugins|Denoisers|Spatial_denoisers}}
+
{{FilterCat5|External_filters|Plugins|Plugins_x64|Denoisers|Spatial_denoisers}}
 
{{Filter3
 
{{Filter3
| Prunedtree
+
|1=Prunedtree, {{Author/pinterf}}
| 2013 & rev6
+
|2=0.9
| [http://dl.dropboxusercontent.com/s/mrvuou0kpnkkeg9/frfun7%202013.zip frfun7 2013.zip]
+
|3=[https://github.com/pinterf/Frfun7/releases frfun7_v0.9.7z]
[http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun7_rev6.zip frfun7_rev6.zip]
+
|4=Spatial Denoisers
| Spatial Denoisers
+
|5=[https://github.com/pinterf/Frfun7/blob/main/LICENSE GPLv2]
| Closed source
+
|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>
+
<span style="color:red">'''Note:'''</span> frfun7 2013 is the updated version, unfortunately the output is not ''completely'' identical to frfun7_rev6, for that reason both versions are available. Read description of the <tt>{{Template:FuncDef|P}}</tt> parameter for more information.
+
 
<br>
 
<br>
 
<br>
 
<br>
 
== Requirements ==
 
== Requirements ==
* AviSynth 2.5.8 or later
+
* [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>
+
*'''''frfun7 2013 only''''': [http://www.microsoft.com/en-us/download/details.aspx?id=8328 Microsoft Visual C++ 2010 Redistributable Package (<tt>vcredist_x86.exe</tt>)]
+
 
<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 32: Line 28:
 
:::Adjust the power of the local denoising.
 
:::Adjust the power of the local denoising.
 
<br>
 
<br>
::{{Par2|T|float|10.0}}
+
::{{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 39: Line 35:
 
<br>
 
<br>
 
::{{Par2|P|int|0}}
 
::{{Par2|P|int|0}}
:::Undocumented parameter, only available in frfun7 2013. By testing, one can conclude it's a "speed -vs- quality" trade off setting.
+
:::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>
 
<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>
 +
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.
 
  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>
Line 69: Line 104:
 
|-
 
|-
 
!2013
 
!2013
|[http://dl.dropboxusercontent.com/s/mrvuou0kpnkkeg9/frfun7%202013.zip frfun7 2013.zip]
+
|[https://dl.dropboxusercontent.com/s/mrvuou0kpnkkeg9/frfun7%202013.zip frfun7 2013.zip]
|[http://www.mediafire.com/download/8dktprhcle7rcst/frfun7_2013.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
|[http://web.archive.org/web/20080905123941/http://soulhunter.chronocrossdev.com/data/frfun7_rev6.zip frfun7_rev6.zip]
+
|[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]
|[http://web.archive.org/web/20140605045057/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]] &larr;'''
 
'''Back to [[External_filters#Spatial_Denoisers|External Filters]] &larr;'''

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


[edit] Syntax and Parameters

frfun7 (clip, float "lambda", float "T", float "Tuv", int "P", int "TP", int "R1")


clip   =
Input clip.


float  lambda = 1.1
Adjust the power of the local denoising.


float  T = 6.0
Limits the max luma denoising power for edges; 0 disables processing.


float  Tuv = 2.0
Limits the max chroma denoising power for edges; 0 disables processing.


int  P = 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).
  • 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  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.



[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




Back to External Filters

Personal tools