mirror of
https://github.com/xiph/opus.git
synced 2025-05-31 07:37:42 +00:00
Remove condition in pre/de-emphasis when not building with custom modes
Should slightly improve coverage and reduce code size
This commit is contained in:
parent
ba1bd031c7
commit
e368e62092
2 changed files with 34 additions and 26 deletions
|
@ -191,10 +191,9 @@ void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, c
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
int Nd;
|
int Nd;
|
||||||
opus_val16 coef0, coef1;
|
opus_val16 coef0;
|
||||||
|
|
||||||
coef0 = coef[0];
|
coef0 = coef[0];
|
||||||
coef1 = coef[1];
|
|
||||||
Nd = N/downsample;
|
Nd = N/downsample;
|
||||||
c=0; do {
|
c=0; do {
|
||||||
int j;
|
int j;
|
||||||
|
@ -203,26 +202,31 @@ void deemphasis(celt_sig *in[], opus_val16 *pcm, int N, int C, int downsample, c
|
||||||
celt_sig m = mem[c];
|
celt_sig m = mem[c];
|
||||||
x =in[c];
|
x =in[c];
|
||||||
y = pcm+c;
|
y = pcm+c;
|
||||||
/* Shortcut for the standard (non-custom modes) case */
|
#ifdef CUSTOM_MODES
|
||||||
if (coef1 == 0)
|
if (coef[1] != 0)
|
||||||
{
|
{
|
||||||
|
opus_val16 coef1 = coef[1];
|
||||||
|
opus_val16 coef3 = coef[3];
|
||||||
|
for (j=0;j<N;j++)
|
||||||
|
{
|
||||||
|
celt_sig tmp = x[j] + m;
|
||||||
|
m = MULT16_32_Q15(coef0, tmp)
|
||||||
|
- MULT16_32_Q15(coef1, x[j]);
|
||||||
|
tmp = SHL32(MULT16_32_Q15(coef3, tmp), 2);
|
||||||
|
scratch[j] = tmp;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
/* Shortcut for the standard (non-custom modes) case */
|
||||||
for (j=0;j<N;j++)
|
for (j=0;j<N;j++)
|
||||||
{
|
{
|
||||||
celt_sig tmp = x[j] + m;
|
celt_sig tmp = x[j] + m;
|
||||||
m = MULT16_32_Q15(coef0, tmp);
|
m = MULT16_32_Q15(coef0, tmp);
|
||||||
scratch[j] = tmp;
|
scratch[j] = tmp;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
opus_val16 coef3 = coef[3];
|
|
||||||
for (j=0;j<N;j++)
|
|
||||||
{
|
|
||||||
celt_sig tmp = x[j] + m;
|
|
||||||
m = MULT16_32_Q15(coef0, tmp)
|
|
||||||
- MULT16_32_Q15(coef1, x[j]);
|
|
||||||
tmp = SHL32(MULT16_32_Q15(coef3, tmp), 2);
|
|
||||||
scratch[j] = tmp;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
mem[c] = m;
|
mem[c] = m;
|
||||||
|
|
||||||
/* Perform down-sampling */
|
/* Perform down-sampling */
|
||||||
|
|
|
@ -392,12 +392,11 @@ static void preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_R
|
||||||
int N, int CC, int upsample, const opus_val16 *coef, celt_sig *mem, int clip)
|
int N, int CC, int upsample, const opus_val16 *coef, celt_sig *mem, int clip)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
opus_val16 coef0, coef1;
|
opus_val16 coef0;
|
||||||
celt_sig m;
|
celt_sig m;
|
||||||
int Nu;
|
int Nu;
|
||||||
|
|
||||||
coef0 = coef[0];
|
coef0 = coef[0];
|
||||||
coef1 = coef[1];
|
|
||||||
|
|
||||||
|
|
||||||
Nu = N/upsample;
|
Nu = N/upsample;
|
||||||
|
@ -428,17 +427,10 @@ static void preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_R
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
m = *mem;
|
m = *mem;
|
||||||
if (coef1 == 0)
|
#ifdef CUSTOM_MODES
|
||||||
|
if (coef[1] != 0)
|
||||||
{
|
{
|
||||||
for (i=0;i<N;i++)
|
opus_val16 coef1 = coef[1];
|
||||||
{
|
|
||||||
celt_sig x;
|
|
||||||
x = SHL32(inp[i], SIG_SHIFT);
|
|
||||||
/* Apply pre-emphasis */
|
|
||||||
inp[i] = x + m;
|
|
||||||
m = - MULT16_32_Q15(coef0, x);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
opus_val16 coef2 = coef[2];
|
opus_val16 coef2 = coef[2];
|
||||||
for (i=0;i<N;i++)
|
for (i=0;i<N;i++)
|
||||||
{
|
{
|
||||||
|
@ -449,7 +441,19 @@ static void preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_R
|
||||||
inp[i] = tmp + m;
|
inp[i] = tmp + m;
|
||||||
m = MULT16_32_Q15(coef1, inp[i]) - MULT16_32_Q15(coef0, tmp);
|
m = MULT16_32_Q15(coef1, inp[i]) - MULT16_32_Q15(coef0, tmp);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
for (i=0;i<N;i++)
|
||||||
|
{
|
||||||
|
celt_sig x;
|
||||||
|
x = SHL32(inp[i], SIG_SHIFT);
|
||||||
|
/* Apply pre-emphasis */
|
||||||
|
inp[i] = x + m;
|
||||||
|
m = - MULT16_32_Q15(coef0, x);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
*mem = m;
|
*mem = m;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue