| Index: source/libvpx/vp9/common/vp9_entropymv.c
|
| ===================================================================
|
| --- source/libvpx/vp9/common/vp9_entropymv.c (revision 177019)
|
| +++ source/libvpx/vp9/common/vp9_entropymv.c (working copy)
|
| @@ -213,16 +213,12 @@
|
|
|
| static void adapt_prob(vp9_prob *dest, vp9_prob prep, vp9_prob newp,
|
| unsigned int ct[2]) {
|
| - int factor;
|
| - int prob;
|
| int count = ct[0] + ct[1];
|
| +
|
| if (count) {
|
| count = count > MV_COUNT_SAT ? MV_COUNT_SAT : count;
|
| - factor = (MV_MAX_UPDATE_FACTOR * count / MV_COUNT_SAT);
|
| - prob = ((int)prep * (256 - factor) + (int)(newp) * factor + 128) >> 8;
|
| - prob += !prob;
|
| - prob = (prob > 255 ? 255 : prob);
|
| - *dest = prob;
|
| + *dest = weighted_prob(prep, newp,
|
| + MV_MAX_UPDATE_FACTOR * count / MV_COUNT_SAT);
|
| }
|
| }
|
|
|
| @@ -251,11 +247,10 @@
|
| vp9_mv_joint_tree,
|
| prob->joints,
|
| branch_ct_joint,
|
| - NMVcount->joints,
|
| - 256, 1);
|
| + NMVcount->joints);
|
| for (i = 0; i < 2; ++i) {
|
| - prob->comps[i].sign =
|
| - vp9_bin_prob_from_distribution(NMVcount->comps[i].sign);
|
| + prob->comps[i].sign = get_binary_prob(NMVcount->comps[i].sign[0],
|
| + NMVcount->comps[i].sign[1]);
|
| branch_ct_sign[i][0] = NMVcount->comps[i].sign[0];
|
| branch_ct_sign[i][1] = NMVcount->comps[i].sign[1];
|
| vp9_tree_probs_from_distribution(MV_CLASSES,
|
| @@ -263,18 +258,16 @@
|
| vp9_mv_class_tree,
|
| prob->comps[i].classes,
|
| branch_ct_classes[i],
|
| - NMVcount->comps[i].classes,
|
| - 256, 1);
|
| + NMVcount->comps[i].classes);
|
| vp9_tree_probs_from_distribution(CLASS0_SIZE,
|
| vp9_mv_class0_encodings,
|
| vp9_mv_class0_tree,
|
| prob->comps[i].class0,
|
| branch_ct_class0[i],
|
| - NMVcount->comps[i].class0,
|
| - 256, 1);
|
| + NMVcount->comps[i].class0);
|
| for (j = 0; j < MV_OFFSET_BITS; ++j) {
|
| - prob->comps[i].bits[j] = vp9_bin_prob_from_distribution(
|
| - NMVcount->comps[i].bits[j]);
|
| + prob->comps[i].bits[j] = get_binary_prob(NMVcount->comps[i].bits[j][0],
|
| + NMVcount->comps[i].bits[j][1]);
|
| branch_ct_bits[i][j][0] = NMVcount->comps[i].bits[j][0];
|
| branch_ct_bits[i][j][1] = NMVcount->comps[i].bits[j][1];
|
| }
|
| @@ -286,26 +279,25 @@
|
| vp9_mv_fp_tree,
|
| prob->comps[i].class0_fp[k],
|
| branch_ct_class0_fp[i][k],
|
| - NMVcount->comps[i].class0_fp[k],
|
| - 256, 1);
|
| + NMVcount->comps[i].class0_fp[k]);
|
| }
|
| vp9_tree_probs_from_distribution(4,
|
| vp9_mv_fp_encodings,
|
| vp9_mv_fp_tree,
|
| prob->comps[i].fp,
|
| branch_ct_fp[i],
|
| - NMVcount->comps[i].fp,
|
| - 256, 1);
|
| + NMVcount->comps[i].fp);
|
| }
|
| if (usehp) {
|
| for (i = 0; i < 2; ++i) {
|
| - prob->comps[i].class0_hp = vp9_bin_prob_from_distribution(
|
| - NMVcount->comps[i].class0_hp);
|
| + prob->comps[i].class0_hp =
|
| + get_binary_prob(NMVcount->comps[i].class0_hp[0],
|
| + NMVcount->comps[i].class0_hp[1]);
|
| branch_ct_class0_hp[i][0] = NMVcount->comps[i].class0_hp[0];
|
| branch_ct_class0_hp[i][1] = NMVcount->comps[i].class0_hp[1];
|
|
|
| - prob->comps[i].hp =
|
| - vp9_bin_prob_from_distribution(NMVcount->comps[i].hp);
|
| + prob->comps[i].hp = get_binary_prob(NMVcount->comps[i].hp[0],
|
| + NMVcount->comps[i].hp[1]);
|
| branch_ct_hp[i][0] = NMVcount->comps[i].hp[0];
|
| branch_ct_hp[i][1] = NMVcount->comps[i].hp[1];
|
| }
|
|
|