Refactor probability savings search.
- Avoid excessive copying
- Don't bother searching if no update can possibly offer savings
- Simplify the interface
- Remove the confusing av1_cost_upd256 macro
(cherry picked from libvpx/master commit
19e0b406c9601ec79f96cba654347e48650929ed)
Change-Id: Id9d9676a361fd1203b27e930cd29c23b2813ce59
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index a36f0c9..6829a80 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2476,8 +2476,8 @@
int u = 0;
if (t == PIVOT_NODE)
s = av1_prob_diff_update_savings_search_model(
- frame_branch_ct[i][j][k][l][0],
- old_coef_probs[i][j][k][l], &newp, upd, stepsize, probwt);
+ frame_branch_ct[i][j][k][l][0], oldp, &newp, upd,
+ stepsize, probwt);
else
s = av1_prob_diff_update_savings_search(
frame_branch_ct[i][j][k][l][t], oldp, &newp, upd, probwt);
@@ -2512,8 +2512,8 @@
int u = 0;
if (t == PIVOT_NODE)
s = av1_prob_diff_update_savings_search_model(
- frame_branch_ct[i][j][k][l][0],
- old_coef_probs[i][j][k][l], &newp, upd, stepsize, probwt);
+ frame_branch_ct[i][j][k][l][0], *oldp, &newp, upd,
+ stepsize, probwt);
else
s = av1_prob_diff_update_savings_search(
frame_branch_ct[i][j][k][l][t], *oldp, &newp, upd,
@@ -2548,8 +2548,8 @@
int u = 0;
if (t == PIVOT_NODE) {
s = av1_prob_diff_update_savings_search_model(
- frame_branch_ct[i][j][k][l][0],
- old_coef_probs[i][j][k][l], &newp, upd, stepsize, probwt);
+ frame_branch_ct[i][j][k][l][0], *oldp, &newp, upd,
+ stepsize, probwt);
} else {
s = av1_prob_diff_update_savings_search(
frame_branch_ct[i][j][k][l][t], *oldp, &newp, upd,