blob: f113061cdadaad15506253e044df540195650342 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#ifndef _DRED_ENCODER_H
#define _DRED_ENCODER_H
#include "lpcnet.h"
#include "dred_rdovae.h"
#include "entcode.h"
/* these are inpart duplicates to the values defined in dred_rdovae_constants.h */
#define DRED_NUM_FEATURES 20
#define DRED_LATENT_DIM 80
#define DRED_STATE_DIM 24
#define DRED_NUM_QUANTIZATION_LEVELS 40
#define DRED_MAX_FRAMES 100
#define DRED_SILK_ENCODER_DELAY 79
#define DRED_FRAME_SIZE 160
#define DRED_DFRAME_SIZE (2 * (DRED_FRAME_SIZE))
#define DRED_MAX_DATA_SIZE 10000
#define DRED_ENC_Q0 9
#define DRED_ENC_Q1 15
#define DRED_NUM_REDUNDANCY_FRAMES 50
typedef struct {
opus_int16 input_buffer[DRED_DFRAME_SIZE + DRED_SILK_ENCODER_DELAY];
float feature_buffer[2 * 36];
float latents_buffer[DRED_MAX_FRAMES * DRED_LATENT_DIM];
float state_buffer[24];
unsigned char ec_buffer[DRED_MAX_DATA_SIZE];
ec_enc ec_encoder;
LPCNetEncState *lpcnet_enc_state;
RDOVAEEnc *rdovae_enc;
} DREDEnc;
void init_dred_encoder(DREDEnc* enc);
void dred_encode_silk_frame(DREDEnc *enc, const opus_int16 *silk_frame);
#endif
|