Search wedge index once per eligible coding block

Conduct the wedge index search once for each eligible coding block.
Use the resulting wedge index for motion search over other reference
frame pairs. Local test in speed 1 shows 10-15% speed-up. The average
compression performance loss is:

        overall PSNR   SSIM
lowres    0.10%        0.14%
midres2   0.12%        0.15%

STATS_CHANGED

Change-Id: I336f535926099c338e3385a36bce179888948077
diff --git a/av1/encoder/compound_type.c b/av1/encoder/compound_type.c
index 14660ff..6594bce 100644
--- a/av1/encoder/compound_type.c
+++ b/av1/encoder/compound_type.c
@@ -1355,9 +1355,8 @@
       int best_rs2 = 0;
       int best_rate_mv = *rate_mv;
       const int wedge_mask_size = get_wedge_types_lookup(bsize);
-      int ref_frame = av1_ref_frame_type(mbmi->ref_frame);
-      int need_mask_search = args->wedge_index[ref_frame] == -1 ||
-                             !have_newmv_in_inter_mode(this_mode);
+      int need_mask_search =
+          args->wedge_index == -1 || !have_newmv_in_inter_mode(this_mode);
 
       for (int wedge_mask = 0; wedge_mask < wedge_mask_size && need_mask_search;
            ++wedge_mask) {
@@ -1400,19 +1399,19 @@
 
       if (need_mask_search) {
         if (have_newmv_in_inter_mode(this_mode)) {
-          args->wedge_index[ref_frame] = best_mask_index;
-          args->wedge_sign[ref_frame] = best_wedge_sign;
+          args->wedge_index = best_mask_index;
+          args->wedge_sign = best_wedge_sign;
         }
       } else {
-        mbmi->interinter_comp.wedge_index = args->wedge_index[ref_frame];
-        mbmi->interinter_comp.wedge_sign = args->wedge_sign[ref_frame];
+        mbmi->interinter_comp.wedge_index = args->wedge_index;
+        mbmi->interinter_comp.wedge_sign = args->wedge_sign;
         rs2 = masked_type_cost[cur_type];
         rs2 += get_interinter_compound_mask_rate(&x->mode_costs, mbmi);
         tmp_rate_mv = av1_interinter_compound_motion_search(cpi, x, cur_mv,
                                                             bsize, this_mode);
 
-        best_mask_index = args->wedge_index[ref_frame];
-        best_wedge_sign = args->wedge_sign[ref_frame];
+        best_mask_index = args->wedge_index;
+        best_wedge_sign = args->wedge_sign;
         tmp_mv[0] = mbmi->mv[0];
         tmp_mv[1] = mbmi->mv[1];
         best_rate_mv = tmp_rate_mv;
diff --git a/av1/encoder/interp_search.h b/av1/encoder/interp_search.h
index 69b6a36..9a6dcfa 100644
--- a/av1/encoder/interp_search.h
+++ b/av1/encoder/interp_search.h
@@ -126,11 +126,11 @@
   /*!
    * Estimated wedge index.
    */
-  int wedge_index[MODE_CTX_REF_FRAMES];
+  int wedge_index;
   /*!
    * Estimated wedge sign.
    */
-  int wedge_sign[MODE_CTX_REF_FRAMES];
+  int wedge_sign;
   /*!
    * Estimated diff wtd index.
    */
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 862726d..622793f 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5348,13 +5348,9 @@
                                interintra_modes,
                                { { { 0 }, { { 0 } }, { 0 }, 0, 0, 0, 0 } },
                                0,
-                               { 0 },
-                               { 0 },
+                               -1,
+                               -1,
                                0 };
-  for (i = 0; i < MODE_CTX_REF_FRAMES; ++i) {
-    args.wedge_index[i] = -1;
-    args.wedge_sign[i] = -1;
-  }
   // Indicates the appropriate number of simple translation winner modes for
   // exhaustive motion mode evaluation
   const int max_winner_motion_mode_cand =