Masktools2/Changelog

From Avisynth wiki
Jump to: navigation, search


Back to MaskTools2.


  • Alpha 48 :
  • added : signed and unsigned binary shifts to LUTs, ceil/floor/trunc float -> int conversions. @ is now equivalent to °
  • Alpha 47 :
  • added : signed and unsigned binary operators to LUTs
  • Alpha 46 :
  • fixed : with mt_lutf, "std" mode wasn't working. Could also affect "std" with mt_luts and mt_lutsx
  • Alpha 45 :
  • fixed : mt_clamp on sse2 platforms with resolution not multiple of 64
  • added : mode parameter to mt_lutspa, to clean up biased/relative mess
  • Alpha 44 :
  • added : new mode (weighted sum) for mt_luts and mt_lutsx
  • Alpha 43 :
  • fixed : optimized versions of small horizontal resolutions with mt_edge, mt_xxpand and mt_xxflate
  • fixed : avisynth 2.6 support (likely broken since avisynth 2.6 alpha 2 at least)
  • added : hprewitt mode to mt_edge
  • added : "biased" option to mt_lutspa
  • optimized : prewitt and hprewitt mode for mt_edge
  • Alpha 42 :
  • added : specialized modes for mt_binarize
  • added : specialized modes for mt_logic
  • Alpha 41 :
  • (re)optimized : mt_edge with custom kernels and divisors that are a power of two
  • fixed : mt_edge with custom kernels (has always been broken in C, which became obvious once asm was removed)
  • fixed : no more crashes when an input clip isn't YUV planar
  • Alpha 40 :
  • optimized : mt_xxpand vertical/horizontal/both modes are asmized
  • optimized : mt_xxflate are asmized
  • optimized : mt_motion with sse2
  • potential fix : mt_merge with mod8 width
  • potential : 64 bits build included
  • Alpha 39 :
  • Failed attempt at 64 bits build
  • Alpha 38 :
  • Failed attempt at 64 bits build
  • Alpha 37 :
  • fixed : mt_polish wasn't handling "z", "min", "max", "clip" and "round"
  • added : mt_infix, which convert from polish to infix notation
  • changed : built with MSVC 2008
  • Alpha 36 :
  • fixed : "pi" wasn't properly defined for all luts
  • Alpha 35 :
  • added : mt_lutspa
  • Alpha 34 :
  • added : support for interleaved2planar hack, enabling 422 support
  • changed : both avisynth 2.5 and 2.6 version are built
  • Alpha 32 :
  • added : mt_lutxyz
  • added : mt_lutsx
  • fixed : small memory leak in mt_luts
  • Alpha 31 :
  • fixed : mt_hysteresis was randomly crashing.
  • fixed : mt_polish is back.
  • added : round, clip, min, max and = for lut.
  • adapted : to msvc8 / yasm.
  • Alpha 30 :
  • fixed : luts was crashing if some pixels didn't have any neighbours in the pixels list.
  • added : mt_freerectangle, mt_freeellipse and mt_freelosange helpers.
  • Alpha 29 :
  • fixed : intern float to integer conversion that were badly rounding negative number. That resulted in -1.0 been rounded into 0 (!). Most notably affected was mt_convolution. Thanks redfordxx for pointing that out.
  • Alpha 28 :
  • fixed : mt_expand / mt_inpand / mt_convolution / mt_edge optimizations ( were borked when width-16 was mod 64, and that could be noticed only with avs 2.5.7 )
  • Alpha 27 :
  • fixed : mt_binarize asm optimizations that borked with some thresholds
  • Alpha 26 :
  • fixed : avs closing issue.
  • Alpha 25 :
  • added : new html documentation.
  • fixed : wrong frame issue.
  • fixed : mt_merge with luma=true.
  • Alpha 24 :
  • fixed : issues with MT.dll ( thanks tsp, Boulder, vanessam and all those who suffered the bug ).
  • fixed : check for YV12 colorspace, and report an error if it isn't ( thanks Boulder ).
  • speed up : median mode for luts ( once again, thanks to tsp ).
  • Alpha 23 :
  • fix & speed up : median mode, thanks to tsp's insightful remark. Note to self : think less like a mathematician, and more like a programmer. Simpler, faster & not bugged.
  • Alpha 22 :
  • added : "med"/"median" mode to luts/lutf.
  • changed : luts doesn't necessarily consider the center pixel.
  • changed back : forms helpers prepends (0, 0).
  • changed : forms helpers now have a bool "zero" parameter, defaulted to true.
  • added : bool "luma" parameter to mt_merge, which makes it use the luma mask for all three planes, and which forces chroma modes to "process" ( u=v=3 ).
  • Alpha 21 :
  • fixed : two & three input clips filters where requesting wrong frames leading to ghost artefacts.
  • Alpha 20 :
  • fixed : huge bug preventing most filters from working.
  • Alpha 19 :
  • code refactoring.
  • fixed : bug with asm and width lower than 64.
  • fixed : doesn't prepend (0, 0) pixel to the forms helpers.
  • added : "min/max" mode to mt_edge. The edge value is local max - local min ( taken on a 3x3 square ).
  • added : mt_lutf : a frame lut, see the description above.
  • added : mt_luts : a spatial lut, see the description above.
  • Alpha 18 :
  • added : mt_makediff, mt_adddiff, mt_average and mt_clamp, ported from mg262's limitedsupport plugin. The asm code is his, though it has been ported to nasm. They respectively amount to MakeDiff, AddDiff, SimpleAverage and Clamp.
  • added : mt_edge : "prewitt" kernel, taken from mg262's Prewitt filter. Unlike mg262's filter, there's no multiplier ( it's always 1 ), but mt_edge's thresholds still apply. Results, and speed, are identical except for the borders, which are now filtered.
  • added : "chroma" parameter, taken from mg262's excellent idea. It's a string that, if used, overrides U and V values. It can be either "process", "copy", "copy first", "copy second" or a number. "copy" and "copy second" work alike.
  • added : vmToon-0.74, adapted to masktools 2.0.
  • added : LimitedSharpenFaster, with LimitedSupport functions imported into the masktools.
  • Alpha 17 :
  • changed : behavior of mt_edge with a custom kernel : the automatic normalization factor is now the sum of the absolute value of the coefficients, ceiled to the next power of two if that power is <= 128 ( else, it isn't ceiled ).
  • added : cartoon mode for mt_edge.
  • added : modified mfToon script, for masktools v2. mfToonLite's speed goes from 30 fps to 70 fps, mfToon from 4.5 to 6.5.
  • Alpha 16 :
  • fixed : some asm code used in invert, binarize and memset to a particular value. Bug made the first 8 pixels of the picture to be incorrect. Also, avoid another nasty issue that arise when cropping ( not my fault this time, though ).
  • Alpha 15 :
  • fixed : bugs from inflate & deflate ( thx you know you ).
  • reversed : inflate and deflate now match their masktools' v1 counterparts' behavior. ( if anybody used the new buggy one, let him speak quickly ).
  • Alpha 14 :
  • fixed : random crashes with some width and asm functions ( thx Didée ).
  • Alpha 13 :
  • fixed : mt_merge order swapped for mask operation ( no comment... ).
  • Alpha 12 :
  • fixed : bug with some width ( mod4 ) for the non processing mode ( != 1 or 3 ).
  • changed : mt_merge order swapped for mask operation.
  • Alpha 11 :
  • fixed : mt_convolution's multiple instanciation bug.
  • Alpha 10 :
  • fixed : offY was always set to offX.
  • fixed : offset quirk.
  • fixed : mt_convolution was crashing with floats.
  • changed : luts' equal operator is now equivalent to abs(x-y) < 0.000001.
  • added : bool saturate(true) parameter to mt_convolution.
  • added : float total(1.0) parameter to mt_convolution.
  • Alpha 9 :
  • fixed : mt_lut, mt_lutxy : even faster loading.
  • fixed : mt_convolution : negative coefficients were offseted by 1.
  • fixed : mt_convolution : division by zero if the sum of the coefficients was 0.
  • Alpha 8 :
  • fixed : mt_edge in custom mode wasn't working properly.
  • fixed : mt_edge in custom mode, optimized wasn't working properly either.
  • fixed : mt_lutxy was slow to load, it's better now.
  • Alpha 7 :
  • fixed : forgot to add functions to the parser. Thanks Didée for pointing that out.
  • Alpha 6 :
  • fixed : mt_polish was having some trouble with functions.
  • Alpha 5 :
  • added : helpers for creating string for inpand / expand custom modes :
  • mt_circle
  • mt_square
  • mt_diamond
  • mt_ellipse
  • mt_rectangle
  • mt_losange
  • added : helper for lut : conversion from infix to reverse polish notation :
  • mt_polish
  • Alpha 4 :
  • added : custom modes for inpand / expand.
  • Alpha 3 :
  • Fixed : mt_invert, mt_binarize, mt_lutxy, which weren't working properly anymore.
  • Fixed : offset created by incorrect rounding in mt_convolution.
  • Fixed : mmx version of edges filters ( soft thresholding, and roberts ).
  • Fixed : mmx version of motion edge ( soft thresholding ).
  • added : mt_mappedblur.
  • Alpha 2 :
  • added functions to luts : sin, abs, cos, tan, exp, log, acos, atan, asin.
  • added "vertical", "horizontal" and "both" mode to mt_inpand / mt_expand.
  • added mt_convolution.
  • fixed mt_merge behavior for y, u, v = 2.
  • added y, u, v = 4, for masked merge : copy the second clip channel. It's worth for any two clips input filters.
  • internal changes ( code reorganization ).
  • Alpha 1 :
  • Original release.

Back to MaskTools2.

Personal tools