shithub: opus

Download patch

ref: b6095cf22d501cb1950685e46b334b0a2ca7e78b
parent: 0ab0640d4ad41d765ab2b9916f7146c67fe56a3c
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Mon Nov 6 21:52:40 EST 2023

DRED code cleanup

Removing some indirections

--- a/dnn/dred_rdovae.c
+++ /dev/null
@@ -1,79 +1,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);
-}
--- a/dnn/dred_rdovae.h
+++ b/dnn/dred_rdovae.h
@@ -37,30 +37,6 @@
 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
--- a/dnn/dred_rdovae_dec.c
+++ b/dnn/dred_rdovae_dec.c
@@ -42,6 +42,22 @@
     *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,
--- a/dnn/dred_rdovae_dec.h
+++ b/dnn/dred_rdovae_dec.h
@@ -48,5 +48,6 @@
 
 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
--- a/lpcnet_sources.mk
+++ b/lpcnet_sources.mk
@@ -13,7 +13,6 @@
 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 \
--- 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 @@
     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);
 }
 
--- 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 {
--