From 580d29bdbb97c2ba862cadd12a7af093ab87f806 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Thu, 30 May 2013 15:26:23 -0700 Subject: [PATCH] Remove one (unused) entry from mvref tables. Change-Id: Ieb4669ae564bec9f3051485ecdf186cb4e00decb --- vp9/common/vp9_entropymode.c | 6 +++--- vp9/common/vp9_modecont.c | 16 ++++++++-------- vp9/common/vp9_modecont.h | 2 +- vp9/common/vp9_onyxc_int.h | 4 ++-- vp9/decoder/vp9_decodframe.c | 2 +- vp9/encoder/vp9_bitstream.c | 10 +++++----- vp9/encoder/vp9_onyx_if.c | 7 ++++--- vp9/encoder/vp9_onyx_int.h | 6 +++--- 8 files changed, 27 insertions(+), 26 deletions(-) diff --git a/vp9/common/vp9_entropymode.c b/vp9/common/vp9_entropymode.c index ed763d10e..e12710913 100644 --- a/vp9/common/vp9_entropymode.c +++ b/vp9/common/vp9_entropymode.c @@ -178,7 +178,7 @@ void vp9_init_mode_contexts(VP9_COMMON *pc) { void vp9_accum_mv_refs(VP9_COMMON *pc, MB_PREDICTION_MODE m, const int context) { - unsigned int (*mv_ref_ct)[4][2] = pc->fc.mv_ref_ct; + unsigned int (*mv_ref_ct)[VP9_MVREFS - 1][2] = pc->fc.mv_ref_ct; if (m == ZEROMV) { ++mv_ref_ct[context][0][0]; @@ -201,8 +201,8 @@ void vp9_accum_mv_refs(VP9_COMMON *pc, #define MVREF_MAX_UPDATE_FACTOR 128 void vp9_adapt_mode_context(VP9_COMMON *pc) { int i, j; - unsigned int (*mv_ref_ct)[4][2] = pc->fc.mv_ref_ct; - int (*mode_context)[4] = pc->fc.vp9_mode_contexts; + unsigned int (*mv_ref_ct)[VP9_MVREFS - 1][2] = pc->fc.mv_ref_ct; + int (*mode_context)[VP9_MVREFS - 1] = pc->fc.vp9_mode_contexts; for (j = 0; j < INTER_MODE_CONTEXTS; j++) { for (i = 0; i < 4; i++) { diff --git a/vp9/common/vp9_modecont.c b/vp9/common/vp9_modecont.c index 86a8fb850..973bb068c 100644 --- a/vp9/common/vp9_modecont.c +++ b/vp9/common/vp9_modecont.c @@ -11,12 +11,12 @@ #include "vp9/common/vp9_entropy.h" -const int vp9_default_mode_contexts[INTER_MODE_CONTEXTS][4] = { - {2, 173, 34, 229}, // 0 = both zero mv - {7, 145, 85, 225}, // 1 = one zero mv + one a predicted mv - {7, 166, 63, 231}, // 2 = two predicted mvs - {7, 94, 66, 219}, // 3 = one predicted/zero and one new mv - {8, 64, 46, 213}, // 4 = two new mvs - {17, 81, 31, 231}, // 5 = one intra neighbour + x - {25, 29, 30, 246}, // 6 = two intra neighbours +const int vp9_default_mode_contexts[INTER_MODE_CONTEXTS][VP9_MVREFS - 1] = { + {2, 173, 34}, // 0 = both zero mv + {7, 145, 85}, // 1 = one zero mv + one a predicted mv + {7, 166, 63}, // 2 = two predicted mvs + {7, 94, 66}, // 3 = one predicted/zero and one new mv + {8, 64, 46}, // 4 = two new mvs + {17, 81, 31}, // 5 = one intra neighbour + x + {25, 29, 30}, // 6 = two intra neighbours }; diff --git a/vp9/common/vp9_modecont.h b/vp9/common/vp9_modecont.h index 30deb72d3..a6c489325 100644 --- a/vp9/common/vp9_modecont.h +++ b/vp9/common/vp9_modecont.h @@ -13,6 +13,6 @@ #include "vp9/common/vp9_entropy.h" -extern const int vp9_default_mode_contexts[INTER_MODE_CONTEXTS][4]; +extern const int vp9_default_mode_contexts[INTER_MODE_CONTEXTS][VP9_MVREFS - 1]; #endif // VP9_COMMON_VP9_MODECONT_H_ diff --git a/vp9/common/vp9_onyxc_int.h b/vp9/common/vp9_onyxc_int.h index 946c33dd5..fe5aa01be 100644 --- a/vp9/common/vp9_onyxc_int.h +++ b/vp9/common/vp9_onyxc_int.h @@ -79,8 +79,8 @@ typedef struct frame_contexts { vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1] [VP9_SWITCHABLE_FILTERS - 1]; - int vp9_mode_contexts[INTER_MODE_CONTEXTS][4]; - unsigned int mv_ref_ct[INTER_MODE_CONTEXTS][4][2]; + int vp9_mode_contexts[INTER_MODE_CONTEXTS][VP9_MVREFS - 1]; + unsigned int mv_ref_ct[INTER_MODE_CONTEXTS][VP9_MVREFS - 1][2]; } FRAME_CONTEXT; typedef enum { diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index b58204df6..3800dff14 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -1067,7 +1067,7 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) { if (!keyframe) { int i, j; for (i = 0; i < INTER_MODE_CONTEXTS; ++i) - for (j = 0; j < 4; ++j) + for (j = 0; j < VP9_MVREFS - 1; ++j) if (vp9_read(&header_bc, 252)) pc->fc.vp9_mode_contexts[i][j] = vp9_read_prob(&header_bc); } diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c index 102ec6f8a..6809bd358 100644 --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@ -321,15 +321,15 @@ static void update_refpred_stats(VP9_COMP *cpi) { // The branch counts table is re-populated during the actual pack stage and in // the decoder to facilitate backwards update of the context. static void update_inter_mode_probs(VP9_COMMON *cm, - int mode_context[INTER_MODE_CONTEXTS][4]) { + int mode_context[INTER_MODE_CONTEXTS][VP9_MVREFS - 1]) { int i, j; - unsigned int (*mv_ref_ct)[4][2] = cm->fc.mv_ref_ct; + unsigned int (*mv_ref_ct)[VP9_MVREFS - 1][2] = cm->fc.mv_ref_ct; vpx_memcpy(mode_context, cm->fc.vp9_mode_contexts, sizeof(cm->fc.vp9_mode_contexts)); for (i = 0; i < INTER_MODE_CONTEXTS; i++) { - for (j = 0; j < 4; j++) { + for (j = 0; j < VP9_MVREFS - 1; j++) { int new_prob, old_cost, new_cost; // Work out cost of coding branches with the old and optimal probability @@ -1637,7 +1637,7 @@ void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, unsigned long *size) { // changes in the bitstream. if (pc->frame_type != KEY_FRAME) { int i, j; - int new_context[INTER_MODE_CONTEXTS][4]; + int new_context[INTER_MODE_CONTEXTS][VP9_MVREFS - 1]; if (!cpi->dummy_packing) { update_inter_mode_probs(pc, new_context); } else { @@ -1647,7 +1647,7 @@ void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, unsigned long *size) { } for (i = 0; i < INTER_MODE_CONTEXTS; i++) { - for (j = 0; j < 4; j++) { + for (j = 0; j < VP9_MVREFS - 1; j++) { if (new_context[i][j] != pc->fc.vp9_mode_contexts[i][j]) { vp9_write(&header_bc, 1, 252); vp9_write_prob(&header_bc, new_context[i][j]); diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index a38adaade..5dd8fd02b 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -537,7 +537,7 @@ void vp9_update_mode_context_stats(VP9_COMP *cpi) { // Add in the values for this frame for (i = 0; i < INTER_MODE_CONTEXTS; i++) { - for (j = 0; j < 4; j++) { + for (j = 0; j < VP9_MVREFS - 1; j++) { mv_ref_stats[i][j][0] += (int64_t)mv_ref_ct[i][j][0]; mv_ref_stats[i][j][1] += (int64_t)mv_ref_ct[i][j][1]; } @@ -554,12 +554,13 @@ void print_mode_context(VP9_COMP *cpi) { int i, j; fprintf(f, "#include \"vp9_entropy.h\"\n"); - fprintf(f, "const int vp9_mode_contexts[INTER_MODE_CONTEXTS][4] ="); + fprintf(f, + "const int vp9_mode_contexts[INTER_MODE_CONTEXTS][VP9_MVREFS - 1] ="); fprintf(f, "{\n"); for (j = 0; j < INTER_MODE_CONTEXTS; j++) { fprintf(f, " {/* %d */ ", j); fprintf(f, " "); - for (i = 0; i < 4; i++) { + for (i = 0; i < VP9_MVREFS - 1; i++) { int this_prob; int64_t count = cpi->mv_ref_stats[j][i][0] + cpi->mv_ref_stats[j][i][1]; if (count) diff --git a/vp9/encoder/vp9_onyx_int.h b/vp9/encoder/vp9_onyx_int.h index da3179aa2..cb787866e 100644 --- a/vp9/encoder/vp9_onyx_int.h +++ b/vp9/encoder/vp9_onyx_int.h @@ -88,8 +88,8 @@ typedef struct { vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1] [VP9_SWITCHABLE_FILTERS - 1]; - int mv_ref_ct[INTER_MODE_CONTEXTS][4][2]; - int vp9_mode_contexts[INTER_MODE_CONTEXTS][4]; + int mv_ref_ct[INTER_MODE_CONTEXTS][VP9_MVREFS - 1][2]; + int vp9_mode_contexts[INTER_MODE_CONTEXTS][VP9_MVREFS - 1]; } CODING_CONTEXT; @@ -615,7 +615,7 @@ typedef struct VP9_COMP { #endif #ifdef ENTROPY_STATS - int64_t mv_ref_stats[INTER_MODE_CONTEXTS][4][2]; + int64_t mv_ref_stats[INTER_MODE_CONTEXTS][VP9_MVREFS - 1][2]; #endif } VP9_COMP; -- 2.40.0