From: Paul Wilkins Date: Mon, 10 Jun 2013 17:19:25 +0000 (+0100) Subject: Rd check on segment level reference mode. X-Git-Tag: v1.3.0~1104^2~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=de6ec27d1a13301dd101182c954d3ec0b4e0e31d;p=libvpx 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 --- 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;