Which Digital Signal Processing (DSP) technique uses OpenSL ES?

Dear Eric and Team,

after spending hours on researching and studying OpenSL ES I still couldn’t find out which DSP technique it uses for the equalizer, or in general.
Is it Fast Fourier Transmission (FFT), Digital Filtering or something completely different?

I would really need this information for a paper I’m currently working on, so any help, hint or response are very appreciated.

Thank you very much,
Best,
Reinhard

Hi Reinhard,

OpenSL ES does not mandate any specific techniques for how the functionality is implemented. Remember that Khronos only provides the OpenSL ES API - it is up to the device or system manufacturer to provide the implementation. We designed it so that it is up to the implementer to decide which techniques are used for the various functionality. This is so that the same API can be used on simpler devices such as feature phones and media players as you would on a high end smart phone or game system.

Best,

Erik

Thanks Erik for the good answer.

So in Android for example, the implementation of the equalizer is made by the audio driver, is that correct?

Best,
Reinhard

I can’t answer specifics about the Android implementation as I am not an Android developer. Typically there are a lot of different components that go into the development of an audio system. To get an introduction to the multimedia stack and a basic understanding of how the multimedia stack works, I suggest you take a look at this presentation: https://www.khronos.org/assets/uploads/developers/library/2012-siggraph-asia/Noreke-OpenSL-OpenMAX_SIGGRAPH-Asia-Dec12.pdf. On slide 13 it shows how an OpenMAX IL component model could be built, and the equalizer component would be put into that chain before the renderer. Slide 23 shows how the different OpenMAX IL components are used for to build an OpenSL ES use case. Keep in mind that these are generic and theoretical implementations.

Android uses OpenMAX IL for codecs and AudioFlinger for the audio services. For Android specific information, I suggest you take a look at how AudioFlinger is implemented.

Best,

Erik

Thanks a lot!
I will have a look at the AudioFliner, and will come back if I know more!

Best,
Reinhard