Add encode time to rd_collect out files.
authorJustin Nickelsburg <nickelsburg99@gmail.com>
Tue, 9 Jul 2019 22:06:24 +0000 (18:06 -0400)
committerNathan E. Egge <negge@dgql.org>
Wed, 24 Jul 2019 03:00:40 +0000 (23:00 -0400)
Tracks user time within rd_collect sub files, which then prints time
in column 4 of the generated out files. Modified bd_rate.sh,
matlab/bd_rate.m, rd_average.sh, and rd_plot.sh to support out files
including time in column 4.

16 files changed:
tools/bd_rate.sh
tools/matlab/bd_rate.m
tools/rd_average.sh
tools/rd_collect_bpg.sh
tools/rd_collect_daala.sh
tools/rd_collect_jpeg.sh
tools/rd_collect_libaom.sh
tools/rd_collect_libvpx.sh
tools/rd_collect_rav1e.sh
tools/rd_collect_svtav1.sh
tools/rd_collect_theora.sh
tools/rd_collect_vtm.sh
tools/rd_collect_webp.sh
tools/rd_collect_x264.sh
tools/rd_collect_x265.sh
tools/rd_plot.sh

index 0f1f968..235fc27 100755 (executable)
@@ -27,7 +27,7 @@ IFS=' ' read -r VALUES <<< "$(head -n 1 $2)"
 VALUES=($VALUES)
 NUM_VALUES_2=${#VALUES[@]}
 
-CIEDE_ROW=8
+CIEDE_ROW=9
 
 if [ $NUM_VALUES_1 != $NUM_VALUES_2 ]; then
   echo "Number of metrics in out files don't match"
@@ -36,18 +36,19 @@ fi
 
 N1=$(cat $1 | wc -l)
 N2=$(cat $2 | wc -l)
+
 AREA1=$(cut -d\  -f 2 $1 | xargs | sed 's/ /,/g')
 AREA2=$(cut -d\  -f 2 $2 | xargs | sed 's/ /,/g')
 SIZE1=$(cut -d\  -f 3 $1 | xargs | sed 's/ /,/g')
 SIZE2=$(cut -d\  -f 3 $2 | xargs | sed 's/ /,/g')
-PSNR1=$(cut -d\  -f 4 $1 | xargs | sed 's/ /,/g')
-PSNR2=$(cut -d\  -f 4 $2 | xargs | sed 's/ /,/g')
-PSNRHVS1=$(cut -d\  -f 5 $1 | xargs | sed 's/ /,/g')
-PSNRHVS2=$(cut -d\  -f 5 $2 | xargs | sed 's/ /,/g')
-SSIM1=$(cut -d\  -f 6 $1 | xargs | sed 's/ /,/g')
-SSIM2=$(cut -d\  -f 6 $2 | xargs | sed 's/ /,/g')
-FASTSSIM1=$(cut -d\  -f 7 $1 | xargs | sed 's/ /,/g')
-FASTSSIM2=$(cut -d\  -f 7 $2 | xargs | sed 's/ /,/g')
+PSNR1=$(cut -d\  -f 5 $1 | xargs | sed 's/ /,/g')
+PSNR2=$(cut -d\  -f 5 $2 | xargs | sed 's/ /,/g')
+PSNRHVS1=$(cut -d\  -f 6 $1 | xargs | sed 's/ /,/g')
+PSNRHVS2=$(cut -d\  -f 6 $2 | xargs | sed 's/ /,/g')
+SSIM1=$(cut -d\  -f 7 $1 | xargs | sed 's/ /,/g')
+SSIM2=$(cut -d\  -f 7 $2 | xargs | sed 's/ /,/g')
+FASTSSIM1=$(cut -d\  -f 8 $1 | xargs | sed 's/ /,/g')
+FASTSSIM2=$(cut -d\  -f 8 $2 | xargs | sed 's/ /,/g')
 
 PSNR_RATE=$($BJONTEGAARD 0 $N1 $AREA1 $SIZE1 $PSNR1 $N2 $AREA2 $SIZE2 $PSNR2)
 PSNR_DSNR=$($BJONTEGAARD 1 $N1 $AREA1 $SIZE1 $PSNR1 $N2 $AREA2 $SIZE2 $PSNR2)
@@ -65,8 +66,8 @@ echo "    SSIM" $(echo $SSIM_RATE     | cut -d\  -f 3) $(echo $SSIM_DSNR     | c
 echo "FASTSSIM" $(echo $FASTSSIM_RATE | cut -d\  -f 3) $(echo $FASTSSIM_DSNR | cut -d\  -f 3)
 
 if [ $NUM_VALUES_1 -ge $CIEDE_ROW ]; then
-  CIEDE1=$(cut -d\  -f 8 $1 | xargs | sed 's/ /,/g')
-  CIEDE2=$(cut -d\  -f 8 $2 | xargs | sed 's/ /,/g')
+  CIEDE1=$(cut -d\  -f 9 $1 | xargs | sed 's/ /,/g')
+  CIEDE2=$(cut -d\  -f 9 $2 | xargs | sed 's/ /,/g')
   CIEDE_RATE=$($BJONTEGAARD 0 $N1 $AREA1 $SIZE1 $CIEDE1 $N2 $AREA2 $SIZE2 $CIEDE2)
   CIEDE_DSNR=$($BJONTEGAARD 1 $N1 $AREA1 $SIZE1 $CIEDE1 $N2 $AREA2 $SIZE2 $CIEDE2)
   echo "   CIEDE" $(echo $CIEDE_RATE    | cut -d\  -f 3) $(echo $CIEDE_DSNR    | cut -d\  -f 3)
index e705ef0..fd03534 100755 (executable)
@@ -3,7 +3,7 @@
 warning("off","Octave:nested-functions-coerced");
 warning("on","Octave:missing-semicolon");
 
-CIEDE_ROW = 8;
+CIEDE_ROW = 9;
 
 args=argv();
 
@@ -88,17 +88,17 @@ rate2=rd2(:,3)*8./rd2(:,2);
 pin = program_invocation_name;
 chdir(pin(1:(length(pin)-length(program_name))));
 
-[psnr_rate,psnr_dsnr]=bjontegaard([rate1,rd1(:,4)],[rate2,rd2(:,4)],t,...
+[psnr_rate,psnr_dsnr]=bjontegaard([rate1,rd1(:,5)],[rate2,rd2(:,5)],t,...
  min_bpp,max_bpp);
-[psnrhvs_rate,psnrhvs_dsnr]=bjontegaard([rate1,rd1(:,5)],[rate2,rd2(:,5)],...
+[psnrhvs_rate,psnrhvs_dsnr]=bjontegaard([rate1,rd1(:,6)],[rate2,rd2(:,6)],...
  t,min_bpp,max_bpp);
-[ssim_rate,ssim_dsnr]=bjontegaard([rate1,rd1(:,6)],[rate2,rd2(:,6)],t,...
+[ssim_rate,ssim_dsnr]=bjontegaard([rate1,rd1(:,7)],[rate2,rd2(:,7)],t,...
  min_bpp,max_bpp);
-[fastssim_rate,fastssim_dsnr]=bjontegaard([rate1,rd1(:,7)],[rate2,rd2(:,7)]...
+[fastssim_rate,fastssim_dsnr]=bjontegaard([rate1,rd1(:,8)],[rate2,rd2(:,8)]...
  ,t,min_bpp,max_bpp);
 
-if num_val_1 >= 8
-  [ciede_rate,ciede_dsnr]=bjontegaard([rate1,rd1(:,8)],[rate2,rd2(:,8)],t,...
+if num_val_1 >= 9
+  [ciede_rate,ciede_dsnr]=bjontegaard([rate1,rd1(:,9)],[rate2,rd2(:,9)],t,...
    min_bpp,max_bpp);
 endif
 
index a3c1dc6..7660ca6 100755 (executable)
@@ -19,16 +19,16 @@ fi
 IFS=' ' read -r VALUES <<< "$(head -n 1 $1)"
 VALUES=($VALUES)
 NUM_VALUES=${#VALUES[@]}
-CIEDE_ROW=8
+CIEDE_ROW=9
 
-AWK_SUM='size[$1]+=$2;bytes[$1]+=$3;psnr[$1]+=$2*$4;psnrhvs[$1]+=$2*$5;ssim[$1]+=$2*$6;fastssim[$1]+=$2*$7;'
+AWK_SUM='size[$1]+=$2;bytes[$1]+=$3;time[$1]+=$4;psnr[$1]+=$2*$5;psnrhvs[$1]+=$2*$6;ssim[$1]+=$2*$7;fastssim[$1]+=$2*$8;'
 AWK_DIV='psnr[i]/size[i],psnrhvs[i]/size[i],ssim[i]/size[i],fastssim[i]/size[i]'
 
 if [ $NUM_VALUES -ge $CIEDE_ROW ]; then
-  AWK_SUM+='ciede[$1]+=$2*$8;'
+  AWK_SUM+='ciede[$1]+=$2*$9;'
   AWK_DIV+=',ciede[i]/size[i]'
 fi
 
-AWK_CMD="{$AWK_SUM}END{for(i in size)print i,size[i],bytes[i],$AWK_DIV;}"
+AWK_CMD="{$AWK_SUM}END{for(i in size)print i,size[i],bytes[i],time[i],$AWK_DIV;}"
 
 awk "$AWK_CMD" $@ | sort -n > $TOTAL
index 7444e15..7aa48b9 100755 (executable)
@@ -18,17 +18,20 @@ WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 PIXELS=$(($WIDTH*$HEIGHT))
 
-$BPGENC -q $QP $BASENAME-in.png -o $BASENAME.bpg
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $BPGENC -q $QP $BASENAME-in.png -o $BASENAME.bpg
 $BPGDEC $BASENAME.bpg -o $BASENAME-out.png -b 16
 $PNG2Y4M --no-dither $BASENAME-out.png -o $BASENAME.y4m 2> /dev/null
 SIZE=$(stat -c %s $BASENAME.bpg)
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$($DUMP_PSNR $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.bpg $BASENAME-out.png $BASENAME.y4m
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.bpg $BASENAME-out.png $BASENAME.y4m $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
 
 rm $BASENAME-in.png
index 90376ed..90c5b27 100755 (executable)
@@ -16,17 +16,20 @@ echo $BASENAME
 WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 
-$ENCODER_EXAMPLE -k 256 -v $QP $EXTRA_OPTS $FILE -o $BASENAME.ogv 2> $BASENAME-enc.out
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $ENCODER_EXAMPLE -k 256 -v $QP $EXTRA_OPTS $FILE -o $BASENAME.ogv 2> $BASENAME-enc.out
 $DUMP_VIDEO $BASENAME.ogv -o $BASENAME.y4m 2> /dev/null
 SIZE=$(wc -c $BASENAME.ogv | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.y4m $BASENAME.ogv $BASENAME-enc.out $BASENAME-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.y4m $BASENAME.ogv $BASENAME-enc.out $BASENAME-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index bb693c7..8ce1b11 100755 (executable)
@@ -18,17 +18,20 @@ WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 PIXELS=$(($WIDTH*$HEIGHT))
 
-$YUVJPEG $QP "$WIDTH"x$HEIGHT $BASENAME-in.yuv $BASENAME.jpeg
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $YUVJPEG $QP "$WIDTH"x$HEIGHT $BASENAME-in.yuv $BASENAME.jpeg
 $JPEGYUV $BASENAME.jpeg $BASENAME.yuv
 $YUV2YUV4MPEG $BASENAME -w$WIDTH -h$HEIGHT -an0 -ad0 -c420mpeg2
 SIZE=$(wc -c $BASENAME.jpeg | awk '{ print $1 }')
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$($DUMP_PSNR $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.jpeg $BASENAME.yuv $BASENAME.y4m
-echo -$QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.jpeg $BASENAME.yuv $BASENAME.y4m $ENCTIME
+echo -$QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
 
 rm $BASENAME-in.yuv
index f9f82eb..5778332 100755 (executable)
@@ -25,17 +25,20 @@ libaom-rt)
   ;;
 esac
 
-$AOMENC $EXTRA_OPTS $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-enc.out
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $AOMENC $EXTRA_OPTS $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-enc.out
 $AOMDEC -o $BASENAME.y4m $BASENAME.ivf
 SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.ivf $BASENAME.y4m $BASENAME-enc.out $BASENAME-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.ivf $BASENAME.y4m $BASENAME-enc.out $BASENAME-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index 2eb1177..1368964 100755 (executable)
@@ -25,17 +25,20 @@ vp9)
   ;;
 esac
 
-$VPXENC --good --codec=$CODEC --cpu-used=0 --ivf $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-$QP-enc.out
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $VPXENC --good --codec=$CODEC --cpu-used=0 --ivf $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-$QP-enc.out
 $VPXDEC --codec=$CODEC -o $BASENAME.y4m $BASENAME.ivf
 SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$QP-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-$QP-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-$QP-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.ivf $BASENAME.y4m $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.ivf $BASENAME.y4m $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index 3534fd3..3a79b3d 100755 (executable)
@@ -18,16 +18,19 @@ HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 
 QSTR="--quantizer \$x --threads 1"
 
-$RAV1E $EXTRA_OPTS -r $BASENAME.y4m $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-enc.out > /dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $RAV1E $EXTRA_OPTS -r $BASENAME.y4m $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.ivf $FILE 2> $BASENAME-enc.out > /dev/null
 SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.ivf $BASENAME.y4m $BASENAME-enc.out $BASENAME-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.ivf $BASENAME.y4m $BASENAME-enc.out $BASENAME-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index dab5a60..1b231ba 100755 (executable)
@@ -19,17 +19,20 @@ HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 QSTR="-lp 1 -q \$x"
 
 export LD_LIBRARY_PATH=$(dirname "$SVTAV1")
-$SVTAV1 $EXTRA_OPTS $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.yuv -b $BASENAME.ivf -i $FILE 2> $BASENAME-enc.out > /dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $SVTAV1 $EXTRA_OPTS $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.yuv -b $BASENAME.ivf -i $FILE 2> $BASENAME-enc.out > /dev/null
 $YUV2YUV4MPEG $BASENAME -w$WIDTH -h$HEIGHT -an0 -ad0 -c420mpeg2
 SIZE=$(wc -c $BASENAME.ivf | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.ivf $BASENAME.y4m $BASENAME.yuv $BASENAME-enc.out $BASENAME-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.ivf $BASENAME.y4m $BASENAME.yuv $BASENAME-enc.out $BASENAME-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index 2fc3d37..78c44a9 100755 (executable)
@@ -17,17 +17,20 @@ WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 
 V=$(echo $QP| awk '{print $1*0.15873015873015}');
-$ENCODER_EXAMPLE -o $BASENAME.ogv -v $V -z 0 $FILE 2> $BASENAME-$QP-enc.err >/dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $ENCODER_EXAMPLE -o $BASENAME.ogv -v $V -z 0 $FILE 2> $BASENAME-$QP-enc.err >/dev/null
 $DUMP_VIDEO $BASENAME.ogv -c -o $BASENAME.y4m 2>/dev/null
 SIZE=$(wc -c $BASENAME.ogv | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$QP-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-$QP-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-$QP-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.ogv $BASENAME.y4m  $BASENAME-$QP-enc.err $BASENAME-$QP-psnr.out
-echo -$QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.ogv $BASENAME.y4m  $BASENAME-$QP-enc.err $BASENAME-$QP-psnr.out $ENCTIME
+echo -$QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index c37a54f..752ebdb 100755 (executable)
@@ -20,18 +20,21 @@ FPS=$(ffmpeg -i $FILE 2>&1 | sed -n "s/.*, \(.*\) fp.*/\1/p")
 
 QSTR="-wdt $WIDTH -hgt $HEIGHT -f $FRAMES -fr $FPS -c $VTM_ROOT/cfg/encoder_randomaccess_vtm.cfg -q $QP --OutputBitDepth=8"
 
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
 $Y4M2YUV -o $BASENAME.yuv $FILE
-$VTM $EXTRA_OPTS $QSTR -o $BASENAME-out.yuv -b $BASENAME.vvc -i $BASENAME.yuv > $BASENAME-enc.out
+$TIMER $VTM $EXTRA_OPTS $QSTR -o $BASENAME-out.yuv -b $BASENAME.vvc -i $BASENAME.yuv > $BASENAME-enc.out
 $YUV2YUV4MPEG $BASENAME-out -w$WIDTH -h$HEIGHT
 SIZE=$(wc -c $BASENAME.vvc | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME-out.y4m > $BASENAME-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME-out.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME-out.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME-out.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME-out.yuv 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME-out.yuv $BASENAME.vvc $BASENAME.yuv $BASENAME-enc.out $BASENAME-psnr.out $BASENAME-out.y4m
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME-out.yuv $BASENAME.vvc $BASENAME.yuv $BASENAME-enc.out $BASENAME-enctime.out $BASENAME-psnr.out $BASENAME-out.y4m
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index ce3fb79..77f02ea 100755 (executable)
@@ -18,15 +18,18 @@ WIDTH=$(head -1 $FILE | cut -d\  -f 2 | tr -d 'W')
 HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 PIXELS=$(($WIDTH*$HEIGHT))
 
-$CWEBP -q $QP -s $WIDTH $HEIGHT $BASENAME-in.yuv -o $BASENAME.webp 2> /dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $CWEBP -q $QP -s $WIDTH $HEIGHT $BASENAME-in.yuv -o $BASENAME.webp 2> /dev/null
 $DWEBP $BASENAME.webp -yuv -o $BASENAME.yuv 2> /dev/null
 $YUV2YUV4MPEG $BASENAME -w$WIDTH -h$HEIGHT -an0 -ad0 -c420mpeg2
 SIZE=$(stat -c %s $BASENAME.webp)
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$($DUMP_PSNR $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.webp $BASENAME.yuv $BASENAME.y4m $BASENAME-in.yuv
-echo -$QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.webp $BASENAME.yuv $BASENAME.y4m $BASENAME-in.yuv $ENCTIME
+echo -$QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index 3bd2f65..86dbe41 100755 (executable)
@@ -18,9 +18,12 @@ HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 
 QSTR="--preset placebo --min-keyint 256 --keyint 256 --no-scenecut --crf=\$x"
 
-$X264 --dump-yuv $BASENAME.yuv $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.x264 $FILE 2> $BASENAME-$QP-enc.out > /dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $X264 --dump-yuv $BASENAME.yuv $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.x264 $FILE 2> $BASENAME-$QP-enc.out > /dev/null
 $YUV2YUV4MPEG $BASENAME -w$WIDTH -h$HEIGHT -an0 -ad0 -c420mpeg2
 SIZE=$(wc -c $BASENAME.x264 | awk '{ print $1 }')
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$QP-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-$QP-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
@@ -29,6 +32,6 @@ PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s '
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.x264 $BASENAME.y4m $BASENAME.yuv $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.x264 $BASENAME.y4m $BASENAME.yuv $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index 142aab0..552ba22 100755 (executable)
@@ -18,16 +18,19 @@ HEIGHT=$(head -1 $FILE | cut -d\  -f 3 | tr -d 'H')
 
 QSTR="--preset slow --frame-threads 1 --min-keyint 256 --keyint 256 --no-scenecut --crf=\$x"
 
-$X265 -r $BASENAME.y4m $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.x265 $FILE 2> $BASENAME-$QP-enc.out > /dev/null
+ENCTIME=$BASENAME-enctime.out
+TIMER='time -v --output='"$ENCTIME"
+$TIMER $X265 -r $BASENAME.y4m $(echo $QSTR | sed 's/\$x/'$QP'/g') -o $BASENAME.x265 $FILE 2> $BASENAME-$QP-enc.out > /dev/null
 SIZE=$(wc -c $BASENAME.x265 | awk '{ print $1 }')
 $DUMP_PSNR $FILE $BASENAME.y4m > $BASENAME-$QP-psnr.out 2> /dev/null
 FRAMES=$(cat $BASENAME-$QP-psnr.out | grep ^0 | wc -l)
 PIXELS=$(($WIDTH*$HEIGHT*$FRAMES))
+TIME=$(cat $ENCTIME | grep User | cut -d\  -f4)
 PSNR=$(cat $BASENAME-$QP-psnr.out | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 PSNRHVS=$($DUMP_PSNRHVS $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 SSIM=$($DUMP_SSIM $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 FASTSSIM=$($DUMP_FASTSSIM -c $FILE $BASENAME.y4m 2> /dev/null | grep Total | tr -s ' ' | cut -d\  -f $((4+$PLANE*2)))
 CIEDE=$($DUMP_CIEDE $FILE $BASENAME.y4m 2> /dev/null | grep Total | cut -d' ' -f2-)
-rm $BASENAME.x265 $BASENAME.y4m $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out
-echo $QP $PIXELS $SIZE $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
+rm $BASENAME.x265 $BASENAME.y4m $BASENAME-$QP-enc.out $BASENAME-$QP-psnr.out $ENCTIME
+echo $QP $PIXELS $SIZE $TIME $PSNR $PSNRHVS $SSIM $FASTSSIM $CIEDE >> $BASENAME.out
 #tail -1 $BASENAME.out
index de06524..aad6238 100755 (executable)
@@ -32,11 +32,11 @@ CMDS="$CMDS set key bot right;"
 
 for FILE in "$@"; do
   BASENAME=$(basename $FILE)
-  PSNR="$PSNR $PREFIX '$FILE' using (\$3*8/\$2):4 with lines title '${BASENAME%.*} (PSNR)'"
-  PSNRHVS="$PSNRHVS $PREFIX '$FILE' using (\$3*8/\$2):5 with lines title '${BASENAME%.*} (PSNR-HVS)'"
-  SSIM="$SSIM $PREFIX '$FILE' using (\$3*8/\$2):6 with lines title '${BASENAME%.*} (SSIM)'"
-  FASTSSIM="$FASTSSIM $PREFIX '$FILE' using (\$3*8/\$2):7 with lines title '${BASENAME%.*} (FAST SSIM)'"
-  CIEDE="$CIEDE $PREFIX '$FILE' using (\$3*8/\$2):8 with lines title '${BASENAME%.*} (CIEDE2000)'"
+  PSNR="$PSNR $PREFIX '$FILE' using (\$3*8/\$2):5 with lines title '${BASENAME%.*} (PSNR)'"
+  PSNRHVS="$PSNRHVS $PREFIX '$FILE' using (\$3*8/\$2):6 with lines title '${BASENAME%.*} (PSNR-HVS)'"
+  SSIM="$SSIM $PREFIX '$FILE' using (\$3*8/\$2):7 with lines title '${BASENAME%.*} (SSIM)'"
+  FASTSSIM="$FASTSSIM $PREFIX '$FILE' using (\$3*8/\$2):8 with lines title '${BASENAME%.*} (FAST SSIM)'"
+  CIEDE="$CIEDE $PREFIX '$FILE' using (\$3*8/\$2):9 with lines title '${BASENAME%.*} (CIEDE2000)'"
   PREFIX=","
 done