Refactor tpl handle on intra modes

Streamline the coding mode update operation for both inter and
intra modes in tpl build.

Change-Id: Ia950d7d300438f7db3106be2dea95fdefd69e49a
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index abfa949..3dde8cc 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -351,11 +351,8 @@
   tpl_stats->recrf_dist = AOMMAX(tpl_stats->srcrf_dist, tpl_stats->recrf_dist);
   tpl_stats->recrf_rate = AOMMAX(tpl_stats->srcrf_rate, tpl_stats->recrf_rate);
 
-  if (frame_idx && best_rf_idx != -1) {
-    tpl_stats->mv.as_int = best_mv.as_int;
-    tpl_stats->ref_frame_index =
-        cpi->tpl_frame[frame_idx].ref_map_index[best_rf_idx];
-  }
+  tpl_stats->mv.as_int = best_mv.as_int;
+  tpl_stats->ref_frame_index = best_rf_idx;
 }
 
 static int round_floor(int ref_pos, int bsize_pix) {
@@ -435,8 +432,12 @@
 static AOM_INLINE void tpl_model_update_b(AV1_COMP *cpi, TplDepFrame *tpl_frame,
                                           TplDepStats *tpl_stats_ptr,
                                           int mi_row, int mi_col,
-                                          const BLOCK_SIZE bsize) {
-  TplDepFrame *ref_tpl_frame = &tpl_frame[tpl_stats_ptr->ref_frame_index];
+                                          const BLOCK_SIZE bsize,
+                                          int frame_idx) {
+  if (tpl_stats_ptr->ref_frame_index < 0) return;
+  TplDepFrame *ref_tpl_frame =
+      &tpl_frame[tpl_frame[frame_idx]
+                     .ref_map_index[tpl_stats_ptr->ref_frame_index]];
   TplDepStats *ref_stats_ptr = ref_tpl_frame->tpl_stats_ptr;
 
   const int ref_pos_row = mi_row * MI_SIZE + (tpl_stats_ptr->mv.as_mv.row >> 3);
@@ -493,7 +494,8 @@
 
 static AOM_INLINE void tpl_model_update(AV1_COMP *cpi, TplDepFrame *tpl_frame,
                                         TplDepStats *tpl_stats_ptr, int mi_row,
-                                        int mi_col, const BLOCK_SIZE bsize) {
+                                        int mi_col, const BLOCK_SIZE bsize,
+                                        int frame_idx) {
   const int mi_height = mi_size_high[bsize];
   const int mi_width = mi_size_wide[bsize];
   const int step = 1 << cpi->tpl_stats_block_mis_log2;
@@ -505,7 +507,7 @@
       TplDepStats *tpl_ptr = &tpl_stats_ptr[av1_tpl_ptr_pos(
           cpi, mi_row + idy, mi_col + idx, tpl_frame->stride)];
       tpl_model_update_b(cpi, tpl_frame, tpl_ptr, mi_row + idy, mi_col + idx,
-                         tpl_block_size);
+                         tpl_block_size, frame_idx);
     }
   }
 }
@@ -711,7 +713,7 @@
     for (int mi_col = 0; mi_col < cm->mi_cols; mi_col += mi_width) {
       if (frame_idx) {
         tpl_model_update(cpi, cpi->tpl_frame, tpl_frame->tpl_stats_ptr, mi_row,
-                         mi_col, bsize);
+                         mi_col, bsize, frame_idx);
       }
     }
   }