MTCombMask

From Avisynth wiki
Revision as of 16:57, 7 August 2022 by Reel.Deal (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Abstract
Author Manao, Asd-g
Version v2.2.1
Download MTCombMask-2.2.1.7z
Category Masking
License GPLv2
Discussion


Contents

Description

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+.


Requirements


*** 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", int "opt")


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.


int  opt = -1
Sets which cpu optimizations to use.
  • -1 : Auto-detect.
  • 0 : Use C++ code.
  • 1 : Use SSE2 code.
  • 2 : Use AVX2 code.
  • 3 : Use AVX512 code.
Default: -1.



Examples

CombMask with default values:

CombMask(thy1=30, thy2=30, y=3, u=1, v=1, opt=-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())) """)


Changelog

Version      Date            Changes
v2.2.1 2022/08/06 - Added ~10% faster C code. - Added SSE2, AVX2 and AVX512 code. - Added parameter opt. 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