ref: 5b9b51bc44d105e48796b455676c68efdd33d807
parent: a20500db0b694ebc3c24e72b72031f57abe42518
author: Jean-Marc Valin <[email protected]>
date: Tue Jun 16 18:27:12 EDT 2009
Forced intra now overrides intra avoidance at low rate. Also, using the number of bands as criterion for auto-intra disabling.
--- a/libcelt/celt.c
+++ b/libcelt/celt.c
@@ -676,14 +676,12 @@
for (i=0;i<st->mode->nbEBands*C;i++)
bandLogE[i] = amp2Log(bandE[i]);
- intra_ener = (st->force_intra || st->delayedIntra);
+ /* Don't use intra energy when we're operating at low bit-rate */
+ intra_ener = st->force_intra || (st->delayedIntra && nbCompressedBytes > st->mode->nbEBands);
if (shortBlocks || intra_decision(bandLogE, st->oldBandE, st->mode->nbEBands))
st->delayedIntra = 1;
else
st->delayedIntra = 0;
- /* Don't use intra energy when we're operating at low bit-rate */
- if (nbCompressedBytes < 20)
- intra_ener = 0;
/* Pitch analysis: we do it early to save on the peak stack space */
/* Don't use pitch if there isn't enough data available yet,