ref: 0c6c569cabe696ab8042ed4ac71823d9d3d8152b
parent: a81a620d99bdb66bea020c9cc791ecabb6505539
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Sun May 14 22:40:56 EDT 2023
Decode RDO-VAE from stack-allocated state
--- a/dnn/dred_rdovae.c
+++ b/dnn/dred_rdovae.c
@@ -35,6 +35,21 @@
#include "dred_rdovae_dec.h"
#include "dred_rdovae_stats_data.h"
+void DRED_rdovae_decode_all(float *features, const float *state, const float *latents, int nb_latents)
+{+ int i;
+ RDOVAEDec dec;
+ memset(&dec, 0, sizeof(dec));
+ DRED_rdovae_dec_init_states(&dec, state);
+ for (i = 0; i < 2*nb_latents; i += 2)
+ {+ DRED_rdovae_decode_qframe(
+ &dec,
+ &features[2*i*DRED_NUM_FEATURES],
+ &latents[(i/2)*DRED_LATENT_DIM]);
+ }
+}
+
size_t DRED_rdovae_get_enc_size()
{return sizeof(RDOVAEEnc);
@@ -117,4 +132,4 @@
const opus_uint16 * DRED_rdovae_get_quant_scales_pointer(void)
{return &dred_quant_scales_q8[0];
-}
\ No newline at end of file
+}
--- a/dnn/include/dred_rdovae.h
+++ b/dnn/include/dred_rdovae.h
@@ -33,6 +33,9 @@
typedef struct RDOVAEDecStruct RDOVAEDec;
typedef struct RDOVAEEncStruct RDOVAEEnc;
+void DRED_rdovae_decode_all(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);
--
⑨