shithub: libvpx

Download patch

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);