GSM AMR | AMR-NB
Adaptive Multi-Rate Narrowband G.722.2 speech codec
AMR includes Voice Activity Detection (VAD) and Discontinuous Transmission (DTX.
Features List
Functions are C-callable
Multiple channel capable
Complies with ETSI test vectors (bit-exact)
Can be integrated with echo cancellers, and tone detection/regeneration
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. It 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. GSM AMR provides toll quality speech starting at 7.4 kbps, with near-toll quality and better robustness at lower rates.The coder uses algebraic code excited linear prediction (ACELP) as the compression method.
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.
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
Copy of Availability
Platforms Arm ® Devices – Armv7-A | Armv8-A | Armv9-A || Armv7-M | Armv8-M || Legacy Arm9E / Arm11 Texas Instruments – TI TMS320C7000 C7x, TMS320C6000 C64x/C64x+/C66x, TMS320C5000 C55x MIPS32® 24KE™
ADT GSM AMR is available on the above Platforms: Other configurations are available upon request.
Specifications
NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.
↓ Click on links below to view specification tables.
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 |
MIPS – CPU Utilization
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 Utilizationbit 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 |
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 |
Note: All CPU usage given in MIPS (also known as MCPS or MHz)
GSM AMR-NB MIPS32 24KE
MIPS – CPU Utilizationbit 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 |
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 K | 33 K | 3.4 K |
Description
The GSM AMR coder supports eight bit rates: 12.2, 10.2, 7.95, 7.40, 6.7, 5.9, 5.15, and 4.75 kbps. The coder uses algebraic code excited linear prediction (ACELP) as the compression method. 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.