ref: b8e9617ee88dbd27bd02425d1b3953294d4bddfc
parent: 5ddcbeeb7def950bfce2cf43b2fa9d00fe2a7722
author: Yunqing Wang <yunqingwang@google.com>
date: Wed Oct 31 05:38:51 EDT 2012
Add forward transform function to rtcd Added vp8_fht to rtcd_defs.sh Change-Id: I929b0bf878185a2f0e031dc8c70a418286d509aa
--- a/vp8/common/rtcd_defs.sh
+++ b/vp8/common/rtcd_defs.sh
@@ -448,6 +448,9 @@
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
--- a/vp8/encoder/encodeintra.c
+++ b/vp8/encoder/encodeintra.c
@@ -73,7 +73,7 @@
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 @@
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 @@
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,
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -833,7 +833,7 @@
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 @@
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 @@
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);