Add assert to ensure NEARESTMV or NEWMV modes are not skipped
authorCherma Rajan A <cherma.rajan@ittiam.com>
Tue, 11 Apr 2023 09:20:18 +0000 (14:50 +0530)
committerCherma Rajan A <cherma.rajan@ittiam.com>
Tue, 11 Apr 2023 11:45:08 +0000 (17:15 +0530)
Added an assert for prune_single_mode_based_on_mv_diff_mode_rate
speed feature. This ensures NEARMV or ZEROMV modes are pruned
only when NEARESTMV and NEWMV modes are not early terminated.

Change-Id: Id8b03eef6d1ef3f16714a9cbfde0c171c0c6fe0b

vp9/encoder/vp9_rdopt.c

index 05811bd..9121eea 100644 (file)
@@ -2967,8 +2967,14 @@ static int64_t handle_inter_mode(
     // rate.
     if (skip_single_mode_based_on_mode_rate(mode_mv, single_mode_rate,
                                             this_mode, refs[0], *rate2,
-                                            best_mode_index))
+                                            best_mode_index)) {
+      // Check when the single inter mode is pruned, NEARESTMV or NEWMV modes
+      // are not early terminated. This ensures all single modes are not getting
+      // skipped when the speed feature is enabled.
+      assert(single_mode_rate[INTER_OFFSET(NEARESTMV)] != INT_MAX ||
+             single_mode_rate[INTER_OFFSET(NEWMV)] != INT_MAX);
       return INT64_MAX;
+    }
   }
   if (RDCOST(x->rdmult, x->rddiv, *rate2, 0) > ref_best_rd &&
       mi->mode != NEARESTMV)