Row based multi-threading of encoding stage
authorRanjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com>
Fri, 10 Feb 2017 10:55:50 +0000 (16:25 +0530)
committerYunqing Wang <yunqingwang@google.com>
Wed, 15 Feb 2017 00:49:34 +0000 (00:49 +0000)
commit71061e9332c05324007e7f6c900285273793366d
treef83b05b6c4072b852b81cc258a4031516fee0016
parenteeb288d568fde3512e4362d73e4d684af3bcf87c
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
16 files changed:
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_block.h
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodeframe.h
vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_encoder.h
vp9/encoder/vp9_ethread.c
vp9/encoder/vp9_ethread.h
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_multi_thread.c
vp9/encoder/vp9_pickmode.c
vp9/encoder/vp9_rd.c
vp9/encoder/vp9_rd.h
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_speed_features.c
vp9/vp9_cx_iface.c