Main Page | Class List | File List | Class Members | File Members

sb_celp.h

Go to the documentation of this file.
00001 /* Copyright (C) 2002 Jean-Marc Valin */ 00006 /* 00007 Redistribution and use in source and binary forms, with or without 00008 modification, are permitted provided that the following conditions 00009 are met: 00010 00011 - Redistributions of source code must retain the above copyright 00012 notice, this list of conditions and the following disclaimer. 00013 00014 - Redistributions in binary form must reproduce the above copyright 00015 notice, this list of conditions and the following disclaimer in the 00016 documentation and/or other materials provided with the distribution. 00017 00018 - Neither the name of the Xiph.org Foundation nor the names of its 00019 contributors may be used to endorse or promote products derived from 00020 this software without specific prior written permission. 00021 00022 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00023 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00025 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR 00026 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00027 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00028 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00029 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00030 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00031 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00032 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 00034 */ 00035 00036 #ifndef SB_CELP_H 00037 #define SB_CELP_H 00038 00039 #include "modes.h" 00040 #include <speex/speex_bits.h> 00041 #include "nb_celp.h" 00042 00044 typedef struct SBEncState { 00045 SpeexMode *mode; 00046 void *st_low; 00047 int full_frame_size; 00048 int frame_size; 00049 int subframeSize; 00050 int nbSubframes; 00051 int windowSize; 00052 int lpcSize; 00053 int bufSize; 00054 int first; 00055 float lag_factor; 00056 float lpc_floor; 00057 float gamma1; 00058 float gamma2; 00060 char *stack; 00061 float *x0d, *x1d; 00062 float *high; 00063 float *y0, *y1; 00064 float *h0_mem, *h1_mem, *g0_mem, *g1_mem; 00066 float *excBuf; 00067 float *exc; 00068 float *buf; 00069 float *res; 00070 float *sw; 00071 float *target; 00072 float *window; 00073 float *lagWindow; 00074 float *autocorr; 00075 float *rc; 00076 float *lpc; 00077 float *lsp; 00078 float *qlsp; 00079 float *old_lsp; 00080 float *old_qlsp; 00081 float *interp_lsp; 00082 float *interp_qlsp; 00083 float *interp_lpc; 00084 float *interp_qlpc; 00085 float *bw_lpc1; 00086 float *bw_lpc2; 00088 float *mem_sp; 00089 float *mem_sp2; 00090 float *mem_sw; 00091 float *pi_gain; 00092 00093 float vbr_quality; 00094 int vbr_enabled; 00095 int abr_enabled; 00096 float abr_drift; 00097 float abr_drift2; 00098 float abr_count; 00099 int vad_enabled; 00100 float relative_quality; 00101 00102 SpeexSubmode **submodes; 00103 int submodeID; 00104 int submodeSelect; 00105 int complexity; 00106 int sampling_rate; 00107 00108 } SBEncState; 00109 00110 00112 typedef struct SBDecState { 00113 SpeexMode *mode; 00114 void *st_low; 00115 int full_frame_size; 00116 int frame_size; 00117 int subframeSize; 00118 int nbSubframes; 00119 int lpcSize; 00120 int first; 00121 int sampling_rate; 00122 int lpc_enh_enabled; 00123 00124 char *stack; 00125 float *x0d, *x1d; 00126 float *high; 00127 float *y0, *y1; 00128 float *h0_mem, *h1_mem, *g0_mem, *g1_mem; 00129 00130 float *exc; 00131 float *qlsp; 00132 float *old_qlsp; 00133 float *interp_qlsp; 00134 float *interp_qlpc; 00135 00136 float *mem_sp; 00137 float *pi_gain; 00138 00139 SpeexSubmode **submodes; 00140 int submodeID; 00141 } SBDecState; 00142 00143 00145 void *sb_encoder_init(SpeexMode *m); 00146 00148 void sb_encoder_destroy(void *state); 00149 00151 int sb_encode(void *state, float *in, SpeexBits *bits); 00152 00153 00155 void *sb_decoder_init(SpeexMode *m); 00156 00158 void sb_decoder_destroy(void *state); 00159 00161 int sb_decode(void *state, SpeexBits *bits, float *out); 00162 00163 int sb_encoder_ctl(void *state, int request, void *ptr); 00164 00165 int sb_decoder_ctl(void *state, int request, void *ptr); 00166 00167 #endif

Generated on Mon Oct 11 15:42:53 2004 for speex by doxygen 1.3.7