ref: 976729dcd0dcda5826b25ae37d8d2922f57e144f
parent: 48a7e25032f82b7283bc2f37c525f96f46524a49
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Fri Nov 12 22:01:28 EST 2021
Fix minor bug in dynamic programming pitch search
--- a/dnn/lpcnet_enc.c
+++ b/dnn/lpcnet_enc.c
@@ -587,7 +587,7 @@
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 @@
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 @@
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;
--
⑨