ref: 9fc3d32a5044d4fd52a2c330606c7f8d0663cf45
parent: 9158b8956f540693e0a5d98d5cda2e25f83c52fd
parent: 532179e845a37861fe7a703b0f6243d06e8e3a5b
author: Jim Bankoski <jimbankoski@google.com>
date: Thu Sep 5 08:38:56 EDT 2013
Merge "faster accounting of inc_mv"
--- a/vp9/common/vp9_entropymv.c
+++ b/vp9/common/vp9_entropymv.c
@@ -149,8 +149,6 @@
static void inc_mv_component(int v, nmv_component_counts *comp_counts,
int incr, int usehp) {
int s, z, c, o, d, e, f;
- if (!incr)
- return;
assert (v != 0); /* should not be zero */
s = v < 0;
comp_counts->sign[s] += incr;
@@ -177,24 +175,18 @@
}
}
-static void counts_to_context(nmv_component_counts *mvcomp, int usehp) {
- int v;
- vpx_memset(mvcomp->sign, 0, sizeof(nmv_component_counts) - sizeof(mvcomp->mvcount));
- for (v = 1; v <= MV_MAX; v++) {
- inc_mv_component(-v, mvcomp, mvcomp->mvcount[MV_MAX - v], usehp);
- inc_mv_component( v, mvcomp, mvcomp->mvcount[MV_MAX + v], usehp);
- }
-}
void vp9_inc_mv(const MV *mv, nmv_context_counts *counts) {
const MV_JOINT_TYPE j = vp9_get_mv_joint(mv);
++counts->joints[j];
- if (mv_joint_vertical(j))
- ++counts->comps[0].mvcount[MV_MAX + mv->row];
+ if (mv_joint_vertical(j)) {
+ inc_mv_component(mv->row, &counts->comps[0], 1, 1);
+ }
- if (mv_joint_horizontal(j))
- ++counts->comps[1].mvcount[MV_MAX + mv->col];
+ if (mv_joint_horizontal(j)) {
+ inc_mv_component(mv->col, &counts->comps[1], 1, 1);
+ }
}
static vp9_prob adapt_prob(vp9_prob prep, const unsigned int ct[2]) {
@@ -201,11 +193,6 @@
return merge_probs2(prep, ct, MV_COUNT_SAT, MV_MAX_UPDATE_FACTOR);
}
-void vp9_counts_process(nmv_context_counts *nmv_count, int usehp) {
- counts_to_context(&nmv_count->comps[0], usehp);
- counts_to_context(&nmv_count->comps[1], usehp);
-}
-
static unsigned int adapt_probs(unsigned int i,
vp9_tree tree,
vp9_prob this_probs[],
@@ -234,8 +221,6 @@
nmv_context *ctx = &cm->fc.nmvc;
nmv_context *pre_ctx = &pre_fc->nmvc;
nmv_context_counts *cts = &cm->counts.mv;
-
- vp9_counts_process(cts, allow_hp);
adapt_probs(0, vp9_mv_joint_tree, ctx->joints, pre_ctx->joints, cts->joints);
--- a/vp9/encoder/vp9_encodemv.c
+++ b/vp9/encoder/vp9_encodemv.c
@@ -155,7 +155,6 @@
unsigned int (*branch_ct_class0_hp)[2],
unsigned int (*branch_ct_hp)[2]) {
int i, j, k;
- vp9_counts_process(nmv_count, usehp);
vp9_tree_probs_from_distribution(vp9_mv_joint_tree,
prob->joints,
branch_ct_joint,