From Avisynth wiki
Jump to: navigation, search
Author Asd-g
Version v2.1.2
Download VMAF
Category Debug filter
License MIT



VMAF is a perceptual video quality assessment algorithm developed by Netflix. Refer to the FAQ page for frequently asked questions of VMAF.

This is a port of the VapourSynth plugin VMAF.

vmaf is used.


Syntax and Parameters

VMAF (clip reference, clip distorted, string log_path, int "log_format", int[] "model", int[] "feature", string "cambi_opt")
VMAF2 (clip reference, clip "distorted", int[] "feature", string "cambi_opt")

reference   =
distorted   =
Clips to calculate VMAF score. Must be in YUV 8..16-bit planar format.
distorted must be specified when feature != 5. (VMAF2 only)
Must be in YUV 8/10-bit planar format with minimum three planes.

string  log_path =
Sets the path of the log file.
This parameter is for VMAF() only.

int  log_format = 0
Sets the format of the log file.
  • 0 : xml.
  • 1 : json.
  • 2 : csv.
This parameter is for VMAF() only.

int[]  model =
Sets which model to use. Refer to this, this and this page for more details.
  • 0 : vmaf_v0.6.1
  • 1 : vmaf_v0.6.1neg (NEG mode)
  • 2 : vmaf_b_v0.6.3 (Confidence Interval)
  • 3 : vmaf_4k_v0.6.1
This parameter is for VMAF() only.

int[]  feature =
  • 0 : PSNR
  • 1 : PSNR-HVS
  • 2 : SSIM
  • 3 : MS-SSIM
  • 4 : CIEDE2000
  • 5 : CAMBI

string  cambi_opt =
  • enc_width, enc_height
Encoding/processing resolution to compute the banding score, useful in cases where scaling was applied to the input prior to the computation of metrics.
enc_width must be between 320 and 7680.
enc_height must be between 200 and 4320.
Default: Same as input image.
  • window_size
Window size to compute CAMBI.
Must be between 15 and 127.
Default: 63 (corresponds to ~1 degree at 4K resolution and 1.5H).
  • topk
Ratio of pixels for the spatial pooling computation.
Must be between 0.0001 and 1.0.
Default: 0.6.
  • tvi_threshold
Visibilty threshold for luminance ΔL < tvi_threshold*L_mean for BT.1886.
Must be between 0.0001 and 1.0.
Default: 0.019.
Format: option_name=value.
If more than one option is specified, the options must be separated by space.
Usage example: cambi_opt="windows_size=120 enc_width=1280 enc_height=720".

VMAF2() exports frame property with the name of the used feature.


Comparing a high quality clip vs an encoded clip:

VMAF(HQ_original, HQ_encoded, model=0)

Comparing a high quality clip vs an encoded clip with MS-SSIM metrics only:

VMAF(HQ_original, HQ_encoded, feature=3)

Frame property cambi is set:

VMAF2(clip, feature=5)


Version      Date            Changes
v2.1.2 2022/10/06 - Fixed undefined behavior when upstream throw runtime error.
v2.1.1 2022/04/18 - Added `cambi_opt` options - `max_log_contrast`, `enc_bitdepth`, `eotf` - Added function `VMAF2` - Clips must have either 8-bit or 10-bit bit depth
v2.1.0 2021/11/14 - Added parameter cambi_opt - Removed model default value
v2.0.2 2021/10/20 - Fixed feature parameter - Updated vmaf lib to 2.3.0 - Added feature CAMBI
v2.0.1 2021/10/02 - Fixed crashing when unsupported color formats are used - Updated libvmaf to 2.2.1
v2.0.0 2021/07/10 - Updated to libvmaf 2.x
v1.0.0 2020/11/14 - Initial release - AviSynth+: self-registers as MT_SERIALIZED

External Links

  • GitHub - Source code repository.

Back to External Filters

Personal tools