Skip to main content

Measures of Encoding and Decoding of Videos

[license GPL] [linting: ruff] [versions] [downloads] [documentation]

Useful links: Binary Installers | Source Repository | Online Documentation |

Description

Context

This module is developed by the INRIA COMPACT team, as part of the VideoImpact project.

Project

This Python module performs energy consumption and video metrics measurements for both video encoding and decoding workflows. It includes comprehensive ready-to-use datasets, available as exhaustive SQL databases and lightweight JSON representations, as well as pretrained predictive models for energy and quality estimation. The framework provides advanced visualization tools for generating complex matplotlib figures, executable from a single command-line interface.

It manages the following parameters:

  1. It supports the libx264, libopenh264, libx265, libvpx-vp9, libaom-av1, libsvtav1, librav1e and vvc cpu encoders.

  2. It supports the h264_nvenc, hevc_nvenc, av1_nvenc and *_vaapi gpu encoders.

  3. Distortions are measured using the lpips, psnr, ssim, vif and vmaf metrics.

  4. Complexity metrics are measured using the rms_sobel, rms_time_diff, spatial_dct and temporal_dct metrics.

  5. Encoding efforts are fast, medium and slow.

  6. It handles color-related parameters, including color range, transfer characteristics, and color primaries (range, transfer and primaries).

  7. Iterate over different effort, encoder, mode, quality, threads, fps, resolution and pix_fmt.

  8. Energy measurements are captured with RAPL for cpu and nvidia-ml-py for gpu, and an external ADEC wattmeter on Grid'5000 and dell laptop.

  9. Monitor CPU, GPU, and RAM utilization, as well as system temperature.

  10. Get a full environment context, including hardware and software version.

  11. It supports the mode (constant quality) crf, (constant bitrate) cbr and (constant quantization) qp.

  12. Ability to modify ffmpeg commands on the fly to perform specific tests, giving your own defined callback function.

  13. It takes care to transfer files to RAM if possible to avoid biases related to storage space access.

  14. Provides a guide to compile ffmpeg with all optimizations in order to compare encoders/decoders at their limits.

Pipeline

This is the pipeline used for measurements:

Pipeline diagram

Example of result

Download and merge two datasets with this bash command:

mendevi merge svtav1_vs_rav1e_vs_aom.db x264_vs_openh264.db -o /tmp/av1_h264.db

Example of energy and rate distortion video encoding, on a single video for several profiles:

mendevi plot /tmp/av1_h264.db -x rate -x energy -y vmaf -c encoder -m effort -wy profile -f "ref_stem=='park_joy'"
Example plot

Alternatives

  1. The GREEM video encoding measurement tool.

  2. The MVCD database also includes video encoding and decoding energy measurements.

  3. The COCONUT database also includes video decoding measurements.

  4. The SEED and VEED dataset offers a comprehensive LCA and GPU measurements.

Citation

If this work is helpful for your research, please consider citing it.

@software{mendevi,
    author = {Robin Richard and Thomas Maugey and Anne-Cecile Orgerie},
    title = {{Mendevi}: Measures of Encoding and Decoding of Videos},
    date = {2026-10-01},
    url = {https://gitlab.inria.fr/rrichard/mendevi},
    version = {1.3.7},
    license = {GPLv3},
    note = {Python software and dataset for measuring video encoding and decoding},
    keywords = {video encoding, decoding, energy, complexity, quality, dataset},
    organization = {Inria},
    location = {Rennes, France},
}

Metadata

Release files for mendevi 1.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mendevi 1.3.7
File Size Uploaded
mendevi-1.3.7.tar.gz 4.1 MB Details

Release files / mendevi-1.3.7.tar.gz

Download URL mendevi-1.3.7.tar.gz
Size 4.1 MB
Tags Source
SHA-256 checksum
How to use checksums
bb96a11ea01efb44288d52bb66f57eca490f759e3d088722b9915c8d713c0760
BLAKE2b-256 checksum
How to use checksums
7673ae9ca8487aa685152d6584ec98e20e12ab01c6655a3219b9f37e708ff68e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.0rc2

Release history Release notifications | RSS feed

This release

1.3.7 This release

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

1 release file

1.1.4

1 release file

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page