diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c index 45086cbbe7773005222ac0acc6179cef7319d1d9..748b60778d2f52e2ba41e2876c4f8b1bc36d77d2 100644 --- a/vp8/encoder/bitstream.c +++ b/vp8/encoder/bitstream.c @@ -1214,20 +1214,20 @@ static int independent_coef_context_savings(VP8_COMP *cpi) int k = 0; unsigned int prev_coef_count_sum[MAX_ENTROPY_TOKENS] = {0}; int prev_coef_savings[MAX_ENTROPY_TOKENS] = {0}; + const unsigned int (*probs)[MAX_ENTROPY_TOKENS]; /* Calculate new probabilities given the constraint that * they must be equal over the prev coef contexts */ + + probs = (const unsigned int (*)[MAX_ENTROPY_TOKENS]) + cpi->coef_counts[i][j]; + + /* Reset to default probabilities at key frames */ if (cpi->common.frame_type == KEY_FRAME) - { - /* Reset to default probabilities at key frames */ - sum_probs_over_prev_coef_context(default_coef_counts[i][j], - prev_coef_count_sum); - } - else - { - sum_probs_over_prev_coef_context(cpi->coef_counts[i][j], - prev_coef_count_sum); - } + probs = default_coef_counts[i][j]; + + sum_probs_over_prev_coef_context(probs, prev_coef_count_sum); + do { /* at every context */