Skip to content
Snippets Groups Projects
Commit 7086dd73 authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

WIP: Splitting off the encoder

parent e198d9be
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ endif
all: dump_data test_lpcnet test_vec
dump_data_objs := src/dump_data.o src/freq.o src/kiss_fft.o src/pitch.o src/celt_lpc.o
dump_data_objs := src/dump_data.o src/freq.o src/kiss_fft.o src/pitch.o src/celt_lpc.o src/lpcnet_enc.o src/ceps_codebooks.o
dump_data_deps := $(dump_data_objs:.o=.d)
dump_data: $(dump_data_objs)
gcc -o $@ $(CFLAGS) $(dump_data_objs) -lm
......
This diff is collapsed.
......@@ -41,6 +41,7 @@
#define FREQ_SIZE (WINDOW_SIZE/2 + 1)
#define NB_BANDS 18
#define NB_BANDS_1 (NB_BANDS - 1)
void compute_band_energy(float *bandE, const kiss_fft_cpx *X);
void compute_band_corr(float *bandE, const kiss_fft_cpx *X, const kiss_fft_cpx *P);
......
......@@ -32,6 +32,17 @@
typedef struct LPCNetState LPCNetState;
typedef struct LPCNetEncState LPCNetEncState;
int lpcnet_encoder_get_size();
int lpcnet_encoder_init(LPCNetEncState *st);
LPCNetEncState *lpcnet_encoder_create();
void lpcnet_encoder_destroy(LPCNetEncState *st);
LPCNetState *lpcnet_create();
void lpcnet_destroy(LPCNetState *lpcnet);
......
This diff is collapsed.
#ifndef LPCNET_PRIVATE_H
#define LPCNET_PRIVATE_H
#include "common.h"
#include "freq.h"
#include "lpcnet.h"
#define BITS_PER_CHAR 8
#define PITCH_MIN_PERIOD 32
#define PITCH_MAX_PERIOD 256
#define PITCH_FRAME_SIZE 320
#define PITCH_BUF_SIZE (PITCH_MAX_PERIOD+PITCH_FRAME_SIZE)
#define MULTI 4
#define MULTI_MASK (MULTI-1)
struct LPCNetEncState{
float analysis_mem[OVERLAP_SIZE];
int pcount;
float pitch_mem[LPC_ORDER];
float pitch_filt;
float xc[10][PITCH_MAX_PERIOD+1];
float frame_weight[10];
float exc_buf[PITCH_BUF_SIZE];
float pitch_max_path[2][PITCH_MAX_PERIOD];
float pitch_max_path_all;
int best_i;
float last_gain;
int last_period;
float lpc[LPC_ORDER];
float vq_mem[NB_BANDS];
float features[4][NB_TOTAL_FEATURES];
float sig_mem[LPC_ORDER];
int exc_mem;
};
extern float ceps_codebook1[];
extern float ceps_codebook2[];
extern float ceps_codebook3[];
extern float ceps_codebook_diff4[];
void preemphasis(float *y, float *mem, const float *x, float coef, int N);
void perform_double_interp(float features[4][NB_TOTAL_FEATURES], const float *mem, int best_id);
void process_superframe(LPCNetEncState *st, FILE *ffeat, int encode, int quantize);
void compute_frame_features(LPCNetEncState *st, const float *in);
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment