From b8e9617ee88dbd27bd02425d1b3953294d4bddfc Mon Sep 17 00:00:00 2001
From: Yunqing Wang <yunqingwang@google.com>
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 be3620bef7..c622562d57 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 1757f24672..bd8539e4f4 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 18e596efcd..9e11733a6f 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);
-- 
GitLab