OLD | NEW |
1 /* Copyright (c) 2015 Xiph.Org Foundation | 1 /* Copyright (c) 2015 Xiph.Org Foundation |
2 Written by Viswanath Puttagunta */ | 2 Written by Viswanath Puttagunta */ |
3 /** | 3 /** |
4 @file arm_mdct.h | 4 @file arm_mdct.h |
5 @brief ARM Neon Intrinsic optimizations for mdct using NE10 library | 5 @brief ARM Neon Intrinsic optimizations for mdct using NE10 library |
6 */ | 6 */ |
7 | 7 |
8 /* | 8 /* |
9 Redistribution and use in source and binary forms, with or without | 9 Redistribution and use in source and binary forms, with or without |
10 modification, are permitted provided that the following conditions | 10 modification, are permitted provided that the following conditions |
(...skipping 15 matching lines...) Expand all Loading... |
26 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 26 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
27 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | 27 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
28 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 28 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
29 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 29 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
30 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 30 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
31 */ | 31 */ |
32 | 32 |
33 #if !defined(MDCT_ARM_H) | 33 #if !defined(MDCT_ARM_H) |
34 #define MDCT_ARM_H | 34 #define MDCT_ARM_H |
35 | 35 |
36 #include "config.h" | |
37 #include "mdct.h" | 36 #include "mdct.h" |
38 | 37 |
39 #if defined(HAVE_ARM_NE10) | 38 #if defined(HAVE_ARM_NE10) |
40 /** Compute a forward MDCT and scale by 4/N, trashes the input array */ | 39 /** Compute a forward MDCT and scale by 4/N, trashes the input array */ |
41 void clt_mdct_forward_neon(const mdct_lookup *l, kiss_fft_scalar *in, | 40 void clt_mdct_forward_neon(const mdct_lookup *l, kiss_fft_scalar *in, |
42 kiss_fft_scalar * OPUS_RESTRICT out, | 41 kiss_fft_scalar * OPUS_RESTRICT out, |
43 const opus_val16 *window, int overlap, | 42 const opus_val16 *window, int overlap, |
44 int shift, int stride, int arch); | 43 int shift, int stride, int arch); |
45 | 44 |
46 void clt_mdct_backward_neon(const mdct_lookup *l, kiss_fft_scalar *in, | 45 void clt_mdct_backward_neon(const mdct_lookup *l, kiss_fft_scalar *in, |
47 kiss_fft_scalar * OPUS_RESTRICT out, | 46 kiss_fft_scalar * OPUS_RESTRICT out, |
48 const opus_val16 *window, int overlap, | 47 const opus_val16 *window, int overlap, |
49 int shift, int stride, int arch); | 48 int shift, int stride, int arch); |
50 | 49 |
51 #if !defined(OPUS_HAVE_RTCD) | 50 #if !defined(OPUS_HAVE_RTCD) |
52 #define OVERRIDE_OPUS_MDCT (1) | 51 #define OVERRIDE_OPUS_MDCT (1) |
53 #define clt_mdct_forward(_l, _in, _out, _window, _int, _shift, _stride, _arch) \ | 52 #define clt_mdct_forward(_l, _in, _out, _window, _int, _shift, _stride, _arch) \ |
54 clt_mdct_forward_neon(_l, _in, _out, _window, _int, _shift, _stride, _arch
) | 53 clt_mdct_forward_neon(_l, _in, _out, _window, _int, _shift, _stride, _arch
) |
55 #define clt_mdct_backward(_l, _in, _out, _window, _int, _shift, _stride, _arch)
\ | 54 #define clt_mdct_backward(_l, _in, _out, _window, _int, _shift, _stride, _arch)
\ |
56 clt_mdct_backward_neon(_l, _in, _out, _window, _int, _shift, _stride, _arc
h) | 55 clt_mdct_backward_neon(_l, _in, _out, _window, _int, _shift, _stride, _arc
h) |
57 #endif /* OPUS_HAVE_RTCD */ | 56 #endif /* OPUS_HAVE_RTCD */ |
58 #endif /* HAVE_ARM_NE10 */ | 57 #endif /* HAVE_ARM_NE10 */ |
59 | 58 |
60 #endif | 59 #endif |
OLD | NEW |