OLD | NEW |
1 /*********************************************************************** | 1 /*********************************************************************** |
2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. | 2 Copyright (c) 2006-2011, Skype Limited. All rights reserved. |
3 Redistribution and use in source and binary forms, with or without | 3 Redistribution and use in source and binary forms, with or without |
4 modification, are permitted provided that the following conditions | 4 modification, are permitted provided that the following conditions |
5 are met: | 5 are met: |
6 - Redistributions of source code must retain the above copyright notice, | 6 - Redistributions of source code must retain the above copyright notice, |
7 this list of conditions and the following disclaimer. | 7 this list of conditions and the following disclaimer. |
8 - Redistributions in binary form must reproduce the above copyright | 8 - Redistributions in binary form must reproduce the above copyright |
9 notice, this list of conditions and the following disclaimer in the | 9 notice, this list of conditions and the following disclaimer in the |
10 documentation and/or other materials provided with the distribution. | 10 documentation and/or other materials provided with the distribution. |
(...skipping 20 matching lines...) Expand all Loading... |
31 | 31 |
32 /* | 32 /* |
33 Elliptic/Cauer filters designed with 0.1 dB passband ripple, | 33 Elliptic/Cauer filters designed with 0.1 dB passband ripple, |
34 80 dB minimum stopband attenuation, and | 34 80 dB minimum stopband attenuation, and |
35 [0.95 : 0.15 : 0.35] normalized cut off frequencies. | 35 [0.95 : 0.15 : 0.35] normalized cut off frequencies. |
36 */ | 36 */ |
37 | 37 |
38 #include "main.h" | 38 #include "main.h" |
39 | 39 |
40 /* Helper function, interpolates the filter taps */ | 40 /* Helper function, interpolates the filter taps */ |
41 static inline void silk_LP_interpolate_filter_taps( | 41 static OPUS_INLINE void silk_LP_interpolate_filter_taps( |
42 opus_int32 B_Q28[ TRANSITION_NB ], | 42 opus_int32 B_Q28[ TRANSITION_NB ], |
43 opus_int32 A_Q28[ TRANSITION_NA ], | 43 opus_int32 A_Q28[ TRANSITION_NA ], |
44 const opus_int ind, | 44 const opus_int ind, |
45 const opus_int32 fac_Q16 | 45 const opus_int32 fac_Q16 |
46 ) | 46 ) |
47 { | 47 { |
48 opus_int nb, na; | 48 opus_int nb, na; |
49 | 49 |
50 if( ind < TRANSITION_INT_NUM - 1 ) { | 50 if( ind < TRANSITION_INT_NUM - 1 ) { |
51 if( fac_Q16 > 0 ) { | 51 if( fac_Q16 > 0 ) { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 ); | 126 silk_LP_interpolate_filter_taps( B_Q28, A_Q28, ind, fac_Q16 ); |
127 | 127 |
128 /* Update transition frame number for next frame */ | 128 /* Update transition frame number for next frame */ |
129 psLP->transition_frame_no = silk_LIMIT( psLP->transition_frame_no + psLP
->mode, 0, TRANSITION_FRAMES ); | 129 psLP->transition_frame_no = silk_LIMIT( psLP->transition_frame_no + psLP
->mode, 0, TRANSITION_FRAMES ); |
130 | 130 |
131 /* ARMA low-pass filtering */ | 131 /* ARMA low-pass filtering */ |
132 silk_assert( TRANSITION_NB == 3 && TRANSITION_NA == 2 ); | 132 silk_assert( TRANSITION_NB == 3 && TRANSITION_NA == 2 ); |
133 silk_biquad_alt( frame, B_Q28, A_Q28, psLP->In_LP_State, frame, frame_le
ngth, 1); | 133 silk_biquad_alt( frame, B_Q28, A_Q28, psLP->In_LP_State, frame, frame_le
ngth, 1); |
134 } | 134 } |
135 } | 135 } |
OLD | NEW |