summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_context_tree.h
diff options
context:
space:
mode:
authorYunqing Wang <yunqingwang@google.com>2017-02-27 14:26:15 -0800
committerYunqing Wang <yunqingwang@google.com>2017-03-13 09:54:18 -0700
commit670101439fe4a976fcacf997ff383b6cd6704596 (patch)
tree4c9e27a4a2c4abcdd8d85a9cbf901ff061bd18e5 /vp9/encoder/vp9_context_tree.h
parent42a1b310e14fcf0560bbb76afdc721a0583d6b6b (diff)
downloadlibvpx-670101439fe4a976fcacf997ff383b6cd6704596.tar
libvpx-670101439fe4a976fcacf997ff383b6cd6704596.tar.gz
libvpx-670101439fe4a976fcacf997ff383b6cd6704596.tar.bz2
libvpx-670101439fe4a976fcacf997ff383b6cd6704596.zip
Apply machine learning-based early termination in VP9 partition search
This patch was based on Yang Xian's intern project code. Further modifications were done. 1. Moved machine-learning related parameters into the context structure. 2. Corrected the calculation of sum_eobs. 3. Removed unused parameters and calculations. 4. Made it work with multiple tiles. 5. Added a speed feature for the machine-learning based partition search early termination. 6. Re-organized the code. The patch was rebased to the top-of-tree. Borg test BDRATE result: 4k set: PSNR: +0.144%; SSIM: +0.043%; hdres set: PSNR: +0.149%; SSIM: +0.269%; midres set: PSNR: +0.127%; SSIM: +0.257%; Average speed gain result: 4k clips: 22%; hd clips: 23%; midres clips: 15%. Change-Id: I0220e93a8277e6a7ea4b2c34b605966e3b1584ac
Diffstat (limited to 'vp9/encoder/vp9_context_tree.h')
-rw-r--r--vp9/encoder/vp9_context_tree.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_context_tree.h b/vp9/encoder/vp9_context_tree.h
index 86ba03d69..af1a93a00 100644
--- a/vp9/encoder/vp9_context_tree.h
+++ b/vp9/encoder/vp9_context_tree.h
@@ -71,6 +71,9 @@ typedef struct {
// search loop
MV pred_mv[MAX_REF_FRAMES];
INTERP_FILTER pred_interp_filter;
+
+ // Used for the machine learning-based early termination
+ int sum_eobs;
} PICK_MODE_CONTEXT;
typedef struct PC_TREE {