github pinterf/masktools 2.2.17
Masktools2 2.2.17


v2.2.17 (20180710)

  • mt_convolution: check plane dimensions to exceed convolution horizontal/vertical size
  • lut functions: plane order to RGBA from BGRA like in Expr.
    expr parameters y-u-v-a naming matches now to r-g-b-a
  • for luts: use_expr=3: always send expression(s) to Expr

v2.2.16 (20180702)

  • mt_merge new parameter hint for chroma placement when luma=true and 4:2:0/4:2:2
    String 'cplace': possible values "mpeg1" or "mpeg2" (default)
    Parameter is effective only for 420 and 422 formats, otherwise ignored.
    Default "mpeg1" is using fast 2x2 pixel (1x2 for 4:2:2) averaging when converting a 4:4:4 mask to a 4:2:0 or 4:2:2 format (old behaviour)
    420 schema:
    | 0.25 | 0.25 |
    | 0.25 | 0.25 |

"mpeg2" is using 2x3 (1x3 for 4:2:2) pixel weighted averaging when converting a 4:4:4 mask to a 4:2:0 or 4:2:2 format
420 schema:
0.125 | 0.25 | 0.125 |
0.125 | 0.25 | 0.125 |

  • 32 bit float U and V chroma channels are now zero based (+/-0.5 for full scale). Was: 0..1, same as luma
    Since internal format changed, use Avisynth+ r2724 or newer for this masktools2 2.2.16.
    Affected predefined expression constants when plane is U or V:
    cmin and cmax (limited range (16-128)/255 and (240-128)/255 instead of 16/255.0 and 240/255.0
    range_max: 0.5 instead of 1.0
    new: introduce range_min: -0.5 for float U/V chroma, 0 otherwise
    range_half (0.0 instead of 0.5)
    (range_size remained 1.0)
  • New expression syntax for Lut expressions: autoscale any input (x,y,z,a) bit depths to 8-16 bits for internal
    expression use. The primary reason of this feature is the "easy" usage of formerly written 8 bit optimized expressions. Parameters for lut functions: scale_inputs, clamp_float (similar to avs+ r2728) and use_expr
  • New parameter: String "scale_inputs": "all","allf","int","intf","float","floatf","none", default "none". See Readme!
  • New parameter: Boolean "clamp_float": default false, but treated as always true (and thus ignored) when scale_inputs involves a float autoscale.
  • New parameter: Boolean "use_expr": default 0, calls fast JIT-compiled "Expr" in Avisynth+ for mt_lut, lutxy, lutxyz, lutxyza
    0: no Expr, use slow internal realtime calc if needed (as before)
    1: call Expr for bits>8 or lutxyza
    2: call Expr, when masktools would do its slow realtime calc (see 'realtime' column in the table above)
    Extends and replaces experimental clamp_xxxx keywords.

v2.2.15 (skipped, test versions)

v2.2.14 (20180225)

  • Fix: mt_convolution invalid instruction on processors below SSE4.1

v2.2.13 (20180201)

  • Fix: rare crash in multithreading environment at the very first frames
    (keeping XP compatibility with /Z:threadsafeinit- caused troubles!)
  • mt_edge: AVX2 (1.4-1.9x speed) for 8 and 10-16 bits
  • fix: "chroma" parameter with negative (memset) values were not working properly for 10-14 bits and 32bit float

v2.2.12 (20180107)

  • Fix: mt_merge 10-16 bits: right side artifacts when clip is non-mod 8 (non-AVX2) or mod16 (AVX2) widths

Earlier changes
v2.2.11 (20180105)

  • Fix: mt_merge luma=true: broken output when: 8-16 bits AVX2, 32 bit float: SSE2, AVX
  • move project to VS2017, vs141_xp toolset

v2.2.10 (20170612)

  • Fix: luts internal buffer overflow (crash)
  • Speed: mt_inpand/mt_expand: 10-16 bits SSE4 (10-15x speed)
  • Speed: mt_inflate/mt_deflate 10-16 bits SSE4 (4x speed)

v2.2.9 (20170608)

  • Add "none" and "ignore" to valid values for "chroma" and "alpha" parameters.
  • Report error for invalid "chroma" or "alpha" parameter values instead of exception
latest releases: 2.2.27, 2.2.26, 2.2.25...
3 years ago