|
|
|
@ -19,6 +19,7 @@ threads=${9:-1} |
|
|
|
|
thread_type=${10:-frame+slice} |
|
|
|
|
cpuflags=${11:-all} |
|
|
|
|
cmp_shift=${12:-0} |
|
|
|
|
cmp_target=${13:-0} |
|
|
|
|
|
|
|
|
|
outdir="tests/data/fate" |
|
|
|
|
outfile="${outdir}/${test}" |
|
|
|
@ -26,24 +27,31 @@ errfile="${outdir}/${test}.err" |
|
|
|
|
cmpfile="${outdir}/${test}.diff" |
|
|
|
|
repfile="${outdir}/${test}.rep" |
|
|
|
|
|
|
|
|
|
# $1=value1, $2=value2, $3=threshold |
|
|
|
|
# prints 0 if absolute difference between value1 and value2 is <= threshold |
|
|
|
|
compare(){ |
|
|
|
|
v=$(echo "scale=2; if ($1 >= $2) { $1 - $2 } else { $2 - $1 }" | bc) |
|
|
|
|
echo "if ($v <= $3) { 0 } else { 1 }" | bc |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
do_tiny_psnr(){ |
|
|
|
|
psnr=$(tests/tiny_psnr "$1" "$2" 2 $cmp_shift 0) |
|
|
|
|
val=$(expr "$psnr" : ".*$3: *\([0-9.]*\)") |
|
|
|
|
size1=$(expr "$psnr" : '.*bytes: *\([0-9]*\)') |
|
|
|
|
size2=$(expr "$psnr" : '.*bytes:[ 0-9]*/ *\([0-9]*\)') |
|
|
|
|
res=$(echo "if ($val $4 $fuzz) 1" | bc) |
|
|
|
|
if [ "$res" != 1 ] || [ $size1 != $size2 ]; then |
|
|
|
|
val_cmp=$(compare $val $cmp_target $fuzz) |
|
|
|
|
if [ "$val_cmp" != 0 ] || [ $size1 != $size2 ]; then |
|
|
|
|
echo "$psnr" |
|
|
|
|
return 1 |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
oneoff(){ |
|
|
|
|
do_tiny_psnr "$1" "$2" MAXDIFF '<=' |
|
|
|
|
do_tiny_psnr "$1" "$2" MAXDIFF |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
stddev(){ |
|
|
|
|
do_tiny_psnr "$1" "$2" stddev '<=' |
|
|
|
|
do_tiny_psnr "$1" "$2" stddev |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
run(){ |
|
|
|
|