Skip to content

Releases: WolframRhodium/muvsfunc

v0.4.0

01 Jan 03:47
0a8b3e8
Compare
Choose a tag to compare

What's Changed

  • VapourSynth API4 support with API3 compatibility
  • getnative() visualization enhancements by @LittlePox in #27
  • support using lexpr in ColorBarsHD by @AkarinVS in #33
  • support txt output in getnative by @sinsanction in #34
  • getnative: fix missing spline64 support by @bodayw in #35
  • getnative(): Change the interface and add some features. by @SaltyChiang in #40
  • getnative(): Control the intervals for multi heights mode. by @SaltyChiang in #41
  • Performance optimizations using akarin.Expr()
  • dfttestMC(): Fix "mdg=True". Thanks to @Ryuukishi and @kgrabs in #28
  • DeFilter(): Add argument 'step_size' to prevent divergence

Known issues

  • FixTelecinedFades() may suffer from accuracy error and generate artifacts #39

Full Changelog: v0.3.0...v0.4.0

v0.3.0

27 Aug 08:58
Compare
Choose a tag to compare

New function (decorator) - @multi_scale()

One of my favorite function of this release, though I do not find it useful now. I implemented it after reading Steve Eddins's series of blogs on multiresolution pyramid. The idea first came to my mind after I read Local Laplacian Filters: Edge-aware Image Processing with a Laplacian Pyramid by Paris et al., Communications of ACM, 2015.

New IQA metric - MDSI()

A competitive FR-IQA. Written for Zopti.

CuPy examples

Bilateral, Dpid, KNLMeansCL, SigmaFilter and super-xbr are implemented. Good place for me to practice.

Other new functions

  • sbr_detail() (muvsfunc_misc.py): sbr() inspired detail detection algorithm.
  • fade() (muvsfunc_misc.py): Implementation of fade-in/out effect.
  • gaussian() (muvsfunc_numpy.py): DCT-based gaussian convolution.
  • MaskedLimitFilter(): Masked limit fIlter.
  • PoissonMaskedMerge() (muvsfunc_numpy.py): Seamless cloning based on poisson editing.
  • avg_decimate(): Averaging-based decimation filter, proposed by @IFeelBloated.
  • YAHRmask(): #22
  • Cdeblend(): #23
  • S_BoxFilter(): Edge-preserving technique for image filtering, CVPR2019 (oral).
  • VFRSplice(): Functional and fractions-based re-implementation.
  • resize() (resize.py): Experimental wrapper function for vszimg resizer in a fmtconv-like API.

Maintenance

  • super_resolution(): asymmetric padding & cropping, bug fixes.
  • Correct variance calculation in LocalStatistics(). @stgn
  • Update and add examples.
  • Replace std.Interleave() with std.DuplicateFrames() in RandomInterleave().
  • Fix error when thr and thrc are different in GradFun3(). @LittlePox
  • Eliminate redundant function call in GradFun3().
  • Cosmetics.

Type Hinting

Thanks to mypy, I do find several issues and they have been fixed.

v0.2.0

17 Sep 06:51
Compare
Choose a tag to compare

New features - MXNet support using vs_mxnet@kice

New features - TensorFlow support

  • muvsfunc_numpy.super_resolution can load TensorFlow models now.

Maintenance

  • Add parameter pad_mode in muvsfunc_numpy.super_resolution.

  • Remove parameters is_caffe_model, normalize_mean, normalize_std, dynamic_range in muvsfunc_numpy.super_resolution.

  • muvsfunc_numpy.super_resolution now use NumPy for data processing.

  • Introduce a relative limiting in muvsfunc.SeeSaw. @Helenerineium

  • Gamma correction can be used in muvsfunc.firniture and muvsfunc.SSIM_downsample. @Helenerineium

  • Prefer core.resize.* over core.fmtc.resample. @Helenerineium

  • Replace some core.rgvs.RemoveGrain with core.std.Convolution. @Helenerineium

  • Cosmetics

v0.1.0

22 Jul 18:56
Compare
Choose a tag to compare
  • The main script muvsfunc.py can be considered as stable. I will keep maintaining it, but I won't change it too much in the foreseeable future.
  • Everything except the main script might be changed frequently, but I will only make new release when I make important changes to the main script.