summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_thread.h
AgeCommit message (Collapse)Author
2014-07-07Move vp9_thread.* to common.hkuang
Prepare for frame parallel decoding, the reference count buffers need to be protected by mutex. Move vp9_thread.* to common folder so that those buffers could use cross-platform mutex from vp9_thread.*. Change-Id: I541277cf15eefed6641555944f67f4a0bcdc8154
2014-07-01update vp9_thread.[hc]James Zern
pull the latest from WebP, which adds a worker interface abstraction allowing an application to override init/reset/sync/launch/execute/end this has the side effect of removing a harmless, but annoying, TSan warning. Original source: http://git.chromium.org/webm/libwebp.git 100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c 100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h Local modifications: - s/WebP/VP9/g - camelcase functions -> lower with _'s - associate '*' with the variable, not the type Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
2014-01-31vp9 decoder: row-based multi-threaded loopfilterYunqing Wang
Implemented parallel loopfiltering, which uses existing tile- decoding threads. Each thread works on one row, and when that row is loopfiltered, it moves to next unattended row. To ensure the correct filtering order, threads are synchronized and one superblock is filtered only if the superblocks it depends on are filtered already. To reduce synchronization overhead and speed up the decoder, we use nsync > 1 for high resolution. Performance tests: 1. on desktop: 8-tile 4k video using 8 threads, speedup: 70% - 80% 4-tile HD video using 4 threads, speedup: ~35% 2. on mobile device(Nexus 7): 4-tile 1080p video using 4 threads, speedup: 18% - 25% 4-tile 1080p video using 2 threads, speedup: 10% - 15% Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
2014-01-23vp9/decoder: add extern "C" to headersJames Zern
Change-Id: I0e6aa00f220280e22d30d098545265835d0c1079
2013-10-17vp9_thread: add vp9_worker_execute()James Zern
cherry-picked from: commit 988b70844e03efcfcc075a9bc25d846670494f36 Author: Pascal Massimino <pascal.massimino@gmail.com> Date: Fri Aug 2 11:15:16 2013 -0700 add WebPWorkerExecute() for convenient bypass This is mainly for re-using the worker structs without using the thread. Change-Id: I8e1be29e53874ef425b15c192fb68036b4c0a359 Original source: http://git.chromium.org/webm/libwebp.git 100644 blob c0d318aee628fdf9ba4876451a28aa978f1066b8 src/utils/thread.c 100644 blob c2b92c9fe353f8e514f78922f3d237204a9cbc66 src/utils/thread.h Change-Id: I13fe92b1e94062bb99fdeeb7cb0b4b0575d27793
2013-10-01vp9_thread nolintify lint issue I can't fix easilyJim Bankoski
Change-Id: Ib19dabe697656e4d7e8403d91bedca7cd31d36bf
2013-09-29cpplint issues vp9_thread.hJim Bankoski
apparently we are going to have trouble completely removing lint issue in this file. It needs a bit more work. We need to include vpx_config.h to know whether we need to have multi threading . and that means vpx_config.h has to come before the system headers. ( a violation ) Change-Id: I023feeab1bf5643b79dccc3b80a4a9ad42689e7b Signed-off-by: Jim Bankoski <jimbankoski@google.com>
2013-08-05vp9/decoder: add thread workerJames Zern
vp9/decoder/vp9_thread.[hc] Original source: http://git.chromium.org/webm/libwebp.git 100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff src/utils/thread.c 100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d src/utils/thread.h Local modifications: - s/WebP/VP9/g - camelcase functions -> lower with _'s Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe