360e299596e12584b8989c5963754a182a1171c3
[daala.git] / tools / rd_collect_libvpx.sh
1 #!/bin/bash
2 set -e
3
4 if [ -z $RD_COLLECT_SUB ]; then
5   echo "Please use: $(dirname $0)/rd_collect.sh <vp8|vp9|vp10> *.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=$(seq 1 63)
19 case $CODEC in
20 vp8)
21   QSTR="--end-usage=cq --cq-level=\$x"
22   ;;
23 vp9 | vp10)
24   QSTR="--end-usage=q --cq-level=\$x"
25   ;;
26 esac
27
28 for x in $RANGE; do
29   $VPXENC --codec=$CODEC --good --cpu-used=0 --ivf $(echo $QSTR | sed 's/\$x/'$x'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-$x-enc.out
30   $VPXDEC --codec=$CODEC -o $BASENAME.y4m $BASENAME.ivf
31   SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
32   $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$x-psnr.out 2> /dev/null
33   FRAMES=$(cat $BASENAME-$x-psnr.out | grep ^0 | wc -l)
34   PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
35   PSNR=$(cat $BASENAME-$x-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
36   PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
37   SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
38   FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
39   CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
40   rm $BASENAME.ivf $BASENAME.y4m $BASENAME-$x-enc.out $BASENAME-$x-psnr.out
41   echo $x $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
42   #tail -1 $BASENAME.out
43 done