100 lines
2.8 KiB
Python
100 lines
2.8 KiB
Python
|
import os
|
||
|
from . import res
|
||
|
|
||
|
def extract_encoding_time_percentages(am):
|
||
|
extract = {}
|
||
|
|
||
|
for preset in am.keys():
|
||
|
if not preset in extract.keys():
|
||
|
extract[preset] = {}
|
||
|
|
||
|
for crf in am[preset].keys():
|
||
|
if not crf in extract[preset].keys():
|
||
|
extract[preset][crf] = {}
|
||
|
|
||
|
extract[preset][crf]["mean"] = am[preset][crf]["encoding_time_percentage"]["mean"]
|
||
|
extract[preset][crf]["median"] = am[preset][crf]["encoding_time_percentage"]["median"]
|
||
|
|
||
|
return extract
|
||
|
|
||
|
def extract_filesize_percentages(am):
|
||
|
extract = {}
|
||
|
|
||
|
for preset in am.keys():
|
||
|
if not preset in extract.keys():
|
||
|
extract[preset] = {}
|
||
|
|
||
|
for crf in am[preset].keys():
|
||
|
if not crf in extract[preset].keys():
|
||
|
extract[preset][crf] = {}
|
||
|
|
||
|
extract[preset][crf]["mean"] = am[preset][crf]["filesize_percentage"]["mean"]
|
||
|
extract[preset][crf]["median"] = am[preset][crf]["filesize_percentage"]["median"]
|
||
|
|
||
|
return extract
|
||
|
|
||
|
def extract_vmaf_scores(am):
|
||
|
extract = {}
|
||
|
|
||
|
for preset in am.keys():
|
||
|
if not preset in extract.keys():
|
||
|
extract[preset] = {}
|
||
|
|
||
|
for crf in am[preset].keys():
|
||
|
if not crf in extract[preset].keys():
|
||
|
extract[preset][crf] = {}
|
||
|
|
||
|
extract[preset][crf]["mean"] = am[preset][crf]["vmaf_score"]["mean"]
|
||
|
extract[preset][crf]["median"] = am[preset][crf]["vmaf_score"]["median"]
|
||
|
|
||
|
return extract
|
||
|
|
||
|
def start_workflow():
|
||
|
res.bootstrap_folder_structure()
|
||
|
|
||
|
aggregated_metrics = res.read_dict_from_json_file(
|
||
|
os.path.join(
|
||
|
res.get_path_results_aggregations(),
|
||
|
res.get_filename_results_aggregations_av1()
|
||
|
)
|
||
|
)
|
||
|
|
||
|
# encoding time percentages
|
||
|
res.save_diagram_bars(
|
||
|
res.generate_diagram_bars(
|
||
|
extract_encoding_time_percentages(aggregated_metrics),
|
||
|
"AV1 encoding time percentages by Preset and CRF",
|
||
|
"Percent of the encoding time of HEVC"
|
||
|
),
|
||
|
os.path.join(
|
||
|
res.get_path_results_diagrams(),
|
||
|
f'av1_encoding_time_percentages.png'
|
||
|
)
|
||
|
)
|
||
|
|
||
|
# filesize percentages
|
||
|
res.save_diagram_bars(
|
||
|
res.generate_diagram_bars(
|
||
|
extract_filesize_percentages(aggregated_metrics),
|
||
|
"AV1 filesize percentages by Preset and CRF",
|
||
|
"Percent of the filesize of HEVC"
|
||
|
),
|
||
|
os.path.join(
|
||
|
res.get_path_results_diagrams(),
|
||
|
f'av1_filesize_percentages.png'
|
||
|
)
|
||
|
)
|
||
|
|
||
|
# vmaf scores
|
||
|
res.save_diagram_bars(
|
||
|
res.generate_diagram_bars(
|
||
|
extract_vmaf_scores(aggregated_metrics),
|
||
|
"AV1 VMAF scores by Preset and CRF",
|
||
|
"VMAF Score"
|
||
|
),
|
||
|
os.path.join(
|
||
|
res.get_path_results_diagrams(),
|
||
|
f'av1_vmaf_scores.png'
|
||
|
)
|
||
|
)
|