[opus] [PATCH 0/8] Patches for arm64 (aarch64) support

Jonathan Lennox jonathan at vidyo.com
Wed Aug 5 11:17:22 PDT 2015


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 my previous patch set, I believe it should be safe to
turn --enable-intrinsics on by default in Opus's configure script.

Jonathan Lennox (8):
  Move ARM-specific macro overrides to arm-specific file.
  Reorganize pitch_arm.h, so RTCD works for intrinsics functions as
    well.
  Autoconf changes for arm64 inline assembly support.
  Arm64 assembly for Celt fixed-point math.
  Arm64 assembly for Silk math.
  Add Neon intrinsics for Silk noise shape quantization.
  Add Neon intrinsics for Silk noise shape feedback loop.
  Apply Neon short prediction optimization to
    silk_noise_shape_quantizer_del_dec.

 Makefile.am                    |   8 ++-
 celt/arch.h                    |   2 +
 celt/arm/arm_celt_map.c        |  24 +++++++-
 celt/arm/fixed_arm64.h         |  75 ++++++++++++++++++++++++
 celt/arm/pitch_arm.h           |  94 ++++++++++++++++++++++-------
 celt/pitch.h                   |  19 ------
 celt_headers.mk                |   1 +
 configure.ac                   |  19 ++++++
 silk/NSQ.c                     |  55 +++++------------
 silk/NSQ.h                     |  97 ++++++++++++++++++++++++++++++
 silk/NSQ_del_dec.c             |  37 +++++-------
 silk/SigProc_FIX.h             |   4 ++
 silk/arm/NSQ_neon.c            | 130 +++++++++++++++++++++++++++++++++++++++++
 silk/arm/NSQ_neon.h            | 101 ++++++++++++++++++++++++++++++++
 silk/arm/SigProc_FIX_arm64.h   |  46 +++++++++++++++
 silk/arm/macros_arm64.h        |  66 +++++++++++++++++++++
 silk/macros.h                  |   4 ++
 silk/mips/NSQ_del_dec_mipsr1.h |   3 +-
 silk/x86/NSQ_sse.c             |   2 +-
 silk/x86/main_sse.h            |   3 +-
 silk_headers.mk                |   4 ++
 silk_sources.mk                |   2 +
 22 files changed, 685 insertions(+), 111 deletions(-)
 create mode 100644 celt/arm/fixed_arm64.h
 create mode 100644 silk/NSQ.h
 create mode 100644 silk/arm/NSQ_neon.c
 create mode 100644 silk/arm/NSQ_neon.h
 create mode 100644 silk/arm/SigProc_FIX_arm64.h
 create mode 100644 silk/arm/macros_arm64.h

-- 
2.3.2 (Apple Git-55)



More information about the opus mailing list