QNX Technical Articles
QNX® Aviage® Acoustic Processing 2.0.0 Rev. 1 Release Notes
Date of this edition: July 16, 2013
Target OS: This software is compatible with target systems running QNX® Neutrino® 6.3.2 through 6.5.0.
Host OS: You must have already installed the QNX® Software Development Platform:
- on a self-hosted QNX Neutrino development system on a physical machine, or as a virtual machine on VMware Workstation 6.5 or 7.0, VMware Player 3.0, or Microsoft VirtualPC 2007
- or on one of the following development hosts:
Version Microsoft Windows Linux QNX Momentics 6.3.2 Windows Vista, XP SP2, or 2000 SP4 Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7.0.4, or SUSE 10 QNX SDP 6.4.0 Windows Vista, Vista 64-bit, XP SP2 or SP3, or 2000 SP4 Linux Red Hat Enterprise Workstation 4 or 5, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora Core 6 or 7, Ubuntu 6.0.6 LTS or 7, or SUSE 10 QNX SDP 6.4.1 Windows Vista, Vista 64-bit, XP SP2 or SP3, or 2000 SP4 Linux Red Hat Enterprise Workstation 4.0 or 5.0, Red Hat Enterprise Server 5.1 64-bit, Red Hat Fedora 10, Ubuntu 8.04 LTS or 8.10, or SUSE 11 QNX SDP 6.5.0 Windows 7 Professional 32- and 64-bit, Vista Business 32- and 64-bit, XP Professional SP3, or 2000 SP4 Linux Red Hat Enterprise Linux 5.4 Desktop 32- and 64-bit, Red Hat Fedora 12, Ubuntu Workstation 9.10 32- and 64-bit, or openSUSE 11.2
Contents
Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
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 previous version 1.3 include:
- Binary configuration file load support
- Wide-band support (WBND)
- 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)
- Dynamic parametric equalization (DPEQ)
- Receive-side(Recv-In audio signal)
- Bandwidth extension (RBWE)
- Parametric equalization (RPEQ)
- Automatic gain control (RAGC)
- Dynamic limiter (RDL)
- Dynamic level control (RDLC)
- Electrical noise suppression (RENS)
- Double talk filter (RDTF)
- Diagnostics API (DIAG)
- Output clipping statistics
- Remote control server (RCS)
- Windows remote control client (QWALive)
- Binary configuration file save support
- Audio signal injection support
- Coherence measurements
- Total harmonic distortion measurements
The new features in the QNX AAP 2.0 include:
- Send-side(Mic-In audio signal)
- Automatic delay compensation (ADC).
- Off-axis rejection (OAR).
- Dynamic noise removal (DNR).
- Low-frequency reconstruction (LFR).
- Nonlinear distortion half duplex threshold (NLD)
- Remote control server (RCS)
- Injection error reporting.
- Serial port communication option.
- New API for post-initialization configuration.
- Windows QWALive remote control client
- Ability to connect to a target through serial port.
- Ability to set a name for each target connection.
- Ability to set a custom color for each target connection.
- Ability to run coherence and distortion measurements for the second microphone channel.
- Ability to monitor and listen to an incoming audio stream.
- Ability to pause streaming.
- Ability to save binary configuration files in text format.
- New audio path test in printable and HTML viewable format.
- New injection dropouts error indicator.
- New "Select Baseline Config" button in the Binary Config tab to select the minimum subset of parameters recommended for binary configuration based on the features (switches) that are turned on.
- Existing EQ presets are now displayed in the "SavePEQ Preset" form.
- New button "Delete Preset" added in the "LoadPEQ Preset" form.
- New "Adjustment(Post Init)" tab in the Binary Config for post-initialization adjustment of parameters.
- Parameter qwaAECFiltLen can now be changed using the "AEC Filter Length" control on the reinitialize page if the Enable Large Room Support check box is selected in "App Options" tab.
- Parameter qwaAECResEchoRT60ms can now be changed using the "Reverberation Time" control on the Send page if the Enable Large Room Support check box is selected in "App Options" tab.
To support the new features the following parameters were added:
- qwaAutoDelayCompSwitch
- qwaMixOARSwitch
- qwaLFRSwitch
- qwaLFINRMaxFreq
- qwaMixOARClosestMic
- qwaMixOARFocus
- qwaMixOARMaxReject
- qwaRECHalfDplxThresh
For the description of these parameters, please see the “QWA Parameters” section in the User's Guide.
API changes
The following lists all the API changes in this version:
- The default sample rate was changed to 8 kHz from 11 kHz in previous versions.
- Mute switches qwaSendMuteSwitch and qwaRecvMuteSwitch are not turned off when qwaReset() is called. In previous versions the mute switches were turned off when calling qwaReset().
- Enhanced the qwaInitialize() function to return QWA_ERR_INVALID_CHANNEL_CNT error for the following cases:
- The microphone input count exceeds 4.
- Receive input count equals 0 and any receive processing switch is on.
- The Voice Recognition mode was deprecated. For backward compatibility you can still set the parameter qwaOpMode to qwaVoiceRecog. Reading back the parameter qwaOpMode will always return qwaHandsFree now.
- The default value for the parameter qwaMaxFreqProc was changed from 4000 Hz to Nyquist Hz.
- The default value for the parameter qwaRefMaxDelay was changed from 0 to 200 ms if the qwaAutoDelaySwitch is idle or on.
- The FWHM minimum value for a PEQ node was changed to MAX(150Hz, f_center/10.0). This is equivalent to a maximum Q-value (Q = f_center/FWHM) of 10.0 for a center-frequency above 1.5 kHz.
- RCS API was enhanced to support post-initialization configuration to allow adjustment of parameters using binary configuration without restarting the target.
- New function qwaRcsCreateSerial() was added to the RCS API to support target connections through serial port.
- New function qwaSetConfig() was added to the QWA API to support post-initialization binary configuration.
- RCS error code QWA_RCS_ERR_SOCKET was renamed to QWA_RCS_ERR_COMM to indicate that an error has occurred during a serial port or TCP/IP socket operation.
- The default value for the parameter qwaRECSuppress was changed from 50 to 45.
- The default values for the qwaSendAGCAmpTgts and qwaRecvAGCAmpTgts parameters were reduced by 3 dB to [Min Max] = [-1500 -900].
- The default value for the qwaRecvBWEBrightness parameter was changed from 50 to 25.
- The default value for the qwaNRAtten parameter was changed from -1050 cdB to -1200 cdB.
Binaries
The following binary files are installed under $QNX_TARGET/, in subdirectories for each supported target platform:
ARMLE
- armle/lib/libqwa.a
- armle/lib/libqwaS.a
- armle/lib/libqwa_rcs.a
- armle/lib/libqwa_rcsS.a
ARMLE-v7
- armle-v7/lib/libqwa.a
- armle-v7/lib/libqwaS.a
- armle-v7/lib/libqwa_rcs.a
- armle-v7/lib/libqwa_rcsS.a
PPCBE
- ppcbe/lib/libqwa.a
- ppcbe/lib/libqwaS.a
- ppcbe/lib/libqwa_rcs.a
- ppcbe/lib/libqwa_rcsS.a
SHLE
- shle/lib/libqwa.a
- shle/lib/libqwaS.a
- shle/lib/libqwa_rcs.a
- shle/lib/libqwa_rcsS.a
x86
- x86/lib/libqwa.a
- x86/lib/libqwaS.a
- x86/lib/libqwa_rcs.a
- x86/lib/libqwa_rcsS.a
Header files
- usr/include/qwa_rcs_err.h
- usr/include/qwa_rcs.h
- usr/include/qwa_err.h
- usr/include/qwa_defs.h
- usr/include/qwa.h
The following binary files are installed under base_dir\install\qnxaviage-ap\2.0\ on Windows systems:
- QWALive\QWALive.exe
Sample source code
The following source code files with examples of how to use QNX Aviage Acoustic Processing 2.0 are installed under $QNX_TARGET/:
- etc/readme/qnxaviage-ap/examples/qwa_hf_example/qwa_hf_example.c
- etc/readme/qnxaviage-ap/examples/qwa_rcs_example/qwa_rcs_example.c
Fixed issues
Acoustic Processing 2.0 Rev. 1
- Fixed issue with link error for QNX AAP 2.0 for ARMLE-v7 variant. (Ref# 144147)
Acoustic Processing 2.0
- Fixed issue when diagnostic click did not scale with sample rate. (Ref# 82720)
- Fixed issue when output level for QWA_DIAG_WHITE_BAND_NOISE of qwaDiagPlaySignal depends on sample rate. (Ref# 65276)
- Fixed issue with QWALive controls not being visible when the display resolution is set to 1024x600 pixels. (Ref# 70975)
- Fixed issue where the soft limiter (SDL) malfunctions if clipping occurs near the beginning of a frame shift. (Ref# 74914)
- Fixed issue with latency slider in QWALive not showing the correct values after reinitialization. (Ref# 67330)
- Fixed issue where the receive side signal upsampling in mixed mode creates noise near Nyquist frequency. (Ref# 74952)
- Fixed issue where quantization of the Recv-In signal in conditions of low Recv-In signal levels can freeze send AGC for several minutes. (Ref# 72952)
- Fixed issue where the click test that is run at the beginning of the distortion test did not take the offset value into account. (Ref# 98611)
- Fixed issue where the wind-block algorithm was taking too long to adapt to an environment where wind buffet was not present causing speech quality degradation. (Ref# 94502)
- Fixed issue in QWALive tool where too many cue markers were inserted for dropped packets during audio streaming. (Ref# 67931)
- Fixed issue in QWALive tool where the streaming was continuing even if the library was reset causing audio artifacts in the wave file. (Ref# 68577)
- Fixed issue in QWALive tool where diagnostics cannot play 5 minutes signal. (Ref# 96038)
Known issues
- When the true system latency and the AEC latency as set by qwaRefDelay are significantly different, qwaAECEchoAlign can return values that are misleading. It can be in the wrong direction, or it can return a value close to zero when the true error is very large. (Ref# 103182)
- The wind-block algorithm is temporarily over-aggressive during sudden and large noise increase. (Ref# 75390)
- Temporary echo artifact during sudden radio volume increase. (Ref# 63210)
- Wind buffet suppression disabled when qwaWNDBSuppress set to 0. (Ref# J427799)
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 |
| ADC | Automatic Delay Estimation |
| AGC | Automatic Gain Control |
| BWE | BandWidth Extension |
| DL-In | Downlink Input Audio Signal |
| DLC | Dynamic Level Control |
| DNR | Dynamic Noise Removal |
| DPEQ | Dynamic Parametric Equalization |
| FS | Frame Shift |
| FWHM | Full-Width at Half-Max |
| HF | Hands Free |
| HFE | High Frequency Encoding |
| LFR | Low Frequency Reconstruction |
| MFP | Maximum Frequency Processed |
| Mic-In | Microphone Input Audio Signal |
| Mic-Out | Microphone Output Audio Signal |
| MIX | Dual-channel Capability |
| NLD | Nonlinear Distortion |
| NR | Noise Reduction |
| OAR | Off-Axis Rejection |
| 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 | Soft Dynamic Limiter |
| SR | Sample Rate |
| UL-Out = Mic-Out | Uplink Output Audio Signal |
| VNR | Voice to Noise Ratio |
| WB | WideBand ( 4000 Hz < MFP <= 8000 Hz) |
| WNDB | Wind Buffet |
We used the following hardware for our benchmarks:
| Manufacturer/Target | Freescale/ppcbe | Renesas/shle | Texas Instruments/armle | Texas Instruments/armle-v7 | Intel/x68 |
|---|---|---|---|---|---|
| Board Name | Lite 5200 | Sequoia | DaVinci | IGEP | Intel D945GCLF2 |
| CPU Family | PPC603 | SH-4A | ARM926EJ-S/C64x | ARM Cortex-A8 with NEON | x86 |
| CPU Type | MPC5200 | SH7763 | TMS320DM6446 | OMAP3530 | ATOM N330, dual core |
| Float Unit | Yes | Yes | No | Yes | Yes |
| Clock[MHz] | 396 | 266 | armle: 336 | 720 | 1600 |
| Cache [kb] | 16 Inst./16 Data | 32 Inst./32 Data | armle: 16 Inst./8 Data | 16 Inst./16 Data | 32 Inst./24 Data, 512 L2, per core |
| RAM [MB] | 64 | 64 | 256 | 512 | 2048 |
ROM Benchmarks
| Target HW | ROM |
|---|---|
| ppcbe | 200 KB |
| shle | 180 KB |
| armle | 222 KB |
| armle-v7 | 245 KB |
| x86 | 169 KB |
CPU Load/RAM Usage Benchmarks
NB single channel mode, AEC on, NR on
- DL-In/Mic-In = 8 kHz SR
- Recv-Out/UL-Out = 8 kHz SR
- MFP = 4000 Hz
- Base = AEC + NR
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +BWE = AEC+ + BWE
- +LFR = AEC+ + LFR
| 8 kHz SR mono |
CPU RAM |
|||||
|---|---|---|---|---|---|---|
| Code Base | Target | FS | Base | AEC+ | +BWE | +LFR |
| Floating-point | ppcbe | 128 | 49 MHz 58 KB |
54 MHz 61 KB |
56 MHz 63 KB |
54 MHz 61 KB |
| 64 | 86 MHz 57 KB |
89 MHz 60 KB |
96 MHz 61 KB |
97 MHz 60 KB |
||
| shle | 128 | 42 MHz 58 KB |
45 MHz 61 KB |
48 MHz 63 KB |
48 MHz 61 KB |
|
| 64 | 72 MHz 57 KB |
76 MHz 60 KB |
80 MHz 61 KB |
81 MHz 60 KB |
||
| x86 | 128 | 47 MHz 58 KB |
50 MHz 61 KB |
53 MHz 63 KB |
52 MHz 61 KB |
|
| 64 | 81 MHz 57 KB |
85 MHz 60 KB |
87 MHz 61 KB |
84 MHz 60 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 97 MHz 37 KB |
102 MHz 38.5 KB |
110 MHz 40 KB |
111 MHz 38.5 KB |
| 64 | 173 MHz 36 KB |
179 MHz 38 KB |
189 MHz 38 KB |
192 MHz 38 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 49 MHz 37 KB |
53 MHz 38.5 KB |
57 MHz 40 KB |
57 MHz 38.5 KB |
|
| 64 | 86 MHz 36 KB |
88 MHz 38 KB |
93 MHz 38 KB |
96 MHz 38 KB |
NB dual channel mode, AEC on, NR on, MIX on
- DL-In/(Mic-In)x2 = 8 kHz SR
- Recv-Out/UL-Out = 8 kHz SR
- MFP = 4000 Hz
- OAR = NR + MIX + OAR
- Base = AEC + NR + MIX
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +BWE = AEC+ + BWE
- +LFR = AEC+ + LFR
| 8 kHz SR stereo |
CPU RAM |
||||||
|---|---|---|---|---|---|---|---|
| Code base | Target | FS | OAR | Base | AEC+ | +BWE | +LFR |
| Floating-point | ppcbe | 128 | 34 MHz 28 KB |
73 MHz 80.5 KB |
73 MHz 83 KB |
76 MHz 85 KB |
77 MHz 83 KB |
| 64 | 59 MHz 27 KB |
132 MHz 79 KB |
134 MHz 82 KB |
134 MHz 83 KB |
139 MHz 82 KB |
||
| shle | 128 | 31 MHz 28 KB |
60 MHz 80.5 KB |
63 MHz 83 KB |
67 MHz 85 KB |
66 MHz 83 KB |
|
| 64 | 56 MHz 27 KB |
109 MHz 79 KB |
112 MHz 82 KB |
114 MHz 83 KB |
116 MHz 82 KB |
||
| x86 | 128 | 38 MHz 28 KB |
70 MHz 80.5 KB |
73 MHz 83 KB |
75 MHz 85 KB |
75 MHz 83 KB |
|
| 64 | 64 MHz 27 KB |
124 MHz 79 KB |
128 MHz 82 KB |
130 MHz 83 KB |
131 MHz 82 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 60 MHz 21 KB |
152 MHz 49.5 KB |
155 MHz 51 KB |
162 MHz 52 KB |
163 MHz 51 KB |
| 64 | 113 MHz 20 KB |
284 MHz 49 KB |
282 MHz 50 KB |
293 MHz 51 KB |
299 MHz 50 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 28 MHz 21 KB |
76 MHz 49.5 KB |
80 MHz 51 KB |
82 MHz 52 KB |
83 MHz 51 KB |
|
| 64 | 54 MHz 20 KB |
137 MHz 49 KB |
139 MHz 50 KB |
142 MHz 51 KB |
149 MHz 50 KB |
Mixed WB/NB single channel mode, AEC on, NR on, HFE on
- DL-In = 8 kHz SR
- Mic-In = 16 kHz SR
- Recv-Out = 16 kHz SR
- Mic-Out = 8 kHz SR
- MFP = 4000 Hz
- Base = AEC + NR + HFE
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +BWE = AEC+ + BWE
- +LFR = AEC+ + LFR
| 16/8 kHz SR mono |
CPU RAM |
|||||
|---|---|---|---|---|---|---|
| Code Base | Target | FS | Base | AEC+ | +BWE | +LFR |
| Floating-point | ppcbe | 128 | 59 MHz 88 KB |
63 MHz 91 KB |
79 MHz 95 KB |
66 MHz 91 KB |
| 64 | 103 MHz 86 KB |
109 MHz 88 KB |
125 MHz 90.5 KB |
114 MHz 88 KB |
||
| shle | 128 | 51 MHz 88 KB |
54 MHz 91 KB |
70 MHz 95 KB |
56 MHz 91 KB |
|
| 64 | 85 MHz 86 KB |
89 MHz 88 KB |
107 MHz 90.5 KB |
95 MHz 88 KB |
||
| x86 | 128 | 56 MHz 88 KB |
60 MHz 91 KB |
84 MHz 95 KB |
63 MHz 91 KB |
|
| 64 | 93 MHz 86 KB |
97 MHz 88 KB |
120 MHz 90.5 KB |
103 MHz 88 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 111 MHz 58 KB |
116 MHz 59 KB |
148 MHz 62 KB |
124 MHz 59 KB |
| 64 | 197 MHz 55 KB |
203 MHz 57 KB |
236 MHz 59 KB |
218 MHz 57 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 57 MHz 57.5 KB |
61 MHz 59 KB |
79 MHz 62 KB |
67 MHz 59 KB |
|
| 64 | 98 MHz 55 KB |
102 MHz 57 KB |
120 MHz 59 KB |
110 MHz 57 KB |
Mixed WB/NB dual channel mode, AEC on, NR on, MIX on, HFE on
- DL-In = 8 kHz SR
- (Mic-In)x2 = 16 kHz SR
- Recv-Out = 16 kHz SR
- Mic-Out = 8 kHz SR
- MFP = 4000 Hz
- OAR = NR + MIX + OAR
- Base = AEC + NR + MIX + HFE
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +BWE = AEC+ + BWE
- +LFR = AEC+ + LFR
| 16/8 kHz SR stereo |
CPU RAM |
||||||
|---|---|---|---|---|---|---|---|
| Code base | Target | FS | OAR | Base | AEC+ | +BWE | +LFR |
| Floating-point | ppcbe | 128 | 47 MHz 60 KB |
87 MHz 115 KB |
90 MHz 117 KB |
106 MHz 121.5 KB |
92 MHz 117 KB |
| 64 | 86 MHz 57 KB |
158 MHz 112 KB |
159 MHz 114 KB |
176 MHz 117 KB |
165 MHz 114 KB |
||
| shle | 128 | 42 MHz 60 KB |
73 MHz 115 KB |
75 MHz 117 KB |
92 MHz 121.5 KB |
78 MHz 117 KB |
|
| 64 | 76 MHz 57 KB |
129 MHz 112 KB |
132 MHz 114 KB |
149 MHz 117 KB |
138 MHz 114 KB |
||
| x86 | 128 | 50 MHz 60 KB |
84 MHz 115 KB |
86 MHz 117 KB |
108 MHz 121.5 KB |
89 MHz 117 KB |
|
| 64 | 88 MHz 57 KB |
145 MHz 112 KB |
149 MHz 114 KB |
170 MHz 117 KB |
156 MHz 114 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 81 MHz 42 KB |
173 MHz 72 KB |
175 MHz 74 KB |
205 MHz 77 KB |
184 MHz 74 KB |
| 64 | 150 MHz 40 KB |
322 MHz 70 KB |
319 MHz 72 KB |
351 MHz 74 KB |
336 MHz 72 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 42 MHz 42 KB |
89 MHz 72 KB |
92 MHz 74 KB |
109 MHz 77 KB |
97 MHz 74 KB |
|
| 64 | 73 MHz 40 KB |
158 MHz 70 KB |
160 MHz 72 KB |
176 MHz 74 KB |
169 MHz 72 KB |
WB single channel mode, AEC on, NR on
- DL-In/Mic-In = 16 kHz SR
- Recv-Out/UL-Out = 16 kHz SR
- MFP = 8000 Hz
- Base = AEC + NR
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +LFR = AEC+ + LFR
| 16 kHz SR mono |
CPU RAM |
||||
|---|---|---|---|---|---|
| Code Base | Target | FS | Base | AEC+ | +LFR |
| Floating-point | ppcbe | 128 | 95 MHz 111 KB |
99 MHz 115 KB |
103 MHz 115 KB |
| 64 | 163 MHz 109 KB |
167 MHz 113 KB |
174 MHz 113 KB |
||
| shle | 128 | 82 MHz 111 KB |
87 MHz 115 KB |
90 MHz 115 KB |
|
| 64 | 140 MHz 109 KB |
144 MHz 113 KB |
150 MHz 113 KB |
||
| x86 | 128 | 92 MHz 111 KB |
98 MHz 115 KB |
101 MHz 115 KB |
|
| 64 | 152 MHz 109 KB |
159 MHz 113 KB |
163 MHz 113 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 176 MHz 69 KB |
185 MHz 71 KB |
193 MHz 71 KB |
| 64 | 312 MHz 67 KB |
319 MHz 70 KB |
336 MHz 70 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 95 MHz 69 KB |
101 MHz 71 KB |
106 MHz 71 KB |
|
| 64 | 162 MHz 67 KB |
167 MHz 70 KB |
176 MHz 70 KB |
WB dual channel mode, AEC on, NR on, MIX on
- DL-In/(Mic-In)x2 = 16 kHz SR
- Recv-Out/UL-Out = 16 kHz SR
- MFP = 8000 Hz
- OAR = NR + MIX + OAR
- Base = AEC + NR + MIX
- AEC+ = Base + ADC + DPEQ + SDL + AGC + WNDB + RPEQ + RAGC + RDLC + RENS + RDTF
- +LFR = AEC+ + LFR
| 16 kHz SR stereo |
CPU RAM |
|||||
|---|---|---|---|---|---|---|
| Code base | Target | FS | OAR | Base | AEC+ | +LFR |
| Floating-point | ppcbe | 128 | 64 MHz 53 KB |
142 MHz 155 KB |
144 MHz 158 KB |
149 MHz 158 KB |
| 64 | 113 MHz 50 KB |
257 MHz 152 KB |
257 MHz 157 KB |
263 MHz 157 KB |
||
| shle | 128 | 58 MHz 53 KB |
120 MHz 155 KB |
123 MHz 158 KB |
126 MHz 158 KB |
|
| 64 | 105 MHz 50 KB |
215 MHz 152 KB |
216 MHz 157 KB |
223 MHz 157 KB |
||
| x86 | 128 | 72 MHz 53 KB |
139 MHz 155 KB |
144 MHz 158 KB |
146 MHz 158 KB |
|
| 64 | 126 MHz 50 KB |
244 MHz 152 KB |
246 MHz 157 KB |
253 MHz 157 KB |
||
| Fixed-point | armle (ARM9/11) | 128 | 107 MHz 39 KB |
281 MHz 93.5 KB |
284 MHz 96 KB |
293 MHz 96 KB |
| 64 | 202 MHz 37 KB |
521 MHz 92 KB |
514 MHz 94 KB |
532 MHz 94 KB |
||
| armle-v7 (Cortex-A8/Neon/v7) | 128 | 57 MHz 39 KB |
147 MHz 93.5 KB |
150 MHz 96 KB |
156 MHz 96 KB |
|
| 64 | 102 MHz 37 KB |
263 MHz 92 KB |
264 MHz 94 KB |
274 MHz 94 KB |
CPU Load benchmarks were calculated when running the library alone on the platforms listed above. CPU Load benchmarks may vary with the audio input to the library. Benchmarks for the 11025Hz, 22050Hz, 32000Hz, 44100Hz supported sample rates, are available upon request.
Processing Time
The QNX AAP 2.0 HF processing introduces the following delay in the Mic-In to Mic-Out (Mic-path) and Recv-In to Recv-Out (Recv-path) audio paths:
| FS | ||
|---|---|---|
| Standard | Over-sample | |
| Mic-path[ms] | 17 + t_proc | 25 + t_proc |
| Recv-path[ms] | 1 + t_proc | 1 + t_proc |
The t_proc value represents the time duration for processing one frame of hands-free audio with the qwaAudioIn() and qwaAudioOut() function calls (duration depends on CPU speed).
Documentation
The functionality provided by this package is described in the QNX Aviage Acoustic Processing User's Guide, which you'll find in the IDE's help system on Linux and Windows systems. On self-hosted Neutrino systems, you can find the documentation in the Photon helpviewer.
You'll find the QWALive User's Guide installed as base_dir\install\qnxaviage-ap\2.0\QWALive.pdf on Windows systems, where base_dir is where you installed QNX Momentics or QNX SDP.
You'll find the sample programs and a PDF version of the Acoustic Processing User's Guide in the $QNX_TARGET/etc/readme/qnxaviage-ap directory.
Technical support
To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.