#include "test/util.h"
#include "./vpx_config.h"
#include "vpx_ports/msvc.h"
-
-#undef CONFIG_COEFFICIENT_RANGE_CHECKING
-#define CONFIG_COEFFICIENT_RANGE_CHECKING 1
-#include "vp10/encoder/dct.c"
+#include "vp10/encoder/dct.h"
using libvpx_test::ACMRandom;
INSTANTIATE_TEST_CASE_P(
C, Vp10FwdTxfm,
::testing::Values(
- FdctParam(&fdct4, &reference_dct_1d, 4, 1),
- FdctParam(&fdct8, &reference_dct_1d, 8, 1),
- FdctParam(&fdct16, &reference_dct_1d, 16, 2),
- FdctParam(&fdct32, &reference_dct_1d, 32, 4)));
+ FdctParam(&vp10_fdct4, &reference_dct_1d, 4, 1),
+ FdctParam(&vp10_fdct8, &reference_dct_1d, 8, 1),
+ FdctParam(&vp10_fdct16, &reference_dct_1d, 16, 2),
+ FdctParam(&vp10_fdct32_local, &reference_dct_1d, 32, 4)));
} // namespace
#endif
}
-static void fdct4(const tran_low_t *input, tran_low_t *output) {
+void vp10_fdct4(const tran_low_t *input, tran_low_t *output) {
tran_high_t temp;
tran_low_t step[4];
range_check(output, 4, 13);
}
-static void fdct8(const tran_low_t *input, tran_low_t *output) {
+void vp10_fdct8(const tran_low_t *input, tran_low_t *output) {
tran_high_t temp;
tran_low_t step[8];
range_check(output, 8, 14);
}
-static void fdct16(const tran_low_t *input, tran_low_t *output) {
+void vp10_fdct16(const tran_low_t *input, tran_low_t *output) {
tran_high_t temp;
tran_low_t step[16];
range_check(output, 16, 16);
}
-static void fdct32(const tran_low_t *input, tran_low_t *output) {
+// TODO(angiebird): Unify this with vp10_fwd_txfm.c: vp10_fdct32
+void vp10_fdct32_local(const tran_low_t *input, tran_low_t *output) {
tran_high_t temp;
tran_low_t step[32];
}
static const transform_2d FHT_4[] = {
- { fdct4, fdct4 }, // DCT_DCT = 0
- { fadst4, fdct4 }, // ADST_DCT = 1
- { fdct4, fadst4 }, // DCT_ADST = 2
- { fadst4, fadst4 } // ADST_ADST = 3
+ { vp10_fdct4, vp10_fdct4 }, // DCT_DCT = 0
+ { fadst4, vp10_fdct4 }, // ADST_DCT = 1
+ { vp10_fdct4, fadst4 }, // DCT_ADST = 2
+ { fadst4, fadst4 } // ADST_ADST = 3
};
static const transform_2d FHT_8[] = {
- { fdct8, fdct8 }, // DCT_DCT = 0
- { fadst8, fdct8 }, // ADST_DCT = 1
- { fdct8, fadst8 }, // DCT_ADST = 2
- { fadst8, fadst8 } // ADST_ADST = 3
+ { vp10_fdct8, vp10_fdct8 }, // DCT_DCT = 0
+ { fadst8, vp10_fdct8 }, // ADST_DCT = 1
+ { vp10_fdct8, fadst8 }, // DCT_ADST = 2
+ { fadst8, fadst8 } // ADST_ADST = 3
};
static const transform_2d FHT_16[] = {
- { fdct16, fdct16 }, // DCT_DCT = 0
- { fadst16, fdct16 }, // ADST_DCT = 1
- { fdct16, fadst16 }, // DCT_ADST = 2
- { fadst16, fadst16 } // ADST_ADST = 3
+ { vp10_fdct16, vp10_fdct16 }, // DCT_DCT = 0
+ { fadst16, vp10_fdct16 }, // ADST_DCT = 1
+ { vp10_fdct16, fadst16 }, // DCT_ADST = 2
+ { fadst16, fadst16 } // ADST_ADST = 3
};
void vp10_fht4x4_c(const int16_t *input, tran_low_t *output,
// Rows
for (i = 0; i < 8; ++i) {
- fdct8(&intermediate[i * 8], &coeff_ptr[i * 8]);
+ vp10_fdct8(&intermediate[i * 8], &coeff_ptr[i * 8]);
for (j = 0; j < 8; ++j)
coeff_ptr[j + i * 8] /= 2;
}
--- /dev/null
+/*
+ * Copyright (c) 2015 The WebM project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+#ifndef VP10_ENCODER_DCT_H_
+#define VP10_ENCODER_DCT_H_
+
+#include "vpx_dsp/vpx_dsp_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void vp10_fdct4(const tran_low_t *input, tran_low_t *output);
+void vp10_fdct8(const tran_low_t *input, tran_low_t *output);
+void vp10_fdct16(const tran_low_t *input, tran_low_t *output);
+void vp10_fdct32_local(const tran_low_t *input, tran_low_t *output);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // VP10_ENCODER_DCT_H_