Commit 75732de1 authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

Tuning the spreading rotations

parent 4834c92e
...@@ -46,7 +46,7 @@ static void exp_rotation(celt_norm_t *X, int len, int dir, int stride, int K) ...@@ -46,7 +46,7 @@ static void exp_rotation(celt_norm_t *X, int len, int dir, int stride, int K)
celt_word16_t c, s; celt_word16_t c, s;
celt_word16_t gain, theta; celt_word16_t gain, theta;
celt_norm_t *Xptr; celt_norm_t *Xptr;
gain = celt_div((celt_word32_t)MULT16_16(Q15_ONE,len),(celt_word32_t)(len+2*K*((K>>1)+1))); gain = celt_div((celt_word32_t)MULT16_16(Q15_ONE,len),(celt_word32_t)(3+len+6*K));
/* FIXME: Make that HALF16 instead of HALF32 */ /* FIXME: Make that HALF16 instead of HALF32 */
theta = SUB16(Q15ONE, HALF32(MULT16_16_Q15(gain,gain))); theta = SUB16(Q15ONE, HALF32(MULT16_16_Q15(gain,gain)));
/*if (len==30) /*if (len==30)
...@@ -57,8 +57,8 @@ static void exp_rotation(celt_norm_t *X, int len, int dir, int stride, int K) ...@@ -57,8 +57,8 @@ static void exp_rotation(celt_norm_t *X, int len, int dir, int stride, int K)
}*/ }*/
c = celt_cos_norm(EXTEND32(theta)); c = celt_cos_norm(EXTEND32(theta));
s = dir*celt_cos_norm(EXTEND32(SUB16(Q15ONE,theta))); /* sin(theta) */ s = dir*celt_cos_norm(EXTEND32(SUB16(Q15ONE,theta))); /* sin(theta) */
if (stride == 1) if (len > 8*stride)
stride = 2; stride *= len/(8*stride);
iter = 1; iter = 1;
for (k=0;k<iter;k++) for (k=0;k<iter;k++)
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment