From 90d74bbbe98de3dc979510993b01ca460b337ff3 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Fri, 15 Feb 2019 18:12:38 -0500 Subject: [PATCH] Add bidirectional quantizer --- dnn/ceps_vq_train.c | 169 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 163 insertions(+), 6 deletions(-) diff --git a/dnn/ceps_vq_train.c b/dnn/ceps_vq_train.c index 8a3b5e47..ed54239a 100644 --- a/dnn/ceps_vq_train.c +++ b/dnn/ceps_vq_train.c @@ -6,9 +6,12 @@ #include #define MIN(a,b) ((a)<(b)?(a):(b)) -#define COEF 0.75f +#define COEF 0.0f #define MAX_ENTRIES 16384 +#define MULTI 4 +#define MULTI_MASK (MULTI-1) + void compute_weights(const float *x, float *w, int ndim) { int i; @@ -48,6 +51,31 @@ int find_nearest(const float *codebook, int nb_entries, const float *x, int ndim return nearest; } +int find_nearest_multi(const float *codebook, int nb_entries, const float *x, int ndim, float *dist) +{ + int i, j; + float min_dist = 1e15; + int nearest = 0; + + for (i=0;i