Setting fine_priority for skipped bands
[opus.git] / libcelt / vq.h
index 600c946..9f2e9a0 100644 (file)
@@ -1,5 +1,10 @@
-/* (C) 2007 Jean-Marc Valin, CSIRO
-*/
+/* Copyright (c) 2007-2008 CSIRO
+   Copyright (c) 2007-2009 Xiph.Org Foundation
+   Written by Jean-Marc Valin */
+/**
+   @file vq.h
+   @brief Vector quantisation of the residual
+ */
 /*
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
 
 #include "entenc.h"
 #include "entdec.h"
+#include "modes.h"
 
+/** Algebraic pulse-vector quantiser. The signal x is replaced by the sum of 
+  * the pitch and a combination of pulses such that its norm is still equal 
+  * to 1. This is the function that will typically require the most CPU. 
+ * @param x Residual signal to quantise/encode (returns quantised version)
+ * @param W Perceptual weight to use when optimising (currently unused)
+ * @param N Number of samples to encode
+ * @param K Number of pulses to use
+ * @param p Pitch vector (it is assumed that p+x is a unit vector)
+ * @param enc Entropy encoder state
+*/
+void alg_quant(celt_norm *X, int N, int K, int spread, int B, celt_norm *lowband,
+      int resynth, ec_enc *enc, celt_int32 *seed, celt_word16 gain);
 
-/* Algebraic pulse-base quantiser. The signal x is replaced by the sum of the pitch 
-   a combination of pulses such that its norm is still equal to 1. The only difference with 
-   the quantiser above is that the search is more complete. */
-void alg_quant(float *x, int N, int K, float *p, ec_enc *enc);
+/** Algebraic pulse decoder
+ * @param x Decoded normalised spectrum (returned)
+ * @param N Number of samples to decode
+ * @param K Number of pulses to use
+ * @param p Pitch vector (automatically added to x)
+ * @param dec Entropy decoder state
+ */
+void alg_unquant(celt_norm *X, int N, int K, int spread, int B,
+      celt_norm *lowband, ec_dec *dec, celt_int32 *seed, celt_word16 gain);
 
-void alg_unquant(float *x, int N, int K, float *p, ec_dec *dec);
+void renormalise_vector(celt_norm *X, int N, celt_word16 gain);
 
-/* Finds the right offset into Y and copy it */
-void copy_quant(float *x, int N, int K, float *Y, int B, int N0, ec_enc *enc);
+int stereo_itheta(celt_norm *X, celt_norm *Y, int stereo, int N);
 
-void copy_unquant(float *x, int N, int K, float *Y, int B, int N0, ec_dec *dec);
 #endif /* VQ_H */