vp9_ethread: the tile-based multi-threaded encoder
authorYunqing Wang <yunqingwang@google.com>
Tue, 2 Dec 2014 23:47:41 +0000 (15:47 -0800)
committerYunqing Wang <yunqingwang@google.com>
Thu, 4 Dec 2014 19:21:34 +0000 (11:21 -0800)
commiteba9c762a1710e29967207a1df092ae0eca40313
tree4afa8eb11f745a3ef28404fb9d7d7b5974422cad
parentbf758b6afa7f006f3c8efdd445c82b6d6617b1c3
vp9_ethread: the tile-based multi-threaded encoder

Currently, VP9 supports column-tile encoding, which allows a frame
to be encoded in multiple column tiles independently. The number of
column tiles are set by encoder option "--tile-columns". This
provides a way to encode a frame in parallel.

Based on previous set of patches, this patch implemented the tile-
based multi-threaded encoder. Each thread processes one or more
tiles.

Usage:
For HD clips:
--tile-columns=2 --threads=1/2/3/4

While using 4 threads, tests showed that the encoder achieved
2.3X - 2.5X speedup at good-quality speed 3, and 2X speedup at
realtime speed 5.

Change-Id: Ied987f8f2618b1283a8643ad255e88341733c9d4
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 [new file with mode: 0644]
vp9/encoder/vp9_ethread.h [new file with mode: 0644]
vp9/vp9_cx_iface.c
vp9/vp9cx.mk