RgTools v1.1 (20210104)
- Source syntax for GCC
- CMake build environment, builds on Linux, at least on my (pinterf) Ubuntu 19.10 WSL
(INTEL_INTRINSICS handling not implemented in the source, so it compiles on Intel at the moment) - Fix: artifacts in RemoveGrain mode 19 for 10-16 bits
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)