15 releases

0.3.2 Sep 17, 2024
0.3.1 Apr 23, 2023
0.2.3 Apr 23, 2023
0.2.2 Feb 9, 2023
0.1.2 Oct 15, 2021

#266 in Video

Download history 16/week @ 2024-07-24 17/week @ 2024-07-31 31/week @ 2024-08-07 16/week @ 2024-08-14 5/week @ 2024-08-21 8/week @ 2024-08-28 31/week @ 2024-09-04 69/week @ 2024-09-11 106/week @ 2024-09-18 52/week @ 2024-09-25 7/week @ 2024-10-02 12/week @ 2024-10-09 10/week @ 2024-10-16 4/week @ 2024-10-23 22/week @ 2024-10-30 22/week @ 2024-11-06

59 downloads per month
Used in 4 crates

MIT license

125KB
2.5K SLoC

Quality metrics

crate docs LICENSE Actions Status IRC zulip chat

Video Metrics implemented

  • PSNR
  • APSNR
  • PSNR HVS
  • SSIM
  • MSSSIM
  • CIEDE2000

Installation

As a library

Add the following to your Cargo.toml

av-metrics = "0.7"

Then check out the API docs.

As a binary

Windows

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

Usage

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".


lib.rs:

This crate providers ready-made decoders for use with av-metrics or other tools as needed.

No decoders are enabled by default. They must be enabled via Cargo features.

Currently supported decoder features: y4m

Dependencies

~2.1–4MB
~73K SLoC