diff options
author | Ranjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com> | 2017-02-10 16:25:50 +0530 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2017-02-15 00:49:34 +0000 |
commit | 71061e9332c05324007e7f6c900285273793366d (patch) | |
tree | f83b05b6c4072b852b81cc258a4031516fee0016 /vp9/encoder/vp9_speed_features.c | |
parent | eeb288d568fde3512e4362d73e4d684af3bcf87c (diff) | |
download | libvpx-71061e9332c05324007e7f6c900285273793366d.tar libvpx-71061e9332c05324007e7f6c900285273793366d.tar.gz libvpx-71061e9332c05324007e7f6c900285273793366d.tar.bz2 libvpx-71061e9332c05324007e7f6c900285273793366d.zip |
Row based multi-threading of encoding stage
(Yunqing Wang)
This patch implements the row-based multi-threading within tiles in
the encoding pass, and substantially speeds up the multi-threaded
encoder in VP9.
Speed tests at speed 1 on STDHD(using 4 tiles) set show that the
average speedups of the encoding pass(second pass in the 2-pass
encoding) is 7% while using 2 threads, 16% while using 4 threads,
85% while using 8 threads, and 116% while using 16 threads.
Change-Id: I12e41dbc171951958af9e6d098efd6e2c82827de
Diffstat (limited to 'vp9/encoder/vp9_speed_features.c')
-rw-r--r-- | vp9/encoder/vp9_speed_features.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c index 9ce756efe..09e91fc17 100644 --- a/vp9/encoder/vp9_speed_features.c +++ b/vp9/encoder/vp9_speed_features.c @@ -585,6 +585,15 @@ void vp9_set_speed_features_framesize_dependent(VP9_COMP *cpi) { rd->thresh_mult_sub8x8[i] = INT_MAX; } } + + // With row based multi-threading, the following speed features + // have to be disabled to guarantee that bitstreams encoded with single thread + // and multiple threads match + if (cpi->oxcf.ethread_bit_match) { + sf->adaptive_rd_thresh = 0; + sf->allow_exhaustive_searches = 0; + sf->adaptive_pred_interp_filter = 0; + } } void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { @@ -747,4 +756,13 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) { if (!cpi->oxcf.frame_periodic_boost) { sf->max_delta_qindex = 0; } + + // With row based multi-threading, the following speed features + // have to be disabled to guarantee that bitstreams encoded with single thread + // and multiple threads match + if (cpi->oxcf.ethread_bit_match) { + sf->adaptive_rd_thresh = 0; + sf->allow_exhaustive_searches = 0; + sf->adaptive_pred_interp_filter = 0; + } } |