From b8e9617ee88dbd27bd02425d1b3953294d4bddfc Mon Sep 17 00:00:00 2001 From: Yunqing Wang Date: Wed, 31 Oct 2012 09:38:51 -0700 Subject: [PATCH] Add forward transform function to rtcd Added vp8_fht to rtcd_defs.sh Change-Id: I929b0bf878185a2f0e031dc8c70a418286d509aa --- vp8/common/rtcd_defs.sh | 3 +++ vp8/encoder/encodeintra.c | 6 +++--- vp8/encoder/rdopt.c | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/vp8/common/rtcd_defs.sh b/vp8/common/rtcd_defs.sh index be3620b..c622562 100644 --- a/vp8/common/rtcd_defs.sh +++ b/vp8/common/rtcd_defs.sh @@ -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 diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 1757f24..bd8539e 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -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, diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c index 18e596e..9e11733 100644 --- a/vp8/encoder/rdopt.c +++ b/vp8/encoder/rdopt.c @@ -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); -- 2.7.4