Vectorization of binaural sound virtualization on the ARM Cortex-A15 architecture
Jose Antonio Belloch, Alberto J. Gonzalez, Francisco D. Igual, Rafael Mayo, Enrique S. Quintana–Ort́ı · 2015
Today's mobile devices are equipped with low power processors featuring SIMD (single-instruction, multiple-data) floating-point units which can operate with multiple data units concurrently. This is the case, e.g., of the ARMv7 architecture, which integrates the (NEON) Advanced SIMD extension, a combined 64- and 128-bit SIMD instruction set for standardized acceleration of media and signal processing applications. In this paper we target the efficient implementation of binaural sound virtualization, a heavy-duty audio processing application that can eventually require 16 convolutions to synthesize a virtual sound source. For this application, we describe a data reorganization that allows to exploit the 128-bit NEON intrinsics of an ARM Cortex-A15 core. As a result, our new SIMD-accelerated implementation is capable of reproducing up to 60 sound sources under realtime conditions, compared with the 40 sound sources that can be handled by the original code.