ref: 0de9d8abec2fe2a2477c88b0974ca5f4abcb64ff
parent: a75e25dac59fb6750a635d4d36f6c8dd22e900d5
author: Jean-Marc Valin <[email protected]>
date: Mon Mar 24 13:06:08 EDT 2008
Making bits2pulses() use a fixed number of iterations to allow further optimisations.
--- a/libcelt/rate.c
+++ b/libcelt/rate.c
@@ -154,11 +154,15 @@
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)
--- a/libcelt/rate.h
+++ b/libcelt/rate.h
@@ -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);