From Avisynth wiki
Jump to: navigation, search
Author Manao, Asd-g
Version v2.2.0
Download MTCombMask-
Category Masking
License GPLv2



This filter produces a mask showing areas that are combed. CombMask uses 3-point sampling to determine combing in a pixel.

The thresholds work as following: after calculating the combing value, if one is below thY1, the pixel is set to 0, if above thY2, it is set to 255, and if in between, it is set to the combing value divided by 256.

This is the same filter as the one from MaskTools-v1.5.8 with few changes:

  • Chroma could be filtered;
  • Y/YUV(A) 8..32-bit clips are accepted;
  • All planar Y/YUV 8-bit clips are accepted;
  • Support for AviSynth+'s v8 interface;
  • Removed MMX asm code;
  • Self registers as MT_NICE_FILTER in AviSynth+.


*** vcredist_x86.exe is required for MTCombMask-x86
*** vcredist_x64.exe is required for MTCombMask-x64

Syntax and Parameters

CombMask (clip, int "thY1", int "thY2", int "Y", int "U", int "V", bool "usemmx")

clip   =
A clip to process. It must be in YUV planar format.

int  thY1 = 30
Pixels below thY1 are set to 0.
Must be between 0 and 255 and must be <= thY2.
Default: 30.

int  thY2 = 30
Pixels above thY2 are set to 255.
Must be between 0 and 255 and must be >= thY1.
Default: 30.

int  Y = 3
int  U = 1
int  V = 1
Select which planes to process:
  • 1 : do not process (garbage)
  • 2 : copy
  • 3 : process

bool  usemmx = true
Dummy parameter for backward compatibility.


CombMask with default values:

CombMask(thy1=30, thy2=30, y=3, u=1, v=1)

To log combing value you may use this code:

CombMask(thy1=30, thy2=30, y=3, u=1, v=1)
WriteFile("c:\log.txt", """ ScriptClip(String(AverageLuma())) """)


Version      Date            Changes
v2.2.0 2020/09/20 - Added support for float input. v2.1.0 2020/05/31 - Added support for 10..16-bit clips. v2.0.0 2020/05/20 - Initial release

External Links

  • GitHub - Source code repository.

Back to External Filters

Personal tools