cwrs.c links to derf's article on pulse vector encoding.
[opus.git] / libcelt / bands.h
index 5a19576..914ef96 100644 (file)
 #include "modes.h"
 #include "entenc.h"
 #include "entdec.h"
+#include "rate.h"
 
+/** Compute the amplitude (sqrt energy) in each of the bands 
+ * @param m Mode data 
+ * @param X Spectrum
+ * @param bands Square root of the energy for each band (returned)
+ */
 void compute_band_energies(const CELTMode *m, float *X, float *bands);
 
+/** Normalise each band of X such that the energy in each band is 
+    equal to 1
+ * @param m Mode data 
+ * @param X Spectrum (returned normalised)
+ * @param bands Square root of the energy for each band
+ */
 void normalise_bands(const CELTMode *m, float *X, float *bands);
 
+void renormalise_bands(const CELTMode *m, float *X);
+
+/** Denormalise each band of X to restore full amplitude
+ * @param m Mode data 
+ * @param X Spectrum (returned de-normalised)
+ * @param bands Square root of the energy for each band
+ */
 void denormalise_bands(const CELTMode *m, float *X, float *bands);
 
+/** Compute the pitch predictor gain for each pitch band
+ * @param m Mode data 
+ * @param X Spectrum to predict
+ * @param P Pitch vector (normalised)
+ * @param gains Gain computed for each pitch band (returned)
+ * @param bank Square root of the energy for each band
+ */
 void compute_pitch_gain(const CELTMode *m, float *X, float *P, float *gains, float *bank);
 
 void pitch_quant_bands(const CELTMode *m, float *X, float *P, float *gains);
 
-void quant_bands(const CELTMode *m, float *X, float *P, float *W, ec_enc *enc);
+/** Quantisation/encoding of the residual spectrum
+ * @param m Mode data 
+ * @param X Residual (normalised)
+ * @param P Pitch vector (normalised)
+ * @param W Perceptual weighting
+ * @param enc Entropy encoder
+ */
+void quant_bands(const CELTMode *m, float *X, float *P, float *W, struct alloc_data *alloc, int total_bits, ec_enc *enc);
 
-void unquant_bands(const CELTMode *m, float *X, float *P, ec_dec *dec);
+/** Decoding of the residual spectrum
+ * @param m Mode data 
+ * @param X Residual (normalised)
+ * @param P Pitch vector (normalised)
+ * @param dec Entropy decoder
+*/
+void unquant_bands(const CELTMode *m, float *X, float *P, struct alloc_data *alloc, int total_bits, ec_dec *dec);
 
-void band_rotation(const CELTMode *m, float *X, int dir);
+void stereo_mix(const CELTMode *m, float *X, float *bank, int dir);
 
 #endif /* BANDS_H */