Commit e7569225 authored by Jingning Han's avatar Jingning Han Committed by Gerrit Code Review
Browse files

Merge "Refactor tokenization coding tree" into nextgenv2

parents 11bac096 2ec5ed25
...@@ -325,7 +325,6 @@ static void pack_mb_tokens(vpx_writer *w, ...@@ -325,7 +325,6 @@ static void pack_mb_tokens(vpx_writer *w,
while (p < stop && p->token != EOSB_TOKEN) { while (p < stop && p->token != EOSB_TOKEN) {
const int t = p->token; const int t = p->token;
const struct vp10_token *const a = &vp10_coef_encodings[t]; const struct vp10_token *const a = &vp10_coef_encodings[t];
int i = 0;
int v = a->value; int v = a->value;
int n = a->len; int n = a->len;
#if CONFIG_VP9_HIGHBITDEPTH #if CONFIG_VP9_HIGHBITDEPTH
...@@ -342,28 +341,24 @@ static void pack_mb_tokens(vpx_writer *w, ...@@ -342,28 +341,24 @@ static void pack_mb_tokens(vpx_writer *w,
#endif // CONFIG_VP9_HIGHBITDEPTH #endif // CONFIG_VP9_HIGHBITDEPTH
/* skip one or two nodes */ /* skip one or two nodes */
if (p->skip_eob_node) { if (p->skip_eob_node)
n -= p->skip_eob_node; n -= p->skip_eob_node;
i = 2 * p->skip_eob_node; else
} vpx_write(w, t != EOB_TOKEN, p->context_tree[0]);
// TODO(jbb): expanding this can lead to big gains. It allows if (t != EOB_TOKEN) {
// much better branch prediction and would enable us to avoid numerous vpx_write(w, t != ZERO_TOKEN, p->context_tree[1]);
// lookups and compares.
if (t != ZERO_TOKEN) {
// If we have a token that's in the constrained set, the coefficient tree vpx_write(w, t != ONE_TOKEN, p->context_tree[2]);
// is split into two treed writes. The first treed write takes care of the
// unconstrained nodes. The second treed write takes care of the if (t != ONE_TOKEN) {
// constrained nodes. int len = UNCONSTRAINED_NODES - p->skip_eob_node;
if (t >= TWO_TOKEN && t < EOB_TOKEN) { vp10_write_tree(w, vp10_coef_con_tree,
int len = UNCONSTRAINED_NODES - p->skip_eob_node; vp10_pareto8_full[p->context_tree[PIVOT_NODE] - 1],
int bits = v >> (n - len); v, n - len, 0);
vp10_write_tree(w, vp10_coef_tree, p->context_tree, bits, len, i); }
vp10_write_tree(w, vp10_coef_con_tree, }
vp10_pareto8_full[p->context_tree[PIVOT_NODE] - 1],
v, n - len, 0);
} else {
vp10_write_tree(w, vp10_coef_tree, p->context_tree, v, n, i);
} }
if (b->base_val) { if (b->base_val) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment