summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2013-06-10 18:19:25 +0100
committerRonald S. Bultje <rbultje@google.com>2013-06-10 11:03:15 -0700
commitde6ec27d1a13301dd101182c954d3ec0b4e0e31d (patch)
treec7a7ac8108e400fdd267c976934a5ee833e056f1
parentb12a8dac98aa90d08d094d0a3709ef3eddf32092 (diff)
downloadlibvpx-de6ec27d1a13301dd101182c954d3ec0b4e0e31d.tar
libvpx-de6ec27d1a13301dd101182c954d3ec0b4e0e31d.tar.gz
libvpx-de6ec27d1a13301dd101182c954d3ec0b4e0e31d.tar.bz2
libvpx-de6ec27d1a13301dd101182c954d3ec0b4e0e31d.zip
Rd check on segment level reference mode.
Do not allow the rd code to check compound modes if a segment level reference frame is selected. Change-Id: I95f0c57789e0eaceed7caf227e94b4ba3130a06c
-rw-r--r--vp9/encoder/vp9_rdopt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 3d710dcf6..c1a27638e 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -2580,6 +2580,12 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
cpi->rd_threshes[bsize][mode_index] == INT_MAX)
continue;
+ // Do not allow compound prediction if the segment level reference
+ // frame feature is in use as in this case there can only be one reference.
+ if ((vp9_mode_order[mode_index].second_ref_frame > INTRA_FRAME) &&
+ vp9_segfeature_active(xd, segment_id, SEG_LVL_REF_FRAME))
+ continue;
+
x->skip = 0;
this_mode = vp9_mode_order[mode_index].mode;
ref_frame = vp9_mode_order[mode_index].ref_frame;