| Index: source/libvpx/vp9/common/vp9_prob.h
|
| diff --git a/source/libvpx/vp9/common/vp9_prob.h b/source/libvpx/vp9/common/vp9_prob.h
|
| index bc1511a5e1875c484bbbccb984849bf480a6e25f..c69c62c81f85517ab3cfb4897b99d468190cafe0 100644
|
| --- a/source/libvpx/vp9/common/vp9_prob.h
|
| +++ b/source/libvpx/vp9/common/vp9_prob.h
|
| @@ -33,6 +33,8 @@ typedef int8_t vp9_tree_index;
|
|
|
| #define vp9_complement(x) (255 - x)
|
|
|
| +#define MODE_MV_COUNT_SAT 20
|
| +
|
| /* We build coding trees compactly in arrays.
|
| Each node of the tree is a pair of vp9_tree_indices.
|
| Array index often references a corresponding probability table.
|
| @@ -69,9 +71,28 @@ static INLINE vp9_prob merge_probs(vp9_prob pre_prob,
|
| return weighted_prob(pre_prob, prob, factor);
|
| }
|
|
|
| +// MODE_MV_MAX_UPDATE_FACTOR (128) * count / MODE_MV_COUNT_SAT;
|
| +static const int count_to_update_factor[MODE_MV_COUNT_SAT + 1] = {
|
| + 0, 6, 12, 19, 25, 32, 38, 44, 51, 57, 64,
|
| + 70, 76, 83, 89, 96, 102, 108, 115, 121, 128
|
| +};
|
| +
|
| +static INLINE vp9_prob mode_mv_merge_probs(vp9_prob pre_prob,
|
| + const unsigned int ct[2]) {
|
| + const unsigned int den = ct[0] + ct[1];
|
| + if (den == 0) {
|
| + return pre_prob;
|
| + } else {
|
| + const unsigned int count = MIN(den, MODE_MV_COUNT_SAT);
|
| + const unsigned int factor = count_to_update_factor[count];
|
| + const vp9_prob prob =
|
| + clip_prob(((int64_t)(ct[0]) * 256 + (den >> 1)) / den);
|
| + return weighted_prob(pre_prob, prob, factor);
|
| + }
|
| +}
|
| +
|
| void vp9_tree_merge_probs(const vp9_tree_index *tree, const vp9_prob *pre_probs,
|
| - const unsigned int *counts, unsigned int count_sat,
|
| - unsigned int max_update_factor, vp9_prob *probs);
|
| + const unsigned int *counts, vp9_prob *probs);
|
|
|
|
|
| DECLARE_ALIGNED(16, extern const uint8_t, vp9_norm[256]);
|
|
|