QNX Technical Articles
QNX® Aviage® Acoustic Processing 1.3 for TI 64xx DSPs: Release Notes
Date of this edition: January 22, 2009
Target hardware: TMS320C64x+ DSP on TI Jacinto (TI DRA466)
Contents
For the most up-to-date version of these release notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download Center.
What's in this package?
New acoustic processing options
The core features of QNX Aviage Acoustic Processing version 1.2 include:
- Send-side(Mic-In audio signal)
- Acoustic echo cancellation (AEC)
- Noise reduction (NR)
- Automatic gain control (AGC)
- Parametric equalization (PEQ)
- Dual-channel capability (MIX)
- High frequency encoding (HFE)
- Wind buffet suppression (WNDB)
- Dynamic limiter (SDL)
- Receive-side(Recv-In audio signal)
- Bandwidth extension (RBWE)
- Parametric equalization (RPEQ)
- Automatic gain control (RAGC)
- Dynamic limiter (RDL)
- Dynamic level control (RDLC)
- Diagnostics API (DIAG)
The new features in the QNX AAP 1.3 include:
- Wideband support (WBND)
- Send-side(Mic-In audio signal)
- Dynamic parametric equalization (DPEQ)
- Receive-side(Recv-In audio signal)
- Electrical noise suppression (RENS)
- Double talk filter (RDTF)
- Diagnostics (DIAG)
- Output clipping statistics
To support the new features the following parameters were added:
- IQWA_AECFiltLen
- IQWA_SendDynEQSwitch
- IQWA_SendParamEQ2Nodes
- IQWA_SendEQ2Curve
- IQWA_SendDynEQCurve
- IQWA_SendDynEQMinMaxSNR
- IQWA_RecvDTFSwitch
- IQWA_RecvDTFMaxEchoRatio
- IQWA_RecvDTFResponse
- IQWA_RecvDTFMaxAtten
- IQWA_RecvENSSwitch
- IQWA_RecvENSSuppress
- IQWA_RecvENSActivityRatio
- IQWA_MicOutClipStats
- IQWA_MicOutResetClipStats
- IQWA_MicOutClipStatsMode
- IQWA_RecvOutClipStats
- IQWA_RecvOutResetClipStats
- IQWA_RecvOutClipStatsMode
- IQWA_AECResEchoRT60ms
For the description of these parameters, please see the “Parameters” section in the User's Guide.
API changes
The following lists all the API changes in this version:
- The parameter IQWA_SendLimitMode has been deprecated and will default to IQWA_SoftLimit. For backwards compatibility, setting this parameter to IQWA_HardLimit will succeed, but the mode will remain as IQWA_SoftLimit.
- Modified the maximum possible value for parameter IQWA_MaxFreqProc to Nyquist of the microphone output sample rate.
This package contains the following:
- qwa_qnx.l64P
- Acoustic Processing XDAIS Algorithm object library for C4x+ DSP.
- iqwa.h
- Header file including types, defines, and error codes supporting the Acoustic Processing API.
- iqwa.c
- Source code file for default parameters to the Acoustic Processing XDAIS Algorithm.
- qwa_qnx.h
- Header file including additional types and function tables supporting the Acoustic Processing API.
- xqwa.h
- Header file including the general API to the Acoustic Processing XDAIS Algorithm.
- xqwa.c
- Source code file for access to the general API to the Acoustic Processing XDAIS Algorithm.
- xqwa_vr_example.c
- Example application using the implementation of QWA Acoustic Processing XDAIS Algorithm (in voice recognition mode).
- xqwa_hf_example.c
- Source code file for the Acoustic Processing sample application using the general API (hands-free mode).
- Documentation
- The QNX Acoustic Processing (for XDAIS) User's Guide; see “Documentation,” below.
The following files are installed in the directory where you unzip the archive:
- help/html/1QWA_Overview.png
- help/html/2QWA_Details.png
- help/html/3AEC.png
- help/html/4HFE.png
- help/html/BWE.png
- help/html/diag.html
- help/html/doxygen.css
- help/html/doxygen.png
- help/html/examples.html
- help/html/form_0.png
- help/html/form_1.png
- help/html/form_2.png
- help/html/form_3.png
- help/html/form_4.png
- help/html/form_5.png
- help/html/form_6.png
- help/html/form_7.png
- help/html/formula.repository
- help/html/ftv2blank.png
- help/html/ftv2doc.png
- help/html/ftv2folderclosed.png
- help/html/ftv2folderopen.png
- help/html/ftv2lastnode.png
- help/html/ftv2link.png
- help/html/ftv2mlastnode.png
- help/html/ftv2mnode.png
- help/html/ftv2node.png
- help/html/ftv2plastnode.png
- help/html/ftv2pnode.png
- help/html/ftv2vertline.png
- help/html/glossary.html
- help/html/group___a_d_j.html
- help/html/group___a_p_i_generic.html
- help/html/group___c_f_g.html
- help/html/group___d_e_f.html
- help/html/group___d_i_a_g.html
- help/html/group___e_r_r_o_r.html
- help/html/group___parameters.html
- help/html/group___q_w_a.html
- help/html/index.html
- help/html/LatencyDiagram.jpg
- help/html/main.html
- help/html/MIX.png
- help/html/modules.html
- help/html/NR.png
- help/html/one.html
- help/html/pages.html
- help/html/ParamEQ2.png
- help/html/qwa_ref_extrecvout.png
- help/html/qwa_ref=rcvout.png
- help/html/recv.html
- help/html/recvp.html
- help/html/send.html
- help/html/sendp.html
- help/html/struct_i_q_w_a___clip_stats.html
- help/html/struct_i_q_w_a___frame_info_struct.html
- help/html/struct_i_q_w_a___params.html
- help/html/struct_i_q_w_a___status.html
- help/html/syscnf.html
- help/html/tab_b.gif
- help/html/tab_l.gif
- help/html/tab_r.gif
- help/html/tabs.css
- help/html/tree.html
- help/html/tune.html
- help/html/xqwa__hf_example_8c-example.html
- help/html/xqwa__vr_example_8c-example.html
- help/pdf/aap_xdais_user_guide.pdf
- help/aap_xdais_inst.html
- help/aap_xdais_rel.html
- lib/qwa_qnx.l64P
- sample/xqwa_vr_example.c
- sample/xqwa_hf_example.c
- src/iqwa.c
- src/iqwa.h
- src/qwa_qnx.h
- src/xqwa.c
- src/xqwa.h
Fixed issues
- Fixed issue when using dual-channel mode and High Frequency Encoding (HFE) where, the background noise estimation is based only on the left microphone signal. (Ref# 54199)
- Fixed issue when in certain receive input scenarios including low-level negative DC values, the acoustic echo cancellation module may adapt incorrectly to the non-realistic input. (Ref# 63069, 59027)
- Fixed issue when processing at higher framerate (64 pt frameshift at 8 or 11kHz, or 128 pt frameshift at 16 or 22kHz) there were some rare circumstances (certain defrost noises) when coherence noise caused musical tones. (Ref# 63212)
Known issues
None currently known.
Benchmarks
Here's a summary of the abbreviations used in this section. For more details, see the Acoustic Processing User's Guide.
| Abbreviation | Meaning |
|---|---|
| AEC | Acoustic Echo Cancellation |
| AGC | Automatic Gain Control |
| BWE | BandWidth Extension |
| DL-In | Downlink Input Audio Signal |
| DLC | Dynamic Level Control |
| DPEQ | Dynamic Parametric Equalization |
| FS | Frame Shift |
| HF | Hands Free |
| HFE | High Frequency Encoding |
| MFP | Maximum Frequency Processed |
| Mic-In | Microphone Input Audio Signal |
| Mic-Out | Microphone Output Audio Signal |
| MIPS | Millions of Instructions Per Second |
| MIX | Dual-channel Capability |
| NB | NarrowBand (MFP <= 4000 Hz) |
| NR | Noise Reduction |
| PEQ | Parametric Equalization |
| RAGC | Receive-side Automatic Gain Control |
| RDTF | Receive-side Double Talk Filter |
| Recv-In = DL-In | Receive Input Audio Signal |
| Recv-Out | Receive Output Audio Signal |
| RENS | Receive-side Electrical Noise Suppression |
| RPEQ | Receive-side Parametric Equalization |
| SDL | Send-side Dynamic Limiter |
| SR | Sample Rate |
| UL-Out = Mic-Out | Uplink Output Audio Signal |
| VNR | Voice to Noise Ratio |
| VR | Voice Recognition |
| WB | WideBand ( 4000 Hz < MFP <= 8000 Hz) |
| WNDB | Wind Block |
We determined all these benchmarks on the TMS320C64x+ DSP on TI Jacinto.
ROM Benchmarks
| ROM | 270 KB |
|---|
MIPS/RAM Benchmarks
Handsfree mode
NB single channel mode, AEC on, NR on
- DL-In/Mic-In = 8 kHz SR
- Recv-Out/Mic-Out = 8 kHz SR
- Base = AEC + NR
- Send-side Full Featured = Base + DPEQ + SDL + AGC + WNDB
- Receive-side Full Featured = Base + BWE + RPEQ + RAGC + RDLC + RENS + RDTF
| Frame Shift | Base | Send Full | +RPEQ +RAGC +RDLC +RENS +RDTF | Receive Full | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 128 | 37 | 44 | 32.0 KB | 39 | 46 | 33.0 KB | 38 | 46 | 32.7 KB | 42 | 50 | 33.4 KB |
| 64 | 67 | 81 | 31.5 KB | 71 | 85 | 32.4 KB | 69 | 82 | 32.1 KB | 74 | 89 | 32.5 KB |
NB dual channel mode, AEC on, NR on, MIX on
- DL-In/(Mic-In)x2 = 8 kHz SR
- Recv-Out/Mic-Out = 8 kHz SR
- Base = AEC + NR + MIX
- Send-side Full Featured = Base + DPEQ + SDL + AGC + WNDB
- Receive-side Full Featured = Base + BWE + RPEQ + RAGC + RDLC + RENS + RDTF
| Frame Shift | Base | Send Full | +RPEQ +RAGC +RDLC +RENS +RDTF | Receive Full | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 128 | 57 | 68 | 44.8 KB | 59 | 70 | 45.8 KB | 57 | 68 | 45.4 KB | 63 | 75 | 46.2 KB |
| 64 | 107 | 129 | 44.3 KB | 111 | 133 | 45.2 KB | 106 | 127 | 44.9 KB | 115 | 138 | 45.3 KB |
NB single channel mode, AEC on, NR on, HFE on
- DL-In/Mic-In = 16 kHz SR
- Recv-Out/Mic-Out = 16 kHz SR
- Base = AEC + NR + HFE
- Send-side Full Featured = Base + DPEQ + SDL + AGC + WNDB
- Receive-side Full Featured = Base + BWE + RPEQ + RAGC + RDLC + RENS + RDTF
| Frame Shift | Base | Send Full | +RPEQ +RAGC +RDLC +RENS +RDTF | Receive Full | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 256 | 46 | 55 | 38.4 KB | 48 | 57 | 39.6 KB | 49 | 59 | 39.3 KB | 57 | 69 | 50.6 KB |
| 128 | 80 | 96 | 37.3 KB | 84 | 101 | 38.5 KB | 82 | 99 | 38.1 KB | 95 | 114 | 48.8 KB |
NB dual channel mode, AEC on, NR on, HFE on, MIX on
- DL-In/(Mic-In)x2 = 16 kHz SR
- Recv-Out/Mic-Out = 16 kHz SR
- Base = AEC + NR + HFE + MIX
- Send-side Full Featured = Base + DPEQ + SDL + AGC + WNDB
- Receive-side Full Featured = Base + BWE + RPEQ + RAGC + RDLC + RENS + RDTF
| Frame Shift | Base | Send Full | +RPEQ +RAGC +RDLC +RENS +RDTF | Receive Full | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 256 | 71 | 85 | 53.2 KB | 71 | 86 | 54.4 KB | 71 | 86 | 54.0 KB | 81 | 98 | 65.4 KB |
| 128 | 127 | 152 | 52.0 KB | 128 | 154 | 53.2 KB | 122 | 147 | 52.9 KB | 143 | 172 | 63.5 KB |
Voice-recognition mode
NB single channel mode, NR on
- Mic-In = 11 kHz SR
- Mic-Out = 11 kHz SR
- Base = NR
- Send-side Full Featured = Base + WNDB
| Frame Shift | Base (NR) | Send Full (+WNDB) | ||||
|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 128 | 13 | 15 | 17.3 KB | 14 | 16 | 17.8 KB |
NB dual channel mode, NR on, MIX on
- (Mic-In)x2 = 11 kHz SR
- Mic-Out = 11 kHz SR
- Base = NR + MIX
- Send-side Full Featured = Base + WNDB
| Frame Shift | Base (NR + MIX) | Send Full (+WNDB) | ||||
|---|---|---|---|---|---|---|
| MCycles/s | MIPS | Total RAM | MCycles/s | MIPS | Total RAM | |
| 128 | 23 | 27 | 22.4 KB | 24 | 29 | 23.0 KB |
TI uses MCycles/s in their specifications rather than MIPS. TI also quotes Persistent and Scratch memory rather than total RAM.
Documentation
The functionality provided by this package is described in the QNX Aviage Acoustic Processing (for XDAIS) User's Guide. This package includes this document as:
- HTML: help/html/index.html
- PDF: help/pdf/aap_xdais_user_guide.pdf
Technical support
To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.