Displaying 20 results from an estimated 800 matches similar to: "Opus floating-point NEON jump table question"
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
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 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.
>
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
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
2016 Sep 13
4
[PATCH 12/15] Replace call of celt_inner_prod_c() (step 1)
Should call celt_inner_prod().
---
celt/bands.c | 7 ++++---
celt/bands.h | 2 +-
celt/celt_encoder.c | 6 +++---
celt/pitch.c | 2 +-
src/opus_multistream_encoder.c | 2 +-
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/celt/bands.c b/celt/bands.c
index bbe8a4c..1ab24aa 100644
--- a/celt/bands.c
+++ b/celt/bands.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
2015 Nov 21
8
[Aarch64 v2 10/18] Clean up some intrinsics-related wording in configure.
---
configure.ac | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index f52d2c2..e1a6e9b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,7 +190,7 @@ AC_ARG_ENABLE([rtcd],
[enable_rtcd=yes])
AC_ARG_ENABLE([intrinsics],
- [AS_HELP_STRING([--disable-intrinsics], [Disable intrinsics optimizations for ARM(float) X86(fixed)])],,
+
2016 Jun 17
5
ARM NEON optimization -- celt_fir()
Hi all,
This is Linfeng Zhang from Google. I'll work on ARM NEON optimization in the
next few months.
I'm submitting 2 patches in the following couple of emails, which have the new
created celt_fir_neon().
I revised celt_fir_c() to not pass in argument "mem" in Patch 1. If there are
concerns to this change, please let me know.
Many thanks to your comments.
Linfeng Zhang
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
2017 Jun 06
2
celt_inner_prod() and dual_inner_prod() NEON intrinsics
Hi Linfeng,
On 06/06/17 04:09 PM, Jonathan Lennox wrote:
> Two comments on the various infrastructure for RTCD etc.
>
> 1. The 0002- patch changes the ABI of the celt_pitch_xcorr functions,
> but doesn’t change the assembly in celt/arm/celt_pitch_xcorr_arm.s
> correspondingly. I suspect the ‘arch’ parameter can just be ignored
> by the assembly functions, but at least the
2017 Jun 01
4
celt_inner_prod() and dual_inner_prod() NEON intrinsics
Hi,
Attached are 5 patches related to celt_inner_prod() and dual_inner_prod()
NEON intrinsics optimization.
In 0004-Optimize-floating-point-celt_inner_prod-and-dual_inn.patch, the
optimization changed the order of floating-point inner products, which will
change the results. I created celt_inner_prod_neon_float_c_simulation()
and dual_inner_prod_neon_float_c_simulation() to simulate the order
2017 Jul 21
2
[PATCH] Fix celt_pitch_xcorr ARM jump table compiling error
Hi,
Attached is a fix related to ARM optimization jump table compiling error.
Thanks,
Linfeng Zhang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170720/661d96b5/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name:
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(
+
2014 Sep 04
2
Opus decoding performance on ARM devices
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 performance is of particular
interest.
Looking at Opus versus Vorbis on a Cortex A9 smartphone, the numbers look
approximately like this:
Vorbis (tremolo decoder)
9.3 Mb PCM/s
Opus (libopus 1.1)
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
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 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
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