mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 08:47:31 +09:00
Update aom to slightly newer commit ID
This commit is contained in:
parent
1c8af26369
commit
76f1e6edca
311 changed files with 55292 additions and 33790 deletions
77
third_party/aom/av1/encoder/subexp.c
vendored
77
third_party/aom/av1/encoder/subexp.c
vendored
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue