[NORMATIVE] Enable mfmv for low latency settings Tested in the low latency setting. Comparing the three options: (1). Cut off temporal mv altogether. (2). Use collocated mv referncing. (3). Use mfmv referencing. The current baseline is using (1). The results are: (2) improves the compression performance over (1) by -0.59% for lowres and -0.65% for midres. (3) improves over (1) by -1.05% for lowres and -1.43% for midres BUG=aomedia:1403 Change-Id: Ie683110ecbe16131f8aea123bca490f8897ebdd8
diff --git a/av1/common/mvref_common.c b/av1/common/mvref_common.c index 4936c2c..67c26c0 100644 --- a/av1/common/mvref_common.c +++ b/av1/common/mvref_common.c
@@ -1731,6 +1731,7 @@ int gld_buf_idx = cm->frame_refs[GOLDEN_FRAME - LAST_FRAME].idx; int alt_buf_idx = cm->frame_refs[ALTREF_FRAME - LAST_FRAME].idx; int lst_buf_idx = cm->frame_refs[LAST_FRAME - LAST_FRAME].idx; + int lst2_buf_idx = cm->frame_refs[LAST2_FRAME - LAST_FRAME].idx; int bwd_buf_idx = cm->frame_refs[BWDREF_FRAME - LAST_FRAME].idx; int alt2_buf_idx = cm->frame_refs[ALTREF2_FRAME - LAST_FRAME].idx; @@ -1782,6 +1783,12 @@ if (alt_frame_index > cur_frame_index && ref_stamp >= 0) if (motion_field_projection(cm, ALTREF_FRAME, ref_stamp, 0)) --ref_stamp; + + if (ref_stamp >= 0 && lst_buf_idx >= 0) + if (motion_field_projection(cm, LAST_FRAME, ref_stamp, 2)) --ref_stamp; + + if (ref_stamp >= 0 && lst2_buf_idx >= 0) + if (motion_field_projection(cm, LAST2_FRAME, ref_stamp, 2)) --ref_stamp; } #endif // CONFIG_MFMV