RgTools v1.0 (20200427)
-
RemoveGrain mode 26-28, (C, up to SSE4.1)
As said by the original author:
Mode 26 SmartRGC: 26 = medianblur. Based off mode 17, but preserves corners, but not thin lines.
Mode 27 SmartRGCL: 27 = medianblur. Same as mode 26 but preserves thin lines.
Mode 28 SmartRGCL2pinterf: I swear that by seeing the code mode 28 is different from mode 27 but I cannot find a clip where 27 and 28 gave different results :)
-
Repair mode 26-28 (25 is nonexisting, only exists in RemoveGrain)
-
add "opt" debug parameter to Repair. 0:auto, 1:c 2:SSE2 3:SSE4.1 4:AVX2 (latter is not used here atm)
RgTools v0.99 (20200426)
- RemoveGrain mode 25 ("nondestructivesharpen") finally reverse engineered
and ported from the original RemoveGrain package. (no-no, Repair has still 24 modes)
Plus: 10-32 bits, Plus: sse4.1, avx2 - RemoveGrain: More correct 32 bit float in mode 6,7,8,9,15,16,23,24
(proper clamping, chroma part specially treated) - General: make C reference more similar to actual SIMD code
- fix: width<32 (or 16) with horizontal subsampling would use AVX2 (SSE2) on chroma
- (noticed: RemoveGrain: mode 11 and 12 SSE is simply avaraging
instead of really do 1/4 1/2 1/4 kernel blur like C (todo).
This is written in docs but even very old RemoveGrainSSE2 acts like this) - Avisynth+ V8 header, frame property copy support
- opt debug parameter to RemoveGrain. 0:auto, 1:c 2:SSE2 3:SSE4.1 4:AVX2
RgTools v0.98 (20190814)
- 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)
RgTools v0.97 (20180702)
- 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
RgTools 0.96 (20170609)
- 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)
RgTools 0.95 (20170314)
- 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
RgTools 0.94
- 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)
RgTools 0.93
- 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