diff options
Diffstat (limited to 'silk/dred_encoder.c')
-rw-r--r-- | silk/dred_encoder.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c index 64ff2c7c..f791115a 100644 --- a/silk/dred_encoder.c +++ b/silk/dred_encoder.c @@ -223,7 +223,7 @@ void dred_compute_latents(DREDEnc *enc, const float *pcm, int frame_size, int ex } } -static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *scale, const opus_uint8 *dzone, const opus_uint8 *r, const opus_uint8 *p0, int dim) { +static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *scale, const opus_uint8 *dzone, const opus_uint8 *r, const opus_uint8 *p0, int dim, int arch) { int i; int q[IMAX(DRED_LATENT_DIM,DRED_STATE_DIM)]; float xq[IMAX(DRED_LATENT_DIM,DRED_STATE_DIM)]; @@ -237,7 +237,7 @@ static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *s xq[i] = x[i]*scale[i]*(1.f/256.f); deadzone[i] = xq[i]/(delta[i]+eps); } - compute_activation(deadzone, deadzone, dim, ACTIVATION_TANH); + compute_activation(deadzone, deadzone, dim, ACTIVATION_TANH, arch); for (i=0;i<dim;i++) { xq[i] = xq[i] - delta[i]*deadzone[i]; q[i] = (int)floor(.5f+xq[i]); @@ -249,7 +249,7 @@ static void dred_encode_latents(ec_enc *enc, const float *x, const opus_uint8 *s } } -int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunks, int max_bytes) { +int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunks, int max_bytes, int arch) { ec_enc ec_encoder; int q_level; @@ -275,7 +275,8 @@ int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunk dred_state_dead_zone_q8 + state_qoffset, dred_state_r_q8 + state_qoffset, dred_state_p0_q8 + state_qoffset, - DRED_STATE_DIM); + DRED_STATE_DIM, + arch); if (ec_tell(&ec_encoder) > 8*max_bytes) { return 0; } @@ -294,7 +295,8 @@ int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunk dred_latent_dead_zone_q8 + offset, dred_latent_r_q8 + offset, dred_latent_p0_q8 + offset, - DRED_LATENT_DIM + DRED_LATENT_DIM, + arch ); if (ec_tell(&ec_encoder) > 8*max_bytes) { ec_encoder = ec_bak; |