ref: cd838028857dd1185290f6a7ffb7a135cdf61f7f
parent: 39de45d3cc178012cd5e8e17a2f9bcae2f858299
author: Linfeng Zhang <linfengz@google.com>
date: Mon Mar 26 12:42:00 EDT 2018
Shrink size of mode_map in struct TileDataEnc To reduce the memcpy() cycles in vp9_rd_pick_inter_mode_sb(). The maximum value of mode_map is (MAX_MODES - 1) = 29. Change-Id: I5704bd66838ea0b075f0afb001f5cbebfd3f1602
--- a/vp9/encoder/vp9_encoder.h
+++ b/vp9/encoder/vp9_encoder.h
@@ -282,7 +282,7 @@
typedef struct TileDataEnc {
TileInfo tile_info;
int thresh_freq_fact[BLOCK_SIZES][MAX_MODES];
- int mode_map[BLOCK_SIZES][MAX_MODES];
+ int8_t mode_map[BLOCK_SIZES][MAX_MODES];
FIRSTPASS_DATA fp_data;
VP9RowMTSync row_mt_sync;
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -3074,10 +3074,10 @@
const int *const rd_threshes = rd_opt->threshes[segment_id][bsize];
const int *const rd_thresh_freq_fact = tile_data->thresh_freq_fact[bsize];
int64_t mode_threshold[MAX_MODES];
- int *tile_mode_map = tile_data->mode_map[bsize];
- int mode_map[MAX_MODES]; // Maintain mode_map information locally to avoid
- // lock mechanism involved with reads from
- // tile_mode_map
+ int8_t *tile_mode_map = tile_data->mode_map[bsize];
+ int8_t mode_map[MAX_MODES]; // Maintain mode_map information locally to avoid
+ // lock mechanism involved with reads from
+ // tile_mode_map
const int mode_search_skip_flags = sf->mode_search_skip_flags;
int64_t mask_filter = 0;
int64_t filter_cache[SWITCHABLE_FILTER_CONTEXTS];