diff options
Diffstat (limited to 'third_party/aom/av1/encoder/subexp.c')
-rw-r--r-- | third_party/aom/av1/encoder/subexp.c | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/third_party/aom/av1/encoder/subexp.c b/third_party/aom/av1/encoder/subexp.c index 8960d3341..6a8ba12d8 100644 --- a/third_party/aom/av1/encoder/subexp.c +++ b/third_party/aom/av1/encoder/subexp.c @@ -179,83 +179,6 @@ int av1_prob_diff_update_savings_search_model(const unsigned int *ct, return bestsavings; } -#if CONFIG_SUBFRAME_PROB_UPDATE -static int get_cost(unsigned int ct[][2], aom_prob p, int n) { - int i, p0 = p; - unsigned int total_ct[2] = { 0, 0 }; - int cost = 0; - - for (i = 0; i <= n; ++i) { - cost += cost_branch256(ct[i], p); - total_ct[0] += ct[i][0]; - total_ct[1] += ct[i][1]; - if (i < n) - p = av1_merge_probs(p0, total_ct, COEF_COUNT_SAT, COEF_MAX_UPDATE_FACTOR); - } - return cost; -} - -int av1_prob_update_search_subframe(unsigned int ct[][2], aom_prob oldp, - aom_prob *bestp, aom_prob upd, int n) { - const int old_b = get_cost(ct, oldp, n); - int bestsavings = 0; - const int upd_cost = av1_cost_one(upd) - av1_cost_zero(upd); - aom_prob newp, bestnewp = oldp; - const int step = *bestp > oldp ? -1 : 1; - - for (newp = *bestp; newp != oldp; newp += step) { - const int new_b = get_cost(ct, newp, n); - const int update_b = prob_diff_update_cost(newp, oldp) + upd_cost; - const int savings = old_b - new_b - update_b; - if (savings > bestsavings) { - bestsavings = savings; - bestnewp = newp; - } - } - *bestp = bestnewp; - return bestsavings; -} - -int av1_prob_update_search_model_subframe( - unsigned int ct[ENTROPY_NODES][COEF_PROBS_BUFS][2], const aom_prob *oldp, - aom_prob *bestp, aom_prob upd, int stepsize, int n) { - int i, old_b, new_b, update_b, savings, bestsavings; - int newp; - const int step_sign = *bestp > oldp[PIVOT_NODE] ? -1 : 1; - const int step = stepsize * step_sign; - const int upd_cost = av1_cost_one(upd) - av1_cost_zero(upd); - aom_prob bestnewp, newplist[ENTROPY_NODES], oldplist[ENTROPY_NODES]; - av1_model_to_full_probs(oldp, oldplist); - memcpy(newplist, oldp, sizeof(aom_prob) * UNCONSTRAINED_NODES); - for (i = UNCONSTRAINED_NODES, old_b = 0; i < ENTROPY_NODES; ++i) - old_b += get_cost(ct[i], oldplist[i], n); - old_b += get_cost(ct[PIVOT_NODE], oldplist[PIVOT_NODE], n); - - bestsavings = 0; - bestnewp = oldp[PIVOT_NODE]; - - assert(stepsize > 0); - - for (newp = *bestp; (newp - oldp[PIVOT_NODE]) * step_sign < 0; newp += step) { - if (newp < 1 || newp > 255) continue; - newplist[PIVOT_NODE] = newp; - av1_model_to_full_probs(newplist, newplist); - for (i = UNCONSTRAINED_NODES, new_b = 0; i < ENTROPY_NODES; ++i) - new_b += get_cost(ct[i], newplist[i], n); - new_b += get_cost(ct[PIVOT_NODE], newplist[PIVOT_NODE], n); - update_b = prob_diff_update_cost(newp, oldp[PIVOT_NODE]) + upd_cost; - savings = old_b - new_b - update_b; - if (savings > bestsavings) { - bestsavings = savings; - bestnewp = newp; - } - } - - *bestp = bestnewp; - return bestsavings; -} -#endif // CONFIG_SUBFRAME_PROB_UPDATE - void av1_cond_prob_diff_update(aom_writer *w, aom_prob *oldp, const unsigned int ct[2], int probwt) { const aom_prob upd = DIFF_UPDATE_PROB; |