Lines Matching refs:bank

56    FilterBank *bank;
66 bank = (FilterBank*)speex_alloc(sizeof(FilterBank));
67 bank->nb_banks = banks;
68 bank->len = len;
69 bank->bank_left = (int*)speex_alloc(len*sizeof(int));
70 bank->bank_right = (int*)speex_alloc(len*sizeof(int));
71 bank->filter_left = (spx_word16_t*)speex_alloc(len*sizeof(spx_word16_t));
72 bank->filter_right = (spx_word16_t*)speex_alloc(len*sizeof(spx_word16_t));
75 bank->scaling = (float*)speex_alloc(banks*sizeof(float));
99 bank->bank_left[i] = id1;
100 bank->filter_left[i] = SUB16(Q15_ONE,val);
101 bank->bank_right[i] = id2;
102 bank->filter_right[i] = val;
107 for (i=0;i<bank->nb_banks;i++)
108 bank->scaling[i] = 0;
109 for (i=0;i<bank->len;i++)
111 int id = bank->bank_left[i];
112 bank->scaling[id] += bank->filter_left[i];
113 id = bank->bank_right[i];
114 bank->scaling[id] += bank->filter_right[i];
116 for (i=0;i<bank->nb_banks;i++)
117 bank->scaling[i] = Q15_ONE/(bank->scaling[i]);
119 return bank;
122 void filterbank_destroy(FilterBank *bank)
124 speex_free(bank->bank_left);
125 speex_free(bank->bank_right);
126 speex_free(bank->filter_left);
127 speex_free(bank->filter_right);
129 speex_free(bank->scaling);
131 speex_free(bank);
134 void filterbank_compute_bank32(FilterBank *bank, spx_word32_t *ps, spx_word32_t *mel)
137 for (i=0;i<bank->nb_banks;i++)
140 for (i=0;i<bank->len;i++)
143 id = bank->bank_left[i];
144 mel[id] += MULT16_32_P15(bank->filter_left[i],ps[i]);
145 id = bank->bank_right[i];
146 mel[id] += MULT16_32_P15(bank->filter_right[i],ps[i]);
150 /*for (i=0;i<bank->nb_banks;i++)
151 mel[i] = MULT16_32_P15(Q15(bank->scaling[i]),mel[i]);
156 void filterbank_compute_psd16(FilterBank *bank, spx_word16_t *mel, spx_word16_t *ps)
159 for (i=0;i<bank->len;i++)
163 id1 = bank->bank_left[i];
164 id2 = bank->bank_right[i];
165 tmp = MULT16_16(mel[id1],bank->filter_left[i]);
166 tmp += MULT16_16(mel[id2],bank->filter_right[i]);
173 void filterbank_compute_bank(FilterBank *bank, float *ps, float *mel)
176 for (i=0;i<bank->nb_banks;i++)
179 for (i=0;i<bank->len;i++)
181 int id = bank->bank_left[i];
182 mel[id] += bank->filter_left[i]*ps[i];
183 id = bank->bank_right[i];
184 mel[id] += bank->filter_right[i]*ps[i];
186 for (i=0;i<bank->nb_banks;i++)
187 mel[i] *= bank->scaling[i];
190 void filterbank_compute_psd(FilterBank *bank, float *mel, float *ps)
193 for (i=0;i<bank->len;i++)
195 int id = bank->bank_left[i];
196 ps[i] = mel[id]*bank->filter_left[i];
197 id = bank->bank_right[i];
198 ps[i] += mel[id]*bank->filter_right[i];
202 void filterbank_psy_smooth(FilterBank *bank, float *ps, float *mask)
213 filterbank_compute_bank(bank, ps, bark);
214 for (i=1;i<bank->nb_banks;i++)
220 for (i=bank->nb_banks-2;i>=0;i--)
224 filterbank_compute_psd(bank, bark, mask);