Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <Jean-Marc.Valin@csiro.au>2007-12-03 05:54:30 +0300
committerJean-Marc Valin <Jean-Marc.Valin@csiro.au>2007-12-03 05:54:30 +0300
commit4841a0a02b4ad2d9625602ca4d7f5bd63753bc53 (patch)
tree4497b782855aab3d1007bf8273f30202e2ace148 /libcelt/bands.c
parentc4541ae786b4d7f39bca6779fee55225b26307d0 (diff)
Intra-frame prediction
Diffstat (limited to 'libcelt/bands.c')
-rw-r--r--libcelt/bands.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/libcelt/bands.c b/libcelt/bands.c
index 5b56101..87055d8 100644
--- a/libcelt/bands.c
+++ b/libcelt/bands.c
@@ -32,6 +32,7 @@
#include <math.h>
#include "bands.h"
#include "vq.h"
+#include "cwrs.h"
const int qbank[NBANDS+2] = {0, 2, 4, 6, 8, 12, 16, 20, 24, 28, 36, 44, 52, 68, 84, 116, 128};
@@ -144,15 +145,24 @@ void pitch_quant_bands(float *X, int B, float *P, float *gains)
void quant_bands(float *X, int B, float *P)
{
- int i;
+ int i, j;
+ float norm[B*qbank[NBANDS+1]];
+
for (i=0;i<NBANDS;i++)
{
int q;
q =qpulses[i];
if (q) {
+ float n = sqrt(B*(qbank[i+1]-qbank[i]));
alg_quant2(X+B*qbank[i], B*(qbank[i+1]-qbank[i]), q, P+B*qbank[i]);
+ for (j=B*qbank[i];j<B*qbank[i+1];j++)
+ norm[j] = X[j] * n;
} else {
- noise_quant(X+B*qbank[i], B*(qbank[i+1]-qbank[i]), q, P+B*qbank[i]);
+ float n = sqrt(B*(qbank[i+1]-qbank[i]));
+ copy_quant(X+B*qbank[i], B*(qbank[i+1]-qbank[i]), q, norm, B, qbank[i]);
+ for (j=B*qbank[i];j<B*qbank[i+1];j++)
+ norm[j] = X[j] * n;
+ //noise_quant(X+B*qbank[i], B*(qbank[i+1]-qbank[i]), q, P+B*qbank[i]);
}
}
for (i=B*qbank[NBANDS];i<B*qbank[NBANDS+1];i++)