GSM AMR | AMR-NB
Adaptive Multi-Rate Narrowband speech codec
GSM AMR | AMR-NB provides toll quality speech starting at 7.4 kbps, with near-toll quality and better robustness at lower rates deliving high-quality voice communications across a wide range of network environments.
Availability
[table “” not found /]
ADT GSM AMR is available on the above Platforms: Other configurations are available upon request.
Features
Functions are C-callable
Multiple channel capable
Complies with ETSI test vectors (bit-exact)
Can be integrated with echo cancellers, and tone detection/regeneration
Description
AMR-NB (Adaptive Multi-Rate Narrowband) Speech Codec
GSM AMR or AMR-NB (Narrowband) is an adaptive multi-rate speech coder that has been standardized for use in Third Generation Partnership Project (3GPP) mobile telephony.
Adaptive Digital’s AMR-NB (Adaptive Multi-Rate Narrowband) Speech Codec provides toll quality speech starting at 7.4 kbps, with near-toll quality and better robustness at lower rates.
AMR is the only narrowband (200–3400 Hz) speech codec offering eight different bit rates ranging from 4.75 to 12.2 kbit/s that can be adapted according to network congestion. Designed for real-time voice applications, the codec uses algebraic code excited linear prediction (ACELP) as the compression method to provide toll-quality speech at low bitrates while maintaining robust performance in bandwidth-constrained environments.
AMR also includes Voice Activity Detection (VAD) and Discontinuous Transmission (DTX) as an added way to save bandwidth by sending fewer bits per second when the user is not speaking.
Key Benefits
- Supports eight adaptive bitrates from 4.75 kbps to 12.2 kbps
- Delivers toll-quality speech starting at 7.4 kbps
- ACELP-based compression for efficient bandwidth utilization
- Integrated Voice Activity Detection (VAD)
- Supports Discontinuous Transmission (DTX) to reduce bandwidth consumption
- Real-time encoding and decoding capabilities
Specification Tables
Coding Rate: 12.2, 10.2, 7.95, 7.40, 6.7, 5.9, 5.15, and 4.75 kbps
Sampling Rate: 8 kHz
Delay: 20 milliseconds
ARM Devices
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
GSM-AMR Armv7-A (Cortex-A8/A9/A15)
Memory usage is given in units of bytes.| Function | Program Memory | Data Memory | Scratch Memory | Per Channel Data Memory |
| Encode | — | — | 9280 | 2280 |
| Decode | — | — | 1392 | 1240 |
| Encode/Decode | 145K | 32K | 10672 | 3520 |
| bit rates (kbps) | 4.75 | 5.15 | 5.9 | 6.7 | 7.4 | 7.95 | 10.2 | 12.2 |
| Encode | 70 | 55 | 62 | 75 | 70 | 73 | 75 | 79 |
| Decode | 14 | 13 | 13 | 14 | 13 | 13 | 13 | 13 |
| Encode/Decode | 84 | 68 | 75 | 89 | 83 | 86 | 88 | 92 |
GSM-AMR Armv8-A / Armv9-A (Neoverse N2)
MIPS – CPU Utilization| bit rates (kbps) | 4.75 | 5.15 | 5.9 | 6.7 | 7.4 | 7.95 | 10.2 | 12.2 |
| Encode | 57 | 45 | 51 | 59 | 56 | 60 | 58 | 63 |
| Decode | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
| Encode/Decode | 65 | 53 | 59 | 67 | 64 | 68 | 66 | 71 |
GSM-AMR Cortex-M4/M7
Memory usage is given in units of byte.| Function | Program Memory | Data Memory | Scratch Memory | Per Channel Data Memory |
| Encode | 58 | — | — | 2148 |
| Decode | 8 | — | — | 2200 |
| Encode/Decode | 66 | 102 kbites | 33 kbites | 3.3 kbites |
GSM-AMR Armv8-M Cortex-M33/M35 – Estimate
Memory usage is given in units of byte.| Function | Program Memory | Data Memory | Scratch Memory | Per Channel Data Memory |
| Encode | 81.2 | — | — | 2148 |
| Decode | 11.2 | — | — | 2200 |
| Encode/Decode | 92.4 | 102 kbites | 33 kbites | 3.3 kbites |
TI Processors
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
GSM-AMR C64x+/C66x | C7x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of bytes.
| Software | MIPS (Peak) * | Program Memory | Data Memory | Per-Channel Data Memory | Scratch Memory |
| Encoder (Vad1) | 13.1 | 78772 | 31158 | 1992 | 9280 |
| Encoder (Vad2) | 13.1 | 79700 | 31880 | 2064 | 9280 |
| Decoder | 2.8 | 38332 | 31988 | 1232 | 1392 |
| Encoder (Vad1) & Decoder | 15.9 | 109724 | 32172 | 3224 | 10672 |
| Encoder (Vad2) & Decoder | 15.9 | 110652 | 32892 | 3296 | 10672 |
GSM-AMR C64x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of bytes.
| Software | MIPS (Peak) * | Program Memory | Data Memory | Per-Channel Data Memory | Scratch Memory |
| Encoder (Vad1) | 13 | 107668 | 31158 | 1992 | 9360 |
| Encoder (Vad2) | 13.1 | 108148 | 31880 | 2064 | 9360 |
| Decoder | 2.7 | 53308 | 31988 | 1232 | 1392 |
| Encoder (Vad1) & Decoder | 15.7 | 150556 | 32172 | 3224 | 10752 |
| Encoder (Vad2) & Decoder | 15.7 | 151036 | 32892 | 3296 | 10752 |
GSM-AMR C55x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of bytes.
| Software | MIPS (Peak) | Program Memory | Data Memory | Per-Channel Data Memory | Scratch Memory |
| Encoder | 17.1 | 37782 | 28364 | 1996 | 6424 |
| Decoder | 2.6 | 19840 | 28952 | 1316 | 1200 |
GSM-AMR C54x
CPU Utilization & Memory RequirementsAll Memory usage is given in units of bytes.
| Software | MIPS (Peak) | Program Memory | Data Memory | Per-Channel Data Memory | Scratch Memory |
| Encoder | 18.8 | 19591 | 16725 | 1022 | 5065 |
| Decoder | 2.3 | 8164 | 13604 | 650 | 868 |
| Encoder/Decoder | 21.1 | 25949 | 16191 | 1636 | 5065 |
MIPS32® 24KE™
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
GSM AMR-NB MIPS32 24KE
MIPS – CPU Utilization| bit rates (kbps) | 4.75 | 5.15 | 5.9 | 6.7 | 7.4 | 7.95 | 10.2 | 12.2 |
| Encode | 40.7 | 35.8 | 41.9 | 52.7 | 48.8 | 52.9 | 51.7 | 56.14 |
| Decode | 13.8 | 10.6 | 11.4 | 9.6 | 8.5 | 9.8 | 7.8 | 8.6 |
| Encode/Decode | 54.5 | 46.4 | 53.3 | 62.3 | 57.3 | 62.7 | 59.5 | 64.74 |
| Function | Program Memory | Data Memory | Scratch Memory | Per Channel Data Memory |
| Encode | 58 | — | — | 2148 |
| Decode | 8 | — | — | 2200 |
| Encode/Decode | 66 | 102 K | 33 K | 3.4 K |
API Functions
API function call summary
AMR_ADT_encInit(. . .) Initializes the AMR encoder
AMR_ADT_decInit(. . .) Initializes the AMR decoder
AMR_ADT_encode(. . .) Executes the AMR encoder
AMR_ADT_decode(. . .) Executes the AMR decoder