int vp9_encode_intra(VP9_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) { mbmi->mode = DC_PRED; #if CONFIG_COMP_INTRA_PRED mbmi->second_mode = (MB_PREDICTION_MODE)(DC_PRED - 1); #endif mbmi->uv_mode = DC_PRED; mbmi->ref_frame = INTRA_FRAME; vp9_encode_intra16x16mby(x); } else { for (i = 0; i < 16; i++) { x->e_mbd.block[i].bmi.as_mode.first = B_DC_PRED; vp9_encode_intra4x4block(x, i); } } intra_pred_var = vp9_get_mb_ss(x->src_diff); return intra_pred_var; }
int vp9_encode_intra(MACROBLOCK *x, int use_16x16_pred) { MB_MODE_INFO * mbmi = &x->e_mbd.mi_8x8[0]->mbmi; x->skip_encode = 0; mbmi->mode = DC_PRED; mbmi->ref_frame[0] = INTRA_FRAME; mbmi->tx_size = use_16x16_pred ? (mbmi->sb_type >= BLOCK_16X16 ? TX_16X16 : TX_8X8) : TX_4X4; vp9_encode_intra_block_y(x, mbmi->sb_type); return vp9_get_mb_ss(x->plane[0].src_diff); }