Commit ad66b816 authored by Nathan E. Egge's avatar Nathan E. Egge Committed by Nathan Egge

Merge NEW_TOKENSET experiment into EC_MULTISYMBOL.

Change-Id: I0ed6d8f2b6a83641f65096cf41fcde94e70d94d4
parent 12c0bc03
This diff is collapsed.
......@@ -45,7 +45,7 @@ extern "C" {
#define CATEGORY5_TOKEN 9 // 35-66 Extra Bits 5+1
#define CATEGORY6_TOKEN 10 // 67+ Extra Bits 14+1
#define EOB_TOKEN 11 // EOB Extra Bits 0+0
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
#define NO_EOB 0 // Not an end-of-block
#define EARLY_EOB 1 // End of block before the last position
#define LAST_EOB 2 // End of block in the last position (implicit)
......@@ -56,7 +56,7 @@ extern "C" {
#define ONE_TOKEN_NEOB 2
#define TWO_TOKEN_PLUS_EOB 3
#define TWO_TOKEN_PLUS_NEOB 4
#endif
#endif // CONFIG_EC_MULTISYMBOL
#define ENTROPY_TOKENS 12
#define ENTROPY_NODES 11
......@@ -253,9 +253,8 @@ extern const aom_cdf_prob av1_pareto8_token_probs[COEFF_PROB_MODELS]
extern const aom_cdf_prob av1_pareto8_tail_probs[COEFF_PROB_MODELS]
[ENTROPY_TOKENS - 3];
struct frame_contexts;
#if CONFIG_NEW_TOKENSET
void av1_coef_head_cdfs(struct frame_contexts *fc);
#endif
void av1_coef_pareto_cdfs(struct frame_contexts *fc);
#endif // CONFIG_EC_MULTISYMBOL
......
......@@ -99,13 +99,11 @@ typedef struct frame_contexts {
aom_prob partition_prob[PARTITION_CONTEXTS][PARTITION_TYPES - 1];
#endif
av1_coeff_probs_model coef_probs[TX_SIZES][PLANE_TYPES];
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
coeff_cdf_model coef_tail_cdfs[TX_SIZES][PLANE_TYPES];
coeff_cdf_model coef_head_cdfs[TX_SIZES][PLANE_TYPES];
aom_prob blockzero_probs[TX_SIZES][PLANE_TYPES][REF_TYPES][BLOCKZ_CONTEXTS];
#elif CONFIG_EC_MULTISYMBOL
coeff_cdf_model coef_cdfs[TX_SIZES][PLANE_TYPES];
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
aom_prob switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
[SWITCHABLE_FILTERS - 1];
#if CONFIG_ADAPT_SCAN
......
......@@ -2373,7 +2373,7 @@ static void setup_bool_decoder(const uint8_t *data, const uint8_t *data_end,
"Failed to allocate bool decoder %d", 1);
}
#if !CONFIG_PVQ && !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET) && !CONFIG_LV_MAP
#if !CONFIG_PVQ && !CONFIG_EC_ADAPT && !CONFIG_LV_MAP
static void read_coef_probs_common(av1_coeff_probs_model *coef_probs,
aom_reader *r) {
int i, j, k, l, m;
......@@ -4578,9 +4578,9 @@ static int read_compressed_header(AV1Decoder *pbi, const uint8_t *data,
av1_read_txb_probs(fc, cm->tx_mode, &r);
#else // CONFIG_LV_MAP
#if !CONFIG_PVQ
#if !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#if !CONFIG_EC_ADAPT
read_coef_probs(fc, cm->tx_mode, &r);
#endif // !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#endif // !CONFIG_EC_ADAPT
#endif // !CONFIG_PVQ
#endif // CONFIG_LV_MAP
......@@ -4736,9 +4736,7 @@ static int read_compressed_header(AV1Decoder *pbi, const uint8_t *data,
#endif // EC_ADAPT, DAALA_EC
}
#if CONFIG_EC_MULTISYMBOL && !CONFIG_EC_ADAPT
#if CONFIG_NEW_TOKENSET
av1_coef_head_cdfs(fc);
#endif
/* Make tail distribution from head */
av1_coef_pareto_cdfs(fc);
for (i = 0; i < NMV_CONTEXTS; ++i) av1_set_mv_cdfs(&fc->nmvc[i]);
......
......@@ -123,7 +123,7 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
#endif // CONFIG_AOM_QM
int band, c = 0;
const int tx_size_ctx = txsize_sqr_map[tx_size];
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob(*coef_head_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
ec_ctx->coef_head_cdfs[tx_size_ctx][type][ref];
aom_cdf_prob(*coef_tail_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
......@@ -139,14 +139,9 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
aom_prob(*coef_probs)[COEFF_CONTEXTS][UNCONSTRAINED_NODES] =
ec_ctx->coef_probs[tx_size_ctx][type][ref];
const aom_prob *prob;
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob(*coef_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
ec_ctx->coef_cdfs[tx_size_ctx][type][ref];
aom_cdf_prob(*cdf)[CDF_SIZE(ENTROPY_TOKENS)];
#endif // CONFIG_EC_MULTISYMBOL
unsigned int(*coef_counts)[COEFF_CONTEXTS][UNCONSTRAINED_NODES + 1] = NULL;
unsigned int(*eob_branch_count)[COEFF_CONTEXTS] = NULL;
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
uint8_t token_cache[MAX_TX_SQUARE];
const uint8_t *band_translate = get_band_translate(tx_size);
int dq_shift;
......@@ -161,18 +156,17 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
#endif // CONFIG_AOM_QM
if (counts) {
#if !CONFIG_NEW_TOKENSET || !CONFIG_EC_ADAPT
#if !CONFIG_EC_MULTISYMBOL
coef_counts = counts->coef[tx_size_ctx][type][ref];
eob_branch_count = counts->eob_branch[tx_size_ctx][type][ref];
#endif
#if CONFIG_NEW_TOKENSET && !CONFIG_EC_ADAPT
#elif !CONFIG_EC_ADAPT
blockz_count = counts->blockz_count[tx_size_ctx][type][ref][ctx];
#endif
}
dq_shift = av1_get_tx_scale(tx_size);
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
band = *band_translate++;
int more_data = 1;
......@@ -265,7 +259,7 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
ctx = get_coef_context(nb, token_cache, c);
band = *band_translate++;
#else // CONFIG_NEW_TOKENSET
#else // CONFIG_EC_MULTISYMBOL
while (c < max_eob) {
int val = -1;
band = *band_translate++;
......@@ -296,14 +290,6 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
*max_scan_line = AOMMAX(*max_scan_line, scan[c]);
#if CONFIG_EC_MULTISYMBOL
cdf = &coef_cdfs[band][ctx];
token = ONE_TOKEN +
aom_read_symbol(r, *cdf, CATEGORY6_TOKEN - ONE_TOKEN + 1, ACCT_STR);
INCREMENT_COUNT(ONE_TOKEN + (token > ONE_TOKEN));
assert(token != ZERO_TOKEN);
val = token_to_value(r, token, tx_size, xd->bd);
#else // CONFIG_EC_MULTISYMBOL
if (!aom_read(r, prob[ONE_CONTEXT_NODE], ACCT_STR)) {
INCREMENT_COUNT(ONE_TOKEN);
token = ONE_TOKEN;
......@@ -315,7 +301,6 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
assert(token != ZERO_TOKEN && token != ONE_TOKEN);
val = token_to_value(r, token, tx_size, xd->bd);
}
#endif // CONFIG_EC_MULTISYMBOL
#if CONFIG_NEW_QUANT
v = av1_dequant_abscoeff_nuq(val, dqv, dqv_val);
v = dq_shift ? ROUND_POWER_OF_TWO(v, dq_shift) : v;
......@@ -337,7 +322,7 @@ static int decode_coefs(MACROBLOCKD *xd, PLANE_TYPE type, tran_low_t *dqcoeff,
++c;
ctx = get_coef_context(nb, token_cache, c);
dqv = dq[1];
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
}
return c;
......
......@@ -887,7 +887,7 @@ static INLINE void write_coeff_extra(const aom_prob *pb, int value,
}
#endif
#if CONFIG_NEW_TOKENSET && !CONFIG_LV_MAP
#if CONFIG_EC_MULTISYMBOL && !CONFIG_LV_MAP
static void pack_mb_tokens(aom_writer *w, const TOKENEXTRA **tp,
const TOKENEXTRA *const stop,
aom_bit_depth_t bit_depth, const TX_SIZE tx_size,
......@@ -951,7 +951,7 @@ static void pack_mb_tokens(aom_writer *w, const TOKENEXTRA **tp,
*tp = p;
}
#else // CONFIG_NEW_TOKENSET
#else // CONFIG_EC_MULTISYMBOL && !CONFIG_LV_MAP
#if !CONFIG_LV_MAP
static void pack_mb_tokens(aom_writer *w, const TOKENEXTRA **tp,
const TOKENEXTRA *const stop,
......@@ -1042,7 +1042,7 @@ static void pack_mb_tokens(aom_writer *w, const TOKENEXTRA **tp,
*tp = p;
}
#endif // !CONFIG_LV_MAP
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL !CONFIG_LV_MAP
#else // !CONFIG_PVQ
static PVQ_INFO *get_pvq_block(PVQ_QUEUE *pvq_q) {
PVQ_INFO *pvq;
......@@ -3113,7 +3113,7 @@ static void write_modes(AV1_COMP *const cpi, const TileInfo *const tile,
}
#if !CONFIG_LV_MAP
#if !CONFIG_PVQ && !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#if !CONFIG_PVQ && !CONFIG_EC_ADAPT
static void build_tree_distribution(AV1_COMP *cpi, TX_SIZE tx_size,
av1_coeff_stats *coef_branch_ct,
av1_coeff_probs_model *coef_probs) {
......@@ -3144,7 +3144,7 @@ static void build_tree_distribution(AV1_COMP *cpi, TX_SIZE tx_size,
}
}
#if !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#if !CONFIG_EC_ADAPT
static void update_coef_probs_common(aom_writer *const bc, AV1_COMP *cpi,
TX_SIZE tx_size,
av1_coeff_stats *frame_branch_ct,
......@@ -3297,7 +3297,7 @@ static void update_coef_probs_common(aom_writer *const bc, AV1_COMP *cpi,
}
#endif
#if !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#if !CONFIG_EC_ADAPT
static void update_coef_probs(AV1_COMP *cpi, aom_writer *w) {
const TX_MODE tx_mode = cpi->common.tx_mode;
const TX_SIZE max_tx_size = tx_mode_to_biggest_tx_size[tx_mode];
......@@ -3316,7 +3316,7 @@ static void update_coef_probs(AV1_COMP *cpi, aom_writer *w) {
}
}
}
#endif // !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#endif // !CONFIG_EC_ADAPT
#endif // !CONFIG_EC_ADAPT
#endif // !CONFIG_LV_MAP
......@@ -4719,9 +4719,9 @@ static uint32_t write_compressed_header(AV1_COMP *cpi, uint8_t *data) {
av1_write_txb_probs(cpi, header_bc);
#else
#if !CONFIG_PVQ
#if !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#if !CONFIG_EC_ADAPT
update_coef_probs(cpi, header_bc);
#endif // !(CONFIG_EC_ADAPT && CONFIG_NEW_TOKENSET)
#endif // !CONFIG_EC_ADAPT
#endif // CONFIG_PVQ
#endif // CONFIG_LV_MAP
......@@ -4906,9 +4906,7 @@ static uint32_t write_compressed_header(AV1_COMP *cpi, uint8_t *data) {
#endif // CONFIG_GLOBAL_MOTION
}
#if CONFIG_EC_MULTISYMBOL && !CONFIG_EC_ADAPT
#if CONFIG_NEW_TOKENSET
av1_coef_head_cdfs(fc);
#endif
av1_coef_pareto_cdfs(fc);
for (i = 0; i < NMV_CONTEXTS; ++i) av1_set_mv_cdfs(&fc->nmvc[i]);
av1_set_mode_cdfs(cm);
......
......@@ -128,12 +128,12 @@ static const int plane_rd_mult[REF_TYPES][PLANE_TYPES] = {
static INLINE unsigned int get_token_bit_costs(
unsigned int token_costs[2][COEFF_CONTEXTS][ENTROPY_TOKENS], int skip_eob,
int ctx, int token) {
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
(void)skip_eob;
return token_costs[token == ZERO_TOKEN || token == EOB_TOKEN][ctx][token];
#else
return token_costs[skip_eob][ctx][token];
#endif
#endif // CONFIG_EC_MULTISYMBOL
}
#define USE_GREEDY_OPTIMIZE_B 0
......
......@@ -1104,12 +1104,12 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
int c, cost;
const int16_t *scan = scan_order->scan;
const int16_t *nb = scan_order->neighbors;
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
const int ref = is_inter_block(mbmi);
aom_prob *blockz_probs =
cm->fc->blockzero_probs[txsize_sqr_map[tx_size]][type][ref];
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
#if CONFIG_HIGHBITDEPTH
const int cat6_bits = av1_get_cat6_extrabits_size(tx_size, xd->bd);
......@@ -1124,12 +1124,12 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
(void)cm;
if (eob == 0) {
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
// single eob token
cost = av1_cost_bit(blockz_probs[pt], 0);
#else
cost = token_costs[0][0][pt][EOB_TOKEN];
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYBMOL
} else {
if (use_fast_coef_costing) {
int band_left = *band_count++;
......@@ -1138,11 +1138,11 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
int v = qcoeff[0];
int16_t prev_t;
cost = av1_get_token_cost(v, &prev_t, cat6_bits);
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
cost += (*token_costs)[!prev_t][pt][prev_t];
#else
cost += (*token_costs)[0][pt][prev_t];
#endif
#endif // CONFIG_EC_MULTISYMBOL
token_cache[0] = av1_pt_energy_class[prev_t];
++token_costs;
......@@ -1154,11 +1154,11 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
v = qcoeff[rc];
cost += av1_get_token_cost(v, &t, cat6_bits);
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
cost += (*token_costs)[!t][!prev_t][t];
#else
cost += (*token_costs)[!prev_t][!prev_t][t];
#endif
#endif // CONFIG_EC_MULTISYMBOL
prev_t = t;
if (!--band_left) {
band_left = *band_count++;
......@@ -1167,7 +1167,7 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
}
// eob token
if (band_left || CONFIG_NEW_TOKENSET)
if (band_left || CONFIG_EC_MULTISYMBOL)
cost += (*token_costs)[0][!prev_t][EOB_TOKEN];
} else { // !use_fast_coef_costing
......@@ -1176,22 +1176,22 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
// dc token
int v = qcoeff[0];
int16_t tok;
#if !CONFIG_NEW_TOKENSET
#if !CONFIG_EC_MULTISYMBOL
unsigned int(*tok_cost_ptr)[COEFF_CONTEXTS][ENTROPY_TOKENS];
#endif
#endif // !CONFIG_EC_MULTISYMBOL
cost = av1_get_token_cost(v, &tok, cat6_bits);
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
cost += (*token_costs)[!tok][pt][tok];
#else
cost += (*token_costs)[0][pt][tok];
#endif
#endif // CONFIG_EC_MULTISYMBOL
token_cache[0] = av1_pt_energy_class[tok];
++token_costs;
#if !CONFIG_NEW_TOKENSET
#if !CONFIG_EC_MULTISYMBOL
tok_cost_ptr = &((*token_costs)[!tok]);
#endif
#endif // !CONFIG_EC_MULTISYMBOL
// ac tokens
for (c = 1; c < eob; c++) {
......@@ -1200,23 +1200,23 @@ static int cost_coeffs(const AV1_COMMON *const cm, MACROBLOCK *x, int plane,
v = qcoeff[rc];
cost += av1_get_token_cost(v, &tok, cat6_bits);
pt = get_coef_context(nb, token_cache, c);
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
cost += (*token_costs)[!tok][pt][tok];
#else
cost += (*tok_cost_ptr)[pt][tok];
#endif
#endif // CONFIG_EC_MULTISYMBOL
token_cache[rc] = av1_pt_energy_class[tok];
if (!--band_left) {
band_left = *band_count++;
++token_costs;
}
#if !CONFIG_NEW_TOKENSET
#if !CONFIG_EC_MULTISYMBOL
tok_cost_ptr = &((*token_costs)[!tok]);
#endif
#endif // !CONFIG_EC_MULTISYMBOL
}
// eob token
if (band_left || CONFIG_NEW_TOKENSET) {
if (band_left || CONFIG_EC_MULTISYMBOL) {
pt = get_coef_context(nb, token_cache, c);
cost += (*token_costs)[0][pt][EOB_TOKEN];
}
......
......@@ -314,7 +314,7 @@ static void set_entropy_context_b(int plane, int block, int blk_row,
blk_row);
}
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
static INLINE void add_token(TOKENEXTRA **t,
aom_cdf_prob (*tail_cdf)[CDF_SIZE(ENTROPY_TOKENS)],
aom_cdf_prob (*head_cdf)[CDF_SIZE(ENTROPY_TOKENS)],
......@@ -329,24 +329,18 @@ static INLINE void add_token(TOKENEXTRA **t,
(*t)++;
}
#else // CONFIG_NEW_TOKENSET
static INLINE void add_token(
TOKENEXTRA **t, const aom_prob *context_tree,
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob (*token_cdf)[CDF_SIZE(ENTROPY_TOKENS)],
#endif // CONFIG_EC_MULTISYMBOL
int32_t extra, uint8_t token, uint8_t skip_eob_node, unsigned int *counts) {
#else // CONFIG_EC_MULTISYMBOL
static INLINE void add_token(TOKENEXTRA **t, const aom_prob *context_tree,
int32_t extra, uint8_t token,
uint8_t skip_eob_node, unsigned int *counts) {
(*t)->token = token;
(*t)->extra = extra;
(*t)->context_tree = context_tree;
#if CONFIG_EC_MULTISYMBOL
(*t)->token_cdf = token_cdf;
#endif // CONFIG_EC_MULTISYMBOL
(*t)->skip_eob_node = skip_eob_node;
(*t)++;
++counts[token];
}
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
#endif // !CONFIG_PVQ || CONFIG_VAR_TX
#if CONFIG_PALETTE
......@@ -471,16 +465,16 @@ static void tokenize_b(int plane, int block, int blk_row, int blk_col,
const int ref = is_inter_block(mbmi);
unsigned int(*const counts)[COEFF_CONTEXTS][ENTROPY_TOKENS] =
td->rd_counts.coef_counts[txsize_sqr_map[tx_size]][type][ref];
#if !CONFIG_NEW_TOKENSET
#if !CONFIG_EC_MULTISYMBOL
aom_prob(*const coef_probs)[COEFF_CONTEXTS][UNCONSTRAINED_NODES] =
cpi->common.fc->coef_probs[txsize_sqr_map[tx_size]][type][ref];
#endif // !CONFIG_NEW_TOKENSET
#endif // !CONFIG_EC_MULTISYMBOL
#if CONFIG_EC_ADAPT
FRAME_CONTEXT *ec_ctx = xd->tile_ctx;
#elif CONFIG_EC_MULTISYMBOL
FRAME_CONTEXT *ec_ctx = cpi->common.fc;
#endif
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob(
*const coef_head_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
ec_ctx->coef_head_cdfs[txsize_sqr_map[tx_size]][type][ref];
......@@ -492,12 +486,8 @@ static void tokenize_b(int plane, int block, int blk_row, int blk_col,
int eob_val;
int first_val = 1;
#else
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob(*const coef_cdfs)[COEFF_CONTEXTS][CDF_SIZE(ENTROPY_TOKENS)] =
ec_ctx->coef_cdfs[txsize_sqr_map[tx_size]][type][ref];
#endif
int skip_eob = 0;
#endif
#endif // CONFIG_EC_MULTISYMBOL
const int seg_eob = get_tx_eob(&cpi->common.seg, segment_id, tx_size);
unsigned int(*const eob_branch)[COEFF_CONTEXTS] =
td->counts->eob_branch[txsize_sqr_map[tx_size]][type][ref];
......@@ -511,7 +501,7 @@ static void tokenize_b(int plane, int block, int blk_row, int blk_col,
nb = scan_order->neighbors;
c = 0;
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
if (eob == 0)
add_token(&t, &coef_tail_cdfs[band[c]][pt], &coef_head_cdfs[band[c]][pt], 1,
1, 0, BLOCK_Z_TOKEN);
......@@ -554,11 +544,8 @@ static void tokenize_b(int plane, int block, int blk_row, int blk_col,
av1_get_token_extra(v, &token, &extra);
add_token(&t, coef_probs[band[c]][pt],
#if CONFIG_EC_MULTISYMBOL
&coef_cdfs[band[c]][pt],
#endif
extra, (uint8_t)token, (uint8_t)skip_eob, counts[band[c]][pt]);
add_token(&t, coef_probs[band[c]][pt], extra, (uint8_t)token,
(uint8_t)skip_eob, counts[band[c]][pt]);
token_cache[scan[c]] = av1_pt_energy_class[token];
++c;
......@@ -566,14 +553,11 @@ static void tokenize_b(int plane, int block, int blk_row, int blk_col,
skip_eob = (token == ZERO_TOKEN);
}
if (c < seg_eob) {
add_token(&t, coef_probs[band[c]][pt],
#if CONFIG_EC_MULTISYMBOL
NULL,
#endif
0, EOB_TOKEN, 0, counts[band[c]][pt]);
add_token(&t, coef_probs[band[c]][pt], 0, EOB_TOKEN, 0,
counts[band[c]][pt]);
++eob_branch[band[c]][pt];
}
#endif // CONFIG_NEW_TOKENSET
#endif // CONFIG_EC_MULTISYMBOL
#if CONFIG_COEF_INTERLEAVE
t->token = EOSB_TOKEN;
......
......@@ -35,14 +35,12 @@ typedef struct {
} TOKENVALUE;
typedef struct {
#if CONFIG_NEW_TOKENSET
#if CONFIG_EC_MULTISYMBOL
aom_cdf_prob (*tail_cdf)[CDF_SIZE(ENTROPY_TOKENS)];
aom_cdf_prob (*head_cdf)[CDF_SIZE(ENTROPY_TOKENS)];
int eob_val;
int first_val;
#elif CONFIG_EC_MULTISYMBOL
aom_cdf_prob (*token_cdf)[CDF_SIZE(ENTROPY_TOKENS)];
#endif
#endif // CONFIG_EC_MULTISYMBOL
const aom_prob *context_tree;
EXTRABIT extra;
uint8_t token;
......
......@@ -267,7 +267,6 @@ EXPERIMENT_LIST="
supertx
ans
ec_multisymbol
new_tokenset
loop_restoration
ext_partition
ext_partition_types
......@@ -483,7 +482,6 @@ post_process_cmdline() {
soft_enable ext_tx
soft_enable cdef
soft_enable ec_adapt
soft_enable new_tokenset
soft_enable ext_intra
soft_enable mv_compress
soft_enable ext_refs
......@@ -515,7 +513,6 @@ post_process_cmdline() {
enabled pvq && enable_feature ec_adapt
enabled cfl && enable_feature ec_multisymbol
enabled ec_adapt && enable_feature ec_multisymbol
enabled new_tokenset && enable_feature ec_multisymbol
enabled new_multisymbol && enable_feature ec_multisymbol
enabled ec_multisymbol && ! enabled ans && soft_enable daala_ec
enabled ec_multisymbol && ! enabled daala_ec && soft_enable ans
......
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