Documentation¶
This is an overview of the available documentation in the VMAF repository.
Getting started¶
- Installation – per-OS install scripts (Ubuntu, Fedora, Arch, Alpine, macOS, Windows)
- Building on Windows – build VMAF from source on Windows (upstream guide)
Usage¶
- CLI reference – the
vmafcommand-line tool, every flag, defaults, examples vmaf_bench– micro-benchmark & GPU-vs-CPU validation harness--precision– score output precision (default%.6fNetflix-compat; opt into%.17ground-trip lossless via--precision=max)- Python library – explains the Python wrapper for VMAF
- FFmpeg – how to use VMAF in conjunction with FFmpeg
- Docker – how to run VMAF with Docker
- MATLAB – running other quality algorithms (ST-RRED, ST-MAD, SpEED-QA, and BRISQUE) with MATLAB
- BD-rate utilities – Bjontegaard-delta rate and VMAF gain helpers
- Per-shot scoring – per-shot VMAF scoring workflow
- ROI scoring – region-of-interest saliency-weighted scoring
- External resources – e.g. software using VMAF
vmaf-tune— quality-aware encode automation harness: overview | fast path | bitrate ladder | codec adapters | recommend | saliency-aware | resolution-aware | HDR & sampling | cache | bisect
C API¶
- API overview – core
libvmaf.h+picture.h+model.h+feature.h: context lifecycle, scoring, pictures, models, ABI-stability tiers, thread-safety, runnable example - DNN sessions – tiny-AI
dnn.h: standalone ONNX sessions (luma filter + multi-input named binding), device config, error codes - GPU (CUDA / SYCL) –
libvmaf_cuda.h+libvmaf_sycl.h: zero-copy frame buffers, dmabuf / VA / D3D11 import, profiling - MCP C API –
libvmaf_mcp.h: embedded in-process MCP server (stdio / UDS / SSE transports)
Metrics¶
- Features – VMAF's core features (metrics)
- CAMBI – contrast-aware multiscale banding index
- SSIMULACRA 2 – fork-added structural similarity metric (modern-codec quality)
- DISTS-Sq – fork-added deep image structure & texture similarity extractor (FR; smoke checkpoint)
- Confidence Interval – bootstrapping for CI estimates of VMAF scores
- Bad Cases – how to report cases of VMAF not working well
- AOM CTC – running VMAF under AOM common test conditions
- NFLX CTC – running VMAF under NFLX common test conditions
Models¶
- Overview – summary of the available pre-trained models
- Datasets – the two publicly available datasets for training custom models
Backends¶
GPU / SIMD backend notes under backends/:
| Backend | Status | Page |
|---|---|---|
| x86 SIMD (AVX2 / AVX-512) | Production | avx512.md |
| ARM NEON / SVE2 | Production | arm/overview.md |
| CUDA | Production | cuda/overview.md + NVTX profiling |
| SYCL / oneAPI | Production | sycl/overview.md + bundling |
| Vulkan | Removed (ADR-0726, 2026-05-28) | — |
| HIP (AMD ROCm) | 7 of 10 real kernels (psnr, integer_psnr, float_motion, float_moment, float_ssim, ciede, integer_motion_v2); 3 stubs (adm/vif/integer_motion). float_ansnr_hip removed per ADR-0720. | hip/overview.md |
| Metal (Apple Silicon) | Scaffold — 4 of 17 extractors registered | metal/index.md |
Architecture¶
- Repository layout – what lives where + decision tree
- Python-harness workspace – the moved
workspace/tree - ADR log – every non-trivial architectural / policy decision + rationale
MCP¶
- MCP server overview – install, security model (path allowlist), env vars, Claude Desktop / Cursor config
- Tool reference – per-tool request/response schemas + error codes for
vmaf_score,list_models,list_backends,run_benchmark,eval_model_on_split,compare_models - Embedded server – in-process
libvmaf_mcp.hserver (stdio / UDS / SSE);compute_vmaf+list_featurestools live - Release channel – PyPI packaging and versioning for the standalone Python server
Tiny-AI¶
- Tiny-AI docs – overview, training, inference, benchmarks, security
- Training + training data + MOS corpora
- Inference – ONNX Runtime EPs: CPU, CUDA, TensorRT, CoreML, OpenVINO (CPU / GPU / NPU)
- LOSO evaluation + predictor + conformal VQA
- Ensemble training kit + ensemble v2 runbook
- Quantization + quant epsilon
- Model registry – canonical registry of all shipped ONNX / JSON models
- Tiny-AI roadmap – Wave 1 scope expansion (LPIPS, saliency, per-shot CRF,
vmaf_post, allowlistLoop/If, MCP VLM tool)
Development¶
- Engineering principles – NASA Power-of-10 + JPL + CERT + MISRA, golden gate, quality policy
- Benchmarks – fork-added benchmark numbers (GPU, SIMD,
--precision) - Build flags – every
meson_options.txtoption with defaults, effects, and flag interactions - Release – how to perform a new release
- CI – CI pipeline overview + required status checks
- CI runners – self-hosted runner setup for GPU lanes
- Cross-backend gate – T6-8 GPU-parity gate semantics
- Fuzzing – OSS-Fuzz integration
- IDE setup – clangd / VS Code configuration for all backends
- FFmpeg patches refresh – rebasing the
ffmpeg-patches/series - Upstream watchers – tracking Netflix/vmaf divergence
Reference¶
- FAQ
- References – a list of links and papers
- Papers and Presentations