ref: 7731e53839be5e6e3a21d4efd25b9a8522b28bb5
parent: d6264f9adffddbb5596fe9a686e0f9b35450053a
parent: e3ce2b2ab30c5ec7d92e099b507ddc2f2bb0434a
author: Ronald S. Bultje <rbultje@google.com>
date: Fri Jun 28 15:36:56 EDT 2013
Merge "Minor change to prevent one level of dereference in cost_coeffs()."
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -386,27 +386,26 @@
// single eob token
cost += token_costs[0][0][pt][DCT_EOB_TOKEN];
} else {
- int t, v, prev_rc = 0;
+ int v, prev_t;
// dc token
v = qcoeff_ptr[0];
- t = vp9_dct_value_tokens_ptr[v].token;
- cost += token_costs[0][0][pt][t] + vp9_dct_value_cost_ptr[v];
- token_cache[0] = vp9_pt_energy_class[t];
+ prev_t = vp9_dct_value_tokens_ptr[v].token;
+ cost += token_costs[0][0][pt][prev_t] + vp9_dct_value_cost_ptr[v];
+ token_cache[0] = vp9_pt_energy_class[prev_t];
// ac tokens
for (c = 1; c < eob; c++) {
const int rc = scan[c];
- int band = get_coef_band(band_translate, c);
+ const int band = get_coef_band(band_translate, c);
+ int t;
v = qcoeff_ptr[rc];
t = vp9_dct_value_tokens_ptr[v].token;
pt = vp9_get_coef_context(scan, nb, pad, token_cache, c, default_eob);
- // as an index at some level
- cost += token_costs[!token_cache[prev_rc]][band][pt][t] +
- vp9_dct_value_cost_ptr[v];
+ cost += token_costs[!prev_t][band][pt][t] + vp9_dct_value_cost_ptr[v];
token_cache[rc] = vp9_pt_energy_class[t];
- prev_rc = rc;
+ prev_t = t;
}
// eob token
--
⑨