mirror of https://github.com/FFmpeg/FFmpeg.git
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