2 releases

0.1.2 Oct 15, 2021
0.1.1 Aug 9, 2021

#5 in #ssim

26 downloads per month
Used in av-metrics-tool

MIT license

2.5K SLoC

Quality metrics

crate docs LICENSE Actions Status IRC zulip chat

Video Metrics implemented

  • PSNR
  • SSIM
  • CIEDE2000


As a library

Add the following to your Cargo.toml

av-metrics = "0.7"

Then check out the API docs.

As a binary


Download the latest binary from the Releases tab.

OS X and Linux

Pre-built binaries are coming soon. In the meantime, have the latest stable Rust installed and run the following:

cargo install av-metrics-tool


From any terminal, run the executable with your two video files as arguments:

➜ av-metrics-tool lossless.y4m lossy.y4m

You should receive output for all supported metrics:

PSNR - Y: 32.5281  U: 36.4083  V: 39.8238  Avg: 33.6861
APSNR - Y: 32.5450  U: 36.4087  V: 39.8244  Avg: 33.6995
PSNR HVS - Y: 34.3225  U: 37.7400  V: 40.5569  Avg: 31.8674
SSIM - Y: 13.2572  U: 10.8624  V: 12.8369  Avg: 12.6899
MSSSIM - Y: 18.8343  U: 16.6943  V: 18.7662  Avg: 18.3859
CIEDE2000 - 36.2820

By default, the tool can only decode y4m files. Both files must match in resolution, bit depth, and color sampling.

Alternate input formats can be supported by enabling FFMpeg support. Due to limitations, this currently has to be enabled at compile time.

In the crate, this can be enabled with the feature "ffmpeg-decode". In the binary, this can be enabled with the feature "ffmpeg".


~62K SLoC