Commit 2496a858 authored by Nathan E. Egge's avatar Nathan E. Egge Committed by Nathan Egge

Move daala_fdst64() / daala_idst64() into daala_tx.c.

This commit has no impact on metrics.

Change-Id: Iba8baae9123c88062f10deb6e1e9a709708a4f19
parent f6d3ba6f
...@@ -4298,6 +4298,32 @@ void daala_idct64(const tran_low_t *input, tran_low_t *output) { ...@@ -4298,6 +4298,32 @@ void daala_idct64(const tran_low_t *input, tran_low_t *output) {
for (i = 0; i < 64; i++) output[i] = (tran_low_t)x[i]; for (i = 0; i < 64; i++) output[i] = (tran_low_t)x[i];
} }
/* Preserve the "half-right" transform behavior. */
void daala_fdst64(const tran_low_t *input, tran_low_t *output) {
int i;
tran_low_t inputhalf[32];
for (i = 0; i < 32; ++i) {
output[32 + i] = input[i];
}
for (i = 0; i < 32; ++i) {
inputhalf[i] = input[i + 32];
}
daala_fdct32(inputhalf, output);
}
/* Preserve the "half-right" transform behavior. */
void daala_idst64(const tran_low_t *input, tran_low_t *output) {
int i;
tran_low_t inputhalf[32];
for (i = 0; i < 32; ++i) {
inputhalf[i] = input[i];
}
for (i = 0; i < 32; ++i) {
output[i] = input[32 + i];
}
daala_idct32(inputhalf, output + 32);
}
void daala_idtx64(const tran_low_t *input, tran_low_t *output) { void daala_idtx64(const tran_low_t *input, tran_low_t *output) {
int i; int i;
for (i = 0; i < 64; i++) output[i] = input[i]; for (i = 0; i < 64; i++) output[i] = input[i];
......
...@@ -27,6 +27,8 @@ void daala_idtx32(const tran_low_t *input, tran_low_t *output); ...@@ -27,6 +27,8 @@ void daala_idtx32(const tran_low_t *input, tran_low_t *output);
#if CONFIG_TX64X64 #if CONFIG_TX64X64
void daala_fdct64(const tran_low_t *input, tran_low_t *output); void daala_fdct64(const tran_low_t *input, tran_low_t *output);
void daala_idct64(const tran_low_t *input, tran_low_t *output); void daala_idct64(const tran_low_t *input, tran_low_t *output);
void daala_fdst64(const tran_low_t *input, tran_low_t *output);
void daala_idst64(const tran_low_t *input, tran_low_t *output);
void daala_idtx64(const tran_low_t *input, tran_low_t *output); void daala_idtx64(const tran_low_t *input, tran_low_t *output);
#endif #endif
......
...@@ -86,21 +86,7 @@ static void ihalfright32_c(const tran_low_t *input, tran_low_t *output) { ...@@ -86,21 +86,7 @@ static void ihalfright32_c(const tran_low_t *input, tran_low_t *output) {
// Note overall scaling factor is 4 times orthogonal // Note overall scaling factor is 4 times orthogonal
} }
#if CONFIG_TX64X64 #if CONFIG_TX64X64 && !CONFIG_DAALA_DCT64
#if CONFIG_DAALA_DCT64
static void ihalfright64_c(const tran_low_t *input, tran_low_t *output) {
int i;
tran_low_t inputhalf[32];
// No scaling within; Daala transforms are all orthonormal
for (i = 0; i < 32; ++i) {
inputhalf[i] = input[i];
}
for (i = 0; i < 32; ++i) {
output[i] = input[32 + i];
}
daala_idct32(inputhalf, output + 32);
}
#else
static void idct64_col_c(const tran_low_t *input, tran_low_t *output) { static void idct64_col_c(const tran_low_t *input, tran_low_t *output) {
int32_t in[64], out[64]; int32_t in[64], out[64];
int i; int i;
...@@ -131,7 +117,6 @@ static void ihalfright64_c(const tran_low_t *input, tran_low_t *output) { ...@@ -131,7 +117,6 @@ static void ihalfright64_c(const tran_low_t *input, tran_low_t *output) {
aom_idct32_c(inputhalf, output + 32); aom_idct32_c(inputhalf, output + 32);
// Note overall scaling factor is 4 * sqrt(2) times orthogonal // Note overall scaling factor is 4 * sqrt(2) times orthogonal
} }
#endif // CONFIG_DAALA_DCT64
#endif // CONFIG_TX64X64 #endif // CONFIG_TX64X64
// Inverse identity transform and add. // Inverse identity transform and add.
...@@ -1450,22 +1435,22 @@ void av1_iht64x64_4096_add_c(const tran_low_t *input, uint8_t *dest, int stride, ...@@ -1450,22 +1435,22 @@ void av1_iht64x64_4096_add_c(const tran_low_t *input, uint8_t *dest, int stride,
static const transform_2d IHT_64[] = { static const transform_2d IHT_64[] = {
#if CONFIG_DAALA_DCT64 #if CONFIG_DAALA_DCT64
{ daala_idct64, daala_idct64 }, // DCT_DCT { daala_idct64, daala_idct64 }, // DCT_DCT
{ ihalfright64_c, daala_idct64 }, // ADST_DCT { daala_idst64, daala_idct64 }, // ADST_DCT
{ daala_idct64, ihalfright64_c }, // DCT_ADST { daala_idct64, daala_idst64 }, // DCT_ADST
{ ihalfright64_c, ihalfright64_c }, // ADST_ADST { daala_idst64, daala_idst64 }, // ADST_ADST
#if CONFIG_EXT_TX #if CONFIG_EXT_TX
{ ihalfright64_c, daala_idct64 }, // FLIPADST_DCT { daala_idst64, daala_idct64 }, // FLIPADST_DCT
{ daala_idct64, ihalfright64_c }, // DCT_FLIPADST { daala_idct64, daala_idst64 }, // DCT_FLIPADST
{ ihalfright64_c, ihalfright64_c }, // FLIPADST_FLIPADST { daala_idst64, daala_idst64 }, // FLIPADST_FLIPADST
{ ihalfright64_c, ihalfright64_c }, // ADST_FLIPADST { daala_idst64, daala_idst64 }, // ADST_FLIPADST
{ ihalfright64_c, ihalfright64_c }, // FLIPADST_ADST { daala_idst64, daala_idst64 }, // FLIPADST_ADST
{ daala_idtx64, daala_idtx64 }, // IDTX { daala_idtx64, daala_idtx64 }, // IDTX
{ daala_idct64, daala_idtx64 }, // V_DCT { daala_idct64, daala_idtx64 }, // V_DCT
{ daala_idtx64, daala_idct64 }, // H_DCT { daala_idtx64, daala_idct64 }, // H_DCT
{ ihalfright64_c, daala_idtx64 }, // V_ADST { daala_idst64, daala_idtx64 }, // V_ADST
{ daala_idtx64, ihalfright64_c }, // H_ADST { daala_idtx64, daala_idst64 }, // H_ADST
{ ihalfright64_c, daala_idtx64 }, // V_FLIPADST { daala_idst64, daala_idtx64 }, // V_FLIPADST
{ daala_idtx64, ihalfright64_c }, // H_FLIPADST { daala_idtx64, daala_idst64 }, // H_FLIPADST
#endif #endif
#else #else
{ idct64_col_c, idct64_row_c }, // DCT_DCT { idct64_col_c, idct64_row_c }, // DCT_DCT
......
...@@ -2490,24 +2490,7 @@ void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride, ...@@ -2490,24 +2490,7 @@ void av1_fht32x32_c(const int16_t *input, tran_low_t *output, int stride,
} }
#if CONFIG_TX64X64 #if CONFIG_TX64X64
#if CONFIG_DAALA_DCT64 #if !CONFIG_DAALA_DCT64
#if CONFIG_EXT_TX
// For use in lieu of ADST
static void fhalfright64(const tran_low_t *input, tran_low_t *output) {
int i;
tran_low_t inputhalf[32];
// No scaling within; Daala transforms are all orthonormal
for (i = 0; i < 32; ++i) {
output[32 + i] = input[i];
}
for (i = 0; i < 32; ++i) {
inputhalf[i] = input[i + 32];
}
daala_fdct32(inputhalf, output);
// Note overall scaling factor is 2 times unitary
}
#endif // CONFIG_EXT_TX
#else
#if CONFIG_EXT_TX #if CONFIG_EXT_TX
static void fidtx64(const tran_low_t *input, tran_low_t *output) { static void fidtx64(const tran_low_t *input, tran_low_t *output) {
int i; int i;
...@@ -2561,21 +2544,21 @@ void av1_fht64x64_c(const int16_t *input, tran_low_t *output, int stride, ...@@ -2561,21 +2544,21 @@ void av1_fht64x64_c(const int16_t *input, tran_low_t *output, int stride,
#if CONFIG_DAALA_DCT64 #if CONFIG_DAALA_DCT64
{ daala_fdct64, daala_fdct64 }, // DCT_DCT { daala_fdct64, daala_fdct64 }, // DCT_DCT
#if CONFIG_EXT_TX #if CONFIG_EXT_TX
{ fhalfright64, daala_fdct64 }, // ADST_DCT { daala_fdst64, daala_fdct64 }, // ADST_DCT
{ daala_fdct64, fhalfright64 }, // DCT_ADST { daala_fdct64, daala_fdst64 }, // DCT_ADST
{ fhalfright64, fhalfright64 }, // ADST_ADST { daala_fdst64, daala_fdst64 }, // ADST_ADST
{ fhalfright64, daala_fdct64 }, // FLIPADST_DCT { daala_fdst64, daala_fdct64 }, // FLIPADST_DCT
{ daala_fdct64, fhalfright64 }, // DCT_FLIPADST { daala_fdct64, daala_fdst64 }, // DCT_FLIPADST
{ fhalfright64, fhalfright64 }, // FLIPADST_FLIPADST { daala_fdst64, daala_fdst64 }, // FLIPADST_FLIPADST
{ fhalfright64, fhalfright64 }, // ADST_FLIPADST { daala_fdst64, daala_fdst64 }, // ADST_FLIPADST
{ fhalfright64, fhalfright64 }, // FLIPADST_ADST { daala_fdst64, daala_fdst64 }, // FLIPADST_ADST
{ daala_idtx64, daala_idtx64 }, // IDTX { daala_idtx64, daala_idtx64 }, // IDTX
{ daala_fdct64, daala_idtx64 }, // V_DCT { daala_fdct64, daala_idtx64 }, // V_DCT
{ daala_idtx64, daala_fdct64 }, // H_DCT { daala_idtx64, daala_fdct64 }, // H_DCT
{ fhalfright64, daala_idtx64 }, // V_ADST { daala_fdst64, daala_idtx64 }, // V_ADST
{ daala_idtx64, fhalfright64 }, // H_ADST { daala_idtx64, daala_fdst64 }, // H_ADST
{ fhalfright64, daala_idtx64 }, // V_FLIPADST { daala_fdst64, daala_idtx64 }, // V_FLIPADST
{ daala_idtx64, fhalfright64 }, // H_FLIPADST { daala_idtx64, daala_fdst64 }, // H_FLIPADST
#endif #endif
#else #else
{ fdct64_col, fdct64_row }, // DCT_DCT { fdct64_col, fdct64_row }, // DCT_DCT
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment