fixed-point version of the high-pass seems to work now.
[speexdsp.git] / libspeex / cb_search.h
index a2b8512..ea8816d 100644 (file)
@@ -1,7 +1,9 @@
-/* Copyright (C) 2002 Jean-Marc Valin & David Rowe
-   File: cb_search.c
-   Overlapped codebook search
-
+/* Copyright (C) 2002 Jean-Marc Valin & David Rowe */
+/**
+   @file cb_search.h
+   @brief Overlapped codebook search
+*/
+/*
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions
    are met:
 #ifndef CB_SEARCH_H
 #define CB_SEARCH_H
 
-#include "speex_bits.h"
+#include <speex/speex_bits.h>
+#include "misc.h"
 
+/** Split codebook parameters. */
 typedef struct split_cb_params {
    int     subvect_size;
    int     nb_subvect;
-   float  *shape_cb;
+   const signed char  *shape_cb;
    int     shape_bits;
    int     have_sign;
 } split_cb_params;
 
 
 void split_cb_search_shape_sign(
-float target[],                        /* target vector */
-float ak[],                    /* LPCs for this subframe */
-float awk1[],                  /* Weighted LPCs for this subframe */
-float awk2[],                  /* Weighted LPCs for this subframe */
-void *par,                      /* Codebook/search parameters*/
+spx_word16_t target[],             /* target vector */
+spx_coef_t ak[],                /* LPCs for this subframe */
+spx_coef_t awk1[],              /* Weighted LPCs for this subframe */
+spx_coef_t awk2[],              /* Weighted LPCs for this subframe */
+const void *par,                /* Codebook/search parameters */
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
-float *exc,
-float *r,
+spx_sig_t *exc,
+spx_word16_t *r,
 SpeexBits *bits,
-float *stack,
-int   complexity
+char *stack,
+int   complexity,
+int   update_target
 );
 
 void split_cb_shape_sign_unquant(
-float *exc,
-void *par,                      /* non-overlapping codebook */
+spx_sig_t *exc,
+const void *par,                /* non-overlapping codebook */
 int   nsf,                      /* number of samples in subframe */
 SpeexBits *bits,
-float *stack
+char *stack
 );
 
 
 void noise_codebook_quant(
-float target[],                        /* target vector */
-float ak[],                    /* LPCs for this subframe */
-float awk1[],                  /* Weighted LPCs for this subframe */
-float awk2[],                  /* Weighted LPCs for this subframe */
-void *par,                      /* Codebook/search parameters*/
+spx_word16_t target[],             /* target vector */
+spx_coef_t ak[],                /* LPCs for this subframe */
+spx_coef_t awk1[],              /* Weighted LPCs for this subframe */
+spx_coef_t awk2[],              /* Weighted LPCs for this subframe */
+const void *par,                /* Codebook/search parameters */
 int   p,                        /* number of LPC coeffs */
 int   nsf,                      /* number of samples in subframe */
-float *exc,
-float *r,
+spx_sig_t *exc,
+spx_word16_t *r,
 SpeexBits *bits,
-float *stack,
-int   complexity
+char *stack,
+int   complexity,
+int   update_target
 );
 
 
 void noise_codebook_unquant(
-float *exc,
-void *par,                      /* non-overlapping codebook */
+spx_sig_t *exc,
+const void *par,                /* non-overlapping codebook */
 int   nsf,                      /* number of samples in subframe */
 SpeexBits *bits,
-float *stack
+char *stack
 );
 
 #endif