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

github.com/mumble-voip/celt-0.7.0.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2009-12-02 15:04:28 +0300
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2009-12-02 15:04:28 +0300
commitaebb6fd624c8c2d60a023ab778426465ae7661b6 (patch)
tree9e4f556de40a27869020f68cff149bad2efc9345
parente465c1490aed0d0f0345996317daa667dd522171 (diff)
Some work on the pitch search weighting filter (still disabled)
-rw-r--r--libcelt/pitch.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libcelt/pitch.c b/libcelt/pitch.c
index ccbac34..4b12169 100644
--- a/libcelt/pitch.c
+++ b/libcelt/pitch.c
@@ -120,6 +120,7 @@ void pitch_downsample(const celt_sig * restrict x, celt_word16 * restrict x_lp,
float ac[3]={0,0,0};
float ak[2];
float det;
+ celt_word16 mem[2];
for (i=0;i<3;i++)
{
for (j=0;j<(len>>1)-i;j++)
@@ -128,16 +129,19 @@ void pitch_downsample(const celt_sig * restrict x, celt_word16 * restrict x_lp,
}
}
det = 1./(.1+ac[0]*ac[0]-ac[1]*ac[1]);
- ak[0] = det*(ac[0]*ac[1] - ac[1]*ac[2]);
- ak[1] = det*(-ac[1]*ac[1] + ac[0]*ac[2]);
+ ak[0] = .9*det*(ac[0]*ac[1] - ac[1]*ac[2]);
+ ak[1] = .81*det*(-ac[1]*ac[1] + ac[0]*ac[2]);
/*printf ("%f %f %f\n", 1., -ak[0], -ak[1]);*/
- float mem[2];
+ mem[0]=filt_mem[0];
+ mem[1]=filt_mem[1];
+ filt_mem[0]=x_lp[(end>>1)-1];
+ filt_mem[1]=x_lp[(end>>1)-2];
for (j=0;j<len>>1;j++)
{
float tmp = x_lp[j];
- x_lp[j] = x_lp[j] - ak[0]*filt_mem[0] - ak[1]*filt_mem[1];
- filt_mem[1]=mem[0];
- filt_mem[0]=tmp;
+ x_lp[j] = x_lp[j] - ak[0]*mem[0] - ak[1]*mem[1];
+ mem[1]=mem[0];
+ mem[0]=tmp;
}
}
#endif