Code cleanup.
Add local variable in several places to reference the MB mode info structure. Currently this is usually accessed in the code as x->e_mbd.mode_info_context->mbmi.* or in some places xd->mode_info_context->mbmi.* Resolved some uses of x-> for the MACROBLOCKD structure. Rebased without dependency on motion reference experiment. Change-Id: If6718276ee4f2ef131825d1524dfdb02a3793aed
This commit is contained in:
parent
bf474e170f
commit
bd9e5eceb8
@ -365,6 +365,7 @@ static void update_state(VP8_COMP *cpi, MACROBLOCK *x, PICK_MODE_CONTEXT *ctx) {
|
||||
int i;
|
||||
MACROBLOCKD *xd = &x->e_mbd;
|
||||
MODE_INFO *mi = &ctx->mic;
|
||||
MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi;
|
||||
int mb_mode = mi->mbmi.mode;
|
||||
int mb_mode_index = ctx->best_mode_index;
|
||||
|
||||
@ -391,10 +392,8 @@ static void update_state(VP8_COMP *cpi, MACROBLOCK *x, PICK_MODE_CONTEXT *ctx) {
|
||||
vpx_memcpy(x->partition_info, &ctx->partition_info,
|
||||
sizeof(PARTITION_INFO));
|
||||
|
||||
xd->mode_info_context->mbmi.mv.as_int =
|
||||
x->partition_info->bmi[15].mv.as_int;
|
||||
xd->mode_info_context->mbmi.second_mv.as_int =
|
||||
x->partition_info->bmi[15].second_mv.as_int;
|
||||
mbmi->mv.as_int = x->partition_info->bmi[15].mv.as_int;
|
||||
mbmi->second_mv.as_int = x->partition_info->bmi[15].second_mv.as_int;
|
||||
}
|
||||
|
||||
if (cpi->common.frame_type == KEY_FRAME) {
|
||||
@ -490,6 +489,7 @@ static void pick_mb_modes(VP8_COMP *cpi,
|
||||
int dx = col_delta[i];
|
||||
int offset_unextended = dy * cm->mb_cols + dx;
|
||||
int offset_extended = dy * xd->mode_info_stride + dx;
|
||||
MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi;
|
||||
|
||||
// TODO Many of the index items here can be computed more efficiently!
|
||||
|
||||
@ -569,20 +569,19 @@ static void pick_mb_modes(VP8_COMP *cpi,
|
||||
if (xd->segmentation_enabled) {
|
||||
// Code to set segment id in xd->mbmi.segment_id
|
||||
if (cpi->segmentation_map[map_index] <= 3)
|
||||
xd->mode_info_context->mbmi.segment_id =
|
||||
cpi->segmentation_map[map_index];
|
||||
mbmi->segment_id = cpi->segmentation_map[map_index];
|
||||
else
|
||||
xd->mode_info_context->mbmi.segment_id = 0;
|
||||
mbmi->segment_id = 0;
|
||||
|
||||
vp8cx_mb_init_quantizer(cpi, x);
|
||||
} else
|
||||
// Set to Segment 0 by default
|
||||
xd->mode_info_context->mbmi.segment_id = 0;
|
||||
mbmi->segment_id = 0;
|
||||
|
||||
x->active_ptr = cpi->active_map + map_index;
|
||||
|
||||
/* force 4x4 transform for mode selection */
|
||||
xd->mode_info_context->mbmi.txfm_size = TX_4X4; // TODO IS this right??
|
||||
mbmi->txfm_size = TX_4X4; // TODO IS this right??
|
||||
|
||||
cpi->update_context = 0; // TODO Do we need this now??
|
||||
|
||||
@ -621,7 +620,7 @@ static void pick_mb_modes(VP8_COMP *cpi,
|
||||
vp8cx_encode_inter_macroblock(cpi, x, tp,
|
||||
recon_yoffset, recon_uvoffset, 0);
|
||||
|
||||
seg_id = xd->mode_info_context->mbmi.segment_id;
|
||||
seg_id = mbmi->segment_id;
|
||||
if (cpi->mb.e_mbd.segmentation_enabled && seg_id == 0) {
|
||||
cpi->seg0_idx++;
|
||||
}
|
||||
@ -700,6 +699,7 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
int dx = col_delta[i];
|
||||
int offset_extended = dy * xd->mode_info_stride + dx;
|
||||
int offset_unextended = dy * cm->mb_cols + dx;
|
||||
MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi;
|
||||
|
||||
if ((mb_row >= cm->mb_rows) || (mb_col >= cm->mb_cols)) {
|
||||
// MB lies outside frame, move on
|
||||
@ -798,15 +798,14 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
if (xd->segmentation_enabled) {
|
||||
// Code to set segment id in xd->mbmi.segment_id
|
||||
if (cpi->segmentation_map[map_index] <= 3)
|
||||
xd->mode_info_context->mbmi.segment_id =
|
||||
cpi->segmentation_map[map_index];
|
||||
mbmi->segment_id = cpi->segmentation_map[map_index];
|
||||
else
|
||||
xd->mode_info_context->mbmi.segment_id = 0;
|
||||
mbmi->segment_id = 0;
|
||||
|
||||
vp8cx_mb_init_quantizer(cpi, x);
|
||||
} else
|
||||
// Set to Segment 0 by default
|
||||
xd->mode_info_context->mbmi.segment_id = 0;
|
||||
mbmi->segment_id = 0;
|
||||
|
||||
x->active_ptr = cpi->active_map + map_index;
|
||||
|
||||
@ -817,7 +816,7 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
// Note the encoder may have changed the segment_id
|
||||
|
||||
#ifdef MODE_STATS
|
||||
y_modes[xd->mode_info_context->mbmi.mode]++;
|
||||
y_modes[mbmi->mode]++;
|
||||
#endif
|
||||
} else {
|
||||
unsigned char *segment_id;
|
||||
@ -828,9 +827,9 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
// Note the encoder may have changed the segment_id
|
||||
|
||||
#ifdef MODE_STATS
|
||||
inter_y_modes[xd->mode_info_context->mbmi.mode]++;
|
||||
inter_y_modes[mbmi->mode]++;
|
||||
|
||||
if (xd->mode_info_context->mbmi.mode == SPLITMV) {
|
||||
if (mbmi->mode == SPLITMV) {
|
||||
int b;
|
||||
|
||||
for (b = 0; b < x->partition_info->count; b++) {
|
||||
@ -845,7 +844,7 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
// probabilities. NOTE: At the moment we dont support custom trees
|
||||
// for the reference frame coding for each segment but this is a
|
||||
// possible future action.
|
||||
segment_id = &xd->mode_info_context->mbmi.segment_id;
|
||||
segment_id = &mbmi->segment_id;
|
||||
seg_ref_active = segfeature_active(xd, *segment_id, SEG_LVL_REF_FRAME);
|
||||
if (!seg_ref_active ||
|
||||
((check_segref(xd, *segment_id, INTRA_FRAME) +
|
||||
@ -853,14 +852,12 @@ static void encode_sb(VP8_COMP *cpi,
|
||||
check_segref(xd, *segment_id, GOLDEN_FRAME) +
|
||||
check_segref(xd, *segment_id, ALTREF_FRAME)) > 1)) {
|
||||
{
|
||||
cpi->count_mb_ref_frame_usage
|
||||
[xd->mode_info_context->mbmi.ref_frame]++;
|
||||
cpi->count_mb_ref_frame_usage[mbmi->ref_frame]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Count of last ref frame 0,0 usage
|
||||
if ((xd->mode_info_context->mbmi.mode == ZEROMV) &&
|
||||
(xd->mode_info_context->mbmi.ref_frame == LAST_FRAME))
|
||||
if ((mbmi->mode == ZEROMV) && (mbmi->ref_frame == LAST_FRAME))
|
||||
cpi->inter_zz_count++;
|
||||
}
|
||||
|
||||
@ -1431,6 +1428,7 @@ void vp8cx_encode_intra_macro_block(VP8_COMP *cpi,
|
||||
MACROBLOCK *x,
|
||||
TOKENEXTRA **t,
|
||||
int output_enabled) {
|
||||
MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi;
|
||||
if ((cpi->oxcf.tuning == VP8_TUNE_SSIM) && output_enabled) {
|
||||
adjust_act_zbin(cpi, x);
|
||||
vp8_update_zbin_extra(cpi, x);
|
||||
@ -1438,31 +1436,31 @@ void vp8cx_encode_intra_macro_block(VP8_COMP *cpi,
|
||||
|
||||
/* test code: set transform size based on mode selection */
|
||||
#if CONFIG_TX16X16
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode <= TM_PRED) {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_16X16;
|
||||
if (mbmi->mode <= TM_PRED) {
|
||||
mbmi->txfm_size = TX_16X16;
|
||||
cpi->t16x16_count++;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (cpi->common.txfm_mode == ALLOW_8X8
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != B_PRED) {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_8X8;
|
||||
&& mbmi->mode != I8X8_PRED
|
||||
&& mbmi->mode != B_PRED) {
|
||||
mbmi->txfm_size = TX_8X8;
|
||||
cpi->t8x8_count++;
|
||||
} else {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_4X4;
|
||||
mbmi->txfm_size = TX_4X4;
|
||||
cpi->t4x4_count++;
|
||||
}
|
||||
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode == I8X8_PRED) {
|
||||
if (mbmi->mode == I8X8_PRED) {
|
||||
vp8_encode_intra8x8mby(IF_RTCD(&cpi->rtcd), x);
|
||||
vp8_encode_intra8x8mbuv(IF_RTCD(&cpi->rtcd), x);
|
||||
} else if (x->e_mbd.mode_info_context->mbmi.mode == B_PRED)
|
||||
} else if (mbmi->mode == B_PRED)
|
||||
vp8_encode_intra4x4mby(IF_RTCD(&cpi->rtcd), x);
|
||||
else
|
||||
vp8_encode_intra16x16mby(IF_RTCD(&cpi->rtcd), x);
|
||||
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED)
|
||||
if (mbmi->mode != I8X8_PRED)
|
||||
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);
|
||||
|
||||
if (output_enabled) {
|
||||
@ -1470,7 +1468,7 @@ void vp8cx_encode_intra_macro_block(VP8_COMP *cpi,
|
||||
sum_intra_stats(cpi, x);
|
||||
vp8_tokenize_mb(cpi, &x->e_mbd, t, 0);
|
||||
}
|
||||
#if CONFIG_NEWBESTREFMV
|
||||
#if CONFIG_NEWBESTREFMVvp8_tokenize_mb
|
||||
else
|
||||
vp8_tokenize_mb(cpi, &x->e_mbd, t, 1);
|
||||
#endif
|
||||
@ -1486,14 +1484,15 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
int recon_uvoffset, int output_enabled) {
|
||||
VP8_COMMON *cm = &cpi->common;
|
||||
MACROBLOCKD *const xd = &x->e_mbd;
|
||||
unsigned char *segment_id = &xd->mode_info_context->mbmi.segment_id;
|
||||
MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi;
|
||||
unsigned char *segment_id = &mbmi->segment_id;
|
||||
int seg_ref_active;
|
||||
unsigned char ref_pred_flag;
|
||||
|
||||
x->skip = 0;
|
||||
|
||||
#if CONFIG_SWITCHABLE_INTERP
|
||||
vp8_setup_interp_filters(xd, xd->mode_info_context->mbmi.interp_filter, cm);
|
||||
vp8_setup_interp_filters(xd, mbmi->interp_filter, cm);
|
||||
#endif
|
||||
if (cpi->oxcf.tuning == VP8_TUNE_SSIM) {
|
||||
// Adjust the zbin based on this MB rate.
|
||||
@ -1505,13 +1504,13 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
// Increase zbin size to suppress noise
|
||||
cpi->zbin_mode_boost = 0;
|
||||
if (cpi->zbin_mode_boost_enabled) {
|
||||
if (xd->mode_info_context->mbmi.ref_frame != INTRA_FRAME) {
|
||||
if (xd->mode_info_context->mbmi.mode == ZEROMV) {
|
||||
if (xd->mode_info_context->mbmi.ref_frame != LAST_FRAME)
|
||||
if (mbmi->ref_frame != INTRA_FRAME) {
|
||||
if (mbmi->mode == ZEROMV) {
|
||||
if (mbmi->ref_frame != LAST_FRAME)
|
||||
cpi->zbin_mode_boost = GF_ZEROMV_ZBIN_BOOST;
|
||||
else
|
||||
cpi->zbin_mode_boost = LF_ZEROMV_ZBIN_BOOST;
|
||||
} else if (xd->mode_info_context->mbmi.mode == SPLITMV)
|
||||
} else if (mbmi->mode == SPLITMV)
|
||||
cpi->zbin_mode_boost = 0;
|
||||
else
|
||||
cpi->zbin_mode_boost = MV_ZBIN_BOOST;
|
||||
@ -1526,37 +1525,33 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
// SET VARIOUS PREDICTION FLAGS
|
||||
|
||||
// Did the chosen reference frame match its predicted value.
|
||||
ref_pred_flag = ((xd->mode_info_context->mbmi.ref_frame ==
|
||||
get_pred_ref(cm, xd)));
|
||||
ref_pred_flag = ((mbmi->ref_frame == get_pred_ref(cm, xd)));
|
||||
set_pred_flag(xd, PRED_REF, ref_pred_flag);
|
||||
|
||||
/* test code: set transform size based on mode selection */
|
||||
#if CONFIG_TX16X16
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode <= TM_PRED ||
|
||||
x->e_mbd.mode_info_context->mbmi.mode == NEWMV ||
|
||||
x->e_mbd.mode_info_context->mbmi.mode == ZEROMV ||
|
||||
x->e_mbd.mode_info_context->mbmi.mode == NEARMV ||
|
||||
x->e_mbd.mode_info_context->mbmi.mode == NEARESTMV) {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_16X16;
|
||||
if (mbmi->mode <= TM_PRED || mbmi->mode == NEWMV || mbmi->mode == ZEROMV ||
|
||||
mbmi->mode == NEARMV || mbmi->mode == NEARESTMV) {
|
||||
mbmi->txfm_size = TX_16X16;
|
||||
cpi->t16x16_count++;
|
||||
} else
|
||||
#endif
|
||||
if (cpi->common.txfm_mode == ALLOW_8X8
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != B_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV) {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_8X8;
|
||||
&& mbmi->mode != I8X8_PRED
|
||||
&& mbmi->mode != B_PRED
|
||||
&& mbmi->mode != SPLITMV) {
|
||||
mbmi->txfm_size = TX_8X8;
|
||||
cpi->t8x8_count++;
|
||||
} else {
|
||||
x->e_mbd.mode_info_context->mbmi.txfm_size = TX_4X4;
|
||||
mbmi->txfm_size = TX_4X4;
|
||||
cpi->t4x4_count++;
|
||||
}
|
||||
|
||||
if (xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME) {
|
||||
if (xd->mode_info_context->mbmi.mode == B_PRED) {
|
||||
if (mbmi->ref_frame == INTRA_FRAME) {
|
||||
if (mbmi->mode == B_PRED) {
|
||||
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);
|
||||
vp8_encode_intra4x4mby(IF_RTCD(&cpi->rtcd), x);
|
||||
} else if (xd->mode_info_context->mbmi.mode == I8X8_PRED) {
|
||||
} else if (mbmi->mode == I8X8_PRED) {
|
||||
vp8_encode_intra8x8mby(IF_RTCD(&cpi->rtcd), x);
|
||||
vp8_encode_intra8x8mbuv(IF_RTCD(&cpi->rtcd), x);
|
||||
} else {
|
||||
@ -1569,9 +1564,9 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
} else {
|
||||
int ref_fb_idx;
|
||||
|
||||
if (xd->mode_info_context->mbmi.ref_frame == LAST_FRAME)
|
||||
if (mbmi->ref_frame == LAST_FRAME)
|
||||
ref_fb_idx = cpi->common.lst_fb_idx;
|
||||
else if (xd->mode_info_context->mbmi.ref_frame == GOLDEN_FRAME)
|
||||
else if (mbmi->ref_frame == GOLDEN_FRAME)
|
||||
ref_fb_idx = cpi->common.gld_fb_idx;
|
||||
else
|
||||
ref_fb_idx = cpi->common.alt_fb_idx;
|
||||
@ -1580,12 +1575,12 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
xd->pre.u_buffer = cpi->common.yv12_fb[ref_fb_idx].u_buffer + recon_uvoffset;
|
||||
xd->pre.v_buffer = cpi->common.yv12_fb[ref_fb_idx].v_buffer + recon_uvoffset;
|
||||
|
||||
if (xd->mode_info_context->mbmi.second_ref_frame) {
|
||||
if (mbmi->second_ref_frame) {
|
||||
int second_ref_fb_idx;
|
||||
|
||||
if (xd->mode_info_context->mbmi.second_ref_frame == LAST_FRAME)
|
||||
if (mbmi->second_ref_frame == LAST_FRAME)
|
||||
second_ref_fb_idx = cpi->common.lst_fb_idx;
|
||||
else if (xd->mode_info_context->mbmi.second_ref_frame == GOLDEN_FRAME)
|
||||
else if (mbmi->second_ref_frame == GOLDEN_FRAME)
|
||||
second_ref_fb_idx = cpi->common.gld_fb_idx;
|
||||
else
|
||||
second_ref_fb_idx = cpi->common.alt_fb_idx;
|
||||
@ -1603,7 +1598,7 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
|
||||
// Clear mb_skip_coeff if mb_no_coeff_skip is not set
|
||||
if (!cpi->common.mb_no_coeff_skip)
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = 0;
|
||||
mbmi->mb_skip_coeff = 0;
|
||||
|
||||
} else {
|
||||
vp8_build_1st_inter16x16_predictors_mb(xd, xd->dst.y_buffer,
|
||||
@ -1617,7 +1612,8 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
#ifdef ENC_DEBUG
|
||||
if (enc_debug) {
|
||||
int i;
|
||||
printf("Segment=%d [%d, %d]: %d %d:\n", x->e_mbd.mode_info_context->mbmi.segment_id, mb_col_debug, mb_row_debug, xd->mb_to_left_edge, xd->mb_to_top_edge);
|
||||
printf("Segment=%d [%d, %d]: %d %d:\n", mbmi->segment_id, mb_col_debug,
|
||||
mb_row_debug, xd->mb_to_left_edge, xd->mb_to_top_edge);
|
||||
for (i = 0; i < 400; i++) {
|
||||
printf("%3d ", xd->qcoeff[i]);
|
||||
if (i % 16 == 15) printf("\n");
|
||||
@ -1646,13 +1642,13 @@ void vp8cx_encode_inter_macroblock (VP8_COMP *cpi, MACROBLOCK *x,
|
||||
(x->e_mbd.mode_info_context - cpi->common.mode_info_stride)->mbmi.mb_skip_coeff :
|
||||
0;
|
||||
if (cpi->common.mb_no_coeff_skip) {
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = 1;
|
||||
mbmi->mb_skip_coeff = 1;
|
||||
if (output_enabled)
|
||||
cpi->skip_true_count[mb_skip_context]++;
|
||||
vp8_fix_contexts(xd);
|
||||
} else {
|
||||
vp8_stuff_mb(cpi, xd, t, !output_enabled);
|
||||
xd->mode_info_context->mbmi.mb_skip_coeff = 0;
|
||||
mbmi->mb_skip_coeff = 0;
|
||||
if (output_enabled)
|
||||
cpi->skip_false_count[mb_skip_context]++;
|
||||
}
|
||||
|
@ -39,15 +39,16 @@ extern void vp8_ht_quantize_b(BLOCK *b, BLOCKD *d);
|
||||
int vp8_encode_intra(VP8_COMP *cpi, MACROBLOCK *x, int use_16x16_pred) {
|
||||
int i;
|
||||
int intra_pred_var = 0;
|
||||
MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi;
|
||||
(void) cpi;
|
||||
|
||||
if (use_16x16_pred) {
|
||||
x->e_mbd.mode_info_context->mbmi.mode = DC_PRED;
|
||||
mbmi->mode = DC_PRED;
|
||||
#if CONFIG_COMP_INTRA_PRED
|
||||
x->e_mbd.mode_info_context->mbmi.second_mode = (MB_PREDICTION_MODE)(DC_PRED - 1);
|
||||
mbmi->second_mode = (MB_PREDICTION_MODE)(DC_PRED - 1);
|
||||
#endif
|
||||
x->e_mbd.mode_info_context->mbmi.uv_mode = DC_PRED;
|
||||
x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME;
|
||||
mbmi->uv_mode = DC_PRED;
|
||||
mbmi->ref_frame = INTRA_FRAME;
|
||||
|
||||
vp8_encode_intra16x16mby(IF_RTCD(&cpi->rtcd), x);
|
||||
} else {
|
||||
|
@ -167,6 +167,7 @@ void vp8_transform_intra_mby(MACROBLOCK *x) {
|
||||
|
||||
static void transform_mb(MACROBLOCK *x) {
|
||||
int i;
|
||||
MB_PREDICTION_MODE mode = x->e_mbd.mode_info_context->mbmi.mode;
|
||||
|
||||
for (i = 0; i < 16; i += 2) {
|
||||
x->vp8_short_fdct8x4(&x->block[i].src_diff[0],
|
||||
@ -174,7 +175,7 @@ static void transform_mb(MACROBLOCK *x) {
|
||||
}
|
||||
|
||||
// build dc block from 16 y dc values
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode != SPLITMV)
|
||||
if (mode != SPLITMV)
|
||||
build_dcblock(x);
|
||||
|
||||
for (i = 16; i < 24; i += 2) {
|
||||
@ -183,7 +184,7 @@ static void transform_mb(MACROBLOCK *x) {
|
||||
}
|
||||
|
||||
// do 2nd order transform on the dc block
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode != SPLITMV)
|
||||
if (mode != SPLITMV)
|
||||
x->short_walsh4x4(&x->block[24].src_diff[0],
|
||||
&x->block[24].coeff[0], 8);
|
||||
|
||||
@ -239,6 +240,8 @@ void vp8_transform_intra_mby_8x8(MACROBLOCK *x) { // changed
|
||||
|
||||
void vp8_transform_mb_8x8(MACROBLOCK *x) {
|
||||
int i;
|
||||
MB_PREDICTION_MODE mode = x->e_mbd.mode_info_context->mbmi.mode;
|
||||
|
||||
for (i = 0; i < 9; i += 8) {
|
||||
x->vp8_short_fdct8x8(&x->block[i].src_diff[0],
|
||||
&x->block[i].coeff[0], 32);
|
||||
@ -248,7 +251,7 @@ void vp8_transform_mb_8x8(MACROBLOCK *x) {
|
||||
&x->block[i + 2].coeff[0], 32);
|
||||
}
|
||||
// build dc block from 16 y dc values
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode != B_PRED && x->e_mbd.mode_info_context->mbmi.mode != SPLITMV)
|
||||
if (mode != B_PRED && mode != SPLITMV)
|
||||
vp8_build_dcblock_8x8(x);
|
||||
// vp8_build_dcblock(x);
|
||||
|
||||
@ -258,7 +261,7 @@ void vp8_transform_mb_8x8(MACROBLOCK *x) {
|
||||
}
|
||||
|
||||
// do 2nd order transform on the dc block
|
||||
if (x->e_mbd.mode_info_context->mbmi.mode != B_PRED && x->e_mbd.mode_info_context->mbmi.mode != SPLITMV)
|
||||
if (mode != B_PRED && mode != SPLITMV)
|
||||
x->short_fhaar2x2(&x->block[24].src_diff[0],
|
||||
&x->block[24].coeff[0], 8);
|
||||
}
|
||||
@ -638,6 +641,7 @@ static void optimize_mb(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd) {
|
||||
ENTROPY_CONTEXT_PLANES t_above, t_left;
|
||||
ENTROPY_CONTEXT *ta;
|
||||
ENTROPY_CONTEXT *tl;
|
||||
MB_PREDICTION_MODE mode = x->e_mbd.mode_info_context->mbmi.mode;
|
||||
|
||||
vpx_memcpy(&t_above, x->e_mbd.above_context, sizeof(ENTROPY_CONTEXT_PLANES));
|
||||
vpx_memcpy(&t_left, x->e_mbd.left_context, sizeof(ENTROPY_CONTEXT_PLANES));
|
||||
@ -645,9 +649,7 @@ static void optimize_mb(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd) {
|
||||
ta = (ENTROPY_CONTEXT *)&t_above;
|
||||
tl = (ENTROPY_CONTEXT *)&t_left;
|
||||
|
||||
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
|
||||
has_2nd_order = (mode != B_PRED && mode != I8X8_PRED && mode != SPLITMV);
|
||||
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
|
||||
|
||||
for (b = 0; b < 16; b++) {
|
||||
@ -678,6 +680,7 @@ void vp8_optimize_mby(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd) {
|
||||
ENTROPY_CONTEXT_PLANES t_above, t_left;
|
||||
ENTROPY_CONTEXT *ta;
|
||||
ENTROPY_CONTEXT *tl;
|
||||
MB_PREDICTION_MODE mode = x->e_mbd.mode_info_context->mbmi.mode;
|
||||
|
||||
if (!x->e_mbd.above_context)
|
||||
return;
|
||||
@ -691,9 +694,7 @@ void vp8_optimize_mby(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd) {
|
||||
ta = (ENTROPY_CONTEXT *)&t_above;
|
||||
tl = (ENTROPY_CONTEXT *)&t_left;
|
||||
|
||||
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
|
||||
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
|
||||
has_2nd_order = (mode != B_PRED && mode != I8X8_PRED && mode != SPLITMV);
|
||||
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
|
||||
|
||||
for (b = 0; b < 16; b++) {
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user