Skip to content

Releases: adworacz/zsmooth

0.6 - DegrainMedian implemented, TemporalMedian optimizations, MacOS builds

20 Jan 19:52
Compare
Choose a tag to compare
  • Add DegrainMedian implementation, all modes.
  • Optimize TemporalMedian even more. Latest tests show a bump from 340fps to 413fps in
    single core tests on my laptop. Essentially I heavily reduced branching calculations by
    moving diameter calculations to comptime. This does blow up the size of the binary by about double,
    from about 850kB to 1.6MB, but oh well.
  • Refactored internal common code significantly, and introduced a helper type called Grid for operating on a 3x3
    grid of pixels as either scalars or vectors.
  • Added more testing to many of the common functions.
  • Add generic builds for Mac OS, on x86_64 and aarch64 architectures.

SHA256 Checksums:

9030ca4d6d3e027607c36c02ceaec483c25e7ef65558021a5be7de3822f3e107  libzsmooth.aarch64.dylib
0415cd9c46791aabf1fc38c469ba5e634745187ebd3c222dd69e62a5b535970d  libzsmooth.aarch64.dylib.zip
0203484bc87ede59020383d0e7f92abfc48e8015e73acb8ecfa5cc183916f1ad  libzsmooth.x86_64.dylib
1cacc6be957f4625b1be38876ebfc86eb64c5831a753d3bbc5da67e4b3be087e  libzsmooth.x86_64.dylib.zip
9614536820ea867731e84aeed220a30f98b2897e3848a4e4fa43f800fe4fff46  zsmooth.avx2.dll
f95744769dae38004bb94dce55283a530eeff8c1190947edb0b97dda894b1986  zsmooth.avx2.dll.zip
f4a11e1ff9173ad0a5ae0a58592c8ee81f4a25edcd68b95c4aca247f4b01f0e8  zsmooth.znver4.dll
82e868a0c0c4a40eb4f10b7d813582d92b278a177728b85a4914d4aab88326f7  zsmooth.znver4.dll.zip

0.5 - (Hopefully) final bit of stride fixes

03 May 15:37
Compare
Choose a tag to compare
  • Final fixes for stride related issues, as reported in #1
  • Fixes implemented in TemporaMedian, TemporalSoften, and FluxSmooth. RemoveGrain was not effected.

Special thanks to @NSQY, @Selur, and @dnjulek for help in diagnosing the issue.

SHA256 Checksums:

30fc26acad1c5e1708598ca1503e41f447280bd1703b7c70fb44c7ee4df07a5b  zsmooth.avx2.dll
34f813b92d06f62de2f4020c5d51cda2ee8b1885e3285b699aff6eec95fcf353  zsmooth.avx2.dll.zip
aa8100bcf3c07aabcd9c4ef64239f2d3a987c517393abab4905314355af9ccb5  zsmooth.znver4.dll
b899f880312140e45dbc6a7e2062020e6f293bb08b4790e27b5c5868717bf9b7  zsmooth.znver4.dll.zip

More stride fixes and use of slices for runtime safety checks

27 Apr 22:26
Compare
Choose a tag to compare

0.4

  • More fixes for stride handling, this time for high bit depth content. I was missing a divide.
  • Change all filters to use slices instead of multi-pointers. Provides proper runtime safety checks in Debug mode.

Fix stride and vector width calculations.

27 Apr 19:08
Compare
Choose a tag to compare

As Selur and Julek identified in #1, my filter calculations were off when processing non-mod 32 video (like 720x480).

This should be fixed in all filters now. I also found a bug in my vector (SIMD) calculations which should be fixed as well.

FluxSmooth, Optimized TemporalSoften and TemporalMedian, RG Mode 24

25 Apr 03:22
Compare
Choose a tag to compare

Major changes:

  • Add FluxSmooth support
  • Substantially improve the performance of TemporalSoften
  • Update TemporalMedian to use compile-time generated sorting networks,
    which also leads to execellent performance for all radii.
  • Add scalep support to all filters, for optional parameter scaling.
  • Implement RG Mode 24 (which I missed in v0.1)
  • General code cleanup
  • More unit tests
  • Refactored the README a bit with tables to improve readability.

v0.1 - Initial Release!

21 Mar 18:40
Compare
Choose a tag to compare
Pre-release

Time to release my first open source project ever!

After several weeks of work, I have an implementation of several key denoising functions used often in Vapoursynth (and Avisynth).

This release includes TemporalMedian, TemporalSoften, and RemoveGrain (all modes).

Consider this an alpha release!!

I've done plenty of testing on my own machine, but there's much more that needs to be tested on other operating systems are architectures before I'd consider this production ready.

I've pre-compiled Windows versions of the library, targeting AVX2 and AVX512 CPUs. Pick whichever is pertinent for your CPU, and if you're unsure, pick the AVX2 version. Be sure to rename it to just zsmooth.dll when you place it in your plugin directory (although that might not actually be necessary... feel free to report back).