summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2013-05-22 10:38:35 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-05-22 10:38:35 -0700
commitddb23095686f10243af9751760b3d9889dc947ea (patch)
tree84e2379d2d08c811da422911c4831fe7544334a5 /vp9/encoder
parentd2cacdc5306198ef6a35636f9039511e30d894f3 (diff)
parentde4d682ca4af4b7780c038cdd762c9de51917fe3 (diff)
downloadlibvpx-ddb23095686f10243af9751760b3d9889dc947ea.tar
libvpx-ddb23095686f10243af9751760b3d9889dc947ea.tar.gz
libvpx-ddb23095686f10243af9751760b3d9889dc947ea.tar.bz2
libvpx-ddb23095686f10243af9751760b3d9889dc947ea.zip
Merge "Using 128 entry look up table for coef models" into experimental
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_bitstream.c8
-rw-r--r--vp9/encoder/vp9_rdopt.c10
-rw-r--r--vp9/encoder/vp9_tokenize.c2
-rw-r--r--vp9/encoder/vp9_tokenize.h2
4 files changed, 9 insertions, 13 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c
index bea66e6ad..66df784a6 100644
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -420,7 +420,8 @@ static int prob_diff_update_savings_search_model(const unsigned int *ct,
int i, old_b, new_b, update_b, savings, bestsavings, step;
int newp;
vp9_prob bestnewp, newplist[ENTROPY_NODES], oldplist[ENTROPY_NODES];
- vp9_model_to_full_probs(oldp, b, r, oldplist);
+ vp9_model_to_full_probs(oldp, oldplist);
+ vpx_memcpy(newplist, oldp, sizeof(vp9_prob) * UNCONSTRAINED_NODES);
for (i = UNCONSTRAINED_NODES, old_b = 0; i < ENTROPY_NODES; ++i)
old_b += cost_branch256(ct + 2 * i, oldplist[i]);
old_b += cost_branch256(ct + 2 * PIVOT_NODE, oldplist[PIVOT_NODE]);
@@ -433,7 +434,7 @@ static int prob_diff_update_savings_search_model(const unsigned int *ct,
for (; newp != oldp[PIVOT_NODE]; newp += step) {
if (newp < 1 || newp > 255) continue;
newplist[PIVOT_NODE] = newp;
- vp9_get_model_distribution(newp, newplist, b, r);
+ vp9_model_to_full_probs(newplist, newplist);
for (i = UNCONSTRAINED_NODES, new_b = 0; i < ENTROPY_NODES; ++i)
new_b += cost_branch256(ct + 2 * i, newplist[i]);
new_b += cost_branch256(ct + 2 * PIVOT_NODE, newplist[PIVOT_NODE]);
@@ -485,8 +486,7 @@ static void pack_mb_tokens(vp9_writer* const bc,
break;
}
if (t >= TWO_TOKEN) {
- vp9_model_to_full_probs(p->context_tree,
- p->block_type, p->ref_type, probs);
+ vp9_model_to_full_probs(p->context_tree, probs);
pp = probs;
} else {
pp = p->context_tree;
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 3cc4e845e..1d50eede9 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -115,7 +115,7 @@ static void fill_token_costs(vp9_coeff_count *c,
for (k = 0; k < COEF_BANDS; k++)
for (l = 0; l < PREV_COEF_CONTEXTS; l++) {
vp9_prob probs[ENTROPY_NODES];
- vp9_model_to_full_probs(p[i][j][k][l], i, j, probs);
+ vp9_model_to_full_probs(p[i][j][k][l], probs);
vp9_cost_tokens_skip((int *)c[i][j][k][l], probs,
vp9_coef_tree);
}
@@ -292,7 +292,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
above_ec = A[0] != 0;
left_ec = L[0] != 0;
vp9_model_to_full_probs_sb(cm->fc.coef_probs_4x4[type][ref],
- type, ref, coef_probs);
+ coef_probs);
seg_eob = 16;
scan = get_scan_4x4(tx_type);
band_translate = vp9_coefband_trans_4x4;
@@ -308,7 +308,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
left_ec = (L[0] + L[1]) != 0;
scan = get_scan_8x8(tx_type);
vp9_model_to_full_probs_sb(cm->fc.coef_probs_8x8[type][ref],
- type, ref, coef_probs);
+ coef_probs);
seg_eob = 64;
band_translate = vp9_coefband_trans_8x8plus;
break;
@@ -321,7 +321,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
get_tx_type_16x16(xd, y + (x >> 2)) : DCT_DCT;
scan = get_scan_16x16(tx_type);
vp9_model_to_full_probs_sb(cm->fc.coef_probs_16x16[type][ref],
- type, ref, coef_probs);
+ coef_probs);
seg_eob = 256;
above_ec = (A[0] + A[1] + A[2] + A[3]) != 0;
left_ec = (L[0] + L[1] + L[2] + L[3]) != 0;
@@ -331,7 +331,7 @@ static INLINE int cost_coeffs(VP9_COMMON *const cm, MACROBLOCK *mb,
case TX_32X32:
scan = vp9_default_zig_zag1d_32x32;
vp9_model_to_full_probs_sb(cm->fc.coef_probs_32x32[type][ref],
- type, ref, coef_probs);
+ coef_probs);
seg_eob = 1024;
above_ec = (A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] + A[7]) != 0;
left_ec = (L[0] + L[1] + L[2] + L[3] + L[4] + L[5] + L[6] + L[7]) != 0;
diff --git a/vp9/encoder/vp9_tokenize.c b/vp9/encoder/vp9_tokenize.c
index 87bde289b..a1991b6f4 100644
--- a/vp9/encoder/vp9_tokenize.c
+++ b/vp9/encoder/vp9_tokenize.c
@@ -224,8 +224,6 @@ static void tokenize_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
t->token = token;
t->context_tree = coef_probs[type][ref][band][pt];
- t->block_type = type;
- t->ref_type = ref;
t->skip_eob_node = (c > 0) && (token_cache[scan[c - 1]] == 0);
assert(vp9_coef_encodings[t->token].len - t->skip_eob_node > 0);
diff --git a/vp9/encoder/vp9_tokenize.h b/vp9/encoder/vp9_tokenize.h
index 3332dad1c..08236c429 100644
--- a/vp9/encoder/vp9_tokenize.h
+++ b/vp9/encoder/vp9_tokenize.h
@@ -26,8 +26,6 @@ typedef struct {
int16_t extra;
uint8_t token;
uint8_t skip_eob_node;
- uint8_t block_type;
- uint8_t ref_type;
} TOKENEXTRA;
typedef int64_t vp9_coeff_accum[REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]