Force C implementations when using Daala DCT's.
This patch fixes a regression introduced in 1d190950 where the encoder
was using the 4x4 VP9/AV1 transforms for RDO, but then used the Daala
transforms for encoding.
The ~2% improvement below comes from forcing the C implementation of the
4x4 and 8x8 transforms to be used when CONFIG_DAALA_DCT4 and
CONFIG_DAALA_DCT8 are enabled respectively.
subset-1 (--enable-experimental --enable-daala_dct4):
master@2017-08-21T21:41:18.302Z ->
master_daala_dct4_use_c@2017-08-22T02:39:14.457Z
PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000
-2.1953 | -1.2044 | -1.1865 | -1.6173 | -1.7029 | -1.6784 | -1.7235
Change-Id: I44d2b24094e89b2857ae03d743180e706cef45eb
diff --git a/av1/common/idct.c b/av1/common/idct.c
index 469f5ba..8dffb18 100644
--- a/av1/common/idct.c
+++ b/av1/common/idct.c
@@ -1655,7 +1655,7 @@
case ADST_DCT:
case DCT_ADST:
case ADST_ADST:
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT4
// LGT only exists in C verson
av1_iht4x4_16_add_c(input, dest, stride, txfm_param);
break;
@@ -1669,7 +1669,7 @@
case FLIPADST_FLIPADST:
case ADST_FLIPADST:
case FLIPADST_ADST:
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT4
av1_iht4x4_16_add_c(input, dest, stride, txfm_param);
break;
#else
@@ -1788,7 +1788,7 @@
case ADST_DCT:
case DCT_ADST:
case ADST_ADST:
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT8
av1_iht8x8_64_add_c(input, dest, stride, txfm_param);
break;
#else
@@ -1801,7 +1801,7 @@
case FLIPADST_FLIPADST:
case ADST_FLIPADST:
case FLIPADST_ADST:
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT8
av1_iht8x8_64_add_c(input, dest, stride, txfm_param);
break;
#else
diff --git a/av1/encoder/hybrid_fwd_txfm.c b/av1/encoder/hybrid_fwd_txfm.c
index 85f4b7d..1f30335 100644
--- a/av1/encoder/hybrid_fwd_txfm.c
+++ b/av1/encoder/hybrid_fwd_txfm.c
@@ -51,7 +51,7 @@
return;
}
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT4
// only C version has LGTs
av1_fht4x4_c(src_diff, coeff, diff_stride, txfm_param);
#else
@@ -107,7 +107,7 @@
static void fwd_txfm_8x8(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TxfmParam *txfm_param) {
-#if CONFIG_LGT
+#if CONFIG_LGT || CONFIG_DAALA_DCT8
av1_fht8x8_c(src_diff, coeff, diff_stride, txfm_param);
#else
av1_fht8x8(src_diff, coeff, diff_stride, txfm_param);