Skip to main content

Video encoding and decoding measures.

Project description

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

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

Description

This Python module performs energy and metrics measurements on video, for encoding and decoding. It also provides several detailed dataset and a visualisation tool that generates complex matplotlib figures.

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 are measured using the rms_sobel and rms_time_diff metrics.

  5. Encoding efforts are fast, medium and slow.

  6. It takes care about the colorspaces (range, transfer and primaries).

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

  8. Energy measurements are catched with RAPL and an external wattmeter on grid'5000.

  9. Get the cpu, gpu, ram and temperature activity.

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

  11. It support the mode (constant bitrate) cbr and (constant quality) vbr.

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

  13. It take 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

Example of rate distortion curve:

mendevi plot mendevi.db -x bitrate -y psnr -y ssim -wx profile -c encoder
Result plot of rate distortion

Example of energy per encoder:

mendevi plot mendevi.db -x quality -y energy -wx profile -wy mode -c encoder -m effort
Result plot of encoding energy

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.

  5. The CTC videos and Big Buck Bunny are used for the tests. The videos are downloadable for these torrents.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mendevi-1.3.3.tar.gz (2.8 MB view details)

Uploaded Source

File details

Details for the file mendevi-1.3.3.tar.gz.

File metadata

  • Download URL: mendevi-1.3.3.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for mendevi-1.3.3.tar.gz
Algorithm Hash digest
SHA256 f95b24b82a197310a95625433923b5e37aed00f6e1806f869928394baf423405
MD5 bd97190d0a8ee1ec3f566644aecdae4e
BLAKE2b-256 1a79548859cec851515a1b59136461d1140c432632d3fe57b0432b6bbe75564d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page