diff options
Diffstat (limited to 'vp9/decoder/decodframe.c')
-rw-r--r-- | vp9/decoder/decodframe.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/vp9/decoder/decodframe.c b/vp9/decoder/decodframe.c index 46821073f..a57989424 100644 --- a/vp9/decoder/decodframe.c +++ b/vp9/decoder/decodframe.c @@ -27,7 +27,6 @@ #include "vp9/common/extend.h" #include "vp9/common/modecont.h" #include "vpx_mem/vpx_mem.h" -#include "vp9/common/idct.h" #include "dboolhuff.h" #include "vp9/common/seg_common.h" @@ -122,22 +121,20 @@ static void mb_init_dequantizer(VP9D_COMP *pbi, MACROBLOCKD *xd) { #if CONFIG_LOSSLESS if (!QIndex) { - pbi->common.rtcd.idct.idct1 = vp9_short_inv_walsh4x4_1_x8_c; - pbi->common.rtcd.idct.idct16 = vp9_short_inv_walsh4x4_x8_c; - pbi->common.rtcd.idct.idct1_scalar_add = vp9_dc_only_inv_walsh_add_c; - pbi->common.rtcd.idct.iwalsh1 = vp9_short_inv_walsh4x4_1_lossless_c; - pbi->common.rtcd.idct.iwalsh16 = vp9_short_inv_walsh4x4_lossless_c; + pbi->mb.inv_xform4x4_1_x8 = vp9_short_inv_walsh4x4_1_x8; + pbi->mb.inv_xform4x4_x8 = vp9_short_inv_walsh4x4_x8; + pbi->mb.inv_walsh4x4_1 = vp9_short_inv_walsh4x4_1_lossless; + pbi->mb.inv_walsh4x4_lossless = vp9_short_inv_walsh4x4_lossless; pbi->idct_add = vp9_dequant_idct_add_lossless_c; pbi->dc_idct_add = vp9_dequant_dc_idct_add_lossless_c; pbi->dc_idct_add_y_block = vp9_dequant_dc_idct_add_y_block_lossless_c; pbi->idct_add_y_block = vp9_dequant_idct_add_y_block_lossless_c; pbi->idct_add_uv_block = vp9_dequant_idct_add_uv_block_lossless_c; } else { - pbi->common.rtcd.idct.idct1 = vp9_short_idct4x4llm_1_c; - pbi->common.rtcd.idct.idct16 = vp9_short_idct4x4llm_c; - pbi->common.rtcd.idct.idct1_scalar_add = vp9_dc_only_idct_add_c; - pbi->common.rtcd.idct.iwalsh1 = vp9_short_inv_walsh4x4_1_c; - pbi->common.rtcd.idct.iwalsh16 = vp9_short_inv_walsh4x4_c; + pbi->mb.inv_xform4x4_1_x8 = vp9_short_idct4x4llm_1; + pbi->mb.inv_xform4x4_x8 = vp9_short_idct4x4llm; + pbi->mb.inv_walsh4x4_1 = vp9_short_inv_walsh4x4_1; + pbi->mb.inv_walsh4x4_lossless = vp9_short_inv_walsh4x4; pbi->idct_add = vp9_dequant_idct_add; pbi->dc_idct_add = vp9_dequant_dc_idct_add; pbi->dc_idct_add_y_block = vp9_dequant_dc_idct_add_y_block; @@ -145,6 +142,10 @@ static void mb_init_dequantizer(VP9D_COMP *pbi, MACROBLOCKD *xd) { pbi->idct_add_uv_block = vp9_dequant_idct_add_uv_block; } #else + pbi->mb.inv_xform4x4_1_x8 = vp9_short_idct4x4llm_1; + pbi->mb.inv_xform4x4_x8 = vp9_short_idct4x4llm; + pbi->mb.inv_walsh4x4_1 = vp9_short_inv_walsh4x4_1; + pbi->mb.inv_walsh4x4_lossless = vp9_short_inv_walsh4x4; pbi->idct_add = vp9_dequant_idct_add; pbi->dc_idct_add = vp9_dequant_dc_idct_add; pbi->dc_idct_add_y_block = vp9_dequant_dc_idct_add_y_block; @@ -311,7 +312,7 @@ static void decode_superblock(VP9D_COMP *pbi, MACROBLOCKD *xd, xd->dst.uv_stride, xd->eobs + 16, xd); } else if (tx_size == TX_8X8) { vp9_dequantize_b_2x2(b); - IDCT_INVOKE(RTCD_VTABLE(idct), ihaar2)(&b->dqcoeff[0], b->diff, 8); + vp9_short_ihaar2x2(&b->dqcoeff[0], b->diff, 8); ((int *)b->qcoeff)[0] = 0; // 2nd order block are set to 0 after idct ((int *)b->qcoeff)[1] = 0; ((int *)b->qcoeff)[2] = 0; @@ -332,7 +333,7 @@ static void decode_superblock(VP9D_COMP *pbi, MACROBLOCKD *xd, } else { vp9_dequantize_b(b); if (xd->eobs[24] > 1) { - IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff); + vp9_short_inv_walsh4x4(&b->dqcoeff[0], b->diff); ((int *)b->qcoeff)[0] = 0; ((int *)b->qcoeff)[1] = 0; ((int *)b->qcoeff)[2] = 0; @@ -342,7 +343,7 @@ static void decode_superblock(VP9D_COMP *pbi, MACROBLOCKD *xd, ((int *)b->qcoeff)[6] = 0; ((int *)b->qcoeff)[7] = 0; } else { - IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh1)(&b->dqcoeff[0], b->diff); + xd->inv_walsh4x4_1(&b->dqcoeff[0], b->diff); ((int *)b->qcoeff)[0] = 0; } @@ -539,12 +540,12 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd, xd->dst.y_buffer, 16, xd->dst.y_stride); } else { vp9_dequant_idct_add_16x16(xd->qcoeff, xd->block[0].dequant, - xd->predictor, xd->dst.y_buffer, - 16, xd->dst.y_stride, xd->eobs[0]); + xd->predictor, xd->dst.y_buffer, + 16, xd->dst.y_stride, xd->eobs[0]); } } else if (tx_size == TX_8X8) { vp9_dequantize_b_2x2(b); - IDCT_INVOKE(RTCD_VTABLE(idct), ihaar2)(&b->dqcoeff[0], b->diff, 8); + vp9_short_ihaar2x2(&b->dqcoeff[0], b->diff, 8); ((int *)b->qcoeff)[0] = 0; // 2nd order block are set to 0 after idct ((int *)b->qcoeff)[1] = 0; ((int *)b->qcoeff)[2] = 0; @@ -553,13 +554,13 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd, ((int *)b->qcoeff)[5] = 0; ((int *)b->qcoeff)[6] = 0; ((int *)b->qcoeff)[7] = 0; - vp9_dequant_dc_idct_add_y_block_8x8(xd->qcoeff, + vp9_dequant_dc_idct_add_y_block_8x8(xd->qcoeff, xd->block[0].dequant, xd->predictor, xd->dst.y_buffer, xd->dst.y_stride, xd->eobs, xd->block[24].diff, xd); } else { vp9_dequantize_b(b); if (xd->eobs[24] > 1) { - IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0], b->diff); + vp9_short_inv_walsh4x4(&b->dqcoeff[0], b->diff); ((int *)b->qcoeff)[0] = 0; ((int *)b->qcoeff)[1] = 0; ((int *)b->qcoeff)[2] = 0; @@ -569,7 +570,7 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd, ((int *)b->qcoeff)[6] = 0; ((int *)b->qcoeff)[7] = 0; } else { - IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh1)(&b->dqcoeff[0], b->diff); + xd->inv_walsh4x4_1(&b->dqcoeff[0], b->diff); ((int *)b->qcoeff)[0] = 0; } |