summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Finegan <tomfinegan@google.com>2015-06-23 18:30:52 -0700
committerTom Finegan <tomfinegan@google.com>2015-06-23 18:30:52 -0700
commit8281a19465a6bfcffa9ba1935bed1417e6b16ad6 (patch)
tree6be43ff0682635ba496cf6473848fac369f73ee7
parent7555e2b8225e9387e30288cd4eb5b26414badf14 (diff)
downloadlibvpx-8281a19465a6bfcffa9ba1935bed1417e6b16ad6.tar
libvpx-8281a19465a6bfcffa9ba1935bed1417e6b16ad6.tar.gz
libvpx-8281a19465a6bfcffa9ba1935bed1417e6b16ad6.tar.bz2
libvpx-8281a19465a6bfcffa9ba1935bed1417e6b16ad6.zip
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
-rwxr-xr-xtest/tools_common.sh1
-rwxr-xr-xtest/vpxenc.sh35
2 files changed, 35 insertions, 1 deletions
diff --git a/test/tools_common.sh b/test/tools_common.sh
index 60424ed2d..0bdcc08d7 100755
--- a/test/tools_common.sh
+++ b/test/tools_common.sh
@@ -409,6 +409,7 @@ YUV_RAW_INPUT_WIDTH=352
YUV_RAW_INPUT_HEIGHT=288
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.
trap cleanup EXIT
diff --git a/test/vpxenc.sh b/test/vpxenc.sh
index 1faa1452e..bf551a890 100755
--- a/test/vpxenc.sh
+++ b/test/vpxenc.sh
@@ -60,6 +60,10 @@ y4m_input_non_square_par() {
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
# to vp8 if unspecified.
vpxenc_rt_params() {
@@ -68,7 +72,7 @@ vpxenc_rt_params() {
--buf-initial-sz=500
--buf-optimal-sz=600
--buf-sz=1000
- --cpu-used=-5
+ --cpu-used=-6
--end-usage=cbr
--error-resilient=1
--kf-max-dist=90000
@@ -258,6 +262,34 @@ vpxenc_vp9_webm_rt() {
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() {
if [ "$(vpxenc_can_encode_vp9)" = "yes" ] && \
[ "$(webm_io_available)" = "yes" ]; then
@@ -357,6 +389,7 @@ vpxenc_tests="vpxenc_vp8_ivf
vpxenc_vp9_ivf
vpxenc_vp9_webm
vpxenc_vp9_webm_rt
+ vpxenc_vp9_webm_rt_multithread_tiled
vpxenc_vp9_webm_2pass
vpxenc_vp9_ivf_lossless
vpxenc_vp9_ivf_minq0_maxq0