summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2015-10-28 11:48:44 -0700
committerAlex Converse <aconverse@google.com>2015-10-28 11:51:40 -0700
commit663960e7579d30b46a298f5236324b07daac4799 (patch)
tree93339f77d54506613879732aa9383b10bdb9d65e /vp9
parentf5f19a1fbd9e26d09f4e4f71c80e1a79aac74341 (diff)
downloadlibvpx-663960e7579d30b46a298f5236324b07daac4799.tar
libvpx-663960e7579d30b46a298f5236324b07daac4799.tar.gz
libvpx-663960e7579d30b46a298f5236324b07daac4799.tar.bz2
libvpx-663960e7579d30b46a298f5236324b07daac4799.zip
Revert "Replace the zero handling in extend_to_full_distribution."
This reverts commit 7f56cb29787b187c8cb1b778918ca3b80184c804. It causes uninitialized reads in the first pass setting up later cost tables. Change-Id: I2df498df3f5c03eff359f79edf045aed0c618dc9
Diffstat (limited to 'vp9')
-rw-r--r--vp9/common/vp9_entropy.c9
-rw-r--r--vp9/common/vp9_entropy.h2
2 files changed, 5 insertions, 6 deletions
diff --git a/vp9/common/vp9_entropy.c b/vp9/common/vp9_entropy.c
index 719e542ce..579857bc9 100644
--- a/vp9/common/vp9_entropy.c
+++ b/vp9/common/vp9_entropy.c
@@ -403,6 +403,7 @@ const vpx_prob vp9_pareto8_full[COEFF_PROB_MODELS][MODEL_NODES] = {
{255, 241, 243, 255, 236, 255, 252, 254},
{255, 243, 245, 255, 237, 255, 252, 254},
{255, 246, 247, 255, 239, 255, 253, 255},
+ {255, 246, 247, 255, 239, 255, 253, 255},
};
static const vp9_coeff_probs_model default_coef_probs_4x4[PLANE_TYPES] = {
@@ -742,16 +743,14 @@ static const vp9_coeff_probs_model default_coef_probs_32x32[PLANE_TYPES] = {
};
static void extend_to_full_distribution(vpx_prob *probs, vpx_prob p) {
- memcpy(probs, vp9_pareto8_full[p - 1], MODEL_NODES * sizeof(vpx_prob));
+ memcpy(probs, vp9_pareto8_full[p = 0 ? 0 : p - 1],
+ MODEL_NODES * sizeof(vpx_prob));
}
void vp9_model_to_full_probs(const vpx_prob *model, vpx_prob *full) {
if (full != model)
memcpy(full, model, sizeof(vpx_prob) * UNCONSTRAINED_NODES);
- // TODO(aconverse): model[PIVOT_NODE] should never be zero.
- // https://code.google.com/p/webm/issues/detail?id=1089
- if (model[PIVOT_NODE] != 0)
- extend_to_full_distribution(&full[UNCONSTRAINED_NODES], model[PIVOT_NODE]);
+ extend_to_full_distribution(&full[UNCONSTRAINED_NODES], model[PIVOT_NODE]);
}
void vp9_default_coef_probs(VP9_COMMON *cm) {
diff --git a/vp9/common/vp9_entropy.h b/vp9/common/vp9_entropy.h
index 63b3bff5d..21611ed6d 100644
--- a/vp9/common/vp9_entropy.h
+++ b/vp9/common/vp9_entropy.h
@@ -138,7 +138,7 @@ static INLINE const uint8_t *get_band_translate(TX_SIZE tx_size) {
// 1, 3, 5, 7, ..., 253, 255
// In between probabilities are interpolated linearly
-#define COEFF_PROB_MODELS 255
+#define COEFF_PROB_MODELS 256
#define UNCONSTRAINED_NODES 3