diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2023-11-07 10:52:40 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2023-11-07 10:52:40 +0300 |
commit | b6095cf22d501cb1950685e46b334b0a2ca7e78b (patch) | |
tree | 7b53a0a774c1f4bd8f2c79fe08d6e7d79a135f17 | |
parent | 0ab0640d4ad41d765ab2b9916f7146c67fe56a3c (diff) |
DRED code cleanup
Removing some indirections
-rw-r--r-- | dnn/dred_rdovae.c | 79 | ||||
-rw-r--r-- | dnn/dred_rdovae.h | 24 | ||||
-rw-r--r-- | dnn/dred_rdovae_dec.c | 16 | ||||
-rw-r--r-- | dnn/dred_rdovae_dec.h | 1 | ||||
-rw-r--r-- | lpcnet_sources.mk | 1 | ||||
-rw-r--r-- | silk/dred_encoder.c | 7 | ||||
-rw-r--r-- | src/opus_decoder.c | 1 |
7 files changed, 24 insertions, 105 deletions
diff --git a/dnn/dred_rdovae.c b/dnn/dred_rdovae.c deleted file mode 100644 index 748a463a..00000000 --- a/dnn/dred_rdovae.c +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright (c) 2022 Amazon - Written by Jan Buethe */ -/* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <string.h> -#include "dred_rdovae.h" -#include "dred_rdovae_enc.h" -#include "dred_rdovae_dec.h" -#include "dred_rdovae_stats_data.h" - -void DRED_rdovae_decode_all(const RDOVAEDec *model, float *features, const float *state, const float *latents, int nb_latents) -{ - int i; - RDOVAEDecState dec; - memset(&dec, 0, sizeof(dec)); - DRED_rdovae_dec_init_states(&dec, model, state); - for (i = 0; i < 2*nb_latents; i += 2) - { - DRED_rdovae_decode_qframe( - &dec, - model, - &features[2*i*DRED_NUM_FEATURES], - &latents[(i/2)*DRED_LATENT_DIM]); - } -} - -void DRED_rdovae_init_encoder(RDOVAEEncState *enc_state) -{ - memset(enc_state, 0, sizeof(*enc_state)); - -} - -void DRED_rdovae_init_decoder(RDOVAEDecState *dec_state) -{ - memset(dec_state, 0, sizeof(*dec_state)); -} - - -void DRED_rdovae_encode_dframe(RDOVAEEncState *enc_state, const RDOVAEEnc *model, float *latents, float *initial_state, const float *input) -{ - dred_rdovae_encode_dframe(enc_state, model, latents, initial_state, input); -} - -void DRED_rdovae_dec_init_states(RDOVAEDecState *h, const RDOVAEDec *model, const float * initial_state) -{ - dred_rdovae_dec_init_states(h, model, initial_state); -} - -void DRED_rdovae_decode_qframe(RDOVAEDecState *h, const RDOVAEDec *model, float *qframe, const float *z) -{ - dred_rdovae_decode_qframe(h, model, qframe, z); -} diff --git a/dnn/dred_rdovae.h b/dnn/dred_rdovae.h index 05da69ba..89ea39ac 100644 --- a/dnn/dred_rdovae.h +++ b/dnn/dred_rdovae.h @@ -37,30 +37,6 @@ typedef struct RDOVAEEnc RDOVAEEnc; typedef struct RDOVAEDecStruct RDOVAEDecState; typedef struct RDOVAEEncStruct RDOVAEEncState; -void DRED_rdovae_decode_all(const RDOVAEDec *model, float *features, const float *state, const float *latents, int nb_latents); -size_t DRED_rdovae_get_enc_size(void); - -size_t DRED_rdovae_get_dec_size(void); - -RDOVAEDecState * DRED_rdovae_create_decoder(void); -RDOVAEEncState * DRED_rdovae_create_encoder(void); -void DRED_rdovae_destroy_decoder(RDOVAEDecState* h); -void DRED_rdovae_destroy_encoder(RDOVAEEncState* h); - - -void DRED_rdovae_init_encoder(RDOVAEEncState *enc_state); - -void DRED_rdovae_encode_dframe(RDOVAEEncState *enc_state, const RDOVAEEnc *model, float *latents, float *initial_state, const float *input); - -void DRED_rdovae_dec_init_states(RDOVAEDecState *h, const RDOVAEDec *model, const float * initial_state); - -void DRED_rdovae_decode_qframe(RDOVAEDecState *h, const RDOVAEDec *model, float *qframe, const float * z); - -const opus_uint8 * DRED_rdovae_get_p0_pointer(void); -const opus_uint16 * DRED_rdovae_get_dead_zone_pointer(void); -const opus_uint8 * DRED_rdovae_get_r_pointer(void); -const opus_uint16 * DRED_rdovae_get_quant_scales_pointer(void); - #endif diff --git a/dnn/dred_rdovae_dec.c b/dnn/dred_rdovae_dec.c index 1fef375a..59cc8943 100644 --- a/dnn/dred_rdovae_dec.c +++ b/dnn/dred_rdovae_dec.c @@ -42,6 +42,22 @@ static void conv1_cond_init(float *mem, int len, int dilation, int *init) *init = 1; } +void DRED_rdovae_decode_all(const RDOVAEDec *model, float *features, const float *state, const float *latents, int nb_latents) +{ + int i; + RDOVAEDecState dec; + memset(&dec, 0, sizeof(dec)); + dred_rdovae_dec_init_states(&dec, model, state); + for (i = 0; i < 2*nb_latents; i += 2) + { + dred_rdovae_decode_qframe( + &dec, + model, + &features[2*i*DRED_NUM_FEATURES], + &latents[(i/2)*DRED_LATENT_DIM]); + } +} + void dred_rdovae_dec_init_states( RDOVAEDecState *h, /* io: state buffer handle */ const RDOVAEDec *model, diff --git a/dnn/dred_rdovae_dec.h b/dnn/dred_rdovae_dec.h index 2cd49991..636f0ee0 100644 --- a/dnn/dred_rdovae_dec.h +++ b/dnn/dred_rdovae_dec.h @@ -48,5 +48,6 @@ struct RDOVAEDecStruct { void dred_rdovae_dec_init_states(RDOVAEDecState *h, const RDOVAEDec *model, const float * initial_state); void dred_rdovae_decode_qframe(RDOVAEDecState *h, const RDOVAEDec *model, float *qframe, const float * z); +void DRED_rdovae_decode_all(const RDOVAEDec *model, float *features, const float *state, const float *latents, int nb_latents); #endif diff --git a/lpcnet_sources.mk b/lpcnet_sources.mk index 051d3c44..09b8b462 100644 --- a/lpcnet_sources.mk +++ b/lpcnet_sources.mk @@ -13,7 +13,6 @@ dnn/pitchdnn.c \ dnn/pitchdnn_data.c DRED_SOURCES = \ -dnn/dred_rdovae.c \ dnn/dred_rdovae_enc.c \ dnn/dred_rdovae_enc_data.c \ dnn/dred_rdovae_dec.c \ diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c index e4959b30..fb184103 100644 --- a/silk/dred_encoder.c +++ b/silk/dred_encoder.c @@ -47,6 +47,11 @@ #include "dred_rdovae_stats_data.h" +static void DRED_rdovae_init_encoder(RDOVAEEncState *enc_state) +{ + memset(enc_state, 0, sizeof(*enc_state)); +} + int dred_encoder_load_model(DREDEnc* enc, const unsigned char *data, int len) { WeightArray *list; @@ -100,7 +105,7 @@ static void dred_process_frame(DREDEnc *enc) OPUS_COPY(input_buffer + DRED_NUM_FEATURES, feature_buffer + 36, DRED_NUM_FEATURES); /* run RDOVAE encoder */ - DRED_rdovae_encode_dframe(&enc->rdovae_enc, &enc->model, enc->latents_buffer, enc->state_buffer, input_buffer); + dred_rdovae_encode_dframe(&enc->rdovae_enc, &enc->model, enc->latents_buffer, enc->state_buffer, input_buffer); enc->latents_buffer_fill = IMIN(enc->latents_buffer_fill+1, DRED_NUM_REDUNDANCY_FRAMES); } diff --git a/src/opus_decoder.c b/src/opus_decoder.c index 999c6fe0..73be6f3b 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -54,6 +54,7 @@ #ifdef ENABLE_DEEP_PLC #include "dred_rdovae_dec_data.h" +#include "dred_rdovae_dec.h" #endif struct OpusDecoder { |