summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@amazon.com>2022-12-02 16:22:03 -0500
committerJean-Marc Valin <jmvalin@amazon.com>2022-12-02 16:22:03 -0500
commitf2226dca4cf9892fdddb9e50bf00368e9f8e02b3 (patch)
tree11813387abe9a94cee928fbbff48b6d4f87d2454
parentd5cacaec07a22f11d21f1988a67cb4efbd771d29 (diff)
downloadopus-f2226dca4cf9892fdddb9e50bf00368e9f8e02b3.tar.gz
Minor cleanup
-rw-r--r--silk/dred_coding.c6
-rw-r--r--silk/dred_coding.h6
-rw-r--r--silk/dred_encoder.c10
-rw-r--r--silk/dred_encoder.h6
-rw-r--r--silk/dred_entropy.c194
5 files changed, 14 insertions, 208 deletions
diff --git a/silk/dred_coding.c b/silk/dred_coding.c
index 9b0381d2..e6f65f7f 100644
--- a/silk/dred_coding.c
+++ b/silk/dred_coding.c
@@ -25,13 +25,13 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <math.h>
-#include <stdio.h>
-
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
+#include <math.h>
+#include <stdio.h>
+
#include "celt/entenc.h"
#include "celt/vq.h"
#include "celt/cwrs.h"
diff --git a/silk/dred_coding.h b/silk/dred_coding.h
index 9f8c9c63..a36f93d9 100644
--- a/silk/dred_coding.h
+++ b/silk/dred_coding.h
@@ -25,8 +25,8 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef _DRED_CODING_H
-#define _DRED_CODING_H
+#ifndef DRED_CODING_H
+#define DRED_CODING_H
#include "opus_types.h"
#include "entcode.h"
@@ -39,4 +39,4 @@ void dred_decode_state(ec_enc *dec, float *x);
void dred_decode_latents(ec_dec *dec, float *x, const opus_uint16 *scale, const opus_uint16 *r, const opus_uint16 *p0);
-#endif \ No newline at end of file
+#endif
diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c
index 5470b952..a77e273e 100644
--- a/silk/dred_encoder.c
+++ b/silk/dred_encoder.c
@@ -25,6 +25,10 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
#include <string.h>
#if 1
@@ -32,10 +36,6 @@
#include <math.h>
#endif
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
#include "dred_encoder.h"
#include "dred_coding.h"
#include "celt/entenc.h"
@@ -140,4 +140,4 @@ void dred_encode_silk_frame(DREDEnc *enc, const opus_int16 *silk_frame)
dred_deinit_decoder(&dec);
#endif
-} \ No newline at end of file
+}
diff --git a/silk/dred_encoder.h b/silk/dred_encoder.h
index a8bb7cbf..e5f67c0e 100644
--- a/silk/dred_encoder.h
+++ b/silk/dred_encoder.h
@@ -25,8 +25,8 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef _DRED_ENCODER_H
-#define _DRED_ENCODER_H
+#ifndef DRED_ENCODER_H
+#define DRED_ENCODER_H
#include "lpcnet.h"
#include "dred_config.h"
@@ -53,4 +53,4 @@ void dred_deinit_encoder(DREDEnc *enc);
void dred_encode_silk_frame(DREDEnc *enc, const opus_int16 *silk_frame);
-#endif \ No newline at end of file
+#endif
diff --git a/silk/dred_entropy.c b/silk/dred_entropy.c
deleted file mode 100644
index ac01f48b..00000000
--- a/silk/dred_entropy.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright (c) 2022 Amazon
- Written by Jean-Marc Valin */
-/*
- 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 <math.h>
-#include <stdio.h>
-
-#include "celt/vq.h"
-#include "celt/cwrs.h"
-
-#define LATENT_DIM 80
-#define PVQ_DIM 24
-#define PVQ_K 82
-
-static void encode_pvq(const int *iy, int N, int K, ec_enc *enc) {
- int fits;
- celt_assert(N==24 || N==12 || N==6);
- fits = (N==24 && K<=9) || (N==12 && K<=16) || (N==6);
- /*printf("encode(%d,%d), fits=%d\n", N, K, fits);*/
- if (fits) encode_pulses(iy, N, K, enc);
- else {
- int N2 = N/2;
- int K0=0;
- int i;
- for (i=0;i<N2;i++) K0 += abs(iy[i]);
- /* FIXME: Don't use uniform probability for K0. */
- ec_enc_uint(enc, K0, K+1);
- /*printf("K0 = %d\n", K0);*/
- encode_pvq(iy, N2, K0, enc);
- encode_pvq(&iy[N2], N2, K-K0, enc);
- }
-}
-
-void dred_encode_state(ec_enc *enc, float *x) {
- int k;
- int iy[PVQ_DIM];
- op_pvq_search_c(x, iy, PVQ_K, PVQ_DIM, 0);
- for (k=0;k<PVQ_DIM;k++) printf("%d ", iy[k]);
- printf("\n");
- int tell1 = ec_tell(enc);
- encode_pvq(iy, PVQ_DIM, PVQ_K, enc);
- printf("tell: %d\n", ec_tell(enc)-tell1);
-}
-
-void dred_encode_latents(ec_enc *enc, const float *x, const opus_int16 *scale, const opus_int16 *dzone, const opus_int16 *r, const opus_int16 *p0) {
- int i;
- float eps = .1f;
- int tell1 = ec_tell(enc);
- for (i=0;i<LATENT_DIM;i++) {
- float delta;
- float xq;
- int q;
- delta = dzone[i]*(1.f/1024.f);
- xq = x[i]*scale[i]*(1.f/256.f);
- xq = xq - delta*tanh(xq/(delta+eps));
- q = (int)floor(.5f+xq);
- ec_laplace_encode_p0(enc, q, p0[i], r[i]);
- }
- printf("tell: %d\n", ec_tell(enc)-tell1);
-}
-
-
-
-static void decode_pvq(int *iy, int N, int K, ec_dec *dec) {
- int fits;
- celt_assert(N==24 || N==12 || N==6);
- fits = (N==24 && K<=9) || (N==12 && K<=16) || (N==6);
- /*printf("encode(%d,%d), fits=%d\n", N, K, fits);*/
- if (fits) decode_pulses(iy, N, K, dec);
- else {
- int N2 = N/2;
- int K0;
- /* FIXME: Don't use uniform probability for K0. */
- K0 = ec_dec_uint(dec, K+1);
- /*printf("K0 = %d\n", K0);*/
- decode_pvq(iy, N2, K0, dec);
- decode_pvq(&iy[N2], N2, K-K0, dec);
- }
-}
-
-void dred_pvq_dec(ec_enc *dec, float *x) {
- int k;
- int iy[PVQ_DIM];
- int tell1 = ec_tell(dec);
- decode_pvq(iy, PVQ_DIM, PVQ_K, dec);
- /*printf("tell: %d\n", ec_tell(dec)-tell1);*/
- for (k=0;k<PVQ_DIM;k++) printf("%d ", iy[k]);
- printf("\n");
-
-}
-
-void dred_rdovae_dec(ec_dec *dec, float *x, const opus_int16 *scale, const opus_int16 *dzone, const opus_int16 *r, const opus_int16 *p0) {
- int i;
- int tell1 = ec_tell(dec);
- for (i=0;i<LATENT_DIM;i++) {
- float xq;
- int q;
- q = ec_laplace_decode_p0(dec, p0[i], r[i]);
- x[i] = q*256.f/scale[i];
- }
- printf("tell: %d\n", ec_tell(dec)-tell1);
-}
-
-#if 0
-#include <stdlib.h>
-
-#define DATA_SIZE 10000
-
-int main()
-{
- ec_enc enc;
- ec_dec dec;
- int iter;
- int bytes;
- opus_int16 scale[LATENT_DIM];
- opus_int16 dzone[LATENT_DIM];
- opus_int16 r[LATENT_DIM];
- opus_int16 p0[LATENT_DIM];
- unsigned char *ptr;
- int k;
-
- for (k=0;k<LATENT_DIM;k++) {
- scale[k] = 256;
- dzone[k] = 0;
- r[k] = 12054;
- p0[k] = 12893;
- }
- ptr = (unsigned char *)malloc(DATA_SIZE);
- ec_enc_init(&enc,ptr,DATA_SIZE);
- for (iter=0;iter<1;iter++) {
- float x[PVQ_DIM];
- float sum=1e-30;
- for (k=0;k<PVQ_DIM;k++) {
- x[k] = log(1e-15+(float)rand()/RAND_MAX)-log(1e-15+(float)rand()/RAND_MAX);
- sum += fabs(x[k]);
- }
- for (k=0;k<PVQ_DIM;k++) x[k] *= (1.f/sum);
- /*for (k=0;k<PVQ_DIM;k++) printf("%f ", x[k]);
- printf("\n");*/
- dred_encode_state(&enc, x);
- }
- for (iter=0;iter<1;iter++) {
- float x[LATENT_DIM];
- for (k=0;k<LATENT_DIM;k++) {
- x[k] = log(1e-15+(float)rand()/RAND_MAX)-log(1e-15+(float)rand()/RAND_MAX);
- }
- for (k=0;k<LATENT_DIM;k++) printf("%f ", x[k]);
- printf("\n");
- dred_encode_latents(&enc, x, scale, dzone, r, p0);
- }
- bytes = (ec_tell(&enc)+7)/8;
- ec_enc_shrink(&enc, bytes);
- ec_enc_done(&enc);
-
- ec_dec_init(&dec,ec_get_buffer(&enc),bytes);
- for (iter=0;iter<1;iter++) {
- float x[PVQ_DIM];
- dred_pvq_dec(&dec, x);
- }
- for (iter=0;iter<1;iter++) {
- float x[LATENT_DIM];
- dred_rdovae_dec(&dec, x, scale, dzone, r, p0);
- for (k=0;k<LATENT_DIM;k++) printf("%f ", x[k]);
- printf("\n");
- }
-}
-#endif