Add forward transform function to rtcd

Added vp8_fht to rtcd_defs.sh

Change-Id: I929b0bf878185a2f0e031dc8c70a418286d509aa
This commit is contained in:
Yunqing Wang 2012-10-31 09:38:51 -07:00
parent 5ddcbeeb7d
commit b8e9617ee8
3 changed files with 9 additions and 6 deletions

View File

@ -448,6 +448,9 @@ if [ "$CONFIG_INTERNAL_STATS" = "yes" ]; then
fi
# fdct functions
prototype void vp9_fht "const short *input, int pitch, short *output, int tx_type, int tx_dim"
specialize vp9_fht
prototype void vp9_short_fdct8x8 "short *InputData, short *OutputData, int pitch"
specialize vp9_short_fdct8x8

View File

@ -73,7 +73,7 @@ void vp9_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd,
tx_type = get_tx_type(&x->e_mbd, b);
if (tx_type != DCT_DCT) {
vp9_fht_c(be->src_diff, 32, be->coeff, tx_type, 4);
vp9_fht(be->src_diff, 32, be->coeff, tx_type, 4);
vp9_ht_quantize_b_4x4(be, b, tx_type);
vp8_ihtllm_c(b->dqcoeff, b->diff, 32, tx_type, 4);
} else {
@ -114,7 +114,7 @@ void vp9_encode_intra16x16mby(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x) {
BLOCKD *bd = &xd->block[0];
tx_type = get_tx_type(xd, bd);
if (tx_type != DCT_DCT) {
vp9_fht_c(b->src_diff, 32, b->coeff, tx_type, 16);
vp9_fht(b->src_diff, 32, b->coeff, tx_type, 16);
vp9_quantize_mby_16x16(x);
if (x->optimize)
vp9_optimize_mby_16x16(x, rtcd);
@ -205,7 +205,7 @@ void vp9_encode_intra8x8(const VP8_ENCODER_RTCD *rtcd,
tx_type = get_tx_type(xd, xd->block + idx);
if (tx_type != DCT_DCT) {
vp9_fht_c(be->src_diff, 32, (x->block + idx)->coeff,
vp9_fht(be->src_diff, 32, (x->block + idx)->coeff,
tx_type, 8);
x->quantize_b_8x8(x->block + idx, xd->block + idx);
vp8_ihtllm_c(xd->block[idx].dqcoeff, xd->block[ib].diff, 32,

View File

@ -833,7 +833,7 @@ static void macro_block_yrd_16x16(MACROBLOCK *mb, int *Rate, int *Distortion,
tx_type = get_tx_type_16x16(xd, b);
if (tx_type != DCT_DCT) {
vp9_fht_c(be->src_diff, 32, be->coeff, tx_type, 16);
vp9_fht(be->src_diff, 32, be->coeff, tx_type, 16);
} else
vp9_transform_mby_16x16(mb);
@ -1115,7 +1115,7 @@ static int64_t rd_pick_intra4x4block(VP8_COMP *cpi, MACROBLOCK *x, BLOCK *be,
b->bmi.as_mode.first = mode;
tx_type = get_tx_type_4x4(xd, b);
if (tx_type != DCT_DCT) {
vp9_fht_c(be->src_diff, 32, be->coeff, tx_type, 4);
vp9_fht(be->src_diff, 32, be->coeff, tx_type, 4);
vp9_ht_quantize_b_4x4(be, b, tx_type);
} else {
x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
@ -1440,7 +1440,7 @@ static int64_t rd_pick_intra8x8block(VP8_COMP *cpi, MACROBLOCK *x, int ib,
if (xd->mode_info_context->mbmi.txfm_size == TX_8X8) {
TX_TYPE tx_type = get_tx_type_8x8(xd, b);
if (tx_type != DCT_DCT)
vp9_fht_c(be->src_diff, 32, (x->block + idx)->coeff, tx_type, 8);
vp9_fht(be->src_diff, 32, (x->block + idx)->coeff, tx_type, 8);
else
x->vp9_short_fdct8x8(be->src_diff, (x->block + idx)->coeff, 32);
x->quantize_b_8x8(x->block + idx, xd->block + idx);