OLD | NEW |
1 /* | 1 /* |
2 * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html | 2 * http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html |
3 * Copyright Takuya OOURA, 1996-2001 | 3 * Copyright Takuya OOURA, 1996-2001 |
4 * | 4 * |
5 * You may use, copy, modify and distribute this code for any purpose (include | 5 * You may use, copy, modify and distribute this code for any purpose (include |
6 * commercial use) and without fee. Please refer to this package when you modify | 6 * commercial use) and without fee. Please refer to this package when you modify |
7 * this code. | 7 * this code. |
8 * | 8 * |
9 * Changes by the WebRTC authors: | 9 * Changes by the WebRTC authors: |
10 * - Trivial type modifications. | 10 * - Trivial type modifications. |
11 * - Minimal code subset to do rdft of length 128. | 11 * - Minimal code subset to do rdft of length 128. |
12 * - Optimizations because of known length. | 12 * - Optimizations because of known length. |
13 * | 13 * |
14 * All changes are covered by the WebRTC license and IP grant: | 14 * All changes are covered by the WebRTC license and IP grant: |
15 * Use of this source code is governed by a BSD-style license | 15 * Use of this source code is governed by a BSD-style license |
16 * that can be found in the LICENSE file in the root of the source | 16 * that can be found in the LICENSE file in the root of the source |
17 * tree. An additional intellectual property rights grant can be found | 17 * tree. An additional intellectual property rights grant can be found |
18 * in the file PATENTS. All contributing project authors may | 18 * in the file PATENTS. All contributing project authors may |
19 * be found in the AUTHORS file in the root of the source tree. | 19 * be found in the AUTHORS file in the root of the source tree. |
20 */ | 20 */ |
21 | 21 |
22 #include "webrtc/modules/audio_processing/aec/aec_rdft.h" | 22 #include "webrtc/modules/audio_processing/aec/aec_rdft.h" |
23 | 23 |
24 #include <math.h> | 24 #include <math.h> |
25 | 25 |
26 #include "webrtc/system_wrappers/interface/cpu_features_wrapper.h" | 26 #include "webrtc/system_wrappers/include/cpu_features_wrapper.h" |
27 #include "webrtc/typedefs.h" | 27 #include "webrtc/typedefs.h" |
28 | 28 |
29 // These tables used to be computed at run-time. For example, refer to: | 29 // These tables used to be computed at run-time. For example, refer to: |
30 // https://code.google.com/p/webrtc/source/browse/trunk/webrtc/modules/audio_pro
cessing/aec/aec_rdft.c?r=6564 | 30 // https://code.google.com/p/webrtc/source/browse/trunk/webrtc/modules/audio_pro
cessing/aec/aec_rdft.c?r=6564 |
31 // to see the initialization code. | 31 // to see the initialization code. |
32 const float rdft_w[64] = { | 32 const float rdft_w[64] = { |
33 1.0000000000f, 0.0000000000f, 0.7071067691f, 0.7071067691f, | 33 1.0000000000f, 0.0000000000f, 0.7071067691f, 0.7071067691f, |
34 0.9238795638f, 0.3826834559f, 0.3826834559f, 0.9238795638f, | 34 0.9238795638f, 0.3826834559f, 0.3826834559f, 0.9238795638f, |
35 0.9807852507f, 0.1950903237f, 0.5555702448f, 0.8314695954f, | 35 0.9807852507f, 0.1950903237f, 0.5555702448f, 0.8314695954f, |
36 0.8314695954f, 0.5555702448f, 0.1950903237f, 0.9807852507f, | 36 0.8314695954f, 0.5555702448f, 0.1950903237f, 0.9807852507f, |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 aec_rdft_init_mips(); | 580 aec_rdft_init_mips(); |
581 #endif | 581 #endif |
582 #if defined(WEBRTC_HAS_NEON) | 582 #if defined(WEBRTC_HAS_NEON) |
583 aec_rdft_init_neon(); | 583 aec_rdft_init_neon(); |
584 #elif defined(WEBRTC_DETECT_NEON) | 584 #elif defined(WEBRTC_DETECT_NEON) |
585 if ((WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) != 0) { | 585 if ((WebRtc_GetCPUFeaturesARM() & kCPUFeatureNEON) != 0) { |
586 aec_rdft_init_neon(); | 586 aec_rdft_init_neon(); |
587 } | 587 } |
588 #endif | 588 #endif |
589 } | 589 } |
OLD | NEW |