Consolidate computations needed in the tpl synthesizer

Factor out common computations and remove unneeded ones from the
model synthesizer.

Change-Id: Ic160e70f6f4244066d0ede80f85d4a602be06a5c
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index c7b70ef..3526429 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -164,8 +164,6 @@
 typedef struct TplDepStats {
   int64_t intra_cost;
   int64_t inter_cost;
-  int64_t mc_flow;
-  int64_t mc_dep_cost;
   int64_t srcrf_dist;
   int64_t recrf_dist;
   int64_t srcrf_rate;
@@ -177,7 +175,6 @@
   int64_t rec_rdcost;
   int_mv mv;
   int ref_frame_index;
-  double quant_ratio;
 #if !USE_TPL_CLASSIC_MODEL
   int64_t mc_count;
   int64_t mc_saved;
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index 7b7cfba..5ddbb97 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -410,13 +410,6 @@
   return width * height;
 }
 
-static double iiratio_nonlinear(double iiratio) {
-  double z = 8 * (iiratio - 0.5);
-  double sigmoid = 1.0 / (1.0 + exp(-z));
-  return sigmoid;
-  return iiratio * iiratio;
-}
-
 int av1_tpl_ptr_pos(AV1_COMP *cpi, int mi_row, int mi_col, int stride) {
   const int right_shift = cpi->tpl_stats_block_mis_log2;
 
@@ -473,6 +466,16 @@
   int grid_pos_col_base = round_floor(ref_pos_col, bw) * bw;
   int block;
 
+  int64_t cur_dep_dist = tpl_stats_ptr->recrf_dist - tpl_stats_ptr->srcrf_dist;
+  int64_t mc_dep_dist = (int64_t)(
+      tpl_stats_ptr->mc_dep_dist *
+      ((double)(tpl_stats_ptr->recrf_dist - tpl_stats_ptr->srcrf_dist) /
+       tpl_stats_ptr->recrf_dist));
+  int64_t delta_rate = tpl_stats_ptr->recrf_rate - tpl_stats_ptr->srcrf_rate;
+  int64_t mc_dep_rate =
+      delta_rate_cost(tpl_stats_ptr->mc_dep_rate, tpl_stats_ptr->recrf_dist,
+                      tpl_stats_ptr->srcrf_dist, pix_num);
+
   for (block = 0; block < 4; ++block) {
     int grid_pos_row = grid_pos_row_base + bh * (block >> 1);
     int grid_pos_col = grid_pos_col_base + bw * (block & 0x01);
@@ -483,42 +486,12 @@
           grid_pos_row, grid_pos_col, ref_pos_row, ref_pos_col, block, bsize);
       int ref_mi_row = round_floor(grid_pos_row, bh) * mi_height;
       int ref_mi_col = round_floor(grid_pos_col, bw) * mi_width;
-
-      const double iiratio_nl = iiratio_nonlinear(
-          (double)tpl_stats_ptr->inter_cost / tpl_stats_ptr->intra_cost);
-      tpl_stats_ptr->mc_dep_cost =
-          tpl_stats_ptr->intra_cost + tpl_stats_ptr->mc_flow;
-      int64_t mc_flow =
-          (int64_t)(tpl_stats_ptr->quant_ratio * tpl_stats_ptr->mc_dep_cost *
-                    (1.0 - iiratio_nl));
-
-      int64_t cur_dep_dist =
-          tpl_stats_ptr->recrf_dist - tpl_stats_ptr->srcrf_dist;
-      int64_t mc_dep_dist = (int64_t)(
-          tpl_stats_ptr->mc_dep_dist *
-          ((double)(tpl_stats_ptr->recrf_dist - tpl_stats_ptr->srcrf_dist) /
-           tpl_stats_ptr->recrf_dist));
-
-      int64_t delta_rate =
-          tpl_stats_ptr->recrf_rate - tpl_stats_ptr->srcrf_rate;
-      int64_t mc_dep_rate =
-          delta_rate_cost(tpl_stats_ptr->mc_dep_rate, tpl_stats_ptr->recrf_dist,
-                          tpl_stats_ptr->srcrf_dist, pix_num);
-
-#if !USE_TPL_CLASSIC_MODEL
-      int64_t mc_saved = tpl_stats_ptr->intra_cost - tpl_stats_ptr->inter_cost;
-#endif  // #if !USE_TPL_CLASSIC_MODEL
       const int step = 1 << cpi->tpl_stats_block_mis_log2;
+
       for (int idy = 0; idy < mi_height; idy += step) {
         for (int idx = 0; idx < mi_width; idx += step) {
           TplDepStats *des_stats = &ref_stats_ptr[av1_tpl_ptr_pos(
               cpi, ref_mi_row + idy, ref_mi_col + idx, ref_tpl_frame->stride)];
-          des_stats->mc_flow += (mc_flow * overlap_area) / pix_num;
-#if !USE_TPL_CLASSIC_MODEL
-          des_stats->mc_count += overlap_area << TPL_DEP_COST_SCALE_LOG2;
-          des_stats->mc_saved += (mc_saved * overlap_area) / pix_num;
-#endif  // !USE_TPL_CLASSIC_MODEL
-
           des_stats->mc_dep_dist +=
               ((cur_dep_dist + mc_dep_dist) * overlap_area) / pix_num;
           des_stats->mc_dep_rate +=
@@ -588,7 +561,6 @@
       tpl_ptr->recrf_rate = recrf_rate;
       tpl_ptr->src_rdcost = src_rdcost;
       tpl_ptr->rec_rdcost = rec_rdcost;
-      tpl_ptr->quant_ratio = src_stats->quant_ratio;
       tpl_ptr->mv.as_int = src_stats->mv.as_int;
       tpl_ptr->ref_frame_index = src_stats->ref_frame_index;
       ++tpl_ptr;
@@ -739,8 +711,6 @@
                       &tpl_stats);
 
       // Motion flow dependency dispenser.
-      double quant_ratio = (double)recon_error / sse;
-      tpl_stats.quant_ratio = quant_ratio;
       tpl_model_store(cpi, tpl_frame->tpl_stats_ptr, mi_row, mi_col, bsize,
                       tpl_frame->stride, &tpl_stats);
     }