DenoiseState *st;
DECLARE_ALIGNED(32, float, window)[WINDOW_SIZE];
- float dct_table[NB_BANDS*NB_BANDS];
+ DECLARE_ALIGNED(32, float, dct_table)[FFALIGN(NB_BANDS, 4)][FFALIGN(NB_BANDS, 4)];
RNNModel *model;
static void dct(AudioRNNContext *s, float *out, const float *in)
{
for (int i = 0; i < NB_BANDS; i++) {
- float sum = 0.f;
+ float sum;
- for (int j = 0; j < NB_BANDS; j++) {
- sum += in[j] * s->dct_table[j * NB_BANDS + i];
- }
+ sum = s->fdsp->scalarproduct_float(in, s->dct_table[i], FFALIGN(NB_BANDS, 4));
out[i] = sum * sqrtf(2.f / 22);
}
}
float E = 0;
float *ceps_0, *ceps_1, *ceps_2;
float spec_variability = 0;
- float Ly[NB_BANDS];
+ LOCAL_ALIGNED_32(float, Ly, [NB_BANDS]);
LOCAL_ALIGNED_32(float, p, [WINDOW_SIZE]);
float pitch_buf[PITCH_BUF_SIZE>>1];
int pitch_index;
AVComplexFloat P[WINDOW_SIZE];
float x[FRAME_SIZE];
float Ex[NB_BANDS], Ep[NB_BANDS];
- float Exp[NB_BANDS];
+ LOCAL_ALIGNED_32(float, Exp, [NB_BANDS]);
float features[NB_FEATURES];
float g[NB_BANDS];
float gf[FREQ_SIZE];
for (int i = 0; i < NB_BANDS; i++) {
for (int j = 0; j < NB_BANDS; j++) {
- s->dct_table[i*NB_BANDS + j] = cosf((i + .5f) * j * M_PI / NB_BANDS);
+ s->dct_table[j][i] = cosf((i + .5f) * j * M_PI / NB_BANDS);
if (j == 0)
- s->dct_table[i*NB_BANDS + j] *= sqrtf(.5);
+ s->dct_table[j][i] *= sqrtf(.5);
}
}