uvg266/rdcost-weight-tool/rdcost_do_avg.py

39 lines
1.2 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
import glob
import sys
result_path_template = "/tmp/rdcost/coeff_buckets/*-qp%02i.result"
def main():
results = []
for qp in range(51):
curr_sums = [0.0] * 4
curr_count = 0
result_files = glob.glob(result_path_template % qp)
for fn in result_files:
with open(fn) as f:
contents = f.readlines()
if (len(contents) != 4):
print("Faulty file contents at %s, skipping" % fn, file=sys.stderr)
continue
nums = tuple(map(float, contents))
if (all(n == 0.0 for n in nums)):
print("All-zero file %s, skipping" % fn)
continue
curr_count += 1
for i in range(len(curr_sums)):
curr_sums[i] += nums[i]
if (curr_count > 0):
curr_avgs = tuple(curr_sum / curr_count for curr_sum in curr_sums)
else:
curr_avgs = (0, 0, 0, 0)
results.append(curr_avgs)
print("\n".join(("QP %2i: " % i + ", ".join("%.6f" for _ in range(4)) % res for i, res in enumerate(results))))
if (__name__ == "__main__"):
main()