MaskTools/Changelog

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (1 revision)
m (typos)
 
Line 24: Line 24:
  
 
* 1.5.1
 
* 1.5.1
:* Complete rewritting of the documentation (a huge thanks to Wilbert).
+
:* Complete rewriting of the documentation (a huge thanks to Wilbert).
 
:* DEdgeMask now supports a float divisor. However, if the divisor is integer, it '''should''' be faster.
 
:* DEdgeMask now supports a float divisor. However, if the divisor is integer, it '''should''' be faster.
 
:* DEdgeMask now has back its parameter "setdivisor", but it's only for backward compatibility with some scripts.
 
:* DEdgeMask now has back its parameter "setdivisor", but it's only for backward compatibility with some scripts.
:* YV12LUTxy : it's a new filter, implementing the idea presented by Didee on the previous post. The "y" symbol has the value of the collocated pixel in the second clip.
+
:* YV12LUTxy : it's a new filter, implementing the idea presented by Didée on the previous post. The "y" symbol has the value of the collocated pixel in the second clip.
  
 
* 1.4.16
 
* 1.4.16
Line 34: Line 34:
  
 
* 1.4.15.3
 
* 1.4.15.3
:* RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from photoshop).
+
:* RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from Photoshop).
  
 
* 1.4.15.2
 
* 1.4.15.2
 
:* Bug finally solved on YV12LUT. Silly programming bug, as always...
 
:* Bug finally solved on YV12LUT. Silly programming bug, as always...
:* In YV12LUT, logical and relationnal operators added ( <, <=, >, >=, ==, !=, &, !&, |, ° ( xor ) )
+
:* In YV12LUT, logical and relational operators added ( <, <=, >, >=, ==, !=, &, !&, |, ° ( xor ) )
 
:* In YV12LUT, a ternary operator added : ? ( works as in C )
 
:* In YV12LUT, a ternary operator added : ? ( works as in C )
  
Line 59: Line 59:
 
:* Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed
 
:* Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed
 
:* Bugfix : In DEdgeMask, threshold weren't taken into account. They are now
 
:* Bugfix : In DEdgeMask, threshold weren't taken into account. They are now
:* Bugfix : Logic filter is now fully functionnal, in C and MMX
+
:* Bugfix : Logic filter is now fully functional, in C and MMX
 
:* Added : documentation to Logic filter
 
:* Added : documentation to Logic filter
 
:* Added : two modes for Logic : "Min" and "Max" ( C, MMX, iSSE )
 
:* Added : two modes for Logic : "Min" and "Max" ( C, MMX, iSSE )
Line 74: Line 74:
 
:* Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.
 
:* Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.
 
:* Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v,  some weird problems could occur.
 
:* Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v,  some weird problems could occur.
:* Added functionnality : In YV12LUT, the function abs is now defined.
+
:* Added functionality : In YV12LUT, the function abs is now defined.
  
 
* 1.4.11
 
* 1.4.11
Line 100: Line 100:
  
 
* 1.4.6
 
* 1.4.6
:* Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the paremeters of the filter.
+
:* Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the parameters of the filter.
 
:* Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.
 
:* Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.
  
Line 139: Line 139:
  
 
* 1.0.2 (last version - public project dropped):
 
* 1.0.2 (last version - public project dropped):
:* Fix the shift for edgemask using sobel and roberts (misplaced MMX instruction)
+
:* Fix the shift for edgemask using Sobel and Roberts (misplaced MMX instruction)
 
:* MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)
 
:* MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)
  

Latest revision as of 13:49, 15 December 2015


Back to MaskTools.


  • 1.5.8 - 8th August 2005
  • Added DEdgeMask2.
  • 1.5.7
  • Added YUY2LUT.
  • 1.5.6
  • Corrected chroma handling of YV12LUTxy.
  • v1.5.5 - 6 November 2004
  • Version with binarize working;
  • Pentium4 with HT enabled.
  • v1.5.4 - 14 October 2004
  • A lot of filters which were working in place aren't anymore (because of an AviSynth strangeness which was causing slowdowns). Before, a filter such as YV12LUT, with U = V = 1, would have had it's chroma left untouched. Now, if you want to preserve the chroma, you have to specify U = V = 2, as it is said in the documentation.
  • 1.5.2 - 1.5.3
  •  ?
  • 1.5.1
  • Complete rewriting of the documentation (a huge thanks to Wilbert).
  • DEdgeMask now supports a float divisor. However, if the divisor is integer, it should be faster.
  • DEdgeMask now has back its parameter "setdivisor", but it's only for backward compatibility with some scripts.
  • YV12LUTxy : it's a new filter, implementing the idea presented by Didée on the previous post. The "y" symbol has the value of the collocated pixel in the second clip.
  • 1.4.16
  • Bugfixes : Logic "min" & "max" modes weren't properly working, it's corrected.
  • Bugfixes : Logic & Subtract weren't using MMX & iSSE optimizations, due to a very silly bug. It's corrected.
  • 1.4.15.3
  • RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from Photoshop).
  • 1.4.15.2
  • Bug finally solved on YV12LUT. Silly programming bug, as always...
  • In YV12LUT, logical and relational operators added ( <, <=, >, >=, ==, !=, &, !&, |, ° ( xor ) )
  • In YV12LUT, a ternary operator added : ? ( works as in C )
  • 1.4.15.1
  • In YV12LUT, another bug which was still preventing it from working fine. Hopefully, it should really work now.
  • 1.4.15
  • New Filter : HysteresyMask. It will allow you to build a new edge mask from two edge masks, one only having a few edges ( but we're sure they indeed are edges ), the other having two much edges ( due to a too low thresholding for example ). Look in the documentation to have further explanations.
  • 1.4.14.2
  • Several bugfixes concerning the behavior of negative values for Y, U and V ( edgemask, dedgemask, motionmask, combmask, logic )
  • Several bugfixes concerning the use of offX / offY / w and h ( filters than can use it are : maskedmerge, binarize, expand, YV12subtract, yv12lut )
  • In YV12LUT, a bug prevented to use it with some filter. It should work now.
  • In YV12Convolution, float coefficients can be used now. If none is used, all the processing will take place with integer, so it will be faster than if you use a float. Moreover, if there is the possibility of overflow ( giving a result over 255 or under 0 ) during computation, a slower but safe function will be used to saturate computation to 0 and 255.
  • 1.4.14.1
  • Bugfix in YV12LUT to allow the use of negative numbers
  • 1.4.14
  • Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed
  • Bugfix : In DEdgeMask, threshold weren't taken into account. They are now
  • Bugfix : Logic filter is now fully functional, in C and MMX
  • Added : documentation to Logic filter
  • Added : two modes for Logic : "Min" and "Max" ( C, MMX, iSSE )
  • Added : In DEdgeMask, the possibility to set the normalization factor
  • Corrected : documentation.
  • 1.4.13
  • Bugfix : One more, in the MotionMask ( the last row was not correctly computed )
  • Optimizations : MaskedMerge gives now the same output in MMX and C, so MMX optimizations for it are back by default.
  • Added : In EdgeMask, you now can use the laplace kernel. See the documentation on that filter
  • Added : 'New' filter, DEdgeMask, which allows you to choose your kernel ( at a cost : speed )
  • 1.4.12
  • Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.
  • Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v, some weird problems could occur.
  • Added functionality : In YV12LUT, the function abs is now defined.
  • 1.4.11
  • Bugfix : EdgeMask, MMX optimizations give different results. They are disabled by default. To activate them, use usemmx = true. They'll be used only with mod 16 resolution
  • Bugfix : EdgeMask : first and last lines weren't always computed.
  • Bugfix : MaskedMerge : MMX optimizations darken slightly the picture. They are disabled by default. To activate them, use usemmx = true. They'll be used only with mod 16 resolution.
  • 1.4.10
  • Bugfix : first and last lines were not correctly computed with inflate / deflate
  • Invert is no longer a filter of the Masktools, it has been moved inside AviSynth.
  • 1.4.9
  • New filter : CombMask. As usual, read further for more documentation

1.4.8

  • YV12Convolution now supports negative coefficients in the matrix. It allows to use the filter has an edge detecter.
  • YV12Convolution has now a new parameter : bool saturate, which, if set to true, or if there is a possibility of getting out of the range [0..255] during calculation, clips each pixel into that range ( which means it's slightly slower )
  • A new filter : LUT. Read further for more information on how to use it.
  • 1.4.7
  • Rename MotionDetection to MotionMask. I know it's kind of silly, but it's a lot more logical that way.
  • Add the check of the width for the use MMX in MotionMask
  • Slightly modify MMX optimizations in Binarize.
  • Add a new filter : YV12Convolution. It allows you to convole the picture by a matrix of (almost) any size. Look further in the readme to learn how to use it
  • 1.4.6
  • Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the parameters of the filter.
  • Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.
  • 1.4.5
  • Added MotionDetection filter, no MMX / assembler optimizations for it yet. Look further in the Readme to learn how to use it. It takes the idea of Sansgrip's filter (NoMoSmooth) and outputs the motion mask directly in the correct colorspace for the MaskTools.
  • 1.4.4
  • Reactivated MMX optimizations for MaskedMerge
  • Came back to Kurosu's optimizations for Invert
  • 1.4.3
  • Made some MMX optimizations ( binarize, invert )
  • Corrected some MMX optimizations ( which means mostly 'disabled some MMX optimizations' ). It should now work with P4.
  • 1.4.2
  • Fixed bugs concerning the inpand / expand / inflate / deflate functions
  • 1.4.1
  • Fixed the dreadly bug "multiple instances of a filter with different functions needed"
  • 1.4.0
  • Added an experimental LUT filter. Not tested, debug later.
  • 1.3.0 (private version)
  • Made usable the FitPlane function (still an overload of work when only one plane has to be resized) which was previously undocumented; therefore, added FastFitPlane functions (corresponding FitPlane ones should be useless now, except for the resizers settings)
  • Allowed the specification of a processing area for many filters; however, this should not produce any noticable speed increase.
  • Cleaned YV12Layer (in particular the unusable "Darken"/"Lighten" modes)
  • Added OverlayMask, a function that compares 2 clips, and outputs a mask of the parts that are identical (slow and far from perfect).
  • 1.2.0 (private version)
  • YV12Layer: no more useless RGB32 conversion! Approximately the same as Arithmetic (except a third clip is not used), so that one is gone...
  • YV12Substract: hey, why only a C version? Masks are really an underused feature of AviSynth |-[
  • 1.1.0 (private version)
  • Older inflate/deflate are renamed expand/inpand while newer functions replace them
  • Logic and Arithmetic functions added (shouldn't produce the expected results because of no debugging)
  • Edgemask now takes 4 thresholds (2 for luma and 2 for chroma). They are used for: setting to 0 or leaving as is a value depending on first threshold, setting to 255 or leaving as is a value depending on the second one.
  • 1.0.2 (last version - public project dropped):
  • Fix the shift for edgemask using Sobel and Roberts (misplaced MMX instruction)
  • MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)
  • 1.0.1
Initial release

Back to MaskTools.

Personal tools