summaryrefslogtreecommitdiff
path: root/vp9/decoder/decodframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/decoder/decodframe.c')
-rw-r--r--vp9/decoder/decodframe.c41
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;
}