Minor tuning
authorJean-Marc Valin <jean-marc.valin@octasic.com>
Fri, 5 Nov 2010 15:39:50 +0000 (11:39 -0400)
committerJean-Marc Valin <jean-marc.valin@octasic.com>
Fri, 5 Nov 2010 15:39:50 +0000 (11:39 -0400)
libcelt/celt.c
libcelt/rate.c

index 404a770..6134cc2 100644 (file)
@@ -620,8 +620,6 @@ static int alloc_trim_analysis(const CELTMode *m, const celt_norm *X,
          trim_index-=2;
       else if (sum > QCONST16(.8f,10))
          trim_index-=1;
-      else if (sum < QCONST16(.4f,10))
-         trim_index+=1;
    }
 #if 0
    float diff=0;
index 9763b6f..bd28399 100644 (file)
@@ -236,12 +236,13 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, int
       /* If we rounded down, make it a candidate for final fine energy pass */
       fine_priority[j] = ebits[j]*(den<<BITRES) >= bits[j]+offset;
 
-      /* For N=1, all bits go to fine energy except for a single sign bit */
-      if (N==1)
-         ebits[j] = (bits[j]/C >> BITRES)-1;
       /* Make sure the first bit is spent on fine energy */
       if (ebits[j] < 1)
          ebits[j] = 1;
+      /* For N=1, all bits go to fine energy except for a single sign bit
+         This takes precedence over giving the first bit to fine energy */
+      if (N==1)
+         ebits[j] = (bits[j]/C >> BITRES)-1;
 
       /* Make sure not to bust */
       if (C*ebits[j] > (bits[j]>>BITRES))