Making bits2pulses() use a fixed number of iterations to allow further

optimisations.
This commit is contained in:
Jean-Marc Valin 2008-03-24 17:06:08 +11:00
parent a75e25dac5
commit 0de9d8abec
2 changed files with 6 additions and 1 deletions

View file

@ -154,11 +154,15 @@ void compute_alloc_cache(CELTMode *m)
static int bits2pulses(const CELTMode *m, int band, int bits) static int bits2pulses(const CELTMode *m, int band, int bits)
{ {
int i;
int lo, hi; int lo, hi;
lo = 0; lo = 0;
hi = MAX_PULSES-1; hi = MAX_PULSES-1;
while (hi-lo != 1) /* Instead of using the "bisection confition" we use a fixed number of
iterations because it should be faster */
/*while (hi-lo != 1)*/
for (i=0;i<LOG_MAX_PULSES;i++)
{ {
int mid = (lo+hi)>>1; int mid = (lo+hi)>>1;
if (m->bits[band][mid] >= bits) if (m->bits[band][mid] >= bits)

View file

@ -33,6 +33,7 @@
#define RATE_H #define RATE_H
#define MAX_PULSES 64 #define MAX_PULSES 64
#define LOG_MAX_PULSES 6
/** Computes a cache of the pulses->bits mapping in each band */ /** Computes a cache of the pulses->bits mapping in each band */
void compute_alloc_cache(CELTMode *m); void compute_alloc_cache(CELTMode *m);