I am assessing the feasibility of implementing some ambient noise cancellation algorithms on the Hexagon DSP. I've studied the documentation for the APPI and CAPI wrappers and looked at the passthrough and gain examples. It all looks simple enough.
A couple of things concern me.
1. I've read the case study about MuseAmi who were able to reduce the latency to "60ms on the Hexagon DSP". Unfortunately this more than 1000 times slower than we would like. (Three other platforms we have targeted achieve less than 40us.)
2. The prototype of the appi "process" function includes a 'appi_buflist_t' structure with a field contining the buffer length. I can't see a mechanism to set the length to 1 (and hence reduce the buffering latency).
These things make me think that the APPI and CAPI might not be the right place to implement ambient noise cancellation. Should I be looking elsewhere for very low latency performance?
Has anyone measured the latency from the analog microphone input to analog speaker output via an APPI module? (I'm assuming that all the evaluation boards use the same qualcomm codec.)
Thanks in advance,
After doing a little research it has become clear that some manufacturers using the Snapdragon platform have substituted the standard Qualcomm codec (WDC9310) with a Wolfson codec. The Wolfson codec (which has public datasheets) has noise cancellation filters built in. This architecture eliminates the latency associated with transferring (and buffering) the data to the DSP.
Does the Qualcom codec have similar capabilities?
Are there any public datasheets for the Qualcomm WCD9310?
Will I get the data sheets if I buy one of the Qualcomm development boards?
I am also trying to analyze the delay from the analog microphone input to speaker output. Have you tried this? I am unable to push the code on to the target.