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->block[24].diff); recon_dcblock(x); } for (i = 0; i < 16; i++) { vp8_inverse_transform_b(rtcd, &x->block[i], 16); } }
void vp9_inverse_transform_mby_4x4(MACROBLOCKD *xd) { int i; BLOCKD *blockd = xd->block; int has_2nd_order = get_2nd_order_usage(xd); if (has_2nd_order) { /* do 2nd order transform on the dc block */ vp9_short_inv_walsh4x4(blockd[24].dqcoeff, blockd[24].diff); recon_dcblock(xd); } for (i = 0; i < 16; i++) { TX_TYPE tx_type = get_tx_type_4x4(xd, &xd->block[i]); if (tx_type != DCT_DCT) { vp9_ihtllm(xd->block[i].dqcoeff, xd->block[i].diff, 32, tx_type, 4, xd->block[i].eob); } else { vp9_inverse_transform_b_4x4(xd, i, 32); } } }
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); } }