Extend skip_newmv_in_drl to speed 4

This gave a small speedup for res <= 480p at speed 4.

        avg_psnr: ovr_psnr: ssim:  speed:
lowres2: 0.021     0.022   -0.005  0.585
midres2: 0.017    -0.019   -0.003  0.602

STATS_CHANGED

Change-Id: I9b722aa4ca36c7fd81bed578ac4095a2d567f833
diff --git a/av1/encoder/motion_search_facade.c b/av1/encoder/motion_search_facade.c
index 048298d..07485bd 100644
--- a/av1/encoder/motion_search_facade.c
+++ b/av1/encoder/motion_search_facade.c
@@ -282,9 +282,12 @@
 
       // Terminate the evaluation of current ref_mv_idx based on bestsme and
       // drl_cost.
-      if (cpi->sf.inter_sf.skip_newmv_in_drl == 3 &&
-          mode_info[prev_ref_idx].full_mv_bestsme <
-              mode_info[ref_mv_idx].full_mv_bestsme &&
+      const int psme = mode_info[prev_ref_idx].full_mv_bestsme;
+      if (psme == INT_MAX) continue;
+      const int thr =
+          cpi->sf.inter_sf.skip_newmv_in_drl == 3 ? (psme + (psme >> 2)) : psme;
+      if (cpi->sf.inter_sf.skip_newmv_in_drl >= 3 &&
+          mode_info[ref_mv_idx].full_mv_bestsme > thr &&
           mode_info[prev_ref_idx].drl_cost < mode_info[ref_mv_idx].drl_cost) {
         best_mv->as_int = INVALID_MV;
         return;
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 0973f48..d7eac2b 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -681,6 +681,7 @@
     }
 
     sf->inter_sf.prune_obmc_prob_thresh = INT_MAX;
+    if (is_480p_or_lesser) sf->inter_sf.skip_newmv_in_drl = 3;
 
     if (is_720p_or_larger)
       sf->hl_sf.recode_tolerance = 32;
@@ -698,7 +699,7 @@
     }
     if (is_720p_or_larger) sf->hl_sf.recode_tolerance = 40;
 
-    sf->inter_sf.skip_newmv_in_drl = 3;
+    sf->inter_sf.skip_newmv_in_drl = 4;
   }
 
   if (speed >= 6) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 6772bd2..e4ff3d2 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -678,8 +678,8 @@
   //     other ref_mv.
   // The speed feature equaling 1 means using subpel mv in the comparison.
   // The speed feature equaling 2 means using fullpel mv in the comparison.
-  // If the speed feature equals 3, skip the current ref_mv in NEW_MV mode based
-  // on known full_mv bestsme and drl cost.
+  // If the speed feature >= 3, skip the current ref_mv in NEW_MV mode based on
+  // known full_mv bestsme and drl cost.
   int skip_newmv_in_drl;
 
   // This speed feature checks duplicate ref MVs among NEARESTMV, NEARMV,