Enable vp9 row-based multithreading.

Improves current multi-threading performance (for the same number of threads) by:
5%-8% speedup for 2 threads, ~15% for 4 threads on Linux/Mac
with standalone libvpx.
~6% speedup on AppRTC on Linux/Mac with 4 threads.

BUG=None

Review-Url: https://codereview.webrtc.org/2776803002
Cr-Commit-Position: refs/heads/master@{#17432}
This commit is contained in:
jianj
2017-03-28 23:56:08 -07:00
committed by Commit bot
parent acfb017775
commit cb5d1150db

View File

@ -449,6 +449,9 @@ int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) {
// The number tile columns will be capped by the encoder based on image size
// (minimum width of tile column is 256 pixels, maximum is 4096).
vpx_codec_control(encoder_, VP9E_SET_TILE_COLUMNS, (config_->g_threads >> 1));
// Turn on row-based multithreading.
vpx_codec_control(encoder_, VP9E_SET_ROW_MT, 1);
#if !defined(WEBRTC_ARCH_ARM) && !defined(WEBRTC_ARCH_ARM64) && \
!defined(ANDROID)
// Note denoiser is still off by default until further testing/optimization,