Add QP parallelization to rd_collect for SVT-AV1.
[daala.git] / tools / rd_collect_svtav1.sh
1 #!/bin/bash
2 set -e
3
4 if [ -z $RD_COLLECT_SUB ]; then
5   echo "Please use: $(dirname $0)/rd_collect.sh svt-av1 *.y4m"
6   exit 1
7 fi
8
9 FILE=$1
10 QP=$2
11
12 BASENAME=$(basename $FILE)-$CODEC-$QP
13 rm $BASENAME.out 2> /dev/null || true
14 echo $BASENAME
15
16 WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
17 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
18
19 QSTR="-lp 1 -q \$x"
20
21 export LD_LIBRARY_PATH=$(dirname "$SVTAV1")
22 $SVTAV1 $EXTRA_OPTS $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.yuv -b $BASENAME.ivf -i $FILE 2> $BASENAME-enc.out > /dev/null
23 $YUV2YUV4MPEG $BASENAME -w$WIDTH -h$HEIGHT -an0 -ad0 -c420mpeg2
24 SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
25 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-psnr.out 2> /dev/null
26 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
27 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
28 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
29 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
30 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
31 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
32 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
33 rm $BASENAME.ivf $BASENAME.y4m $BASENAME.yuv $BASENAME-enc.out $BASENAME-psnr.out
34 echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
35 #tail -1 $BASENAME.out