The binary code for running functions is contained in DSP files. One or more functions are contained in each file. NMS boards differ in the total number of DSPs they contain and the speed of the DSPs on the board.
DSP speed is measured in millions of instructions per second (MIPS). Each function that runs on a DSP consumes MIPS. If the total MIPS consumption for all the requested functions on all the ports of a given board exceeds the total MIPS available for that board, an error event occurs. If MIPS-intensive functions are required, you can reduce the total number of ports on a board, which makes more MIPS per port available.
The following table shows the MIPS usage for all the available functions shipped with Natural Access:
|
DSP file |
Function |
MIPS |
Related API function |
Related arguments |
|---|---|---|---|---|
|
adsir.m54 |
ADSI receiver |
3.13 |
adiStartReceivingFSK |
|
|
adsix.m54 |
ADSI transmitter |
1.13 |
adiStartSendingFSK |
|
|
callp.m54 |
Call progress |
1.06 |
adiStartCallProgress |
|
|
dtmf.m54 |
DTMF only |
0.69 |
adiStartDTMFDetector |
|
|
dtmf.m54 |
Post- and pre-tone silence |
0.69 |
adiStartEnergyDetector |
|
|
dtmf.m54 |
DTMF, post- and pre-tone silence |
1.94 |
adiStartToneProtocol |
|
|
g726.m54 |
G.726 Play |
7.63 |
adiStartPlaying |
encoding = ADI_ENCODE_G726 |
|
g726.m54 |
G.726 Record |
7.25 |
adiStartRecording |
encoding = ADI_ENCODE_G726 |
|
gsm_ms.m54 |
MS-GSM Play |
2.10 |
adiStartPlaying |
encoding = ADI_ENCODE_GSM |
|
gsm_ms.m54 |
MS-GSM Record |
4.40 |
adiStartRecording |
encoding = ADI_ENCODE_GSM |
|
gsm_mspl.m54 |
MS-GSM Play limit 8 kHz |
2.80 |
adiStartPlaying |
encoding = ADI_ENCODE_GSM |
|
gsm_mspl.m54 |
MS-GSM Record |
4.40 |
adiStartRecording |
encoding = ADI_ENCODE_GSM |
|
ima.m54 |
IMA/DVI ADPCM Play |
2.06 |
adiStartPlaying |
encoding = ADI_ENCODE_IMA_24 |
|
ima.m54 |
IMA/DVI ADPCM Play |
1.81 |
adiStartPlaying |
encoding = ADI_ENCODE_IMA_32 |
|
ima.m54 |
IMA/DVI ADPCM Record |
2.19 |
adiStartRecording |
encoding = ADI_ENCODE_IMA_24 |
|
imaply.m54 |
IMA/DVI ADPCM Record |
2.00 |
adiStartRecording |
encoding = ADI_ENCODE_IMA_32 |
|
mf.m54 |
Forward detect, backward compelling |
2.56 |
adiStartMFDetector |
|
|
mf.m54 |
Backward detect, forward compelling |
2.56 |
adiStartMFDetector |
|
|
mf.m54 |
MF detection |
1.81 |
adiStartMFDetector |
|
|
mf.m54 |
MF forward detection |
1.81 |
adiStartMFDetector |
|
|
mf.m54 |
MF backward detection |
1.81 |
adiStartMFDetector |
|
|
oki.m54 |
OKI Play |
2.19 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_24, |
|
oki.m54 |
OKI Play |
2.06 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_32, |
|
oki.m54 |
OKI Play |
4.13 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_24, |
|
oki.m54 |
OKI Play |
3.63 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_32, |
|
oki.m54 |
OKI Play |
5.44 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_24, |
|
oki.m54 |
OKI Play |
4.81 |
adiStartPlaying |
encoding
= ADI_ENCODE_OKI_32, |
|
oki.m54 |
OKI Record |
2.25 |
adiStartRecording |
encoding = ADI_ENCODE_OKI_24 |
|
oki.m54 |
OKI Record |
2.00 |
adiStartRecording |
encoding = ADI_ENCODE_OKI_32 |
|
ptf.m54 |
2 single freq or 1 tone pair |
1.25 |
adiStartToneDetector |
|
|
ptf.m54 |
4 single freq or 2 tone pair |
1.81 |
adiStartCallProgress |
precmask!=0 |
|
rvoice.m54 |
mu-law Play |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_MULAW |
|
rvoice.m54 |
A-law Play |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_ALAW |
|
rvoice.m54 |
WAVE Play, |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_PCM8M16 |
|
rvoice.m54 |
mu-law Record |
0.63 |
adiStartRecording |
encoding = ADI_ENCODE_MULAW |
|
rvoice.m54 |
A-law Record |
0.63 |
adiStartRecording |
encoding = ADI_ENCODE_ALAW |
|
rvoice.m54 |
WAVE Record, |
0.63 |
adiStartRecording |
encoding = ADI_ENCODE_PCM8M16 |
|
rvoice_vad.m54 |
mu-law Play |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_MULAW |
|
rvoice_vad.m54 |
A-law Play |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_ALAW |
|
rvoice_vad.m54 |
WAVE Play, |
0.63 |
adiStartPlaying |
encoding = ADI_ENCODE_PCM8M16 |
|
rvoice_vad.m54 |
mu-law Record |
0.88 |
adiCommandRecord adiStartRecording |
encoding = ADI_ENCODE_MULAW |
|
rvoice_vad.m54 |
A-law Record |
0.88 |
adiCommandRecord adiStartRecording |
encoding = ADI_ENCODE_ALAW |
|
rvoice_vad.m54 |
WAVE Record, |
0.88 |
adiCommandRecord adiStartRecording |
encoding = ADI_ENCODE_PCM8M16 |
|
tone.m54 |
Tone generator |
0.75 |
adiStartDial adiStartDTMF adiStartTones |
|
|
voice.m54 |
NMS Play |
3.13 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_16, |
|
voice.m54 |
NMS Play |
3.13 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_24, |
|
voice.m54 |
NMS Play |
3.13 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_32, |
|
voice.m54 |
NMS Play |
0.63 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_64, |
|
voice.m54 |
NMS Play 16 |
5.63 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_16, |
|
voice.m54 |
NMS Play 24 |
5.81 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_24, |
|
voice.m54 |
NMS Play 32 |
5.81 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_32, |
|
voice.m54 |
NMS Play 64 |
2.31 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_64, |
|
voice.m54 |
NMS Play 16 |
7.19 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_16, |
|
voice.m54 |
NMS Play 24 |
7.50 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_24, |
|
voice.m54 |
NMS Play 32 |
7.44 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_32, |
|
voice.m54 |
NMS Play 64 |
2.81 |
adiStartPlaying |
encoding
= ADI_ENCODE_NMS_64, |
|
voice.m54 |
NMS Record |
3.38 |
adiStartRecording |
encoding = ADI_ENCODE_NMS_16 |
|
voice.m54 |
NMS Record |
3.38 |
adiStartRecording |
encoding = ADI_ENCODE_NMS_24 |
|
voice.m54 |
NMS Record |
3.38 |
adiStartRecording |
encoding = ADI_ENCODE_NMS_32 |
|
voice.m54 |
NMS Record |
0.63 |
adiStartRecording |
encoding = ADI_ENCODE_NMS_64 |
|
wave.m54 |
WAVE Play |
1.56 |
adiStartPlaying |
encoding = ADI_ENCODE_PCM11M8 |
|
wave.m54 |
WAVE Play |
1.44 |
adiStartPlaying |
encoding = ADI_ENCODE_PCM11M16 |
|
wave.m54 |
WAVE Record |
1.5 |
adiStartRecording |
encoding = ADI_ENCODE_PCM11M8 |
|
wave.m54 |
WAVE Record |
1.13 |
adiStartRecording |
encoding = ADI_ENCODE_PCM11M16 |
The following table shows the correspondence between the filter and adapt values used for the echo canceller and MIPS consumption:
|
DSP file |
Filter length (ms) |
Adapt time (ms) |
MIPS |
|---|---|---|---|
|
echo.m54 |
2 |
100 |
2.75 |
|
echo.m54 |
2 |
200 |
2.38 |
|
echo.m54 |
2 |
400 |
2.25 |
|
echo.m54 |
2 |
800 |
2.13 |
|
echo.m54 |
4 |
100 |
3.13 |
|
echo.m54 |
4 |
200 |
2.63 |
|
echo.m54 |
4 |
400 |
2.38 |
|
echo.m54 |
4 |
800 |
2.25 |
|
echo.m54 |
6 |
100 |
3.50 |
|
echo.m54 |
6 |
200 |
2.88 |
|
echo.m54 |
6 |
400 |
2.63 |
|
echo.m54 |
6 |
800 |
2.50 |
|
echo.m54 |
8 |
100 |
3.88 |
|
echo.m54 |
8 |
200 |
3.13 |
|
echo.m54 |
8 |
400 |
2.88 |
|
echo.m54 |
8 |
800 |
2.75 |
|
echo.m54 |
10 |
100 |
4.25 |
|
echo.m54 |
10 |
200 |
3.50 |
|
echo.m54 |
10 |
400 |
3.00 |
|
echo.m54 |
10 |
800 |
2.88 |
|
echo.m54 |
16 |
100 |
5.25 |
|
echo.m54 |
16 |
200 |
4.25 |
|
echo.m54 |
16 |
400 |
3.63 |
|
echo.m54 |
16 |
800 |
3.38 |
|
echo.m54 |
20 |
100 |
5.63 |
|
echo.m54 |
20 |
200 |
4.50 |
|
echo.m54 |
20 |
400 |
3.88 |
|
echo.m54 |
20 |
800 |
3.38 |
|
echo_v3.m54 |
24 |
100 |
8.56 |
|
echo_v3.m54 |
24 |
200 |
6.13 |
|
echo_v3.m54 |
24 |
400 |
4.88 |
|
echo_v3.m54 |
24 |
800 |
4.25 |
|
echo_v3.m54 |
32 |
100 |
10.75 |
|
echo_v3.m54 |
32 |
200 |
7.56 |
|
echo_v3.m54 |
32 |
400 |
5.94 |
|
echo_v3.m54 |
32 |
800 |
5.13 |
|
echo_v3.m54 |
40 |
100 |
13.00 |
|
echo_v3.m54 |
40 |
200 |
9.00 |
|
echo_v3.m54 |
40 |
400 |
7.00 |
|
echo_v3.m54 |
40 |
800 |
6.00 |
|
echo_v3.m54 |
48 |
100 |
15.25 |
|
echo_v3.m54 |
48 |
200 |
10.44 |
|
echo_v3.m54 |
48 |
400 |
8.06 |
|
echo_v3.m54 |
48 |
800 |
6.88 |
|
echo_v3.m54 |
64 |
100 |
19.69 |
|
echo_v3.m54 |
64 |
200 |
13.31 |
|
echo_v3.m54 |
64 |
400 |
10.19 |
|
echo_v3.m54 |
64 |
800 |
8.56 |
|
echo_v4.m54 |
2 |
100 |
4.125 |
|
echo_v4.m54 |
2 |
200 |
3.938 |
|
echo_v4.m54 |
2 |
400 |
3.875 |
|
echo_v4.m54 |
2 |
800 |
3.813 |
|
echo_v4.m54 |
4 |
100 |
4.438 |
|
echo_v4.m54 |
4 |
200 |
4.188 |
|
echo_v4.m54 |
4 |
400 |
4.063 |
|
echo_v4.m54 |
4 |
800 |
4.000 |
|
echo_v4.m54 |
6 |
100 |
4.750 |
|
echo_v4.m54 |
6 |
200 |
4.438 |
|
echo_v4.m54 |
6 |
400 |
4.313 |
|
echo_v4.m54 |
6 |
800 |
4.188 |
|
echo_v4.m54 |
8 |
100 |
5.063 |
|
echo_v4.m54 |
8 |
200 |
4.688 |
|
echo_v4.m54 |
8 |
400 |
4.500 |
|
echo_v4.m54 |
8 |
800 |
4.438 |
|
echo_v4.m54 |
10 |
100 |
5.375 |
|
echo_v4.m54 |
10 |
200 |
4.938 |
|
echo_v4.m54 |
10 |
400 |
4.750 |
|
echo_v4.m54 |
10 |
800 |
4.625 |
|
echo_v4.m54 |
16 |
100 |
6.313 |
|
echo_v4.m54 |
16 |
200 |
5.688 |
|
echo_v4.m54 |
16 |
400 |
5.375 |
|
echo_v4.m54 |
16 |
800 |
5.188 |
|
echo_v4.m54 |
20 |
100 |
6.938 |
|
echo_v4.m54 |
20 |
200 |
6.188 |
|
echo_v4.m54 |
20 |
400 |
5.813 |
|
echo_v4.m54 |
20 |
800 |
5.625 |
|
echo_v4.m54 |
24 |
100 |
10.375 |
|
echo_v4.m54 |
24 |
200 |
7.938 |
|
echo_v4.m54 |
24 |
400 |
6.750 |
|
echo_v4.m54 |
24 |
800 |
6.125 |
|
echo_v4.m54 |
32 |
100 |
12.625 |
|
echo_v4.m54 |
32 |
200 |
9.375 |
|
echo_v4.m54 |
32 |
400 |
7.813 |
|
echo_v4.m54 |
32 |
800 |
7.000 |
|
echo_v4.m54 |
40 |
100 |
14.813 |
|
echo_v4.m54 |
40 |
200 |
10.875 |
|
echo_v4.m54 |
40 |
400 |
8.875 |
|
echo_v4.m54 |
40 |
800 |
7.875 |
|
echo_v4.m54 |
48 |
100 |
17.063 |
|
echo_v4.m54 |
48 |
200 |
12.313 |
|
echo_v4.m54 |
48 |
400 |
9.938 |
|
echo_v4.m54 |
48 |
800 |
8.750 |
|
echo_v4.m54 |
64 |
100 |
21.500 |
|
echo_v4.m54 |
64 |
200 |
15.188 |
|
echo_v4.m54 |
64 |
400 |
12.000 |
|
echo_v4.m54 |
64 |
800 |
10.438 |