rtc: Skip intra based on LowSad, for speed 8

For superblocks with LowSad avoid intra test,
but only for spatial variance above threshold
to minimize visual impact.

bdrate negligible: avg/max ~0.03/0.24% on rtc_derf.
speedup ~2-3% on apprtc qvga clip.

Change-Id: I52357e49e1c4c6d14b0b91f19c29f2313872c923
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index a118001..d3880cd 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -1530,7 +1530,7 @@
       quant_params->base_qindex, quant_params->y_dc_delta_q,
       cm->seq_params.bit_depth);
   int64_t inter_mode_thresh = RDCOST(x->rdmult, intra_cost_penalty, 0);
-  const int perform_intra_pred = cpi->sf.rt_sf.check_intra_pred_nonrd;
+  int perform_intra_pred = cpi->sf.rt_sf.check_intra_pred_nonrd;
   int use_modeled_non_rd_cost = 0;
   int enable_filter_search = 0;
   InterpFilter default_interp_filter = EIGHTTAP_REGULAR;
@@ -1994,6 +1994,9 @@
     // For big blocks worth checking intra (since only DC will be checked),
     // even if best_early_term is set.
     if (bsize >= BLOCK_32X32) best_early_term = 0;
+  } else if (cpi->sf.rt_sf.source_metrics_sb_nonrd &&
+             x->content_state_sb == kLowSad) {
+    perform_intra_pred = 0;
   }
 
   if (best_rdc.rdcost == INT64_MAX ||
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index e6d25f3..387e63b 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -253,7 +253,6 @@
     if (speed >= 8) {
       sf->rt_sf.use_modeled_non_rd_cost = 0;
       sf->rt_sf.use_nonrd_filter_search = 0;
-      sf->rt_sf.source_metrics_sb_nonrd = 0;
     }
   }
   if (is_360p_or_larger) {