AV1-vs-HEVC/workflows/build_readme_md.py
2024-01-12 20:33:08 +01:00

76 lines
2.6 KiB
Python

import os
import subprocess
from . import res
def start_workflow():
res.bootstrap_folder_structure()
# hevc diagrams
hevc_diagrams = res.get_diagrams_hevc()
# to complete data structure for rendering
data = {
"aggregated_metrics": {
"hevc": {
"encoding_time": {},
"filesize_percentage": {},
"vmaf_score": {}
}
},
"diagrams": {
"hevc": {
"encoding_time": hevc_diagrams["encoding_time"],
"filesize_percentage": hevc_diagrams["filesize_percentage"],
"vmaf_score": hevc_diagrams["vmaf_score"]
}
}
}
# hevc metrics
aggregated_metrics_hevc = res.read_dict_from_json_file(
os.path.join(
res.get_path_results_aggregations(),
res.get_filename_results_aggregations_hevc()
)
)
for preset in aggregated_metrics_hevc.keys():
for crf in aggregated_metrics_hevc[preset].keys():
data["aggregated_metrics"]["hevc"]["encoding_time"]["mean"] = round(
aggregated_metrics_hevc[preset][crf]["encoding_time"]["mean"],
2
)
data["aggregated_metrics"]["hevc"]["encoding_time"]["median"] = round(
aggregated_metrics_hevc[preset][crf]["encoding_time"]["median"],
2
)
data["aggregated_metrics"]["hevc"]["filesize_percentage"]["mean"] = round(
aggregated_metrics_hevc[preset][crf]["filesize_percentage"]["mean"],
2
)
data["aggregated_metrics"]["hevc"]["filesize_percentage"]["median"] = round(
aggregated_metrics_hevc[preset][crf]["filesize_percentage"]["median"],
2
)
data["aggregated_metrics"]["hevc"]["vmaf_score"]["mean"] = round(
aggregated_metrics_hevc[preset][crf]["vmaf_score"]["mean"],
2
)
data["aggregated_metrics"]["hevc"]["vmaf_score"]["median"] = round(
aggregated_metrics_hevc[preset][crf]["vmaf_score"]["median"],
2
)
# av1 metrics
data["aggregated_metrics"]["av1"] = res.read_dict_from_json_file(
os.path.join(
res.get_path_results_aggregations(),
res.get_filename_results_aggregations_av1()
)
)
# render the template
res.render_template(
os.path.join(res.get_path_templates(), "README.md.tmpl"),
os.path.join(res.get_path_project(), "README.md"),
data
)