Fix issues related to adaptive rd thresh

         Encode Time      Quality Impact(%)
Preset    reduction(%)        (AWCY)
  2          0.48            0.00
  3          1.29            0.07
  4          1.06            0.04

STATS_CHANGED

Change-Id: I00fe62bf17a65d9093981c1c5cff64dd8f4bb4d6
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index 0e18b88..91a912d 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -1322,10 +1322,17 @@
   if (rd_thresh > 0) {
     const int top_mode = MAX_MODES;
     int mode;
+    BLOCK_SIZE min_size;
+    BLOCK_SIZE max_size;
+    if (bsize <= cm->seq_params.sb_size) {
+      min_size = AOMMAX(bsize - 1, BLOCK_4X4);
+      max_size = AOMMIN(bsize + 2, (int)cm->seq_params.sb_size);
+    } else {
+      // TODO(any): Experiment with threshold update for parent/child blocks
+      min_size = bsize;
+      max_size = bsize;
+    }
     for (mode = 0; mode < top_mode; ++mode) {
-      const BLOCK_SIZE min_size = AOMMAX(bsize - 1, BLOCK_4X4);
-      const BLOCK_SIZE max_size =
-          AOMMIN(bsize + 2, (int)cm->seq_params.sb_size);
       BLOCK_SIZE bs;
       for (bs = min_size; bs <= max_size; ++bs) {
         int *const fact = &factor_buf[bs][mode];