Simplifying transient_analysis() now that we don't care about the time window
authorJean-Marc Valin <jean-marc.valin@octasic.com>
Mon, 18 Oct 2010 21:27:56 +0000 (17:27 -0400)
committerJean-Marc Valin <jean-marc.valin@octasic.com>
Mon, 18 Oct 2010 21:28:40 +0000 (17:28 -0400)
libcelt/bands.c
libcelt/celt.c

index e163f08..05465ed 100644 (file)
@@ -822,17 +822,20 @@ static void quant_band(int encode, const CELTMode *m, int i, celt_norm *X, celt_
          else
             alg_unquant(X, N, K, spread, B, lowband, (ec_dec*)ec, seed, gain);
       } else {
+         /* If there's no pulse, fill the band anyway */
          int j;
          if (lowband != NULL && resynth)
          {
             if (spread==2 && B<=1)
             {
+               /* Folded spectrum */
                for (j=0;j<N;j++)
                {
                   *seed = lcg_rand(*seed);
                   X[j] = (int)(*seed)>>20;
                }
             } else {
+               /* Noise */
                for (j=0;j<N;j++)
                   X[j] = lowband[j];
             }
index 4460f53..d7740ab 100644 (file)
@@ -173,7 +173,6 @@ static int transient_analysis(const celt_word32 * restrict in, int len, int C,
                               celt_word32 *frame_max, int overlap)
 {
    int i, n;
-   celt_word32 ratio;
    celt_word32 threshold;
    VARDECL(celt_word32, begin);
    VARDECL(celt_word16, tmp);
@@ -228,13 +227,6 @@ static int transient_analysis(const celt_word32 * restrict in, int len, int C,
             n=i;
       }
    }
-   if (n<32)
-   {
-      n = -1;
-      ratio = 0;
-   } else {
-      ratio = DIV32(begin[len],1+MAX32(*frame_max, begin[n-16]));
-   }
 
    *frame_max = begin[len-overlap];
    /* Only consider the last 7.5 ms for the next transient */
@@ -245,7 +237,7 @@ static int transient_analysis(const celt_word32 * restrict in, int len, int C,
          *frame_max = MAX32(*frame_max, ABS32(tmp[i]));
    }
    RESTORE_STACK;
-   return ratio > 0;
+   return n>=32;
 }
 
 /** Apply window and compute the MDCT for all sub-frames and