From accd7a2bd1e2909e504639e72300c24b6d87eaa7 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jmvalin@jmvalin.ca> Date: Thu, 14 Mar 2019 18:05:19 -0400 Subject: [PATCH] getting rid of the vq_mem global --- dnn/dump_data.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/dnn/dump_data.c b/dnn/dump_data.c index d1996e547..7b9245675 100644 --- a/dnn/dump_data.c +++ b/dnn/dump_data.c @@ -111,7 +111,6 @@ int vq_quantize(const float *codebook, int nb_entries, const float *x, int ndim, } #define NB_BANDS_1 (NB_BANDS - 1) -float vq_mem[NB_BANDS]; int quantize_2stage(float *x) { int i; @@ -482,6 +481,7 @@ typedef struct { float last_gain; int last_period; float lpc[LPC_ORDER]; + float vq_mem[NB_BANDS]; float features[4][NB_FEATURES]; float sig_mem[LPC_ORDER]; int exc_mem; @@ -716,10 +716,10 @@ static void process_superframe(DenoiseState *st, FILE *ffeat, int encode, int qu c0_id = IMAX(-64, IMIN(63, c0_id)); st->features[3][0] = c0_id/4.; quantize_3stage_mbest(&st->features[3][1], vq_end); - /*perform_interp_relaxation(st->features, vq_mem);*/ - quantize_diff(&st->features[1][0], vq_mem, &st->features[3][0], ceps_codebook_diff4, 12, 1, &vq_mid); - interp_id = double_interp_search(st->features, vq_mem); - perform_double_interp(st->features, vq_mem, interp_id); + /*perform_interp_relaxation(st->features, st->vq_mem);*/ + quantize_diff(&st->features[1][0], st->vq_mem, &st->features[3][0], ceps_codebook_diff4, 12, 1, &vq_mid); + interp_id = double_interp_search(st->features, st->vq_mem); + perform_double_interp(st->features, st->vq_mem, interp_id); } for (sub=0;sub<4;sub++) { float g = lpc_from_cepstrum(st->lpc, st->features[sub]); @@ -727,7 +727,7 @@ static void process_superframe(DenoiseState *st, FILE *ffeat, int encode, int qu for (i=0;i<LPC_ORDER;i++) st->features[sub][2*NB_BANDS+3+i] = st->lpc[i]; } //printf("\n"); - RNN_COPY(vq_mem, &st->features[3][0], NB_BANDS); + RNN_COPY(st->vq_mem, &st->features[3][0], NB_BANDS); if (encode) { fprintf(ffeat, "%d %d %d %d %d %d %d %d %d\n", c0_id+64, main_pitch, voiced ? modulation+4 : 0, corr_id, vq_end[0], vq_end[1], vq_end[2], vq_mid, interp_id); } else { @@ -737,7 +737,7 @@ static void process_superframe(DenoiseState *st, FILE *ffeat, int encode, int qu } } -void decode_packet(FILE *ffeat, int c0_id, int main_pitch, int modulation, int corr_id, int vq_end[3], int vq_mid, int interp_id) +void decode_packet(FILE *ffeat, float *vq_mem, int c0_id, int main_pitch, int modulation, int corr_id, int vq_end[3], int vq_mid, int interp_id) { int i; int sub; @@ -928,12 +928,13 @@ int main(int argc, char **argv) { exit(1); } if (decode) { + float vq_mem[NB_BANDS] = {0}; while (1) { int ret; int c0_id, main_pitch, modulation, corr_id, vq_end[3], vq_mid, interp_id; ret = fscanf(f1, "%d %d %d %d %d %d %d %d %d\n", &c0_id, &main_pitch, &modulation, &corr_id, &vq_end[0], &vq_end[1], &vq_end[2], &vq_mid, &interp_id); if (ret != 9) break; - decode_packet(ffeat, c0_id, main_pitch, modulation, corr_id, vq_end, vq_mid, interp_id); + decode_packet(ffeat, vq_mem, c0_id, main_pitch, modulation, corr_id, vq_end, vq_mid, interp_id); } return 0; } -- GitLab