AV1 Encoder Nightly Report
Change-Id: I687b3ee90969d17803bce009e4bd286f3c57bae5
This commit is contained in:
8
scripts/BasketballDrill_480p.sh
Normal file
8
scripts/BasketballDrill_480p.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
video=~/Dev/samples/videos/midres/BasketballDrill_832x480_50.y4m
|
||||||
|
wide=
|
||||||
|
high=
|
||||||
|
frames=60
|
||||||
|
bitrate=800
|
||||||
|
fps="50/1"
|
20
scripts/aom_conf_build.sh
Executable file
20
scripts/aom_conf_build.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
root_dir=$1
|
||||||
|
build_dir=$root_dir/release
|
||||||
|
script_dir=~/Dev/sandbox/libvpx/scripts
|
||||||
|
exp_tool=
|
||||||
|
|
||||||
|
cd $build_dir
|
||||||
|
make clean > /dev/null
|
||||||
|
$script_dir/aom_nightly_config.sh
|
||||||
|
make -j > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "AV1 build failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
test_dir=~/Dev/nightly
|
||||||
|
|
||||||
|
cp -f ./aomenc $test_dir/.
|
||||||
|
cp -f ./aomdec $test_dir/.
|
23
scripts/aom_nightly_config.sh
Executable file
23
scripts/aom_nightly_config.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
platform=x86_64-linux-gcc
|
||||||
|
codec=--enable-av1
|
||||||
|
libsrc=aom
|
||||||
|
test_dir=~/Dev/nightly
|
||||||
|
script_dir=~/Dev/sandbox/libvpx/scripts
|
||||||
|
tool=
|
||||||
|
|
||||||
|
common="--disable-unit-tests --disable-docs"
|
||||||
|
debug=
|
||||||
|
|
||||||
|
#. $script_dir/disabled_list.sh
|
||||||
|
disabled=
|
||||||
|
|
||||||
|
echo ../$libsrc/configure $common $debug $disabled $tool
|
||||||
|
|
||||||
|
../$libsrc/configure $common $debug $disabled $tool > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Error: configure fails!" > $test_dir/aom_error_config.txt
|
||||||
|
exit 1
|
||||||
|
fi
|
116
scripts/aom_nightly_speed.sh
Executable file
116
scripts/aom_nightly_speed.sh
Executable file
@@ -0,0 +1,116 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# File:
|
||||||
|
# nightly_speed.sh
|
||||||
|
# Decription:
|
||||||
|
# Configure, build, and run AV1 encoder/decoder for each experimental tool.
|
||||||
|
# Display the encoder/decode run time
|
||||||
|
# Preassumption:
|
||||||
|
# 1) Assume all script files are in ~/Dev/sandbox/libvpx/scripts
|
||||||
|
# Note:
|
||||||
|
# See encoder config output if set,
|
||||||
|
# verbose=-v
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
if [ "$#" -ne 4 ]; then
|
||||||
|
root_dir=~/Dev/av1d
|
||||||
|
pdfps=1
|
||||||
|
petime=1
|
||||||
|
html_log_file=log.html
|
||||||
|
else
|
||||||
|
root_dir=$1
|
||||||
|
pdfps=$2
|
||||||
|
petime=$3
|
||||||
|
html_log_file=$4
|
||||||
|
fi
|
||||||
|
log_path=~/Dev/log
|
||||||
|
|
||||||
|
if [ "$profile" == "2" ]; then
|
||||||
|
bitdepth="--bit-depth=10"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$profile" == "0" ]; then
|
||||||
|
bitdepth=
|
||||||
|
fi
|
||||||
|
|
||||||
|
code_dir=$root_dir/aom
|
||||||
|
build_dir=$root_dir/release
|
||||||
|
test_dir=~/Dev/nightly
|
||||||
|
script_dir=~/Dev/sandbox/libvpx/scripts
|
||||||
|
|
||||||
|
. $script_dir/BasketballDrill_480p.sh
|
||||||
|
|
||||||
|
# General options
|
||||||
|
codec="--codec=av1"
|
||||||
|
verbose=
|
||||||
|
core_id=1
|
||||||
|
exp_tool=experimental
|
||||||
|
|
||||||
|
cd $root_dir/aom
|
||||||
|
commit=`git log --pretty=%h -1`
|
||||||
|
|
||||||
|
cd $test_dir
|
||||||
|
|
||||||
|
elog=av1enc_log_p_$profile.txt
|
||||||
|
dlog=av1dec_log_p_$profile.txt
|
||||||
|
bstream=av1_p_$profile.$commit.webm
|
||||||
|
|
||||||
|
profile=0
|
||||||
|
tune_content=
|
||||||
|
col_num=0
|
||||||
|
laginframes=19
|
||||||
|
speed=0
|
||||||
|
|
||||||
|
taskset -c $core_id ./aomenc $verbose -o /dev/shm/"$bstream" $video $codec --limit=$frames --profile=$profile $bitdepth --fps=$fps $tune_content --target-bitrate=$bitrate --skip=0 -p 2 --good --cpu-used=$speed --lag-in-frames=$laginframes --min-q=0 --max-q=63 --auto-alt-ref=1 --kf-max-dist=150 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=2000 --arnr-maxframes=7 --arnr-strength=5 --sharpness=0 --undershoot-pct=100 --overshoot-pct=100 --frame-parallel=0 --tile-columns=$col_num --test-decode=warn --psnr &>> $elog
|
||||||
|
|
||||||
|
# Note: $2 is the time unit, ms or us
|
||||||
|
etime=`cat $elog | awk 'NR==2 {NF-=3; print $NF}'`
|
||||||
|
# efps=`cat $elog | grep 'Pass 2/2' | grep 'fps)' | sed -e 's/^.*b\/s//' | awk '{print $3}'`
|
||||||
|
# efps=`echo $efps | sed 's/(//'`
|
||||||
|
|
||||||
|
psnr=`cat $elog | grep 'PSNR' | awk '{print $5, $6, $7, $8, $9}'`
|
||||||
|
tmp=`cat $elog | grep mismatch`
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
eflag=e_ok
|
||||||
|
else
|
||||||
|
eflag=mismatch
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "AV1: $(basename $video), profile=$profile bitrate=$bitrate frames=$frames speed=$speed"
|
||||||
|
|
||||||
|
taskset -c $core_id ./aomdec /dev/shm/"$bstream" $codec --i420 --noblit --summary 2>&1 &>> $dlog
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
dflag=fault
|
||||||
|
else
|
||||||
|
dflag=d_ok
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Note: $8 is the time unit ms or us
|
||||||
|
dfps=`awk '{print $9}' < $dlog`
|
||||||
|
dfps=`echo $dfps | sed 's/(//'`
|
||||||
|
|
||||||
|
dpercent=`echo "($dfps - $pdfps) / $pdfps * 100" | bc -l`
|
||||||
|
dpercent=${dpercent:0:5}
|
||||||
|
|
||||||
|
epercent=`echo "($petime - $etime) / $petime * 100" | bc -l`
|
||||||
|
epercent=${epercent:0:5}
|
||||||
|
|
||||||
|
echo -e '\t'"Enc fps Dec fps PSNR"'\t\t\t\t'"Enc status Dec status dup(%) eup(%)"
|
||||||
|
echo -e '\t'$etime" "$dfps" "$psnr'\t'$eflag" "$dflag" "$dpercent" "$epercent
|
||||||
|
printf "\n"
|
||||||
|
|
||||||
|
# Output a html log file for email
|
||||||
|
echo "<p> AV1: $(basename $video), bitrate=$bitrate profile=$profile frames=$frames speed=$speed </p>" >> $log_path/$html_log_file
|
||||||
|
echo "<table style=\"width:100%\">" >> $log_path/$html_log_file
|
||||||
|
echo " <tr>" >> $log_path/$html_log_file
|
||||||
|
echo " <th>Enc Time (ms)</th>" >> $log_path/$html_log_file
|
||||||
|
echo " <th>Enc Speedup(%)</th>" >> $log_path/$html_log_file
|
||||||
|
echo " <th>Dec FPS</th>" >> $log_path/$html_log_file
|
||||||
|
echo " <th>Dec Speedup(%)</th>" >> $log_path/$html_log_file
|
||||||
|
echo " </tr>" >> $log_path/$html_log_file
|
||||||
|
echo " <tr>" >> $log_path/$html_log_file
|
||||||
|
echo " <td>$etime</td>" >> $log_path/$html_log_file
|
||||||
|
echo " <td>$epercent</td>" >> $log_path/$html_log_file
|
||||||
|
echo " <td>$dfps</td>" >> $log_path/$html_log_file
|
||||||
|
echo " <td>$dpercent</td>" >> $log_path/$html_log_file
|
||||||
|
echo " </tr>" >> $log_path/$html_log_file
|
||||||
|
echo "</table>" >> $log_path/$html_log_file
|
42
scripts/aomenc_nightly_speed.sh
Executable file
42
scripts/aomenc_nightly_speed.sh
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
script_path=~/Dev/sandbox/libvpx/scripts
|
||||||
|
|
||||||
|
av1_code=~/Dev/av1d
|
||||||
|
log_path=~/Dev/log
|
||||||
|
|
||||||
|
date_str=`date -d tomorrow +%b_%d_%Y`
|
||||||
|
|
||||||
|
log_file=aomenc_$date_str.txt
|
||||||
|
html_log_file=aomenc_$date_str.html
|
||||||
|
|
||||||
|
prev_date_str=`date +%b_%d_%Y`
|
||||||
|
prev_log_file=aomenc_$prev_date_str.txt
|
||||||
|
|
||||||
|
test_dir=~/Dev/nightly
|
||||||
|
rm $test_dir/*
|
||||||
|
|
||||||
|
$script_path/gen_html_header.sh > $log_path/$html_log_file
|
||||||
|
|
||||||
|
echo "<p>" >> $log_path/$html_log_file
|
||||||
|
$script_path/sync_codebase.sh $av1_code/aom >> $log_path/$html_log_file 2>&1
|
||||||
|
echo "</p>" >> $log_path/$html_log_file
|
||||||
|
|
||||||
|
echo "<p>" >> $log_path/$html_log_file
|
||||||
|
$script_path/aom_conf_build.sh $av1_code >> $log_path/$html_log_file 2>&1
|
||||||
|
echo "</p>" >> $log_path/$html_log_file
|
||||||
|
|
||||||
|
pdfps=`cat $log_path/$prev_log_file | grep e_ok | awk '{print $2}' | awk 'NR==1 {print $1}'`
|
||||||
|
petime=`cat $log_path/$prev_log_file | grep e_ok | awk '{print $1}' | awk 'NR==1 {print $1}'`
|
||||||
|
$script_path/aom_nightly_speed.sh $av1_code $pdfps $petime $html_log_file >> $log_path/$log_file 2>&1
|
||||||
|
|
||||||
|
# Send an email to coworkers
|
||||||
|
users=luoyi
|
||||||
|
host_name=`hostname`
|
||||||
|
sender=luoyi
|
||||||
|
cc_list="--cc=yunqingwang,vpx-eng"
|
||||||
|
|
||||||
|
$script_path/gen_html_footer.sh >> $log_path/$html_log_file
|
||||||
|
|
||||||
|
sendgmr --to=$users $cc_list --subject="AV1 Encoder Nightly Report" --from=$sender --reply_to=$sender --html_file=/usr/local/google/home/luoyi/Dev/log/$html_log_file --body_file=/usr/local/google/home/luoyi/Dev/log/$html_log_file
|
8
scripts/into_tree.sh
Normal file
8
scripts/into_tree.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
video=~/Dev/samples/videos/midres/into_tree_480p.y4m
|
||||||
|
wide=
|
||||||
|
high=
|
||||||
|
frames=2
|
||||||
|
bitrate=600
|
||||||
|
fps="50/1"
|
Reference in New Issue
Block a user