Removed useless masking curve for current frame and ignored Fs argument to
authorJean-Marc Valin <Jean-Marc.Valin@csiro.au>
Tue, 26 Feb 2008 05:35:19 +0000 (16:35 +1100)
committerJean-Marc Valin <Jean-Marc.Valin@csiro.au>
Tue, 26 Feb 2008 05:35:19 +0000 (16:35 +1100)
masking computation functions.

libcelt/celt.c
libcelt/pitch.c
libcelt/psy.c
libcelt/psy.h

index 8c83b5e..62cef6e 100644 (file)
@@ -229,7 +229,6 @@ int celt_encode(CELTEncoder *st, celt_int16_t *pcm, unsigned char *compressed, i
    VARDECL(celt_sig_t *freq);
    VARDECL(celt_norm_t *X);
    VARDECL(celt_norm_t *P);
-   VARDECL(float *mask);
    VARDECL(celt_ener_t *bandE);
    VARDECL(celt_pgain_t *gains);
 
@@ -243,7 +242,6 @@ int celt_encode(CELTEncoder *st, celt_int16_t *pcm, unsigned char *compressed, i
    ALLOC(freq, B*C*N, celt_sig_t); /**< Interleaved signal MDCTs */
    ALLOC(X, B*C*N, celt_norm_t);         /**< Interleaved normalised MDCTs */
    ALLOC(P, B*C*N, celt_norm_t);         /**< Interleaved normalised pitch MDCTs*/
-   ALLOC(mask, B*C*N, float);      /**< Masking curve */
    ALLOC(bandE,st->mode->nbEBands*C, celt_ener_t);
    ALLOC(gains,st->mode->nbPBands, celt_pgain_t);
    
@@ -278,9 +276,6 @@ int celt_encode(CELTEncoder *st, celt_int16_t *pcm, unsigned char *compressed, i
       although there's no valid reason to. Must investigate further */
    for (i=0;i<B*C*N;i++)
       mask[i] = 1/(.1+mask[i]);
-#else
-   for (i=0;i<B*C*N;i++)
-      mask[i] = 1;
 #endif
    /* Pitch analysis */
    for (c=0;c<C;c++)
@@ -360,7 +355,7 @@ int celt_encode(CELTEncoder *st, celt_int16_t *pcm, unsigned char *compressed, i
       sum += X[i]*X[i];
    printf ("%f\n", sum);*/
    /* Residual quantisation */
-   quant_bands(st->mode, X, P, mask, nbCompressedBytes*8, &st->enc);
+   quant_bands(st->mode, X, P, NULL, nbCompressedBytes*8, &st->enc);
    
    if (C==2)
    {
index 80bceb6..81c4e75 100644 (file)
@@ -74,7 +74,7 @@ void find_spectral_pitch(kiss_fftr_cfg fft, struct PsyDecay *decay, celt_sig_t *
    kiss_fftr(fft, xx, X);
    kiss_fftr(fft, yy, Y);
    
-   compute_masking(decay, X, curve, lag*C, 44100);
+   compute_masking(decay, X, curve, lag*C);
    
    for (i=1;i<C*n2;i++)
    {
index d518a0e..b6e5687 100644 (file)
@@ -76,7 +76,7 @@ void psydecay_clear(struct PsyDecay *decay)
    celt_free(decay->decayL);
 }
 
-static void spreading_func(struct PsyDecay *d, float *psd, float *mask, int len, celt_int32_t Fs)
+static void spreading_func(struct PsyDecay *d, float *psd, float *mask, int len)
 {
    int i;
    float mem;
@@ -122,7 +122,7 @@ static void spreading_func(struct PsyDecay *d, float *psd, float *mask, int len,
 }
 
 /* Compute a marking threshold from the spectrum X. */
-void compute_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len, celt_int32_t Fs)
+void compute_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len)
 {
    int i;
    VARDECL(float *psd);
@@ -133,11 +133,11 @@ void compute_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int
       psd[i] = X[i*2]*1.f*X[i*2] + X[i*2+1]*1.f*X[i*2+1];
    /* TODO: Do tone masking */
    /* Noise masking */
-   spreading_func(decay, psd, mask, N, Fs);
+   spreading_func(decay, psd, mask, N);
    
 }
 
-void compute_mdct_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len, celt_int32_t Fs)
+void compute_mdct_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len)
 {
    int i;
    VARDECL(float *psd);
@@ -151,6 +151,6 @@ void compute_mdct_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask,
    psd[len-1] = .5*(mask[len-1]+mask[len-2]);
    /* TODO: Do tone masking */
    /* Noise masking */
-   spreading_func(decay, psd, mask, len, Fs);
+   spreading_func(decay, psd, mask, len);
    
 }
index 1bdfad5..3ebd9f5 100644 (file)
@@ -45,9 +45,9 @@ void psydecay_init(struct PsyDecay *decay, int len, celt_int32_t Fs);
 void psydecay_clear(struct PsyDecay *decay);
 
 /** Compute the masking curve for an input (DFT) spectrum X */
-void compute_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len, celt_int32_t Fs);
+void compute_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len);
 
 /** Compute the masking curve for an input (MDCT) spectrum X */
-void compute_mdct_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len, celt_int32_t Fs);
+void compute_mdct_masking(struct PsyDecay *decay, celt_word32_t *X, float *mask, int len);
 
 #endif /* PSY_H */