Changelog
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