Overview of VMAF
masterlibvmaf) and a Python library. The package also includes implementations for other metrics such as PSNR, PSNR-HVS, SSIM, MS-SSIM, and CIEDE2000.repository·master·Indexed 26 days ago
https://github.com/netflix/vmafA perceptual video quality assessment tool developed by Netflix for evaluating video compression quality. It is available as a C library (libvmaf), a Python library, an FFmpeg filter, and a CLI tool. The tool supports built-in and external .json models and can compute additional metrics such as PSNR, PSNR-HVS, SSIM, MS-SSIM, CIEDE2000, and CAMBI.
libvmaf) and a Python library. The package also includes implementations for other metrics such as PSNR, PSNR-HVS, SSIM, MS-SSIM, and CIEDE2000.vmaf is a command line tool used for VMAF feature extraction and prediction. It compares a reference video against a distorted video using a VMAF model and outputs per-frame and pooled scores.
Supported input formats:
.y4m (contains header information, requires minimal flags).yuv (raw video, requires explicit dimensions and format flags)Supported output formats:
.xml (default).json.csv.sub (subtitle format)Usage: vmaf [options]The iCID (improved color-image-difference) metric is a MATLAB implementation used to predict the perceived difference between two images.
Requirements:
colorspace package by Pascal Getreuer.Core Files:
iCID.m: The main implementation of the metric.Example.m: A provided script demonstrating how to use the metric.ExampleImages/Image1.tif and ExampleImages/Image2.tif: Sample images for testing.The following core features are part of the pre-trained VMAF models:
vif. Measures information fidelity loss across four scales (vif_scale0 through vif_scale3).motion. Measures temporal differences between adjacent frames using average absolute pixel difference for the luminance component. Includes motion and motion2 metrics.adm. Formerly known as Detail Loss Metric (DLM). Measures the loss of details affecting content visibility. Includes adm2 and scale-based metrics (adm_scale0 to adm_scale3).model/vmaf_v0.6.1.json) is designed to predict the quality of videos displayed on a 1080p HDTV in a living-room environment at a viewing distance of three times the screen height (3H). It uses a continuous scale where 'bad' is approximately 20 and 'excellent' is 100.make from the root directory to ensure the environment is prepared. Once prepared, you can execute all tests using tox.make
toxlibvmaf filter.If you prefer not to compile FFmpeg manually, you can download pre-built binaries that include libvmaf support:
To run vmaf, you must provide a reference and a distorted video using --reference/-r and --distorted/-d.
If using .y4m files, no additional metadata is required.
If using raw .yuv files, you must provide the following flags:
--width/-w $unsigned: Video width--height/-h $unsigned: Video height--pixel_format/-p $string: Pixel format (e.g., 420, 422, 444)--bitdepth/-b $unsigned: Bit depth (e.g., 8, 10, 12)# .y4m
--reference ducks.y4m \
--distorted ducks_dist.y4m \
# .yuv
--reference ducks.yuv \
--distorted ducks_dist.yuv \
--width 1920 --height 1080 --pixel_format 420 --bitdepth 8