summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.h
diff options
context:
space:
mode:
authorRanjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com>2017-02-10 16:25:50 +0530
committerYunqing Wang <yunqingwang@google.com>2017-02-15 00:49:34 +0000
commit71061e9332c05324007e7f6c900285273793366d (patch)
treef83b05b6c4072b852b81cc258a4031516fee0016 /vp9/encoder/vp9_encoder.h
parenteeb288d568fde3512e4362d73e4d684af3bcf87c (diff)
downloadlibvpx-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_encoder.h')
-rw-r--r--vp9/encoder/vp9_encoder.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encoder.h b/vp9/encoder/vp9_encoder.h
index 65f3f86de..675512618 100644
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -276,6 +276,10 @@ typedef struct TileDataEnc {
int ex_search_count;
FIRSTPASS_DATA fp_data;
VP9RowMTSync row_mt_sync;
+#if CONFIG_MULTITHREAD
+ pthread_mutex_t *search_count_mutex;
+ pthread_mutex_t *enc_row_mt_mutex;
+#endif
} TileDataEnc;
typedef struct RowMTInfo {
@@ -897,6 +901,8 @@ VP9_LEVEL vp9_get_level(const Vp9LevelSpec *const level_spec);
void vp9_new_framerate(VP9_COMP *cpi, double framerate);
+void vp9_set_new_mt(VP9_COMP *cpi);
+
#define LAYER_IDS_TO_IDX(sl, tl, num_tl) ((sl) * (num_tl) + (tl))
#ifdef __cplusplus