rtc: Disable qp-based gf refresh at speed 5

Added a speed feature for qp-based gf refresh, and turned it off at
speed 5 since it didn't work well while gf_boost > 0. This change
didn't affect performance much, and brought coding gains if using
"--gf-cbr-boost" > 0. Borg test result at rt speed 5:
         gf_boost: avg_psnr: ovr_psnr: ssim: encoding_spdup:
rtc_derf:
            0       -0.021    -0.012   0.038   -0.474
           50       -0.191    -0.19   -0.201   -0.353
          100       -0.48     -0.391  -0.594   -0.248
          200       -0.807    -0.565  -1.26    -0.021
rtc set:
            0        0        -0.04   -0.006   -0.459
           50       -0.188    -0.227  -0.21    -0.393
          100       -0.279    -0.248  -0.314   -0.385
          200       -0.551    -0.398  -0.77    -0.221

STATS_CHANGED for rt speed 5

Change-Id: I97c4085c096490b61189339f00056a691adc558b
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index ae264be..231c684 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -2456,7 +2456,8 @@
   // selected for this frame. This is for CBR with 1 layer/non-svc RTC mode.
   if (!frame_is_intra_only(cm) && cpi->oxcf.rc_cfg.mode == AOM_CBR &&
       cpi->oxcf.mode == REALTIME && svc->number_spatial_layers == 1 &&
-      svc->number_temporal_layers == 1 && !cpi->rc.rtc_external_ratectrl)
+      svc->number_temporal_layers == 1 && !cpi->rc.rtc_external_ratectrl &&
+      sf->rt_sf.gf_refresh_based_on_qp)
     av1_adjust_gf_refresh_qp_one_pass_rt(cpi);
 
 #if CONFIG_COLLECT_COMPONENT_TIMING
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 49d154e..8c24706 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1465,6 +1465,8 @@
     sf->tx_sf.tx_type_search.fast_inter_tx_type_prob_thresh = 0;
     sf->inter_sf.prune_warped_prob_thresh = 8;
     sf->inter_sf.extra_prune_warped = 1;
+
+    sf->rt_sf.gf_refresh_based_on_qp = 1;
     sf->rt_sf.prune_inter_modes_wrt_gf_arf_based_on_sad = 1;
     sf->rt_sf.var_part_split_threshold_shift = 7;
   }
@@ -1882,6 +1884,7 @@
   rt_sf->force_half_pel_block = 0;
   rt_sf->prune_intra_mode_based_on_mv_range = 0;
   rt_sf->var_part_split_threshold_shift = 7;
+  rt_sf->gf_refresh_based_on_qp = 0;
 }
 
 void av1_set_speed_features_framesize_dependent(AV1_COMP *cpi, int speed) {
diff --git a/av1/encoder/speed_features.h b/av1/encoder/speed_features.h
index 025ce2d..690c030 100644
--- a/av1/encoder/speed_features.h
+++ b/av1/encoder/speed_features.h
@@ -1384,6 +1384,9 @@
   // based partitioning. The minimum values should be 7 to avoid left shifting
   // by a negative number.
   int var_part_split_threshold_shift;
+
+  // Enable GF refresh based on Q value.
+  int gf_refresh_based_on_qp;
 } REAL_TIME_SPEED_FEATURES;
 
 /*!\endcond */