mirror of
https://github.com/xiph/opus.git
synced 2025-06-03 00:57:43 +00:00
Don't call denormalise_bands() on silence
This commit is contained in:
parent
ce15e65319
commit
3afc6ffff0
2 changed files with 18 additions and 19 deletions
|
@ -916,19 +916,18 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat
|
||||||
ALLOC(bandE, nbEBands*C, celt_ener);
|
ALLOC(bandE, nbEBands*C, celt_ener);
|
||||||
|
|
||||||
log2Amp(mode, st->start, st->end, bandE, oldBandE, C);
|
log2Amp(mode, st->start, st->end, bandE, oldBandE, C);
|
||||||
|
ALLOC(freq, IMAX(CC,C)*N, celt_sig); /**< Interleaved signal MDCTs */
|
||||||
|
|
||||||
if (silence)
|
if (silence)
|
||||||
{
|
{
|
||||||
for (i=0;i<C*nbEBands;i++)
|
for (i=0;i<C*nbEBands;i++)
|
||||||
{
|
|
||||||
bandE[i] = 0;
|
|
||||||
oldBandE[i] = -QCONST16(28.f,DB_SHIFT);
|
oldBandE[i] = -QCONST16(28.f,DB_SHIFT);
|
||||||
}
|
for (i=0;i<C*N;i++)
|
||||||
|
freq[i] = 0;
|
||||||
|
} else {
|
||||||
|
/* Synthesis */
|
||||||
|
denormalise_bands(mode, X, freq, bandE, st->start, effEnd, C, M);
|
||||||
}
|
}
|
||||||
ALLOC(freq, IMAX(CC,C)*N, celt_sig); /**< Interleaved signal MDCTs */
|
|
||||||
/* Synthesis */
|
|
||||||
denormalise_bands(mode, X, freq, bandE, st->start, effEnd, C, M);
|
|
||||||
|
|
||||||
c=0; do {
|
c=0; do {
|
||||||
OPUS_MOVE(decode_mem[c], decode_mem[c]+N, DECODE_BUFFER_SIZE-N+overlap/2);
|
OPUS_MOVE(decode_mem[c], decode_mem[c]+N, DECODE_BUFFER_SIZE-N+overlap/2);
|
||||||
} while (++c<CC);
|
} while (++c<CC);
|
||||||
|
|
|
@ -1887,24 +1887,24 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm,
|
||||||
{
|
{
|
||||||
celt_sig *out_mem[2];
|
celt_sig *out_mem[2];
|
||||||
|
|
||||||
log2Amp(mode, st->start, st->end, bandE, oldBandE, C);
|
|
||||||
if (silence)
|
|
||||||
{
|
|
||||||
for (i=0;i<C*nbEBands;i++)
|
|
||||||
bandE[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef MEASURE_NORM_MSE
|
|
||||||
measure_norm_mse(mode, X, X0, bandE, bandE0, M, N, C);
|
|
||||||
#endif
|
|
||||||
if (anti_collapse_on)
|
if (anti_collapse_on)
|
||||||
{
|
{
|
||||||
anti_collapse(mode, X, collapse_masks, LM, C, N,
|
anti_collapse(mode, X, collapse_masks, LM, C, N,
|
||||||
st->start, st->end, oldBandE, oldLogE, oldLogE2, pulses, st->rng);
|
st->start, st->end, oldBandE, oldLogE, oldLogE2, pulses, st->rng);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Synthesis */
|
log2Amp(mode, st->start, st->end, bandE, oldBandE, C);
|
||||||
denormalise_bands(mode, X, freq, bandE, st->start, effEnd, C, M);
|
if (silence)
|
||||||
|
{
|
||||||
|
for (i=0;i<C*N;i++)
|
||||||
|
freq[i] = 0;
|
||||||
|
} else {
|
||||||
|
#ifdef MEASURE_NORM_MSE
|
||||||
|
measure_norm_mse(mode, X, X0, bandE, bandE0, M, N, C);
|
||||||
|
#endif
|
||||||
|
/* Synthesis */
|
||||||
|
denormalise_bands(mode, X, freq, bandE, st->start, effEnd, C, M);
|
||||||
|
}
|
||||||
|
|
||||||
c=0; do {
|
c=0; do {
|
||||||
OPUS_MOVE(st->syn_mem[c], st->syn_mem[c]+N, 2*MAX_PERIOD-N+overlap/2);
|
OPUS_MOVE(st->syn_mem[c], st->syn_mem[c]+N, 2*MAX_PERIOD-N+overlap/2);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue