search for: opus_arm_presume_neon

Displaying 20 results from an estimated 22 matches for "opus_arm_presume_neon".

2015 Dec 08
2
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
Jonathan Lennox wrote: > -# if defined(FIXED_POINT) > +# if defined(FIXED_POINT) && \ > + ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ > + (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ > + (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) > opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, > const opus_val16...
2015 Nov 21
0
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
...lt_map.c b/celt/arm/arm_celt_map.c index ee6c244..f195315 100644 --- a/celt/arm/arm_celt_map.c +++ b/celt/arm/arm_celt_map.c @@ -35,7 +35,10 @@ #if defined(OPUS_HAVE_RTCD) -# if defined(FIXED_POINT) +# if defined(FIXED_POINT) && \ + ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ + (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ + (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, const opus_val16 *, opus_val32 *, int ,...
2015 Dec 10
0
[Aarch64 v2 02/18] Reorganize ARM CPU #ifdefs.
> On Dec 8, 2015, at 12:13 PM, Timothy B. Terriberry <tterribe at xiph.org> wrote: > > Jonathan Lennox wrote: >> -# if defined(FIXED_POINT) >> +# if defined(FIXED_POINT) && \ >> + ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ >> + (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ >> + (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) >> opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, >> con...
2017 May 31
4
Opus floating-point NEON jump table question
...ef OPUS_ARM_INLINE_MEDIA */ /* #undef OPUS_ARM_INLINE_NEON */ /* #undef OPUS_ARM_MAY_HAVE_EDSP */ /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ /* #undef OPUS_ARM_MAY_HAVE_NEON */ /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ /* #undef OPUS_ARM_PRESUME_EDSP */ /* #undef OPUS_ARM_PRESUME_MEDIA */ /* #undef OPUS_ARM_PRESUME_NEON */ /* #undef OPUS_ARM_PRESUME_NEON_INTR */ So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually fall down to C functions in the jump table: # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name) Therefore all NEON intrinsics optimizations in their jump tables won't get called...
2017 Jun 01
2
Opus floating-point NEON jump table question
...ef OPUS_ARM_INLINE_NEON */ > /* #undef OPUS_ARM_MAY_HAVE_EDSP */ > /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ > /* #undef OPUS_ARM_MAY_HAVE_NEON */ > /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ > /* #undef OPUS_ARM_PRESUME_EDSP */ > /* #undef OPUS_ARM_PRESUME_MEDIA */ > /* #undef OPUS_ARM_PRESUME_NEON */ > /* #undef OPUS_ARM_PRESUME_NEON_INTR */ > > So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually > fall down to C functions in the jump table: > # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name) > > Therefore all NEON intrinsics optimizations in their...
2018 Aug 31
1
NEON detection under iOs
.... Probably not all optimized functions are called directly under iOS. Regards, Victor -----Original Message----- From: Jonathan Lennox Sent: Thursday, August 30, 2018 11:59 AM To: Victor Cherepanov Cc: opus at xiph.org Subject: Re: [opus] NEON detection under iOs On iOS, configure should define OPUS_ARM_PRESUME_NEON and OPUS_ARM_PRESUME_NEON_INTR if you’re building for armv7, and OPUS_ARM_PRESUME_NEON_INTR for arm64 (since every Apple armv7 CPU has supported Neon, and of course arm64 supports it though the assembler syntax is different). This should be slightly faster than using RTCD, since the Neon funct...
2018 May 24
2
NEON detection under iOs
Hi, Thank you for a great work. Opus codec works great under many platforms. I have found a small performance issue under iOS platform. If the macro OPUS_HAVE_RTCD is not set, then encoder doesn't use some _neon functions at low bitrates (up to 64k). If the macro is set, then the compiler hits the error at opus/celt/arm/armcpu.c:153 (a function for detection missed). Being compared to Android
2015 Aug 05
0
[PATCH 2/8] Reorganize pitch_arm.h, so RTCD works for intrinsics functions as well.
...,14 @@ void (*const CLT_MDCT_BACKWARD_IMPL[OPUS_ARCHMASK+1])(const mdct_lookup *l, clt_mdct_backward_neon, /* Neon with NE10 */ }; -#endif +#endif /* HAVE_ARM_NE10 */ # if defined(FIXED_POINT) + +#if defined(OPUS_ARM_MAY_HAVE_NEON) || defined(OPUS_ARM_MAY_HAVE_EDSP) + +#if !defined(OPUS_ARM_PRESUME_NEON) && (!defined(OPUS_ARM_PRESUME_EDSP) || defined(OPUS_ARM_MAY_HAVE_NEON)) + opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, const opus_val16 *, opus_val32 *, int , int) = { celt_pitch_xcorr_c, /* ARMv4 */ @@ -104,8 +109,23 @@ opus_val32 (...
2015 Nov 21
12
[Aarch64 v2 00/18] Patches to enable Aarch64 (version 2)
As promised, here's a re-send of all my Aarch64 patches, following comments by John Ridges. Note that they actually affect more than just Aarch64 -- other than the ones specifically guarded by AARCH64_NEON defines, the Neon intrinsics all also apply on armv7; and the OPUS_FAST_INT64 patches apply on any 64-bit machine. The patches should largely be independent and independently useful, other
2017 Jun 01
0
Opus floating-point NEON jump table question
...ef OPUS_ARM_INLINE_MEDIA */ /* #undef OPUS_ARM_INLINE_NEON */ /* #undef OPUS_ARM_MAY_HAVE_EDSP */ /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ /* #undef OPUS_ARM_MAY_HAVE_NEON */ /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ /* #undef OPUS_ARM_PRESUME_EDSP */ /* #undef OPUS_ARM_PRESUME_MEDIA */ /* #undef OPUS_ARM_PRESUME_NEON */ /* #undef OPUS_ARM_PRESUME_NEON_INTR */ So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually fall down to C functions in the jump table: # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name) Therefore all NEON intrinsics optimizations in their jump tables won't get called...
2018 Aug 30
0
NEON detection under iOs
On iOS, configure should define OPUS_ARM_PRESUME_NEON and OPUS_ARM_PRESUME_NEON_INTR if you’re building for armv7, and OPUS_ARM_PRESUME_NEON_INTR for arm64 (since every Apple armv7 CPU has supported Neon, and of course arm64 supports it though the assembler syntax is different). This should be slightly faster than using RTCD, since the Neon functions...
2017 Jun 01
0
Opus floating-point NEON jump table question
...ef OPUS_ARM_INLINE_MEDIA */ /* #undef OPUS_ARM_INLINE_NEON */ /* #undef OPUS_ARM_MAY_HAVE_EDSP */ /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ /* #undef OPUS_ARM_MAY_HAVE_NEON */ /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ /* #undef OPUS_ARM_PRESUME_EDSP */ /* #undef OPUS_ARM_PRESUME_MEDIA */ /* #undef OPUS_ARM_PRESUME_NEON */ /* #undef OPUS_ARM_PRESUME_NEON_INTR */ So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually fall down to C functions in the jump table: # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name) Therefore all NEON intrinsics optimizations in their jump tables won't get called...
2013 Apr 11
0
No subject
...; ]) >> - ]) >> + AS_IF([test x"$OPUS_ARM_NEON_INTR" = x"1"], [ >> + AC_DEFINE([OPUS_ARM_NEON_INTR], 1, >> + [Compiler supports ARMv7 Neon Intrinsics]), >> + AS_IF([test x"$OPUS_ARM_PRESUME_NEON" = x"1"], [ >> + AC_DEFINE([OPUS_PRESUME_NEON_INTR], 1, >> + [Compiler support arm Intrinsics and target must support neon])], >> + []) >> + AS_IF([test x"enable_rtcd" != x&q...
2017 Jun 02
2
Opus floating-point NEON jump table question
...gt;> /* #undef OPUS_ARM_MAY_HAVE_EDSP */ >> /* #undef OPUS_ARM_MAY_HAVE_MEDIA */ >> /* #undef OPUS_ARM_MAY_HAVE_NEON */ >> /* #undef OPUS_ARM_PRESUME_AARCH64_NEON_INTR */ >> /* #undef OPUS_ARM_PRESUME_EDSP */ >> /* #undef OPUS_ARM_PRESUME_MEDIA */ >> /* #undef OPUS_ARM_PRESUME_NEON */ >> /* #undef OPUS_ARM_PRESUME_NEON_INTR */ >> >> So MAY_HAVE_NEON will be defined to MEDIA version, which will eventually >> fall down to C functions in the jump table: >> # define MAY_HAVE_NEON(name) MAY_HAVE_MEDIA(name) >> >> Therefore all NEON intrin...
2014 Nov 21
4
[RFC PATCHv1] cover: celt_pitch_xcorr: Introduce ARM neon intrinsics
Hello, I received feedback from engineers working on NE10 [1] that it would be better to use NE10 [1] for FFT optimizations for opus use cases. However, these FFT patches are currently in review and haven't been integrated into NE10 yet. While the FFT functions in NE10 are getting baked, I wanted to optimize the celt_pitch_xcorr (floating point only) and use it to introduce ARM NEON
2015 Nov 07
12
[Aarch64 00/11] Patches to enable Aarch64 (arm64) optimizations, rebased to current master.
Here are my aarch64 patches rebased to the current tip of Opus master. They're largely the same as my previous patch set, with the addition of the final one (the Neon fixed-point implementation of xcorr_kernel). This replaces Viswanath's Neon fixed-point celt_pitch_xcorr, since xcorr_kernel is used in celt_fir and celt_iir as well. These have been tested for correctness under qemu
2014 Nov 21
0
[RFC PATCHv1] armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
...mizations]) asm_optimization="(missing perl dependency for ARM)" ]) - ]) + AS_IF([test x"$OPUS_ARM_NEON_INTR" = x"1"], [ + AC_DEFINE([OPUS_ARM_NEON_INTR], 1, + [Compiler supports ARMv7 Neon Intrinsics]), + AS_IF([test x"$OPUS_ARM_PRESUME_NEON" = x"1"], [ + AC_DEFINE([OPUS_PRESUME_NEON_INTR], 1, + [Compiler support arm Intrinsics and target must support neon])], + []) + AS_IF([test x"enable_rtcd" != x""], + [rtcd_support="$rtcd_support (NEON_INTR)"], + []) + ],[]) ;;...
2015 Aug 05
8
[PATCH 0/8] Patches for arm64 (aarch64) support
This sequence of patches provides arm64 support for Opus. Tested on iOS, Android, and Ubuntu 14.04. The patch sequence was written on top of Viswanath Puttagunta's Ne10 patches, but all but the second ("Reorganize pitch_arm.h") should, I think, apply independently of it. It does depends on my previous intrinsics configury reorganization, however. Comments welcome. With this and
2014 Nov 28
2
[RFC PATCHv1] armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
...m_optimization="(missing perl dependency for ARM)" > ]) > - ]) > + AS_IF([test x"$OPUS_ARM_NEON_INTR" = x"1"], [ > + AC_DEFINE([OPUS_ARM_NEON_INTR], 1, > + [Compiler supports ARMv7 Neon Intrinsics]), > + AS_IF([test x"$OPUS_ARM_PRESUME_NEON" = x"1"], [ > + AC_DEFINE([OPUS_PRESUME_NEON_INTR], 1, > + [Compiler support arm Intrinsics and target must support neon])], > + []) > + AS_IF([test x"enable_rtcd" != x""], > + [rtcd_support="$rtcd_support (NEON_INTR)"], >...
2016 Jul 14
0
[PATCH 2/5] Optimize fixed-point celt_fir_c() for ARM NEON
...map.c +++ b/celt/arm/arm_celt_map.c @@ -29,6 +29,7 @@ #include "config.h" #endif +#include "celt_lpc.h" #include "pitch.h" #include "kiss_fft.h" #include "mdct.h" @@ -39,6 +40,22 @@ # if ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) +void celt_fir_neon( + const opus_val16 *_x, + const opus_val16 *num, + opus_val16 *_y, +...