From 04d62a989bcd2c32be546e4f5129171f9ff0b037 Mon Sep 17 00:00:00 2001 From: Deb Mukherjee <debargha@google.com> Date: Mon, 22 Oct 2012 16:52:28 -0700 Subject: [PATCH] Merging in the TX_SELECT experiment Change-Id: I0d306b0062be59bc785b65882691c956c8b5e7c8 --- configure | 1 - vp8/common/onyxc_int.h | 6 +---- vp8/decoder/decodemv.c | 10 ++----- vp8/decoder/decodframe.c | 6 ----- vp8/encoder/bitstream.c | 8 ------ vp8/encoder/block.h | 2 -- vp8/encoder/encodeframe.c | 28 ++----------------- vp8/encoder/onyx_if.c | 2 -- vp8/encoder/onyx_int.h | 2 -- vp8/encoder/rdopt.c | 57 +-------------------------------------- 10 files changed, 6 insertions(+), 116 deletions(-) diff --git a/configure b/configure index 5fbb111fbb..77ae9deca8 100755 --- a/configure +++ b/configure @@ -224,7 +224,6 @@ EXPERIMENT_LIST=" switchable_interp newbestrefmv new_mvref - tx_select " CONFIG_LIST=" external_build diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h index e5be8afad3..646b7a08f7 100644 --- a/vp8/common/onyxc_int.h +++ b/vp8/common/onyxc_int.h @@ -131,10 +131,8 @@ typedef enum { ONLY_4X4 = 0, ALLOW_8X8 = 1, ALLOW_16X16 = 2, -#if CONFIG_TX_SELECT TX_MODE_SELECT = 3, -#endif - NB_TXFM_MODES = 3 + CONFIG_TX_SELECT, + NB_TXFM_MODES = 4, } TXFM_MODE; typedef struct VP8_COMMON_RTCD { @@ -272,10 +270,8 @@ typedef struct VP8Common { vp8_prob prob_comppred[COMP_PRED_CONTEXTS]; -#if CONFIG_TX_SELECT // FIXME contextualize vp8_prob prob_tx[TX_SIZE_MAX - 1]; -#endif vp8_prob mbskip_pred_probs[MBSKIP_CONTEXTS]; diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c index c64982e75d..83b899edf3 100644 --- a/vp8/decoder/decodemv.c +++ b/vp8/decoder/decodemv.c @@ -170,16 +170,13 @@ static void kfread_modes(VP8D_COMP *pbi, m->mbmi.second_uv_mode = (MB_PREDICTION_MODE)(DC_PRED - 1); #endif -#if CONFIG_TX_SELECT if (cm->txfm_mode == TX_MODE_SELECT && m->mbmi.mb_skip_coeff == 0 && m->mbmi.mode <= I8X8_PRED) { // FIXME(rbultje) code ternary symbol once all experiments are merged m->mbmi.txfm_size = vp8_read(bc, cm->prob_tx[0]); if (m->mbmi.txfm_size != TX_4X4 && m->mbmi.mode != I8X8_PRED) m->mbmi.txfm_size += vp8_read(bc, cm->prob_tx[1]); - } else -#endif - if (cm->txfm_mode >= ALLOW_16X16 && m->mbmi.mode <= TM_PRED) { + } else if (cm->txfm_mode >= ALLOW_16X16 && m->mbmi.mode <= TM_PRED) { m->mbmi.txfm_size = TX_16X16; } else if (cm->txfm_mode >= ALLOW_8X8 && m->mbmi.mode != B_PRED) { m->mbmi.txfm_size = TX_8X8; @@ -1099,7 +1096,6 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi, #endif } -#if CONFIG_TX_SELECT if (cm->txfm_mode == TX_MODE_SELECT && mbmi->mb_skip_coeff == 0 && ((mbmi->ref_frame == INTRA_FRAME && mbmi->mode <= I8X8_PRED) || (mbmi->ref_frame != INTRA_FRAME && !(mbmi->mode == SPLITMV && @@ -1109,9 +1105,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi, if (mbmi->txfm_size != TX_4X4 && mbmi->mode != I8X8_PRED && mbmi->mode != SPLITMV) mbmi->txfm_size += vp8_read(bc, cm->prob_tx[1]); - } else -#endif - if (cm->txfm_mode >= ALLOW_16X16 && + } else if (cm->txfm_mode >= ALLOW_16X16 && ((mbmi->ref_frame == INTRA_FRAME && mbmi->mode <= TM_PRED) || (mbmi->ref_frame != INTRA_FRAME && mbmi->mode != SPLITMV))) { mbmi->txfm_size = TX_16X16; diff --git a/vp8/decoder/decodframe.c b/vp8/decoder/decodframe.c index f74be8bdee..8e1ebe35da 100644 --- a/vp8/decoder/decodframe.c +++ b/vp8/decoder/decodframe.c @@ -1190,17 +1190,11 @@ int vp8_decode_frame(VP8D_COMP *pbi) { #endif /* Read the loop filter level and type */ -#if CONFIG_TX_SELECT pc->txfm_mode = vp8_read_literal(&header_bc, 2); if (pc->txfm_mode == TX_MODE_SELECT) { pc->prob_tx[0] = vp8_read_literal(&header_bc, 8); pc->prob_tx[1] = vp8_read_literal(&header_bc, 8); } -#else - pc->txfm_mode = (TXFM_MODE) vp8_read_bit(&header_bc); - if (pc->txfm_mode == ALLOW_8X8) - pc->txfm_mode = ALLOW_16X16; -#endif pc->filter_type = (LOOPFILTERTYPE) vp8_read_bit(&header_bc); pc->filter_level = vp8_read_literal(&header_bc, 6); diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c index d6c4268ca9..d668865618 100644 --- a/vp8/encoder/bitstream.c +++ b/vp8/encoder/bitstream.c @@ -1146,7 +1146,6 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi, vp8_writer *const bc) { } } -#if CONFIG_TX_SELECT if (((rf == INTRA_FRAME && mode <= I8X8_PRED) || (rf != INTRA_FRAME && !(mode == SPLITMV && mi->partitioning == PARTITIONING_4X4))) && @@ -1160,7 +1159,6 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi, vp8_writer *const bc) { if (sz != TX_4X4 && mode != I8X8_PRED && mode != SPLITMV) vp8_write(bc, sz != TX_8X8, pc->prob_tx[1]); } -#endif #ifdef ENTROPY_STATS active_section = 1; @@ -1289,7 +1287,6 @@ static void write_mb_modes_kf(const VP8_COMMON *c, } else write_uv_mode(bc, m->mbmi.uv_mode, c->kf_uv_mode_prob[ym]); -#if CONFIG_TX_SELECT if (ym <= I8X8_PRED && c->txfm_mode == TX_MODE_SELECT && !((c->mb_no_coeff_skip && m->mbmi.mb_skip_coeff) || (segfeature_active(xd, segment_id, SEG_LVL_EOB) && @@ -1300,7 +1297,6 @@ static void write_mb_modes_kf(const VP8_COMMON *c, if (sz != TX_4X4 && ym <= TM_PRED) vp8_write(bc, sz != TX_8X8, c->prob_tx[1]); } -#endif } static void write_kfmodes(VP8_COMP* const cpi, vp8_writer* const bc) { @@ -2477,7 +2473,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size) } #endif -#if CONFIG_TX_SELECT { if (pc->txfm_mode == TX_MODE_SELECT) { pc->prob_tx[0] = get_prob(cpi->txfm_count[0] + cpi->txfm_count_8x8p[0], @@ -2494,9 +2489,6 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size) vp8_write_literal(&header_bc, pc->prob_tx[1], 8); } } -#else - vp8_write_bit(&header_bc, !!pc->txfm_mode); -#endif // Encode the loop filter level and type vp8_write_bit(&header_bc, pc->filter_type); diff --git a/vp8/encoder/block.h b/vp8/encoder/block.h index 7c1261a7fe..c18b64f2c9 100644 --- a/vp8/encoder/block.h +++ b/vp8/encoder/block.h @@ -79,9 +79,7 @@ typedef struct { int hybrid_pred_diff; int comp_pred_diff; int single_pred_diff; -#if CONFIG_TX_SELECT int64_t txfm_rd_diff[NB_TXFM_MODES]; -#endif } PICK_MODE_CONTEXT; typedef struct { diff --git a/vp8/encoder/encodeframe.c b/vp8/encoder/encodeframe.c index a71df85aea..20e63725c4 100644 --- a/vp8/encoder/encodeframe.c +++ b/vp8/encoder/encodeframe.c @@ -411,7 +411,6 @@ static void update_state(VP8_COMP *cpi, MACROBLOCK *x, PICK_MODE_CONTEXT *ctx) { mbmi->mv[1].as_int = x->partition_info->bmi[15].second_mv.as_int; } -#if CONFIG_TX_SELECT { int segment_id = mbmi->segment_id; if (!segfeature_active(xd, segment_id, SEG_LVL_EOB) || @@ -421,7 +420,6 @@ static void update_state(VP8_COMP *cpi, MACROBLOCK *x, PICK_MODE_CONTEXT *ctx) { } } } -#endif if (cpi->common.frame_type == KEY_FRAME) { // Restore the coding modes to that held in the coding context @@ -1382,11 +1380,9 @@ static void encode_frame_internal(VP8_COMP *cpi) { vpx_memset(cpi->rd_comp_pred_diff, 0, sizeof(cpi->rd_comp_pred_diff)); vpx_memset(cpi->single_pred_count, 0, sizeof(cpi->single_pred_count)); vpx_memset(cpi->comp_pred_count, 0, sizeof(cpi->comp_pred_count)); -#if CONFIG_TX_SELECT vpx_memset(cpi->txfm_count, 0, sizeof(cpi->txfm_count)); vpx_memset(cpi->txfm_count_8x8p, 0, sizeof(cpi->txfm_count_8x8p)); vpx_memset(cpi->rd_tx_select_diff, 0, sizeof(cpi->rd_tx_select_diff)); -#endif { struct vpx_usec_timer emr_timer; vpx_usec_timer_start(&emr_timer); @@ -1446,7 +1442,6 @@ static int check_dual_ref_flags(VP8_COMP *cpi) { } } -#if CONFIG_TX_SELECT static void reset_skip_txfm_size(VP8_COMP *cpi, TX_SIZE txfm_max) { VP8_COMMON *cm = &cpi->common; int mb_row, mb_col, mis = cm->mode_info_stride; @@ -1470,7 +1465,6 @@ static void reset_skip_txfm_size(VP8_COMP *cpi, TX_SIZE txfm_max) { } } } -#endif void vp8_encode_frame(VP8_COMP *cpi) { if (cpi->sf.RD) { @@ -1516,7 +1510,6 @@ void vp8_encode_frame(VP8_COMP *cpi) { txfm_type = ONLY_4X4; } else #endif -#if CONFIG_TX_SELECT /* FIXME (rbultje) * this is a hack (no really), basically to work around the complete * nonsense coefficient cost prediction for keyframes. The probabilities @@ -1564,16 +1557,11 @@ void vp8_encode_frame(VP8_COMP *cpi) { cpi->rd_tx_select_threshes[frame_type][TX_MODE_SELECT] ? ALLOW_16X16 : TX_MODE_SELECT; #endif -#else - txfm_type = ALLOW_16X16; -#endif // CONFIG_TX_SELECT cpi->common.txfm_mode = txfm_type; -#if CONFIG_TX_SELECT if (txfm_type != TX_MODE_SELECT) { cpi->common.prob_tx[0] = 128; cpi->common.prob_tx[1] = 128; } -#endif cpi->common.comp_pred_mode = pred_type; encode_frame_internal(cpi); @@ -1583,7 +1571,6 @@ void vp8_encode_frame(VP8_COMP *cpi) { cpi->rd_prediction_type_threshes[frame_type][i] >>= 1; } -#if CONFIG_TX_SELECT for (i = 0; i < NB_TXFM_MODES; ++i) { int64_t pd = cpi->rd_tx_select_diff[i]; int diff; @@ -1593,7 +1580,6 @@ void vp8_encode_frame(VP8_COMP *cpi) { cpi->rd_tx_select_threshes[frame_type][i] += diff; cpi->rd_tx_select_threshes[frame_type][i] /= 2; } -#endif if (cpi->common.comp_pred_mode == HYBRID_PREDICTION) { int single_count_zero = 0; @@ -1611,7 +1597,6 @@ void vp8_encode_frame(VP8_COMP *cpi) { } } -#if CONFIG_TX_SELECT if (cpi->common.txfm_mode == TX_MODE_SELECT) { const int count4x4 = cpi->txfm_count[TX_4X4] + cpi->txfm_count_8x8p[TX_4X4]; const int count8x8 = cpi->txfm_count[TX_8X8]; @@ -1628,7 +1613,6 @@ void vp8_encode_frame(VP8_COMP *cpi) { cpi->common.txfm_mode = ALLOW_16X16; } } -#endif } else { encode_frame_internal(cpi); } @@ -1946,15 +1930,12 @@ void vp8cx_encode_intra_macro_block(VP8_COMP *cpi, } if (output_enabled) { -#if CONFIG_TX_SELECT int segment_id = mbmi->segment_id; -#endif // Tokenize sum_intra_stats(cpi, x); vp8_tokenize_mb(cpi, &x->e_mbd, t, 0); -#if CONFIG_TX_SELECT if (cpi->common.txfm_mode == TX_MODE_SELECT && !((cpi->common.mb_no_coeff_skip && mbmi->mb_skip_coeff) || (segfeature_active(&x->e_mbd, segment_id, SEG_LVL_EOB) && @@ -1964,9 +1945,7 @@ void vp8cx_encode_intra_macro_block(VP8_COMP *cpi, } else if (mbmi->mode == I8X8_PRED) { cpi->txfm_count_8x8p[mbmi->txfm_size]++; } - } else -#endif - if (cpi->common.txfm_mode >= ALLOW_16X16 && mbmi->mode <= TM_PRED) { + } else if (cpi->common.txfm_mode >= ALLOW_16X16 && mbmi->mode <= TM_PRED) { mbmi->txfm_size = TX_16X16; } else if (cpi->common.txfm_mode >= ALLOW_8X8 && mbmi->mode != B_PRED) { @@ -2147,7 +2126,6 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x, } if (output_enabled) { -#if CONFIG_TX_SELECT int segment_id = mbmi->segment_id; if (cpi->common.txfm_mode == TX_MODE_SELECT && !((cpi->common.mb_no_coeff_skip && mbmi->mb_skip_coeff) || @@ -2161,9 +2139,7 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x, mbmi->partitioning != PARTITIONING_4X4)) { cpi->txfm_count_8x8p[mbmi->txfm_size]++; } - } else -#endif - if (mbmi->mode != B_PRED && mbmi->mode != I8X8_PRED && + } else if (mbmi->mode != B_PRED && mbmi->mode != I8X8_PRED && mbmi->mode != SPLITMV && cpi->common.txfm_mode >= ALLOW_16X16) { mbmi->txfm_size = TX_16X16; } else if (mbmi->mode != B_PRED && diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 7c1fe43e31..ce0caf8e2d 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -1775,10 +1775,8 @@ VP8_PTR vp8_create_compressor(VP8_CONFIG *oxcf) { #endif for (i = 0; i < COMP_PRED_CONTEXTS; i++) cm->prob_comppred[i] = 128; -#if CONFIG_TX_SELECT for (i = 0; i < TX_SIZE_MAX - 1; i++) cm->prob_tx[i] = 128; -#endif // Prime the recent reference frame useage counters. // Hereafter they will be maintained as a sort of moving average diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index 8c4f78bace..ab1bb44ec7 100644 --- a/vp8/encoder/onyx_int.h +++ b/vp8/encoder/onyx_int.h @@ -451,13 +451,11 @@ typedef struct VP8_COMP { int rd_prediction_type_threshes[4][NB_PREDICTION_TYPES]; int comp_pred_count[COMP_PRED_CONTEXTS]; int single_pred_count[COMP_PRED_CONTEXTS]; -#if CONFIG_TX_SELECT // FIXME contextualize int txfm_count[TX_SIZE_MAX]; int txfm_count_8x8p[TX_SIZE_MAX - 1]; int64_t rd_tx_select_diff[NB_TXFM_MODES]; int rd_tx_select_threshes[4][NB_TXFM_MODES]; -#endif int RDMULT; int RDDIV; diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 4e83af6ddf..3b80302c0b 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -871,8 +871,6 @@ static void macro_block_yrd(VP8_COMP *cpi, MACROBLOCK *x, int *rate, VP8_COMMON *cm = &cpi->common; MB_MODE_INFO *mbmi = &x->e_mbd.mode_info_context->mbmi; -#if CONFIG_TX_SELECT - MACROBLOCKD *xd = &x->e_mbd; int can_skip = cm->mb_no_coeff_skip; vp8_prob skip_prob = can_skip ? get_pred_prob(cm, xd, PRED_MBSKIP) : 128; @@ -980,25 +978,6 @@ static void macro_block_yrd(VP8_COMP *cpi, MACROBLOCK *x, int *rate, else txfm_cache[TX_MODE_SELECT] = rd4x4s < rd8x8s ? rd4x4s : rd8x8s; -#else /* CONFIG_TX_SELECT */ - - switch (cpi->common.txfm_mode) { - case ALLOW_16X16: - macro_block_yrd_16x16(x, rate, distortion, IF_RTCD(&cpi->rtcd), skippable); - mbmi->txfm_size = TX_16X16; - break; - case ALLOW_8X8: - macro_block_yrd_8x8(x, rate, distortion, IF_RTCD(&cpi->rtcd), skippable); - mbmi->txfm_size = TX_8X8; - break; - default: - case ONLY_4X4: - macro_block_yrd_4x4(x, rate, distortion, IF_RTCD(&cpi->rtcd), skippable); - mbmi->txfm_size = TX_4X4; - break; - } - -#endif /* CONFIG_TX_SELECT */ } static void copy_predictor(unsigned char *dst, const unsigned char *predictor) { @@ -1349,11 +1328,9 @@ static int64_t rd_pick_intra16x16mby_mode(VP8_COMP *cpi, int64_t this_rd; MACROBLOCKD *xd = &x->e_mbd; -#if CONFIG_TX_SELECT int i; for (i = 0; i < NB_TXFM_MODES; i++) txfm_cache[i] = INT64_MAX; -#endif // Y Search for 16x16 intra prediction mode for (mode = DC_PRED; mode <= TM_PRED; mode++) { @@ -1396,7 +1373,6 @@ static int64_t rd_pick_intra16x16mby_mode(VP8_COMP *cpi, *skippable = skip; } -#if CONFIG_TX_SELECT for (i = 0; i < NB_TXFM_MODES; i++) { int64_t adj_rd = this_rd + local_txfm_cache[i] - local_txfm_cache[cpi->common.txfm_mode]; @@ -1404,7 +1380,6 @@ static int64_t rd_pick_intra16x16mby_mode(VP8_COMP *cpi, txfm_cache[i] = adj_rd; } } -#endif #if CONFIG_COMP_INTRA_PRED } @@ -2570,7 +2545,6 @@ static void rd_check_segment(VP8_COMP *cpi, MACROBLOCK *x, /* 16 = n_blocks */ int_mv seg_mvs[16][MAX_REF_FRAMES - 1], int64_t txfm_cache[NB_TXFM_MODES]) { -#if CONFIG_TX_SELECT int i, n, c = vp8_mbsplit_count[segmentation]; if (segmentation == PARTITIONING_4X4) { @@ -2658,12 +2632,6 @@ static void rd_check_segment(VP8_COMP *cpi, MACROBLOCK *x, } } } -#else - rd_check_segment_txsize(cpi, x, bsi, segmentation, - (segmentation == PARTITIONING_4X4 || - cpi->common.txfm_mode == ONLY_4X4) ? TX_4X4 : TX_8X8, - NULL, NULL, NULL, seg_mvs); -#endif } static __inline @@ -3280,9 +3248,7 @@ static void store_coding_context(MACROBLOCK *x, PICK_MODE_CONTEXT *ctx, int hybrid_pred_diff, int64_t txfm_size_diff[NB_TXFM_MODES]) { MACROBLOCKD *xd = &x->e_mbd; -#if CONFIG_TX_SELECT MB_MODE_INFO *mbmi = &xd->mode_info_context->mbmi; -#endif // Take a snapshot of the coding context so it can be // restored if we decide to encode this way @@ -3302,9 +3268,7 @@ static void store_coding_context(MACROBLOCK *x, PICK_MODE_CONTEXT *ctx, ctx->comp_pred_diff = comp_pred_diff; ctx->hybrid_pred_diff = hybrid_pred_diff; -#if CONFIG_TX_SELECT memcpy(ctx->txfm_rd_diff, txfm_size_diff, sizeof(ctx->txfm_rd_diff)); -#endif } static void inter_mode_cost(VP8_COMP *cpi, MACROBLOCK *x, int this_mode, @@ -3707,11 +3671,9 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int } break; case I8X8_PRED: { -#if CONFIG_TX_SELECT int cost0 = vp8_cost_bit(cm->prob_tx[0], 0); int cost1 = vp8_cost_bit(cm->prob_tx[0], 1); int64_t tmp_rd_4x4s, tmp_rd_8x8s; -#endif int64_t tmp_rd_4x4, tmp_rd_8x8, tmp_rd; int r4x4, tok4x4, d4x4, r8x8, tok8x8, d8x8; mbmi->txfm_size = TX_4X4; @@ -3733,7 +3695,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int txfm_cache[ONLY_4X4] = tmp_rd_4x4; txfm_cache[ALLOW_8X8] = tmp_rd_8x8; txfm_cache[ALLOW_16X16] = tmp_rd_8x8; -#if CONFIG_TX_SELECT tmp_rd_4x4s = tmp_rd_4x4 + RDCOST(x->rdmult, x->rddiv, cost0, 0); tmp_rd_8x8s = tmp_rd_8x8 + RDCOST(x->rdmult, x->rddiv, cost1, 0); txfm_cache[TX_MODE_SELECT] = tmp_rd_4x4s < tmp_rd_8x8s ? tmp_rd_4x4s : tmp_rd_8x8s; @@ -3762,9 +3723,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int mode8x8[1][3] = x->e_mbd.mode_info_context->bmi[10].as_mode.second; #endif } - } else -#endif - if (cm->txfm_mode == ONLY_4X4) { + } else if (cm->txfm_mode == ONLY_4X4) { rate = r4x4; rate_y = tok4x4; distortion = d4x4; @@ -4279,11 +4238,9 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int (cpi->oxcf.arnr_max_frames == 0) && (best_mbmode.mode != ZEROMV || best_mbmode.ref_frame != ALTREF_FRAME)) { mbmi->mode = ZEROMV; -#if CONFIG_TX_SELECT if (cm->txfm_mode != TX_MODE_SELECT) mbmi->txfm_size = cm->txfm_mode; else -#endif mbmi->txfm_size = TX_16X16; mbmi->ref_frame = ALTREF_FRAME; mbmi->mv[0].as_int = 0; @@ -4333,7 +4290,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int best_pred_diff[i] = best_rd - best_pred_rd[i]; } -#if CONFIG_TX_SELECT if (!x->skip) { for (i = 0; i < NB_TXFM_MODES; i++) { if (best_txfm_rd[i] == INT64_MAX) @@ -4344,7 +4300,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int } else { vpx_memset(best_txfm_diff, 0, sizeof(best_txfm_diff)); } -#endif end: store_coding_context(x, &x->mb_context[xd->mb_index], best_mode_index, &best_partition, @@ -4475,10 +4430,8 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, vp8_cost_bit(get_pred_prob(cm, xd, PRED_MBSKIP), 1); dist = dist16x16 + (distuv8x8 >> 2); mbmi->txfm_size = txfm_size_16x16; -#if CONFIG_TX_SELECT memset(x->mb_context[xd->mb_index].txfm_rd_diff, 0, sizeof(x->mb_context[xd->mb_index].txfm_rd_diff)); -#endif } else if (error8x8 > error16x16) { if (error4x4 < error16x16) { rate = rateuv; @@ -4495,20 +4448,16 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, mbmi->mode = B_PRED; mbmi->txfm_size = TX_4X4; dist = dist4x4 + (distuv >> 2); -#if CONFIG_TX_SELECT memset(x->mb_context[xd->mb_index].txfm_rd_diff, 0, sizeof(x->mb_context[xd->mb_index].txfm_rd_diff)); -#endif } else { mbmi->txfm_size = txfm_size_16x16; mbmi->mode = mode16x16; rate = rate16x16 + rateuv8x8; dist = dist16x16 + (distuv8x8 >> 2); -#if CONFIG_TX_SELECT for (i = 0; i < NB_TXFM_MODES; i++) { x->mb_context[xd->mb_index].txfm_rd_diff[i] = error16x16 - txfm_cache[i]; } -#endif } if (cpi->common.mb_no_coeff_skip) rate += vp8_cost_bit(get_pred_prob(cm, xd, PRED_MBSKIP), 0); @@ -4528,10 +4477,8 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, mbmi->mode = B_PRED; mbmi->txfm_size = TX_4X4; dist = dist4x4 + (distuv >> 2); -#if CONFIG_TX_SELECT memset(x->mb_context[xd->mb_index].txfm_rd_diff, 0, sizeof(x->mb_context[xd->mb_index].txfm_rd_diff)); -#endif } else { // FIXME(rbultje) support transform-size selection mbmi->mode = I8X8_PRED; @@ -4539,10 +4486,8 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, set_i8x8_block_modes(x, mode8x8); rate = rate8x8 + rateuv; dist = dist8x8 + (distuv >> 2); -#if CONFIG_TX_SELECT memset(x->mb_context[xd->mb_index].txfm_rd_diff, 0, sizeof(x->mb_context[xd->mb_index].txfm_rd_diff)); -#endif } if (cpi->common.mb_no_coeff_skip) rate += vp8_cost_bit(get_pred_prob(cm, xd, PRED_MBSKIP), 0); -- GitLab