Skip RD search over lst 2/3 frame for non-nearest neighbor mvs
Skip the rate distortion search over last 2/3 reference frames for
the reference motion vectors derived from non-nearest neighbors.
The overall coding performance change is in the noise range - 0.05%
better. Speed up the encoding process by 20%.
Change-Id: I823b8ca2805ae332f4c9bc8ee255069a82db4331
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 26f7873..53aae07 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -9908,6 +9908,22 @@
mbmi->ref_mv_idx = 1 + ref_idx;
+ if (cpi->sf.reduce_inter_modes) {
+ if (mbmi->ref_frame[0] == LAST2_FRAME ||
+ mbmi->ref_frame[0] == LAST3_FRAME ||
+ mbmi->ref_frame[1] == LAST2_FRAME ||
+ mbmi->ref_frame[1] == LAST3_FRAME) {
+ if (mbmi_ext
+ ->ref_mv_stack[ref_frame_type]
+ [mbmi->ref_mv_idx + idx_offset]
+ .weight < REF_CAT_LEVEL) {
+ *mbmi = backup_mbmi;
+ x->skip = backup_skip;
+ continue;
+ }
+ }
+ }
+
if (comp_pred) {
int ref_mv_idx = mbmi->ref_mv_idx;
// Special case: NEAR_NEWMV and NEW_NEARMV modes use