Metadata filter output is passed through an Awk script comparing floats against reference values with specified "fuzz" tolerance to account for architectural differences (e.g. x86-32 vs. x86-64). Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>pull/273/head
parent
f102a4efce
commit
bee01ee2ba
7 changed files with 237 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||||||
|
frame:0 pts:0 pts_time:0 |
||||||
|
lavfi.psnr.mse.r=1381.80 |
||||||
|
lavfi.psnr.psnr.r=16.73 |
||||||
|
lavfi.psnr.mse.g=896.00 |
||||||
|
lavfi.psnr.psnr.g=18.61 |
||||||
|
lavfi.psnr.mse.b=277.38 |
||||||
|
lavfi.psnr.psnr.b=23.70 |
||||||
|
lavfi.psnr.mse_avg=851.73 |
||||||
|
lavfi.psnr.psnr_avg=18.83 |
||||||
|
frame:1 pts:1 pts_time:1 |
||||||
|
lavfi.psnr.mse.r=1380.37 |
||||||
|
lavfi.psnr.psnr.r=16.73 |
||||||
|
lavfi.psnr.mse.g=975.91 |
||||||
|
lavfi.psnr.psnr.g=18.24 |
||||||
|
lavfi.psnr.mse.b=435.72 |
||||||
|
lavfi.psnr.psnr.b=21.74 |
||||||
|
lavfi.psnr.mse_avg=930.67 |
||||||
|
lavfi.psnr.psnr_avg=18.44 |
||||||
|
frame:2 pts:2 pts_time:2 |
||||||
|
lavfi.psnr.mse.r=1403.20 |
||||||
|
lavfi.psnr.psnr.r=16.66 |
||||||
|
lavfi.psnr.mse.g=954.05 |
||||||
|
lavfi.psnr.psnr.g=18.34 |
||||||
|
lavfi.psnr.mse.b=494.22 |
||||||
|
lavfi.psnr.psnr.b=21.19 |
||||||
|
lavfi.psnr.mse_avg=950.49 |
||||||
|
lavfi.psnr.psnr_avg=18.35 |
||||||
|
frame:3 pts:3 pts_time:3 |
||||||
|
lavfi.psnr.mse.r=1452.80 |
||||||
|
lavfi.psnr.psnr.r=16.51 |
||||||
|
lavfi.psnr.mse.g=1001.02 |
||||||
|
lavfi.psnr.psnr.g=18.13 |
||||||
|
lavfi.psnr.mse.b=557.39 |
||||||
|
lavfi.psnr.psnr.b=20.67 |
||||||
|
lavfi.psnr.mse_avg=1003.74 |
||||||
|
lavfi.psnr.psnr_avg=18.11 |
||||||
|
frame:4 pts:4 pts_time:4 |
||||||
|
lavfi.psnr.mse.r=1401.25 |
||||||
|
lavfi.psnr.psnr.r=16.67 |
||||||
|
lavfi.psnr.mse.g=1009.80 |
||||||
|
lavfi.psnr.psnr.g=18.09 |
||||||
|
lavfi.psnr.mse.b=602.42 |
||||||
|
lavfi.psnr.psnr.b=20.33 |
||||||
|
lavfi.psnr.mse_avg=1004.49 |
||||||
|
lavfi.psnr.psnr_avg=18.11 |
@ -0,0 +1,45 @@ |
|||||||
|
frame:0 pts:0 pts_time:0 |
||||||
|
lavfi.psnr.mse.y=222.06 |
||||||
|
lavfi.psnr.psnr.y=24.67 |
||||||
|
lavfi.psnr.mse.u=339.38 |
||||||
|
lavfi.psnr.psnr.u=22.82 |
||||||
|
lavfi.psnr.mse.v=705.41 |
||||||
|
lavfi.psnr.psnr.v=19.65 |
||||||
|
lavfi.psnr.mse_avg=372.23 |
||||||
|
lavfi.psnr.psnr_avg=22.42 |
||||||
|
frame:1 pts:1 pts_time:1 |
||||||
|
lavfi.psnr.mse.y=236.74 |
||||||
|
lavfi.psnr.psnr.y=24.39 |
||||||
|
lavfi.psnr.mse.u=416.17 |
||||||
|
lavfi.psnr.psnr.u=21.94 |
||||||
|
lavfi.psnr.mse.v=704.98 |
||||||
|
lavfi.psnr.psnr.v=19.65 |
||||||
|
lavfi.psnr.mse_avg=398.66 |
||||||
|
lavfi.psnr.psnr_avg=22.12 |
||||||
|
frame:2 pts:2 pts_time:2 |
||||||
|
lavfi.psnr.mse.y=234.79 |
||||||
|
lavfi.psnr.psnr.y=24.42 |
||||||
|
lavfi.psnr.mse.u=435.72 |
||||||
|
lavfi.psnr.psnr.u=21.74 |
||||||
|
lavfi.psnr.mse.v=699.60 |
||||||
|
lavfi.psnr.psnr.v=19.68 |
||||||
|
lavfi.psnr.mse_avg=401.23 |
||||||
|
lavfi.psnr.psnr_avg=22.10 |
||||||
|
frame:3 pts:3 pts_time:3 |
||||||
|
lavfi.psnr.mse.y=250.88 |
||||||
|
lavfi.psnr.psnr.y=24.14 |
||||||
|
lavfi.psnr.mse.u=479.73 |
||||||
|
lavfi.psnr.psnr.u=21.32 |
||||||
|
lavfi.psnr.mse.v=707.55 |
||||||
|
lavfi.psnr.psnr.v=19.63 |
||||||
|
lavfi.psnr.mse_avg=422.26 |
||||||
|
lavfi.psnr.psnr_avg=21.88 |
||||||
|
frame:4 pts:4 pts_time:4 |
||||||
|
lavfi.psnr.mse.y=241.05 |
||||||
|
lavfi.psnr.psnr.y=24.31 |
||||||
|
lavfi.psnr.mse.u=505.04 |
||||||
|
lavfi.psnr.psnr.u=21.10 |
||||||
|
lavfi.psnr.mse.v=716.00 |
||||||
|
lavfi.psnr.psnr.v=19.58 |
||||||
|
lavfi.psnr.mse_avg=425.79 |
||||||
|
lavfi.psnr.psnr_avg=21.84 |
@ -0,0 +1,30 @@ |
|||||||
|
frame:0 pts:0 pts_time:0 |
||||||
|
lavfi.ssim.R=0.72 |
||||||
|
lavfi.ssim.G=0.76 |
||||||
|
lavfi.ssim.B=0.89 |
||||||
|
lavfi.ssim.All=0.79 |
||||||
|
lavfi.ssim.dB=6.74 |
||||||
|
frame:1 pts:1 pts_time:1 |
||||||
|
lavfi.ssim.R=0.70 |
||||||
|
lavfi.ssim.G=0.74 |
||||||
|
lavfi.ssim.B=0.85 |
||||||
|
lavfi.ssim.All=0.77 |
||||||
|
lavfi.ssim.dB=6.31 |
||||||
|
frame:2 pts:2 pts_time:2 |
||||||
|
lavfi.ssim.R=0.71 |
||||||
|
lavfi.ssim.G=0.75 |
||||||
|
lavfi.ssim.B=0.84 |
||||||
|
lavfi.ssim.All=0.76 |
||||||
|
lavfi.ssim.dB=6.29 |
||||||
|
frame:3 pts:3 pts_time:3 |
||||||
|
lavfi.ssim.R=0.70 |
||||||
|
lavfi.ssim.G=0.73 |
||||||
|
lavfi.ssim.B=0.83 |
||||||
|
lavfi.ssim.All=0.76 |
||||||
|
lavfi.ssim.dB=6.11 |
||||||
|
frame:4 pts:4 pts_time:4 |
||||||
|
lavfi.ssim.R=0.71 |
||||||
|
lavfi.ssim.G=0.74 |
||||||
|
lavfi.ssim.B=0.80 |
||||||
|
lavfi.ssim.All=0.75 |
||||||
|
lavfi.ssim.dB=6.05 |
@ -0,0 +1,30 @@ |
|||||||
|
frame:0 pts:0 pts_time:0 |
||||||
|
lavfi.ssim.Y=0.80 |
||||||
|
lavfi.ssim.U=0.76 |
||||||
|
lavfi.ssim.V=0.69 |
||||||
|
lavfi.ssim.All=0.76 |
||||||
|
lavfi.ssim.dB=6.25 |
||||||
|
frame:1 pts:1 pts_time:1 |
||||||
|
lavfi.ssim.Y=0.80 |
||||||
|
lavfi.ssim.U=0.73 |
||||||
|
lavfi.ssim.V=0.68 |
||||||
|
lavfi.ssim.All=0.75 |
||||||
|
lavfi.ssim.dB=6.08 |
||||||
|
frame:2 pts:2 pts_time:2 |
||||||
|
lavfi.ssim.Y=0.80 |
||||||
|
lavfi.ssim.U=0.73 |
||||||
|
lavfi.ssim.V=0.68 |
||||||
|
lavfi.ssim.All=0.75 |
||||||
|
lavfi.ssim.dB=6.10 |
||||||
|
frame:3 pts:3 pts_time:3 |
||||||
|
lavfi.ssim.Y=0.79 |
||||||
|
lavfi.ssim.U=0.72 |
||||||
|
lavfi.ssim.V=0.68 |
||||||
|
lavfi.ssim.All=0.75 |
||||||
|
lavfi.ssim.dB=5.94 |
||||||
|
frame:4 pts:4 pts_time:4 |
||||||
|
lavfi.ssim.Y=0.80 |
||||||
|
lavfi.ssim.U=0.72 |
||||||
|
lavfi.ssim.V=0.68 |
||||||
|
lavfi.ssim.All=0.75 |
||||||
|
lavfi.ssim.dB=5.97 |
@ -0,0 +1,64 @@ |
|||||||
|
# Compare metadata filter output containing float value strings to reference |
||||||
|
# output data. Returns the whole reference data if delta of each value is below |
||||||
|
# threshold, else returns the whole input data. |
||||||
|
|
||||||
|
function abs(val) { |
||||||
|
return ((val < 0.0) ? -val : val); |
||||||
|
} |
||||||
|
|
||||||
|
function max(val1, val2) { |
||||||
|
return ((val1 >= val2) ? val1 : val2); |
||||||
|
} |
||||||
|
|
||||||
|
function is_numeric_str(str) { |
||||||
|
return (str ~ /^[+-]?[0-9]*\.?[0-9]+$/); |
||||||
|
} |
||||||
|
|
||||||
|
BEGIN { |
||||||
|
FS = "="; |
||||||
|
# check for "fuzz" (threshold) program parameter, else use default |
||||||
|
if (fuzz <= 0.0) { |
||||||
|
fuzz = 0.1; |
||||||
|
} |
||||||
|
# check for "ref" (reference file) program parameter |
||||||
|
if (ref) { |
||||||
|
ref_nr = 0; |
||||||
|
while ((getline line < ref) > 0) { |
||||||
|
ref_nr++; |
||||||
|
ref_lines[ref_nr] = line; |
||||||
|
if (split(line, fields) == 2 && is_numeric_str(fields[2])) { |
||||||
|
ref_keys[ref_nr] = fields[1]; |
||||||
|
ref_vals[ref_nr] = fields[2] + 0; # convert to number |
||||||
|
} |
||||||
|
} |
||||||
|
close(ref); |
||||||
|
} |
||||||
|
delta_max = 0; |
||||||
|
result = (ref ? 1 : 0); |
||||||
|
} |
||||||
|
|
||||||
|
{ |
||||||
|
cmp_lines[NR] = $0; |
||||||
|
if (NF == 2 && is_numeric_str($2) && ref_vals[NR]) { |
||||||
|
val = $2 + 0; # convert to number |
||||||
|
delta = abs((val / ref_vals[NR]) - 1); |
||||||
|
delta_max = max(delta_max, delta); |
||||||
|
result = result && ($1 == ref_keys[NR]) && (delta <= fuzz); |
||||||
|
} else { |
||||||
|
result = result && ($0 == ref_lines[NR]); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
END { |
||||||
|
if (result) { |
||||||
|
for (i = 1; i <= ref_nr; i++) |
||||||
|
print ref_lines[i]; |
||||||
|
} else { |
||||||
|
for (i = 1; i <= NR; i++) |
||||||
|
print cmp_lines[i]; |
||||||
|
if (NR != ref_nr) |
||||||
|
print "[refcmp] lines: " NR " != " ref_nr > "/dev/stderr"; |
||||||
|
if (delta_max >= fuzz) |
||||||
|
print "[refcmp] delta_max: " delta_max " >= " fuzz > "/dev/stderr"; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue