Commit 8281a194 authored by Tom Finegan's avatar Tom Finegan

vpxenc.sh: Add basic vp9 multithread encode test.

- Change default real time speed to -6.
- Add vpxenc_vp9_webm_rt_multithread, which encodes
  niklas_1280_720_30.y4m with 2 to 4 threads using 2 to 4
  tile columns.

Change-Id: I4d86c3360aec67ae5d1ba82eb6e0f0be8068b5af
parent 7555e2b8
...@@ -409,6 +409,7 @@ YUV_RAW_INPUT_WIDTH=352 ...@@ -409,6 +409,7 @@ YUV_RAW_INPUT_WIDTH=352
YUV_RAW_INPUT_HEIGHT=288 YUV_RAW_INPUT_HEIGHT=288
Y4M_NOSQ_PAR_INPUT="${LIBVPX_TEST_DATA_PATH}/park_joy_90p_8_420_a10-1.y4m" Y4M_NOSQ_PAR_INPUT="${LIBVPX_TEST_DATA_PATH}/park_joy_90p_8_420_a10-1.y4m"
Y4M_720P_INPUT="${LIBVPX_TEST_DATA_PATH}/niklas_1280_720_30.y4m"
# Setup a trap function to clean up after tests complete. # Setup a trap function to clean up after tests complete.
trap cleanup EXIT trap cleanup EXIT
......
...@@ -60,6 +60,10 @@ y4m_input_non_square_par() { ...@@ -60,6 +60,10 @@ y4m_input_non_square_par() {
echo ""${Y4M_NOSQ_PAR_INPUT}"" echo ""${Y4M_NOSQ_PAR_INPUT}""
} }
y4m_input_720p() {
echo ""${Y4M_720P_INPUT}""
}
# Echo default vpxenc real time encoding params. $1 is the codec, which defaults # Echo default vpxenc real time encoding params. $1 is the codec, which defaults
# to vp8 if unspecified. # to vp8 if unspecified.
vpxenc_rt_params() { vpxenc_rt_params() {
...@@ -68,7 +72,7 @@ vpxenc_rt_params() { ...@@ -68,7 +72,7 @@ vpxenc_rt_params() {
--buf-initial-sz=500 --buf-initial-sz=500
--buf-optimal-sz=600 --buf-optimal-sz=600
--buf-sz=1000 --buf-sz=1000
--cpu-used=-5 --cpu-used=-6
--end-usage=cbr --end-usage=cbr
--error-resilient=1 --error-resilient=1
--kf-max-dist=90000 --kf-max-dist=90000
...@@ -258,6 +262,34 @@ vpxenc_vp9_webm_rt() { ...@@ -258,6 +262,34 @@ vpxenc_vp9_webm_rt() {
fi fi
} }
vpxenc_vp9_webm_rt_multithread_tiled() {
if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \
[ "$(webm_io_available)" = "yes" ]; then
local readonly output="${VPX_TEST_OUTPUT_DIR}/vp9_rt_multithread_tiled.webm"
local readonly tilethread_min=2
local readonly tilethread_max=4
local readonly num_threads="$(seq ${tilethread_min} ${tilethread_max})"
local readonly num_tile_cols="$(seq ${tilethread_min} ${tilethread_max})"
for threads in ${num_threads}; do
for tile_cols in ${num_tile_cols}; do
vpxenc $(y4m_input_720p) \
$(vpxenc_rt_params vp9) \
--threads=${threads} \
--tile-columns=${tile_cols} \
--output="${output}"
done
done
if [ ! -e "${output}" ]; then
elog "Output file does not exist."
return 1
fi
rm "${output}"
fi
}
vpxenc_vp9_webm_2pass() { vpxenc_vp9_webm_2pass() {
if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \ if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \
[ "$(webm_io_available)" = "yes" ]; then [ "$(webm_io_available)" = "yes" ]; then
...@@ -357,6 +389,7 @@ vpxenc_tests="vpxenc_vp8_ivf ...@@ -357,6 +389,7 @@ vpxenc_tests="vpxenc_vp8_ivf
vpxenc_vp9_ivf vpxenc_vp9_ivf
vpxenc_vp9_webm vpxenc_vp9_webm
vpxenc_vp9_webm_rt vpxenc_vp9_webm_rt
vpxenc_vp9_webm_rt_multithread_tiled
vpxenc_vp9_webm_2pass vpxenc_vp9_webm_2pass
vpxenc_vp9_ivf_lossless vpxenc_vp9_ivf_lossless
vpxenc_vp9_ivf_minq0_maxq0 vpxenc_vp9_ivf_minq0_maxq0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment