Releases: WolframRhodium/muvsfunc
v0.4.0
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
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()
: #22Cdeblend()
: #23S_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()
withstd.DuplicateFrames()
inRandomInterleave()
. - Fix error when
thr
andthrc
are different inGradFun3()
. @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
New features - MXNet support using vs_mxnet@kice
- Introduce
muvsfunc.super_resolution
as an alternative tomuvsfunc_numpy.super_resolution
of using pre-trained image processing models in MXNet. See example.
New features - TensorFlow support
muvsfunc_numpy.super_resolution
can load TensorFlow models now.
Maintenance
-
Add parameter
pad_mode
inmuvsfunc_numpy.super_resolution
. -
Remove parameters
is_caffe_model
,normalize_mean
,normalize_std
,dynamic_range
inmuvsfunc_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
andmuvsfunc.SSIM_downsample
. @Helenerineium -
Prefer
core.resize.*
overcore.fmtc.resample
. @Helenerineium -
Replace some
core.rgvs.RemoveGrain
withcore.std.Convolution
. @Helenerineium -
Cosmetics
v0.1.0
- 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.