RgTools

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
(RgTools)
 
m (Requirements: avs+ link)
 
(27 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{FilterCat|External_filters|Denoisers|Spatial-Temporal Denoisers}}
+
{{FilterCat|External_filters|Plugins|Denoisers}}
[[Category:Plugins]]
+
 
{{Filter3
 
{{Filter3
| {{Author/tp7}}
+
| {{Author/tp7}}, {{Author/pinterf}}
| v0.92.1
+
| v0.98
|[http://github.com/tp7/RgTools/releases/download/0.92.1/RgTools-x86.zip RgTools-x86.zip]
+
|[https://github.com/pinterf/RgTools/releases RgTools-0.98.7z]
[http://github.com/tp7/RgTools/releases/download/0.92.1/RgTools-x64.zip RgTools-x64.zip]
+
| Denoisers  
| Spatial-Temporal Denoisers  
+
| [https://opensource.org/licenses/MIT MIT] but binaries are [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
| [http://opensource.org/licenses/MIT MIT] but binaries are [http://www.gnu.org/licenses/gpl-2.0.txt GPLv2]
+
|6=[https://forum.doom9.org/showthread.php?t=169832 Doom9 Thread]
|}}
+
}}
<br>
+
 
 
== Description ==
 
== Description ==
:RgTools is a modern rewrite of [[RemoveGrain_v1.0b/RemoveGrain/RemoveGrain| RemoveGrain]], [[RemoveGrain_v1.0b/Repair/Repair| Repair]], [[RemoveGrain v1.0b/RemoveGrain/BackwardClense|BackwardClense]], [[RemoveGrain v1.0b/RemoveGrain/Clense| Clense]], [[RemoveGrain v1.0b/RemoveGrain/ForwardClense|ForwardClense]] and [[VerticalCleaner]] all in a single dynamically linked plugin. In addition, RgTools is backward compatible with the original plugins.
+
<tt>RgTools</tt> is a modern rewrite of <tt>[[RgTools/RemoveGrain|RemoveGrain]]</tt>, <tt>[[RgTools/Repair|Repair]]</tt>, <tt>[[RgTools/BackwardClense|BackwardClense]]</tt>, <tt>[[RgTools/Clense|Clense]]</tt>, <tt>[[RgTools/ForwardClense|ForwardClense]]</tt>, <tt>[[RgTools/VerticalCleaner| VerticalCleaner]]</tt> and <tt>[[RgTools/TemporalRepair| TemporalRepair]]</tt> all in a single plugin. <tt>RgTools</tt> is ''mostly'' backward compatible with the original plugins, incompatibilities mainly come from deprecated parameters in the original filters, read filter documentation for full details. Some routines might be slightly less efficient than original, some are faster. Output of some <tt>RemoveGrain</tt> modes are not exactly identical to the original due to some ''minor rounding differences''; these differences will not affect your output in any significant way (it might make it better)[https://forum.doom9.org/showpost.php?p=1697604&postcount=865]. Other functions should be identical.
:Some routines might be slightly less efficient than original, some are faster. Output of some RemoveGrain modes are not exactly identical to the original due to some minor rounding differences. Other functions should be identical.
+
<br>
 
<br>
 
<br>
  
 
== Requirements ==
 
== Requirements ==
:- [http://forum.doom9.org/showthread.php?t=168764 AviSynth 2.6.0 Alpha5] or later
+
* [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6.0] or [[AviSynth+]]
:- x64 version requires [http://forum.doom9.org/showthread.php?t=168856 AviSynth+ r1576] or later
+
* x64 version requires [[AviSynth+]]
:- Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
* Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]; YUV(A) and planar RGB(A) 10-16 bits on Avisynth+ r2290- and 32 bit float on Avisynth+ r2728-
 +
* AVX2 support requires Avisynth+ (also OS dependent, AVX2 needs at least Windows7 SP1)
 
<br>
 
<br>
:- [http://www.microsoft.com/en-us/download/details.aspx?id=30679 Microsoft Visual C++ 2012 Redistributable Package]
+
* [https://go.microsoft.com/fwlink/?LinkId=746571 Microsoft Visual C++ Redistributable for Visual Studio 2017-2019 (x86)]
 +
* [https://go.microsoft.com/fwlink/?LinkId=746572 Microsoft Visual C++ Redistributable for Visual Studio 2017-2019 (x64)]
 +
 
 +
or older versions
 +
* [https://www.microsoft.com/en-us/download/details.aspx?id=53587 Microsoft Visual C++ 2015 Redistributable Package (x86 / x64)]
 +
:<span style="color:red">***</span> <tt>vcredist_x86.exe</tt> is required for <tt>RgTools-x86</tt>
 +
:<span style="color:red">***</span> <tt>vcredist_x64.exe</tt> is required for <tt>RgTools-x64</tt>
 
<br>
 
<br>
  
Line 26: Line 32:
 
{{PluginFilterTable2}}
 
{{PluginFilterTable2}}
 
{{PluginFilterRow|RgTools|BackwardClense|
 
{{PluginFilterRow|RgTools|BackwardClense|
Used for clensing at sharp scene changes. BackwardClense is for the last frame of a scene.
+
Modified version of <tt>Clense</tt> that works on current and previous frames.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
{{PluginFilterRow|RgTools|Clense|
 
{{PluginFilterRow|RgTools|Clense|
Clense is a very brutal temporal cleaner often used in prefiltering.
+
Temporal median of three frames.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
{{PluginFilterRow|RgTools|ForwardClense|
 
{{PluginFilterRow|RgTools|ForwardClense|
Used for clensing at sharp scene changes. ForwardClense is for the first frame of a new scene.
+
Modified version of <tt>Clense</tt> that works on current and next frames.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
{{PluginFilterRow|RgTools|Repair|
 
{{PluginFilterRow|RgTools|Repair|
Repairs unwanted artifacts from ''but not limited to'' RemoveGrain. Rapair includes 24 modes.
+
Repairs unwanted artifacts from (''but not limited to'') <tt>RemoveGrain</tt>, includes 24 modes.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
{{PluginFilterRow|RgTools|RemoveGrain|
 
{{PluginFilterRow|RgTools|RemoveGrain|
Purely spatial denoising function that includes 24 different modes.
+
Purely spatial denoising function, includes 24 modes.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
{{PluginFilterRow|RgTools|VerticalCleaner|
 
{{PluginFilterRow|RgTools|VerticalCleaner|
A fast vertical median with two modes.
+
A very fast vertical median, it only has 2 modes.
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]]
+
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 +
}}
 +
{{PluginFilterRow|RgTools|TemporalRepair|
 +
TemporalRepair is a temporal filter, primarily useful for restoring static (non moving) details of spatial filters like RemoveGrain. Since 0.98.
 +
| [[Y8]], [[YV12]], [[YV16]], [[YV24]], [[YV411]], all 8-32bit planar YUV/RGB for AVS+
 
}}
 
}}
 
|}
 
|}
 
<br>
 
<br>
  
<br>
 
 
== Changelog ==
 
== Changelog ==
 
  Version      Date            Changes<br>
 
  Version      Date            Changes<br>
 +
 +
v0.98        08/14/2019      - Include "TemporalRepair" filter from old RemoveGrainT package (rewritten C and SIMD intrinsics from pure inline asm)
 +
                                Add Y8, YV16, YV24 besides YV12, drop YUY2 support.
 +
                                Add 10-32 bit support for Y, YUV and planar RGB formats
 +
                                Add int "opt" parameter (mainly for debug: 0=C 1=SSE2 2=SSE4.1) for testing specific code paths
 +
                              - Codes for different processor targets (SSSE3 and SSE4.1) are now separated and are compiled using function attributes (clang, gcc).
 +
                              - Other source changes for errorless gcc and clang build
 +
                              - LLVM support, see howto in RgTools.txt
 +
                                Note: use at least LLVM 9.0 build 21 June 2019 due to a clang compiler bug (_mm_avg_epu8 related, fixed on April 14 2019)
 +
                                older versions are up-to 1/3 slower than the Microsoft build. See latest snapshot builds at https://llvm.org/builds/
 +
                              - GCC 8.3 support, CMakeFiles.txt, see howto in RgTools.txt
 +
                              - RemoveGrain/Repair different code paths for SSE2/SSE4.1/AVX2 instead of SSE2/SSE3/AVX2.
 +
                              - Add documentation (from old docs, new part: gcc/clang howto)
 +
                              - todo: Overview 32 bit float parts for some RemoveGrain modes (6, 7, 8, 9, 15, 16, 23, 24)
 +
 +
v0.97        07/02/2018      - Remove some inherited clipping to 0..1 range for 32bit float.
 +
                                In general we do not clamp in 32 bit float colorspaces, especially that U/V range is -0.5..+0.5 from Avisynth+ r2728
 +
 +
v0.96        06/09/2017      - RemoveGrain: AVX2. Available when Avisynth+ reports AVX2 usability
 +
                                Can be disabled with new parameter: optAvx2=false
 +
                              - Clense, ForwardClense, BackwardClense: ignore planar colorspace checking when planar=true. Like in RemoveGrain and Repair.
 +
                              - Fix: Mode 11 and 13 for 32 bit float colorspaces (which worked like mode 10 and 12)
 +
 +
v0.95        03/14/2017      - Fix: RemoveGrain Mode 20: overflow at 14 and 16 bit depths in SSE4 (stripes)
 +
                              - Repair: error on unaligned frames (unaligned crop) instead of access violation error
 +
 +
v0.94        01/26/2017      - Clense: new parameter (from v0.9): bool reduceflicker (default false)
 +
                              - Clense: dummy compatibility parameters: bool planar, int cache
 +
                              - autoregister filter MT modes as NICE_FILTER for Avisynth+
 +
                                except for Clense: when reduceflicker is true, MULTI_INSTANCE MT mode is reported
 +
                              - alignment check in Repair and RemoveGrain (anti-unaligned crop measures) 
 +
 +
v0.93        11/27/2016      - Same functionality as 0.92.1
 +
                              - New bit depths 10, 12, 14, 16 bits and 32 bit float
 +
                              - New formats: Planar RGB, Planar RGBA and YUVA support
 +
                              - Use aligned loads if possible, internally
 +
                              - 10+ bit formats require SSE4 for fast processing
 +
                              - XP Support
 +
                              - Built with VS2015, requires Visual Studio Redistributable Update 3 or newer
 +
                              - Of course it works with classic Avisynth for 8 bit videos.<br>
 
  v0.92.1      02/10/2014      - Planar parameter added to VerticalCleaner registration function. It worked before but apparently not.<br>
 
  v0.92.1      02/10/2014      - Planar parameter added to VerticalCleaner registration function. It worked before but apparently not.<br>
 
  v0.92        02/10/2014      - Planar parameter added to VerticalCleaner for compatibility with QTGMC.
 
  v0.92        02/10/2014      - Planar parameter added to VerticalCleaner for compatibility with QTGMC.
Line 63: Line 112:
 
                               - 24 modes of RemoveGrain, 24 modes of Repair, both modes of VerticalCleaner, and three  
 
                               - 24 modes of RemoveGrain, 24 modes of Repair, both modes of VerticalCleaner, and three  
 
                                 variations of Clense implemented.
 
                                 variations of Clense implemented.
<br>
+
 
== Archived Downloads ==
+
{| class="wikitable" border="1"; width="400px"
+
|-
+
!!width="100px"| Version
+
!!width="150px"| Download
+
!!width="150px"| Source Code
+
|-
+
!v0.92.1
+
|[http://github.com/tp7/RgTools/releases/download/0.92.1/RgTools-x86.zip RgTools-x86.zip]
+
[http://github.com/tp7/RgTools/releases/download/0.92.1/RgTools-x64.zip RgTools-x64.zip]
+
|[http://github.com/tp7/RgTools/archive/0.92.1.zip 0.92.1.zip]
+
|-
+
!v0.92
+
|[http://github.com/tp7/RgTools/releases/download/0.92/RgTools-x86.zip RgTools-x86.zip]
+
[http://github.com/tp7/RgTools/releases/download/0.92/RgTools-x64.zip RgTools-x64.zip]
+
|[http://github.com/tp7/RgTools/archive/0.92.zip 0.92.zip]
+
|-
+
!v0.91
+
|[http://github.com/tp7/RgTools/releases/download/0.91/RgTools-x86.zip RgTools-x86.zip]
+
[http://github.com/tp7/RgTools/releases/download/0.91/RgTools-x64.zip RgTools-x64.zip]
+
|[http://github.com/tp7/RgTools/archive/0.91.zip 0.91.zip]
+
|-
+
!v0.9
+
|[http://github.com/tp7/RgTools/releases/download/0.9/RgTools-x86.zip RgTools-x86.zip]
+
[http://github.com/tp7/RgTools/releases/download/0.9/RgTools-x64.zip RgTools-x64.zip]
+
|[http://github.com/tp7/RgTools/archive/0.9.zip 0.9.zip]
+
|}
+
<br>
+
== External Links ==
+
*[http://forum.doom9.org/showthread.php?t=169832 Doom9] - RgTools discussion.
+
*[http://github.com/tp7/RgTools GitHub] - Source code repository.
+
<br>
+
 
<br>
 
<br>
 
<br>
 
<br>
 
-----------------------------------------------
 
-----------------------------------------------
 
'''Back to [[External_filters#Spatio-Temporal_Denoisers|External Filters]] &larr;'''
 
'''Back to [[External_filters#Spatio-Temporal_Denoisers|External Filters]] &larr;'''

Latest revision as of 23:34, 3 September 2019

Abstract
Author tp7, pinterf
Version v0.98
Download RgTools-0.98.7z
Category Denoisers
License MIT but binaries are GPLv2
Discussion Doom9 Thread

Contents

[edit] Description

RgTools is a modern rewrite of RemoveGrain, Repair, BackwardClense, Clense, ForwardClense, VerticalCleaner and TemporalRepair all in a single plugin. RgTools is mostly backward compatible with the original plugins, incompatibilities mainly come from deprecated parameters in the original filters, read filter documentation for full details. Some routines might be slightly less efficient than original, some are faster. Output of some RemoveGrain modes are not exactly identical to the original due to some minor rounding differences; these differences will not affect your output in any significant way (it might make it better)[1]. Other functions should be identical.

[edit] Requirements

  • AviSynth 2.6.0 or AviSynth+
  • x64 version requires AviSynth+
  • Supported color formats: Y8, YV12, YV16, YV24, YV411; YUV(A) and planar RGB(A) 10-16 bits on Avisynth+ r2290- and 32 bit float on Avisynth+ r2728-
  • AVX2 support requires Avisynth+ (also OS dependent, AVX2 needs at least Windows7 SP1)


or older versions

*** vcredist_x86.exe is required for RgTools-x86
*** vcredist_x64.exe is required for RgTools-x64


[edit] Filters

Filter Description Color format
BackwardClense

Modified version of Clense that works on current and previous frames.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
Clense

Temporal median of three frames.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
ForwardClense

Modified version of Clense that works on current and next frames.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
Repair

Repairs unwanted artifacts from (but not limited to) RemoveGrain, includes 24 modes.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
RemoveGrain

Purely spatial denoising function, includes 24 modes.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
VerticalCleaner

A very fast vertical median, it only has 2 modes.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+
TemporalRepair

TemporalRepair is a temporal filter, primarily useful for restoring static (non moving) details of spatial filters like RemoveGrain. Since 0.98.

Y8, YV12, YV16, YV24, YV411, all 8-32bit planar YUV/RGB for AVS+


[edit] Changelog

Version      Date            Changes
v0.98        08/14/2019      - Include "TemporalRepair" filter from old RemoveGrainT package (rewritten C and SIMD intrinsics from pure inline asm)
                               Add Y8, YV16, YV24 besides YV12, drop YUY2 support.
                               Add 10-32 bit support for Y, YUV and planar RGB formats
                               Add int "opt" parameter (mainly for debug: 0=C 1=SSE2 2=SSE4.1) for testing specific code paths
                             - Codes for different processor targets (SSSE3 and SSE4.1) are now separated and are compiled using function attributes (clang, gcc).
                             - Other source changes for errorless gcc and clang build
                             - LLVM support, see howto in RgTools.txt
                               Note: use at least LLVM 9.0 build 21 June 2019 due to a clang compiler bug (_mm_avg_epu8 related, fixed on April 14 2019) 
                               older versions are up-to 1/3 slower than the Microsoft build. See latest snapshot builds at https://llvm.org/builds/
                             - GCC 8.3 support, CMakeFiles.txt, see howto in RgTools.txt
                             - RemoveGrain/Repair different code paths for SSE2/SSE4.1/AVX2 instead of SSE2/SSE3/AVX2.
                             - Add documentation (from old docs, new part: gcc/clang howto)
                             - todo: Overview 32 bit float parts for some RemoveGrain modes (6, 7, 8, 9, 15, 16, 23, 24)

v0.97        07/02/2018      - Remove some inherited clipping to 0..1 range for 32bit float.
                               In general we do not clamp in 32 bit float colorspaces, especially that U/V range is -0.5..+0.5 from Avisynth+ r2728

v0.96        06/09/2017      - RemoveGrain: AVX2. Available when Avisynth+ reports AVX2 usability
                               Can be disabled with new parameter: optAvx2=false
                             - Clense, ForwardClense, BackwardClense: ignore planar colorspace checking when planar=true. Like in RemoveGrain and Repair.
                             - Fix: Mode 11 and 13 for 32 bit float colorspaces (which worked like mode 10 and 12)

v0.95        03/14/2017      - Fix: RemoveGrain Mode 20: overflow at 14 and 16 bit depths in SSE4 (stripes)
                             - Repair: error on unaligned frames (unaligned crop) instead of access violation error

v0.94        01/26/2017      - Clense: new parameter (from v0.9): bool reduceflicker (default false)
                             - Clense: dummy compatibility parameters: bool planar, int cache
                             - autoregister filter MT modes as NICE_FILTER for Avisynth+
                               except for Clense: when reduceflicker is true, MULTI_INSTANCE MT mode is reported
                             - alignment check in Repair and RemoveGrain (anti-unaligned crop measures)  

v0.93        11/27/2016      - Same functionality as 0.92.1
                             - New bit depths 10, 12, 14, 16 bits and 32 bit float
                             - New formats: Planar RGB, Planar RGBA and YUVA support
                             - Use aligned loads if possible, internally
                             - 10+ bit formats require SSE4 for fast processing
                             - XP Support
                             - Built with VS2015, requires Visual Studio Redistributable Update 3 or newer
                             - Of course it works with classic Avisynth for 8 bit videos.
v0.92.1 02/10/2014 - Planar parameter added to VerticalCleaner registration function. It worked before but apparently not.
v0.92 02/10/2014 - Planar parameter added to VerticalCleaner for compatibility with QTGMC. Same behavior as in RemoveGrain.
v0.91 11/30/2013 - Planar parameter is added to RemoveGrain and Repair. It allows to skip any colorspace checks whatsoever, making the filter always assume that planar input is passed.
v0.9 11/26/2013 - Initial release - 24 modes of RemoveGrain, 24 modes of Repair, both modes of VerticalCleaner, and three variations of Clense implemented.




Back to External Filters

Personal tools