VMAFx documentation¶
VMAFx measures perceptual video quality: it scores how a distorted video compares with its reference, the way a viewer would judge it. It is a fork of Netflix's VMAF that keeps Netflix's reference scores, adds CUDA, SYCL, HIP and Metal GPU backends and SIMD paths, and holds every GPU result to the CPU's.
Start here¶
- Get VMAFx: a container image, a release download or a source build.
- Score your first pair and read the output.
- Choose a backend for your hardware.
- Use it through the CLI, the C API or the FFmpeg filter.
- Look things up in the reference below, or contribute.
Found a problem? Open an issue. Have hardware the project does not own? Run the tester image and send the report.
Backends¶
-
Choose and build
-
AVX2 · AVX-512
-
NEON · SVE2
-
NVIDIA GPUs
-
Intel GPUs
-
AMD GPUs
-
Apple Silicon
-
Scores equal to the CPU's
Source: the fragments in scripts/ci/exact_twins.d/ and LIBM_TWINS in scripts/ci/cross_backend_calibration.py. An exact twin returns the CPU extractor's bits (=) and is compared with tolerance 0; a libm-bound twin differs only through the math library, within the stated bound (≤); a dash means no twin of that backend is declared either way.
Data table
| Feature | CUDA | SYCL | HIP | Metal |
|---|---|---|---|---|
adm | exact | exact | exact | not declared |
cambi | exact | exact | exact | not declared |
ciede | libm bound (≤ 1e-09) | libm bound (≤ 1e-09) | libm bound (≤ 1e-09) | not declared |
float_adm | exact | exact | exact | exact |
float_moment | exact | exact | exact | exact |
float_motion | exact | exact | exact | exact |
float_ms_ssim | exact | exact | exact | exact |
float_ms_ssim_chroma | exact | exact | exact | exact |
float_ms_ssim_lcs | exact | exact | exact | exact |
float_psnr | exact | exact | exact | exact |
float_ssim | exact | exact | exact | exact |
float_ssim_lcs | exact | exact | exact | exact |
float_vif | exact | exact | exact | exact |
motion | exact | exact | exact | exact |
motion_debug | exact | exact | exact | exact |
motion_mffw | exact | exact | exact | exact |
motion_v2 | exact | exact | exact | exact |
motion_v2_mffw | exact | exact | exact | exact |
psnr | exact | exact | exact | exact |
psnr_hvs | exact | exact | exact | not declared |
speed_chroma | exact | exact | exact | not declared |
speed_temporal | exact | exact | exact | not declared |
ssim | exact | exact | exact | exact |
ssimulacra2 | exact | exact | exact | exact |
vif | exact | exact | exact | not declared |
Use VMAFx¶
| Topic | Pages |
|---|---|
| Install and build | Getting started, Building on Windows, Docker |
| Command line | CLI reference, --precision, environment variables, vmaf_bench |
| Integrations | FFmpeg, Python library, MATLAB, external resources |
| Encoding workflows | vmaf-tune (fast path, bitrate ladder, codec adapters, recommend, saliency-aware, resolution-aware, HDR and sampling, cache, bisect), per-shot scoring, ROI scoring, BD-rate utilities |
| Testing on your hardware | hardware we need, tester image and macOS bundle, build-from-source tester guide, hardware reports |
Reference¶
| Topic | Pages |
|---|---|
| Metrics | Feature reference: every extractor, its options and its GPU twins; CAMBI, SSIMULACRA 2, DISTS, confidence interval, bad cases, AOM CTC (AOM), NFLX CTC |
| Models | Overview, VMAF v1, datasets |
| Backends | Backend guide, x86 SIMD, ARM SIMD, CUDA, SYCL / oneAPI, HIP / ROCm, Metal |
| C API | API overview: contexts, pictures, models, features; GPU, DNN sessions, embedded MCP |
| MCP servers | Overview, tool reference, embedded server, release channel |
| Tiny AI | Tiny-AI docs, training, training data, MOS corpora, inference, LOSO evaluation, predictor, conformal VQA, ensemble training kit, ensemble v2 runbook, quantization, quant epsilon, model registry, roadmap |
| Other | FAQ, references, papers, presentations, benchmarks |
Project¶
| Topic | Pages |
|---|---|
| Plan and releases | Roadmap and release candidates, release process |
| Contributing | Engineering principles, build flags, IDE setup, CI, CI runners, fuzzing |
| Correctness | Cross-backend gate, upstream parity guard, Python process execution |
| Upstream | Upstream watchers, FFmpeg patch refresh |
| Architecture | Repository layout, Python-harness workspace, ADR log |
| Security | Repository security, OpenSSF Scorecard, Scorecard and CodeQL audit, 2026-09-04 |