void vp8_inverse_transform_mbuv(const vp8_idct_rtcd_vtable_t *rtcd, MACROBLOCKD *x) { int i; for (i = 16; i < 24; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 8); } }
void vp8_inverse_transform_mb(const vp8_idct_rtcd_vtable_t *rtcd, MACROBLOCKD *x) { int i; if (x->mbmi.mode != B_PRED && x->mbmi.mode != SPLITMV) { // do 2nd order transform on the dc block IDCT_INVOKE(rtcd, iwalsh16)(&x->block[24].dqcoeff[0], x->block[24].diff); recon_dcblock(x); } for (i = 0; i < 16; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 32); } for (i = 16; i < 24; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 16); } }
void vp8_inverse_transform_mby(const vp8_idct_rtcd_vtable_t *rtcd, MACROBLOCKD *x) { int i; // do 2nd order transform on the dc block IDCT_INVOKE(rtcd, iwalsh16)(x->block[24].dqcoeff, x->block[24].diff); recon_dcblock(x); for (i = 0; i < 16; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 32); } }
void vp8_inverse_transform_mby(const vp8_idct_rtcd_vtable_t *rtcd, MACROBLOCKD *x) { int i; if(x->mode_info_context->mbmi.mode != SPLITMV) { /* do 2nd order transform on the dc block */ IDCT_INVOKE(rtcd, iwalsh16)(x->block[24].dqcoeff, x->dqcoeff); } for (i = 0; i < 16; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 16); } }
void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x, int ib) { BLOCKD *b = &x->e_mbd.block[ib]; BLOCK *be = &x->block[ib]; RECON_INVOKE(&rtcd->common->recon, intra4x4_predict) (b, b->bmi.as_mode, b->predictor); ENCODEMB_INVOKE(&rtcd->encodemb, subb)(be, b, 16); x->vp8_short_fdct4x4(be->src_diff, be->coeff, 32); x->quantize_b(be, b); vp8_inverse_transform_b(IF_RTCD(&rtcd->common->idct), b, 32); RECON_INVOKE(&rtcd->common->recon, recon)(b->predictor, b->diff, *(b->base_dst) + b->dst, b->dst_stride); }