Access to Audio DSP of APQ8016

Hi,
Do we have access to the audio DSP of APQ8016 chip with Dragonboard? Specifically looking for access to the Audio features of APQ8016? Do we need special licence from Qualcomm to access them?

Thanks

RD

Audio
 Low-power audio
 Voice codec support
 Audio codec support
 Enhanced audio
 Synthesizer
 Low power audio for MP3 and AAC playback; surround sound;
 Versatile – many audio playback and voice modes; encoders for audio
and FM recording; many concurrency modes
 G711; Raw PCM; QCELP; EVRC, -B, -WB; AMR-NB, -WB; GSM-EFR,
-FR, -HR
 MP3; AAC, +, eAAC; AMR-NB, -WB, G.711, WMA 9/10 Pro
 Dolby Digital Plus and DTS-HD surround sound
 Qualcomm Fluence™ noise cancellation technology
 Qualcomm Aqstic™ audio software
 128-voice polyphony wavetable

Hi @radiodev

Well this is a sort of good news/bad news answer. First the bad news, the APQ8016E processor chip doesn’t have an Audio DSP, hence no amount of licensing will gain you access to it. The good news is ALL of the features you have listed above are run in software on the ARM cores for this particular chip. But more bad news, to access some of the more complex features (Dolby, Fluence, Aqustic, etc.) you would need a full Qualcomm license and additional royalties for each chip you buy.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.

So, if the more complex audio processing is not available without a full QC license, how are your customers expected to use the board for audio applications? What about simple audio processing…
The types of functions that we are likely to need will be:

  1. Audio Path selection for a particular device mode
  2. Gain control for each path
  3. Volume control
  4. Signal mixing
  5. Signal filtering (IIR and or FIR)
  6. Sample Rate conversion
  7. Compression/limiting
  8. Noise suppression
  9. Echo Control

Please let me know which of these functions are included and what tools are used to set them.
Many thanks.

Not 100% sure what you mean. There is no DSP so all audio processing is performed by ARM which you have full control over already. The drivers give you access more or less raw to the PCM playback and capture devices so you can perform more or less any audio processing you like.

As it happens most of these features are built into pulseaudio already so they are included in Debian builds for DB410C by default. Even the features that are not strictly part of pulseaudio itself can usually be achieved using plugins.

That’s not entirely correct; the DSP is not used in the implementation, but work is progressing on implementing an ALSA driver for the DSP (on 8064 and db820c) and it’s expected that this would work on db410c as well.

Some features, like DSP-side decode of MP3 and hence low-power playback might materialize from this support. But I would suggest reaching out to Qualcomm wrt the more advanced features such as noise cancelling.

Interesting! To be honest I was just (?mis?)quoting @ljking’s good news/bad news… personally I’ll only wake up and pay attention to any DSP hardware when we get a 20-bit HiZ guitar input on a mezzanine ;-).

Theoretically could an ALSA driver for the DSP support any encode functionality? I would be really interested in AAC, MP3, or any voice level codec support since moving workloads off of the processor would leave more room for much more interesting things!

yes, this is correct. there are APIs for compressed audio in ALSA for that. and theoretically, it’s something that can be achieved on the horizon. 410c (well APQ8016) is the only platform where running Audio without the DSP was possible. We are working on other platforms where bypassing the DSP is not possible. So we have an ALSA audio driver that uses the DSP in the works (most notably on DB820c/8096).

I think I should clarify the DSP situation a bit.

Above I said that the 410 processor doesn’t have an “Audio DSP”, this statement is correct (I didn’t say there is no DSP in the 410). The audio interface hardware (Low Power Audio Sub System, or LPASS) has all of the registers to access the external codecs (I2S, Digital Mics, ADC/DAC in the PMIC, etc.), The LPASS registers in the 410 can only be read or written by the main A53 processors. Hence every audio sample must be transferred to/from the LPASS by the main processor.

There is a DSP in the 410. BUT this DSP does not have access to the LPASS registers, hence if you use this DSP to perform tasks like MP3 decompress you need to transfer the compressed stream to the DSP, and then transfer the decompressed stream from the DSP to the LPASS. All this shuffling around of the data may cause a significant delay, and it may be faster to just run the algos on the A53 and save the transfers.

Access to the 410 DSP is not currently available but is in the works. When it is ready you will be able to write DSP code, load it into the DSP and run it. The Hexagon DSP compiler is available, but the infrastructure to load a compiled binary into the DSP and transfer data to/from the DSP is not in place yet.

The other chips sets (600 and 820) do have “Audio DSPs” and the LPASS registers can only be accessed by the DSP, The main processors do not have access to the LPASS registers, in these chip sets all audio must pass through the Audio DSP.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.

Hello,

Do you know the architecture of the LPASS on the 410c? Perhaps a diagram? There seems to 4 I2S blocks on the SoC but yet only 2 externally accessible. However, there seems to be some kind of muxing between the 4 block and 2 sets of external pins. I haven’t figured this out yet and can’t seem to find it in the documentation. Ultimately I need 4 input channels and 2 output channels using an external codec. The external codec is working with 2 output channels that were normally routed to the HDMI chip. That is as much I have got working thus far.

Hello,

Can anyone share how to enable the audio dsp and LPASS registers in dargon board 410c, i need some audio preprocessing and noise cancellation in the board.

Thanks & Regards,
Chaithra