8e5246787e9b23026190009baf99910ff7c268ac
[daala.git] / tools / rd_collect_aom.sh
1 #!/bin/bash
2 set -e
3
4 if [ -z $RD_COLLECT_SUB ]; then
5   echo "Please use: $(dirname $0)/rd_collect.sh av1 *.y4m"
6   exit 1
7 fi
8
9 FILE=$1
10
11 BASENAME=$(basename $FILE)-$CODEC
12 rm $BASENAME.out 2> /dev/null || true
13 echo $BASENAME
14
15 WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
16 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
17
18 RANGE="20 32 43 55 63"
19 case $CODEC in
20 av1)
21   QSTR="--ivf --frame-parallel=0 --tile-columns=0 --auto-alt-ref=2 --cpu-used=0 --passes=2 --threads=1 --kf-min-dist=1000 --kf-max-dist=1000 --lag-in-frames=25 --end-usage=q --cq-level=\$x"
22   ;;
23 esac
24
25 for x in $RANGE; do
26   $AOMENC --codec=$CODEC $(echo $QSTR | sed 's/\$x/'$x'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-$x-enc.out
27   $AOMDEC --codec=$CODEC -o $BASENAME.y4m $BASENAME.ivf
28   SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
29   $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$x-psnr.out 2> /dev/null
30   FRAMES=$(cat $BASENAME-$x-psnr.out | grep ^0 | wc -l)
31   PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
32   PSNR=$(cat $BASENAME-$x-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
33   PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
34   SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
35   FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
36   CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
37   rm $BASENAME.ivf $BASENAME.y4m $BASENAME-$x-enc.out $BASENAME-$x-psnr.out
38   echo $x $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
39   #tail -1 $BASENAME.out
40 done