From 5b9b51bc44d105e48796b455676c68efdd33d807 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Tue, 16 Jun 2009 22:27:12 -0400 Subject: [PATCH] Forced intra now overrides intra avoidance at low rate. Also, using the number of bands as criterion for auto-intra disabling. --- libcelt/celt.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libcelt/celt.c b/libcelt/celt.c index b635dd46..0e86400e 100644 --- a/libcelt/celt.c +++ b/libcelt/celt.c @@ -676,14 +676,12 @@ int celt_encode_float(CELTEncoder * restrict st, const celt_sig_t * pcm, celt_si for (i=0;imode->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,