Change datatype of ref_mv_weight to uint16_t

Changed the datatype of ref_mv_weight from int to uint16_t

Observed memory footprint reduction with no impact on
encoder/decoder performance.

Stream                   Preset     Encoder   Decoder
BasketballDrill_832x480     1        ~8.6%         0%
parkrun_720p50              3        ~7.9%         0%

Change-Id: I870399530e3c28c400a30ae63312058f82dd73df
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 45bd9a7..f5c70fe 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -535,7 +535,7 @@
 
   uint8_t ref_mv_count[MODE_CTX_REF_FRAMES];
   CANDIDATE_MV ref_mv_stack[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
-  int weight[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
+  uint16_t weight[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
   uint8_t is_sec_rect;
 
   // Counts of each reference frame in the above and left neighboring blocks.
diff --git a/av1/common/mvref_common.c b/av1/common/mvref_common.c
index a6bef20..c4ca859 100644
--- a/av1/common/mvref_common.c
+++ b/av1/common/mvref_common.c
@@ -74,8 +74,9 @@
 static void add_ref_mv_candidate(
     const MB_MODE_INFO *const candidate, const MV_REFERENCE_FRAME rf[2],
     uint8_t *refmv_count, uint8_t *ref_match_count, uint8_t *newmv_count,
-    CANDIDATE_MV *ref_mv_stack, int *ref_mv_weight, int_mv *gm_mv_candidates,
-    const WarpedMotionParams *gm_params, int col, int weight) {
+    CANDIDATE_MV *ref_mv_stack, uint16_t *ref_mv_weight,
+    int_mv *gm_mv_candidates, const WarpedMotionParams *gm_params, int col,
+    uint16_t weight) {
   if (!is_inter_block(candidate)) return;  // for intrabc
   int index = 0, ref;
   assert(weight % 2 == 0);
@@ -140,7 +141,7 @@
 static void scan_row_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd,
                           int mi_row, int mi_col,
                           const MV_REFERENCE_FRAME rf[2], int row_offset,
-                          CANDIDATE_MV *ref_mv_stack, int *ref_mv_weight,
+                          CANDIDATE_MV *ref_mv_stack, uint16_t *ref_mv_weight,
                           uint8_t *refmv_count, uint8_t *ref_match_count,
                           uint8_t *newmv_count, int_mv *gm_mv_candidates,
                           int max_row_offset, int *processed_rows) {
@@ -169,10 +170,10 @@
     else if (abs(row_offset) > 1)
       len = AOMMAX(len, n8_w_8);
 
-    int weight = 2;
+    uint16_t weight = 2;
     if (xd->n4_w >= n8_w_8 && xd->n4_w <= n4_w) {
-      int inc = AOMMIN(-max_row_offset + row_offset + 1,
-                       mi_size_high[candidate_bsize]);
+      uint16_t inc = AOMMIN(-max_row_offset + row_offset + 1,
+                            mi_size_high[candidate_bsize]);
       // Obtain range used in weight calculation.
       weight = AOMMAX(weight, inc);
       // Update processed rows.
@@ -191,7 +192,7 @@
 static void scan_col_mbmi(const AV1_COMMON *cm, const MACROBLOCKD *xd,
                           int mi_row, int mi_col,
                           const MV_REFERENCE_FRAME rf[2], int col_offset,
-                          CANDIDATE_MV *ref_mv_stack, int *ref_mv_weight,
+                          CANDIDATE_MV *ref_mv_stack, uint16_t *ref_mv_weight,
                           uint8_t *refmv_count, uint8_t *ref_match_count,
                           uint8_t *newmv_count, int_mv *gm_mv_candidates,
                           int max_col_offset, int *processed_cols) {
@@ -242,7 +243,7 @@
                           const int mi_row, const int mi_col,
                           const MV_REFERENCE_FRAME rf[2], int row_offset,
                           int col_offset, CANDIDATE_MV *ref_mv_stack,
-                          int *ref_mv_weight, uint8_t *ref_match_count,
+                          uint16_t *ref_mv_weight, uint8_t *ref_match_count,
                           uint8_t *newmv_count, int_mv *gm_mv_candidates,
                           uint8_t refmv_count[MODE_CTX_REF_FRAMES]) {
   const TileInfo *const tile = &xd->tile;
@@ -331,11 +332,11 @@
                           int blk_row, int blk_col, int_mv *gm_mv_candidates,
                           uint8_t refmv_count[MODE_CTX_REF_FRAMES],
                           CANDIDATE_MV ref_mv_stacks[][MAX_REF_MV_STACK_SIZE],
-                          int ref_mv_weights[][MAX_REF_MV_STACK_SIZE],
+                          uint16_t ref_mv_weights[][MAX_REF_MV_STACK_SIZE],
                           int16_t *mode_context) {
   POSITION mi_pos;
   int idx;
-  const int weight_unit = 1;  // mi_size_wide[BLOCK_8X8];
+  const uint16_t weight_unit = 1;  // mi_size_wide[BLOCK_8X8];
 
   mi_pos.row = (mi_row & 0x01) ? blk_row : blk_row + 1;
   mi_pos.col = (mi_col & 0x01) ? blk_col : blk_col + 1;
@@ -356,7 +357,7 @@
     int cur_offset_0 = get_relative_dist(&cm->seq_params.order_hint_info,
                                          cur_frame_index, frame0_index);
     CANDIDATE_MV *ref_mv_stack = ref_mv_stacks[rf[0]];
-    int *ref_mv_weight = ref_mv_weights[rf[0]];
+    uint16_t *ref_mv_weight = ref_mv_weights[rf[0]];
     if (prev_frame_mvs->mfmv0.as_int != INVALID_MV) {
       int_mv this_refmv;
 
@@ -396,7 +397,7 @@
     int cur_offset_1 = get_relative_dist(&cm->seq_params.order_hint_info,
                                          cur_frame_index, frame1_index);
     CANDIDATE_MV *ref_mv_stack = ref_mv_stacks[ref_frame];
-    int *ref_mv_weight = ref_mv_weights[ref_frame];
+    uint16_t *ref_mv_weight = ref_mv_weights[ref_frame];
     if (prev_frame_mvs->mfmv0.as_int != INVALID_MV) {
       int_mv this_refmv;
       int_mv comp_refmv;
@@ -466,7 +467,7 @@
     const MB_MODE_INFO *const candidate, const AV1_COMMON *const cm,
     MV_REFERENCE_FRAME ref_frame, uint8_t refmv_count[MODE_CTX_REF_FRAMES],
     CANDIDATE_MV ref_mv_stack[][MAX_REF_MV_STACK_SIZE],
-    int ref_mv_weight[][MAX_REF_MV_STACK_SIZE]) {
+    uint16_t ref_mv_weight[][MAX_REF_MV_STACK_SIZE]) {
   for (int rf_idx = 0; rf_idx < 2; ++rf_idx) {
     if (candidate->ref_frame[rf_idx] > INTRA_FRAME) {
       int_mv this_mv = candidate->mv[rf_idx];
@@ -497,7 +498,7 @@
     const AV1_COMMON *cm, const MACROBLOCKD *xd, MV_REFERENCE_FRAME ref_frame,
     uint8_t refmv_count[MODE_CTX_REF_FRAMES],
     CANDIDATE_MV ref_mv_stack[][MAX_REF_MV_STACK_SIZE],
-    int ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
+    uint16_t ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
     int_mv mv_ref_list[][MAX_MV_REF_CANDIDATES], int_mv *gm_mv_candidates,
     int mi_row, int mi_col, int16_t *mode_context) {
   const int bs = AOMMAX(xd->n4_w, xd->n4_h);
@@ -674,7 +675,7 @@
     for (int idx = 1; idx < len; ++idx) {
       if (ref_mv_weight[ref_frame][idx - 1] < ref_mv_weight[ref_frame][idx]) {
         CANDIDATE_MV tmp_mv = ref_mv_stack[ref_frame][idx - 1];
-        int tmp_ref_mv_weight = ref_mv_weight[ref_frame][idx - 1];
+        uint16_t tmp_ref_mv_weight = ref_mv_weight[ref_frame][idx - 1];
         ref_mv_stack[ref_frame][idx - 1] = ref_mv_stack[ref_frame][idx];
         ref_mv_stack[ref_frame][idx] = tmp_mv;
         ref_mv_weight[ref_frame][idx - 1] = ref_mv_weight[ref_frame][idx];
@@ -691,7 +692,7 @@
     for (int idx = nearest_refmv_count + 1; idx < len; ++idx) {
       if (ref_mv_weight[ref_frame][idx - 1] < ref_mv_weight[ref_frame][idx]) {
         CANDIDATE_MV tmp_mv = ref_mv_stack[ref_frame][idx - 1];
-        int tmp_ref_mv_weight = ref_mv_weight[ref_frame][idx - 1];
+        uint16_t tmp_ref_mv_weight = ref_mv_weight[ref_frame][idx - 1];
         ref_mv_stack[ref_frame][idx - 1] = ref_mv_stack[ref_frame][idx];
         ref_mv_stack[ref_frame][idx] = tmp_mv;
         ref_mv_weight[ref_frame][idx - 1] = ref_mv_weight[ref_frame][idx];
@@ -828,7 +829,7 @@
                       MB_MODE_INFO *mi, MV_REFERENCE_FRAME ref_frame,
                       uint8_t ref_mv_count[MODE_CTX_REF_FRAMES],
                       CANDIDATE_MV ref_mv_stack[][MAX_REF_MV_STACK_SIZE],
-                      int ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
+                      uint16_t ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
                       int_mv mv_ref_list[][MAX_MV_REF_CANDIDATES],
                       int_mv *global_mvs, int mi_row, int mi_col,
                       int16_t *mode_context) {
diff --git a/av1/common/mvref_common.h b/av1/common/mvref_common.h
index ad67b22..4b535a5 100644
--- a/av1/common/mvref_common.h
+++ b/av1/common/mvref_common.h
@@ -189,7 +189,7 @@
   return comp_ctx;
 }
 
-static INLINE uint8_t av1_drl_ctx(const int *ref_mv_weight, int ref_idx) {
+static INLINE uint8_t av1_drl_ctx(const uint16_t *ref_mv_weight, int ref_idx) {
   if (ref_mv_weight[ref_idx] >= REF_CAT_LEVEL &&
       ref_mv_weight[ref_idx + 1] >= REF_CAT_LEVEL)
     return 0;
@@ -250,7 +250,7 @@
                       MB_MODE_INFO *mi, MV_REFERENCE_FRAME ref_frame,
                       uint8_t ref_mv_count[MODE_CTX_REF_FRAMES],
                       CANDIDATE_MV ref_mv_stack[][MAX_REF_MV_STACK_SIZE],
-                      int ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
+                      uint16_t ref_mv_weight[][MAX_REF_MV_STACK_SIZE],
                       int_mv mv_ref_list[][MAX_MV_REF_CANDIDATES],
                       int_mv *global_mvs, int mi_row, int mi_col,
                       int16_t *mode_context);
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index e8ca91c..f1148ee 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -77,7 +77,7 @@
   // TODO(angiebird): Reduce the buffer size according to sb_type
   CB_COEFF_BUFFER *cb_coef_buff;
   CANDIDATE_MV ref_mv_stack[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
-  int weight[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
+  uint16_t weight[MODE_CTX_REF_FRAMES][MAX_REF_MV_STACK_SIZE];
   int_mv global_mvs[REF_FRAMES];
   int cb_offset;
   int16_t mode_context[MODE_CTX_REF_FRAMES];