Paper | Blog | Dataset (Coming Soon...)
CGVQM is a full-reference video quality metric that predicts perceptual differences between pairs of videos.
Like PSNR and SSIM, it compares a ground-truth reference to a distorted version (e.g. blurry, noisy, aliased).
What sets CGVQM apart is that it is the first metric calibrated for distortions from advanced rendering techniques, accounting for both spatial and temporal artifacts.
- 📊 Calibrated on our CGVQD dataset, capturing complex artifacts from modern computer graphics.
- 🎚️ Outputs on an interpretable perceptual scale (e.g. imperceptible → annoying).
- 🗺️ Provides error maps to visualize where and why errors occur — not just a single score.
- 🖼️ Robust across a wide variety of content: from stylized fantasy to photorealistic open worlds, and across many rendering techniques.
CGVQM is implemented in PyTorch, optimized for CUDA GPUs (CPU also supported). See below for installation and usage instructions.
More details on the metric and dataset can be found in our paper:
@article{10.1111:cgf.70221,
journal = {Computer Graphics Forum},
title = {{CGVQM+D: Computer Graphics Video Quality Metric and Dataset}},
author = {Jindal, Akshay and Sadaka, Nabil and Thomas, Manu Mathew and Sochenov, Anton and Kaplanyan, Anton},
year = {2025},
publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
ISSN = {1467-8659},
DOI = {10.1111/cgf.70221}
}
If you use the metric or the dataset in your research, please cite the paper above.
- Obtain the CGVQM codebase, by cloning the repository:
git clone git@github.com:IntelLabs/cgvqm.git # skip if a .zip is provided or you use Github GUI
- Begin by installing the appropriate version of PyTorch (with CUDA support if available) using os-specific instructions. Install other requirements:
pip install numpy scipy av
-
After installation, run
python cgvqm.py
. This script provides a demo usage of CGVQM by comparing 'media/Dock_dist.mp4' with 'media/Dock_ref.mp4'. Adjust the configuration indemo_cgvqm()
function according to your use case. -
A sample training script is provided in
train.py
to calibrate the metric on datasets of your choice.