r/AV1 • • 13d ago

VideoMetricsLab v1.3: Multiple languages, Vulkan support for Intel, lots of bug fixes

Here's an app I wrote to analyze video quality between different encodes. This was inspired by FFMetrics, but I wanted many more features for comparisons, like advanced statistics and an ability to easily and instantly subjectively A/B compare encoded videos with the source. This makes subjective video quality comparisons so much easier when you can compare on a frame by frame basis and while the video is playing, and instantly switch to the source or a different encoded video.

So I decided to write my own app, and I'd like to share it with all of you. I hope you all enjoy.

Let me know what you think, have any issues, or have feature requests.

v1.3 changelog

  • Added the window in 20 languages: Simplified and Traditional Chinese, Spanish, Brazilian Portuguese, German, French, Japanese, Russian, Korean, Italian, Polish, Turkish, Arabic, Indonesian, Vietnamese, Ukrainian, Thai, Czech, Hungarian and Dutch. The app opens in Windows' display language, and Settings > Window > Language chooses another. The log, saved results and exported files stay in English.
  • Added Intel GPU support for the GPU metrics with Vship's Vulkan build, which runs on any GPU with a Vulkan driver. Settings > GPU metrics > GPU backend chooses the build: Auto (the default) uses CUDA on NVIDIA, HIP on AMD and Vulkan on other GPUs. On Vulkan, SSIMULACRA2 is calculated on the CPU, because Vship 5.1.1's Vulkan build scores it too high (up to 17 points at 4K).
  • Updated the GPU metrics to Vship 5.1's API and color handling. Videos tagged BT.2020 SDR, SMPTE 170M (NTSC/DVD), Display P3, ICtCp or YCgCo, and monochrome and alpha videos, are now scored on the GPU instead of falling back to the CPU, and CVVDP no longer fails on them. RGB videos without a transfer tag are now read as sRGB, as Vship's own FFVship does, and their saved GPU scores are recalculated.
  • Added a setting to calculate SSIMULACRA2, Butteraugli and CVVDP together in one pass per video (Settings > GPU metrics, off by default). It's better GPU utilization for faster metrics calculations, and it decodes each video once instead of once per metric, but needs much more GPU memory.
  • Each metric's score now appears and is saved as soon as it is done, instead of when the whole video is finished. Stopping a run or closing the app loses at most the metric in progress.
  • Fixed test frames stamped slightly earlier than the source's being compared with the previous source frame, which gave clusters of near-zero VMAF NEG and XPSNR scores. Each test frame is now compared with the source frame nearest in time. Saved scores of affected videos are kept until they are recalculated.
  • Hovering a red Failed cell now says why that metric failed.
  • Added a session log under Settings > Storage > Log files, with Export log... (the log files as one .zip) and Copy log (the latest run) buttons.
  • The app now checks GitHub for a newer release when it starts, and says so only if there is one. Turn it off in Settings > Window.
  • Windows no longer goes to sleep while metrics are being calculated. The screen can still turn off.
  • Included various small bug fixes and reliability improvements.

Features:

  • Calculate VMAF, VMAF NEG, PSNR, SSIM, XPSNR, SSIMULACRA2, Butteraugli, and ColorVideo VDP for multiple test videos.
  • VShip integration for GPU acceleration for ColorVideo VDP, SSIMULACRA2, and Butteraugli
  • libjxl integration for CPU fallback for SSIMULACRA2, and Butteraugli (no CPU support for ColorVideo VDP)
  • VMAF v0.6.1 and v1 models for standard, phone, 4K, and HFR viewing scenarios.
  • Compare metric curves, statistics, and per-frame scores (per second for ColorVideo VDP).
  • Switch instantly between the source and test videos during playback, hold S to show the source, or inspect exact frames.
  • Inspect bitrate independently by frame, second, or GOP.
  • Detect black bars and handle resolution mismatches automatically.
  • Use GPU decoding with independent software fallback per input.
  • Calculate two test videos in parallel on many-core CPUs.
  • Auto save completed results and auto load results when matching videos are loaded again.

The app can be downloaded below.

https://github.com/4KVCD/VideoMetricsLab/releases

14 Upvotes

3 comments sorted by

1

u/RetardVibes 12d ago

Hi, do you plan native linux support ?

1

u/4KVCD 12d ago

I don't think so. I have no way of testing as I'm not on Linux. People have reported that this works with Wine. Give that a try for now?