Commit 0de9d8ab authored by Jean-Marc Valin's avatar Jean-Marc Valin
Browse files

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

optimisations.
parent a75e25da
...@@ -154,11 +154,15 @@ void compute_alloc_cache(CELTMode *m) ...@@ -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)
......
...@@ -33,6 +33,7 @@ ...@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment