summaryrefslogtreecommitdiff
path: root/src/audio/fdct.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/fdct.cc')
-rw-r--r--src/audio/fdct.cc13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/audio/fdct.cc b/src/audio/fdct.cc
index 78973a3..9eaa2dd 100644
--- a/src/audio/fdct.cc
+++ b/src/audio/fdct.cc
@@ -3,16 +3,9 @@
// Used for analyzing audio files into spectrograms.
#include "dct.h"
-#include <math.h>
+#include "fft.h"
+// Fast O(N log N) implementation using FFT
void fdct_512(const float* input, float* output) {
- const float PI = 3.14159265358979323846f;
- for (int k = 0; k < DCT_SIZE; ++k) {
- float sum = 0.0f;
- for (int n = 0; n < DCT_SIZE; ++n) {
- sum +=
- input[n] * cosf(PI / (float)DCT_SIZE * ((float)n + 0.5f) * (float)k);
- }
- output[k] = sum;
- }
+ dct_fft(input, output, DCT_SIZE);
}