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_bitstream.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_bitstream.c')
-rw-r--r-- | vp9/encoder/vp9_bitstream.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c index 43c5eaed0..71f85bbe7 100644 --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@ -925,10 +925,11 @@ int vp9_get_refresh_mask(VP9_COMP *cpi) { static int encode_tile_worker(VP9_COMP *cpi, VP9BitstreamWorkerData *data) { MACROBLOCKD *const xd = &data->xd; + const int tile_row = 0; vpx_start_encode(&data->bit_writer, data->dest); write_modes(cpi, xd, &cpi->tile_data[data->tile_idx].tile_info, - &data->bit_writer, 0, data->tile_idx, &data->max_mv_magnitude, - data->interp_filter_selected); + &data->bit_writer, tile_row, data->tile_idx, + &data->max_mv_magnitude, data->interp_filter_selected); vpx_stop_encode(&data->bit_writer); return 1; } |