From 976729dcd0dcda5826b25ae37d8d2922f57e144f Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin <jmvalin@amazon.com> Date: Sat, 13 Nov 2021 03:01:28 -0500 Subject: [PATCH] Fix minor bug in dynamic programming pitch search --- dnn/lpcnet_enc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dnn/lpcnet_enc.c b/dnn/lpcnet_enc.c index be9aaf23a..c710b5abe 100644 --- a/dnn/lpcnet_enc.c +++ b/dnn/lpcnet_enc.c @@ -587,7 +587,7 @@ void process_superframe(LPCNetEncState *st, unsigned char *buf, FILE *ffeat, int float max_prev; max_prev = st->pitch_max_path_all - 6.f; pitch_prev[sub][i] = st->best_i; - for (j=IMIN(0, 4-i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { + for (j=IMAX(-4, -i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { if (st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j) > max_prev) { max_prev = st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j); pitch_prev[sub][i] = i+j; @@ -733,7 +733,7 @@ void process_multi_frame(LPCNetEncState *st, FILE *ffeat) { float max_prev; max_prev = st->pitch_max_path_all - 6.f; pitch_prev[sub][i] = st->best_i; - for (j=IMIN(0, 4-i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { + for (j=IMAX(-4, -i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { if (st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j) > max_prev) { max_prev = st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j); pitch_prev[sub][i] = i+j; @@ -801,7 +801,7 @@ void process_single_frame(LPCNetEncState *st, FILE *ffeat) { float max_prev; max_prev = st->pitch_max_path_all - 6.f; pitch_prev[sub][i] = st->best_i; - for (j=IMIN(0, 4-i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { + for (j=IMAX(-4, -i);j<=4 && i+j<PITCH_MAX_PERIOD-PITCH_MIN_PERIOD;j++) { if (st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j) > max_prev) { max_prev = st->pitch_max_path[0][i+j] - .02f*abs(j)*abs(j); pitch_prev[sub][i] = i+j; -- GitLab