Last active
December 14, 2020 22:13
-
-
Save kylophone/58b10ce1a4b6efbe49d99d585249e667 to your computer and use it in GitHub Desktop.
Example Python3 script showing the parsing of libvmaf JSON format output logs. All AOM CTC metrics are included.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import sys | |
for vmaf_log in sys.argv[1:]: | |
with open(vmaf_log) as f: | |
data = json.load(f) | |
per_frame_metrics = {} | |
per_frame_metrics["psnr_y"] = \ | |
[frame['metrics']['psnr_y'] for frame in data['frames']] | |
per_frame_metrics["psnr_cb"] = \ | |
[frame['metrics']['psnr_cb'] for frame in data['frames']] | |
per_frame_metrics["psnr_cr"] = \ | |
[frame['metrics']['psnr_cr'] for frame in data['frames']] | |
per_frame_metrics["psnr_hvs"] = \ | |
[frame['metrics']['psnr_hvs'] for frame in data['frames']] | |
per_frame_metrics["ssim"] = \ | |
[frame['metrics']['float_ssim'] for frame in data['frames']] | |
per_frame_metrics["ms_ssim"] = \ | |
[frame['metrics']['float_ssim'] for frame in data['frames']] | |
per_frame_metrics["ciede2000"] = \ | |
[frame['metrics']['ciede2000'] for frame in data['frames']] | |
per_frame_metrics["vmaf"] = \ | |
[frame['metrics']['vmaf'] for frame in data['frames']] | |
pooled_metrics = {} | |
pooled_metrics["psnr_y"] = \ | |
data["pooled_metrics"]["psnr_y"]["mean"] | |
pooled_metrics["psnr_cb"] = \ | |
data["pooled_metrics"]["psnr_cb"]["mean"] | |
pooled_metrics["psnr_cr"] = \ | |
data["pooled_metrics"]["psnr_cr"]["mean"] | |
pooled_metrics["psnr_hvs"] = \ | |
data["pooled_metrics"]["psnr_hvs"]["mean"] | |
pooled_metrics["float_ssim"] = \ | |
data["pooled_metrics"]["float_ssim"]["mean"] | |
pooled_metrics["float_ms_ssim"] = \ | |
data["pooled_metrics"]["float_ms_ssim"]["mean"] | |
pooled_metrics["ciede2000"] = \ | |
data["pooled_metrics"]["ciede2000"]["mean"] | |
pooled_metrics["vmaf"] = \ | |
data["pooled_metrics"]["vmaf"]["mean"] | |
aggregate_metrics = {} | |
aggregate_metrics["aspnr_y"] = \ | |
data["aggregate_metrics"]["apsnr_y"] | |
aggregate_metrics["aspnr_cb"] = \ | |
data["aggregate_metrics"]["apsnr_cb"] | |
aggregate_metrics["aspnr_cr"] = \ | |
data["aggregate_metrics"]["apsnr_cr"] | |
print(per_frame_metrics) | |
print(pooled_metrics) | |
print(aggregate_metrics) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment