From cb5d1150dbf7b8de6094680437ff3c809b233161 Mon Sep 17 00:00:00 2001 From: jianj Date: Tue, 28 Mar 2017 23:56:08 -0700 Subject: [PATCH] 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} --- webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc index 6e7e468123..4d7df867a2 100644 --- a/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc @@ -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,