Making bits2pulses() use a fixed number of iterations to allow further
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Mon, 24 Mar 2008 06:06:08 +0000 (17:06 +1100)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Mon, 24 Mar 2008 06:06:08 +0000 (17:06 +1100)
optimisations.

libcelt/rate.c
libcelt/rate.h

index bd37d66..1a90034 100644 (file)
@@ -154,11 +154,15 @@ void compute_alloc_cache(CELTMode *m)
 
 static int bits2pulses(const CELTMode *m, int band, int bits)
 {
+   int i;
    int lo, hi;
    lo = 0;
    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;
       if (m->bits[band][mid] >= bits)
index d5e8fe7..968b8fd 100644 (file)
@@ -33,6 +33,7 @@
 #define RATE_H
 
 #define MAX_PULSES 64
+#define LOG_MAX_PULSES 6
 
 /** Computes a cache of the pulses->bits mapping in each band */
 void compute_alloc_cache(CELTMode *m);