Displaying 20 results from an estimated 700 matches similar to: "Opus decoding performance on ARM devices"
2014 Sep 05
2
Opus decoding performance on ARM devices
Hi,
Thank you for your response. I pulled yesterday to commit
da97db1ca1f92592af3534c9a2596da0e9a009ca, added a bunch of more defines to
my compile options, and assembled & linked in
armopts.s,celt_pitch_xcorr_arm.s.
Performance jumped up from about 4.8 Mb/s to 5.3 Mb/s on the same device,
so it is improvement. Not sure what other tweaks there would be to try,
but if it could match the
2017 May 31
4
Opus floating-point NEON jump table question
Hi,
./configure --build x86_64-unknown-linux-gnu --host arm-linux-gnueabihf
--disable-assertions --disable-check-asm --enable-intrinsics CFLAGS=-O3
--disable-shared
When configuring with floating-point and intrinsics enabled as above, the
generated config.h only has OPUS_ARM_MAY_HAVE_NEON_INTR defined (to 1), with
/* #undef OPUS_ARM_ASM */
/* #undef OPUS_ARM_INLINE_ASM */
/* #undef
2017 Jun 01
2
Opus floating-point NEON jump table question
Thank Jean-Mark and Jonathan!
I tested current OPUS encoder in floating-point with Complexity 8. Hacking
using the attached patch (which will generate "#define
OPUS_ARM_MAY_HAVE_NEON 1" in config.h) will speed up about 14.7% on my
Chromebook. Probably it's because many NEON intrinsics optimizations can
benefit both fixed-point and floating-point encoder.
So if it's safe enough
2014 Sep 04
0
Opus decoding performance on ARM devices
Hi Dan,
I suggest you try the code in git master, which has further ARM
optimizations compared to 1.1.
Cheers,
Jean-Marc
On 04/09/14 08:00 AM, Dan Nilsson wrote:
> Hi everyone,
>
> I have lately been evaluating the performance of various audio decoders,
> particularly for ARM devices (Cortex A8 / A9). The context is audio
> playback in a game engine, and thus decoding
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 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
2017 Jun 01
0
Opus floating-point NEON jump table question
Semantically, OPUS_ARM_MAY_HAVE_NEON is supposed to mean the compiler supports, and the CPU may support, Neon assembly code, which isn’t necessarily the same thing as the compiler supporting Neon intrinsics. (The Visual Studio ARM compiler, for instance, supports intrinsics but not assembly.) So I don’t think this patch is the right solution.
Instead, I think the problem is actually that
2017 Jun 01
0
Opus floating-point NEON jump table question
On May 31, 2017, at 12:47 PM, Linfeng Zhang <linfengz at google.com<mailto:linfengz at google.com>> wrote:
Hi,
./configure --build x86_64-unknown-linux-gnu --host arm-linux-gnueabihf --disable-assertions --disable-check-asm --enable-intrinsics CFLAGS=-O3 --disable-shared
When configuring with floating-point and intrinsics enabled as above, the generated config.h only has
2017 Jun 02
2
Opus floating-point NEON jump table question
Thank Jonathan!
I'll fix the MAY_HAVE_NEON() in silk/arm/arm_silk_map.c
Linfeng
On Thu, Jun 1, 2017 at 3:34 PM, Jonathan Lennox <jonathan at vidyo.com> wrote:
> Semantically, OPUS_ARM_MAY_HAVE_NEON is supposed to mean the compiler
> supports, and the CPU may support, Neon assembly code, which isn’t
> necessarily the same thing as the compiler supporting Neon intrinsics.
>
2014 Nov 21
0
[RFC PATCHv1] armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
Optimize celt_pitch_xcorr function (for floating point)
using ARM NEON intrinsics for SoCs that have NEON VFP unit.
As initial step, targeting ARMv7 NEON (VFP3+) based SoCs.
To enable this optimization, use --enable-arm-neon-intrinsics
configure option. This flag is not enabled by default.
Compile time and runtime checks are also supported to make sure
this optimization is only enabled when the
2014 Dec 19
2
[PATCH v1] cover: armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
Hi,
Optimizes celt_pitch_xcorr for ARM NEON floating point.
Changes from RFCv3:
- celt_neon_intr.c
- removed warnings due to not having constant pointers
- Put simpler loop to take care of corner cases. Unrolling using
intrinsics was not really mapping well to what was done
in celt_pitch_xcorr_arm.s
- Makefile.am
Removed explicit -O3 optimization
- test_unit_mathops.c,
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
2018 Mar 22
1
Opus configuration for ARM cortex M7
Hi, I'm planning to use Opus codec on a ARM cortex M7 device running at
400MHz.
Con you please suggest the best configuration directives that I have to
set in the config.h file in order to obtain the best perfromances on the
cortex M7 architecture?
Actually I have compiled libopus 1.2.1 with the following cnfiguration
parameters:
#define VAR_ARRAYS 1
#define FIXED_POINT 1
#define
2014 Dec 10
2
[RFC PATCH v3] cover: armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
Hi,
Optimizes celt_pitch_xcorr for floating point.
Changes from RFCv2:
- Changes recommended by Timothy for celt_neon_intr.c
everything except, left the unrolled loop still unrolled
- configure.ac
- use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE
- Moved compile flags into Makefile.am
- OPUS_ARM_NEON_INR --> typo --> OPUS_ARM_NEON_INTR
Viswanath Puttagunta (1):
armv7:
2014 Dec 07
3
[RFC PATCH v2] cover: armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
From: Viswanath Puttagunta <viswanath.puttagunta at linaro.org>
Hi,
Optimizes celt_pitch_xcorr for floating point.
Changes from RFCv1:
- Rebased on top of commit
aad281878: Fix celt_pitch_xcorr_c signature.
which got rid of ugly code around CELT_PITCH_XCORR_IMPL
passing of "arch" parameter.
- Unified with --enable-intrinsics used by x86
- Modified algorithm to be more
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
2019 Apr 14
1
Opus cmake build
Hi Marcus,
Thanks for the fixes. I did some more cmake build testing and
encountered a few issues:
The option -DFORTIFY_SOURCE=2 should be -D_FORTIFY_SOURCE=2, as the
macro has a leading underscore. In the autotools build it defines this
if it is not already defined (m4/ax_add_fortify_source.m4).
When custom modes are not enabled, the cmake build is nevertheless
installing the include file
2014 Dec 07
2
[RFC PATCH v2] cover: armv7: celt_pitch_xcorr: Introduce ARM neon intrinsics
Hi,
Optimizes celt_pitch_xcorr for floating point.
Changes from RFCv1:
- Rebased on top of commit
aad281878: Fix celt_pitch_xcorr_c signature.
which got rid of ugly code around CELT_PITCH_XCORR_IMPL
passing of "arch" parameter.
- Unified with --enable-intrinsics used by x86
- Modified algorithm to be more in-line with algorithm in
celt_pitch_xcorr_arm.s
Viswanath Puttagunta
2015 Nov 19
3
[PATCH 1/3] Add configure check for Aarch64-specific Neon intrinsics.
---
configure.ac | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/configure.ac b/configure.ac
index 90a06c8..adcb969 100644
--- a/configure.ac
+++ b/configure.ac
@@ -503,6 +503,26 @@ AS_IF([test x"$enable_intrinsics" = x"yes"],[
[rtcd_support="$rtcd_support (NE10)"])
])
+ OPUS_CHECK_INTRINSICS(
+
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