diff --git a/dnn/dred_rdovae.c b/dnn/dred_rdovae.c
index 74a97ec1950a0580c0ac0dfbd0b22a9168f8928b..3f6e738c38df1f0ca24fa5f0b3003b784d30df9d 100644
--- a/dnn/dred_rdovae.c
+++ b/dnn/dred_rdovae.c
@@ -2,6 +2,7 @@
 
 #include "dred_rdovae_enc.h"
 #include "dred_rdovae_dec.h"
+#include "dred_rdovae_stats_data.h"
 
 size_t DRED_rdovae_get_enc_size()
 {
@@ -54,4 +55,25 @@ void DRED_rdovae_dec_init_states(RDOVAEDec *h, const float * initial_state)
 void DRED_rdovae_decode_qframe(RDOVAEDec *h, float *qframe, const float *z)
 {
     dred_rdovae_decode_qframe(h, qframe, z);
+}
+
+
+const opus_int16 * DRED_rdovae_get_p0_pointer(void)
+{
+    return &dred_p0_q15[0];
+}
+
+const opus_int16 * DRED_rdovae_get_dead_zone_pointer(void)
+{
+    return &dred_dead_zone_q10[0];
+}
+
+const opus_int16 * DRED_rdovae_get_r_pointer(void)
+{
+    return &dred_r_q15[0];
+}
+
+const opus_int16 * DRED_rdovae_get_quant_scales_pointer(void)
+{
+    return &dred_quant_scales_q8[0];
 }
\ No newline at end of file
diff --git a/dnn/include/dred_rdovae.h b/dnn/include/dred_rdovae.h
index 3e781a0d7536e0cd2cd5339e46c26eff93189ab7..a5b5cc0c7af4d60f7dc3489e6f6277e3b77b14cb 100644
--- a/dnn/include/dred_rdovae.h
+++ b/dnn/include/dred_rdovae.h
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 
+#include "opus_types.h"
 
 typedef struct RDOVAEDecStruct RDOVAEDec;
 typedef struct RDOVAEEncStruct RDOVAEEnc;
@@ -18,4 +19,9 @@ void DRED_rdovae_encode_dframe(RDOVAEEnc *enc_state, float *latents, float *init
 
 void DRED_rdovae_dec_init_states(RDOVAEDec *h, const float * initial_state);
 
-void DRED_rdovae_decode_qframe(RDOVAEDec *h, float *qframe, const float * z);
\ No newline at end of file
+void DRED_rdovae_decode_qframe(RDOVAEDec *h, float *qframe, const float * z);
+
+const opus_int16 * DRED_rdovae_get_p0_pointer(void);
+const opus_int16 * DRED_rdovae_get_dead_zone_pointer(void);
+const opus_int16 * DRED_rdovae_get_r_pointer(void);
+const opus_int16 * DRED_rdovae_get_quant_scales_pointer(void);