comparison libfaad2/filtbank.c @ 10989:3185f64f6350

synced with current cvs
author alex
date Fri, 03 Oct 2003 22:23:26 +0000
parents e989150f8216
children 4a370c80fe5c
comparison
equal deleted inserted replaced
10988:c2bff70784d5 10989:3185f64f6350
20 ** forbidden. 20 ** forbidden.
21 ** 21 **
22 ** Commercial non-GPL licensing of this software is possible. 22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. 23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
24 ** 24 **
25 ** $Id: filtbank.c,v 1.25 2003/07/29 08:20:12 menno Exp $ 25 ** $Id: filtbank.c,v 1.1 2003/08/30 22:30:21 arpi Exp $
26 **/ 26 **/
27 27
28 #include "common.h" 28 #include "common.h"
29 #include "structs.h" 29 #include "structs.h"
30 30
189 189
190 switch (window_sequence) 190 switch (window_sequence)
191 { 191 {
192 case ONLY_LONG_SEQUENCE: 192 case ONLY_LONG_SEQUENCE:
193 imdct(fb, freq_in, transf_buf, 2*nlong); 193 imdct(fb, freq_in, transf_buf, 2*nlong);
194 for (i = nlong-1; i >= 0; i--) 194 for (i = 0; i < nlong; i+=4)
195 { 195 {
196 time_out[i] = time_out[nlong+i] + MUL_R_C(transf_buf[i],window_long_prev[i]); 196 time_out[i] = time_out[nlong+i] + MUL_R_C(transf_buf[i],window_long_prev[i]);
197 time_out[i+1] = time_out[nlong+i+1] + MUL_R_C(transf_buf[i+1],window_long_prev[i+1]);
198 time_out[i+2] = time_out[nlong+i+2] + MUL_R_C(transf_buf[i+2],window_long_prev[i+2]);
199 time_out[i+3] = time_out[nlong+i+3] + MUL_R_C(transf_buf[i+3],window_long_prev[i+3]);
200 }
201 for (i = 0; i < nlong; i+=4)
202 {
197 time_out[nlong+i] = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]); 203 time_out[nlong+i] = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]);
204 time_out[nlong+i+1] = MUL_R_C(transf_buf[nlong+i+1],window_long[nlong-2-i]);
205 time_out[nlong+i+2] = MUL_R_C(transf_buf[nlong+i+2],window_long[nlong-3-i]);
206 time_out[nlong+i+3] = MUL_R_C(transf_buf[nlong+i+3],window_long[nlong-4-i]);
198 } 207 }
199 break; 208 break;
200 209
201 case LONG_START_SEQUENCE: 210 case LONG_START_SEQUENCE:
202 imdct(fb, freq_in, transf_buf, 2*nlong); 211 imdct(fb, freq_in, transf_buf, 2*nlong);
203 for (i = 0; i < nlong; i++) 212 for (i = 0; i < nlong; i+=4)
213 {
204 time_out[i] = time_out[nlong+i] + MUL_R_C(transf_buf[i],window_long_prev[i]); 214 time_out[i] = time_out[nlong+i] + MUL_R_C(transf_buf[i],window_long_prev[i]);
215 time_out[i+1] = time_out[nlong+i+1] + MUL_R_C(transf_buf[i+1],window_long_prev[i+1]);
216 time_out[i+2] = time_out[nlong+i+2] + MUL_R_C(transf_buf[i+2],window_long_prev[i+2]);
217 time_out[i+3] = time_out[nlong+i+3] + MUL_R_C(transf_buf[i+3],window_long_prev[i+3]);
218 }
205 for (i = 0; i < nflat_ls; i++) 219 for (i = 0; i < nflat_ls; i++)
206 time_out[nlong+i] = transf_buf[nlong+i]; 220 time_out[nlong+i] = transf_buf[nlong+i];
207 for (i = 0; i < nshort; i++) 221 for (i = 0; i < nshort; i++)
208 time_out[nlong+nflat_ls+i] = MUL_R_C(transf_buf[nlong+nflat_ls+i],window_short[nshort-i-1]); 222 time_out[nlong+nflat_ls+i] = MUL_R_C(transf_buf[nlong+nflat_ls+i],window_short[nshort-i-1]);
209 for (i = 0; i < nflat_ls; i++) 223 for (i = 0; i < nflat_ls; i++)