AMR (Adaptive Multi Rate)¶
The AMR codec is the latest and most advanced member of the GSM voice codec family.
AMR is specified in the following specs:
- TS 26.090: AMR Speech Codec; Speech Transcoding Functions
- mathematical description of the encoding functions and adaptive/algebraic codebook
- TS 26.091: AMR Speech Codec; Error concealment of lost frames
- TS 26.092; AMR Speech Codec; Comfort Noise Aspects
- how to detect background noise, encode its parameters and re-create it at the decoder
- TS 26.093: AMR Speech Codec; Source Controlled Rate Operation (old 06.93)
- Controlled Rate Operation is what happens during DTX (discontinuous transmission)
- TS 26.094: AMR Speech Codec; Voice Activity Detector
- TS 26.101: AMR Speech Codec; Frame Structure
- defines FR1 and FR2 frame formats used in the back-haul/core network
- TS 26.073: AMR Speech Codec; ANSI C source code
- reference implementation of the codec
- TS 26.074: AMR Speech Codec; Test sequences
- test sequences for testing a codce implementation
- TS 45.009: Link Adaption
- describe the mechanism + inband signalling for rate/link adaption
- SID, codec mode indication/request/command, RATSCCH
- TS 28.062: Tandem Free Operation
- a method by which the double-transcoding in a MO-to-MT call can be avoided
- TS 26.071: Overall description of speech processing
AMR Rate/Link Adaption¶At any given time, there is a so-called active set of four AMR codec modes within each (voice) channel. Which four modes is defined by a number of different procedures, e.g.
- Layer 3 signalling from BSC to BTS (RSL CHANNEL MODE MODIFY, ASSIGNMENT COMMAND, HANDOVER COMMAND)
- RATSCCH based signalling, using stealing frames from the speech channel (like FACCH)
- a RR MultiRate configuration IE (TS 44.018 10.5.2.21aa) to the MS, to control the MS side rate adaptation
- a RSL MultiRate configuration IE (TS 48.058 9.3.52) to the BTS, to control the BTS side rate adaptation
- a RSL MultiRate control IE (TS 48.058 9..353) to the BTS, to provide further configuration, such as whether or not TFO shall be used, whether RATSCCH is enabled, ...
- up to four different AMR codec modes, together with a C/I threshold + hysteresis the determine the selection of the respective codec
- whether Noise Suppressions shall be enabled
- how the initial codec modec is to be selected
Besides the initial assignment / channel activation, the same IE can also be communicated at later points in time e.g. in CHANNEL MODE MODIFY and HANDOVER COMMAND messages.
If at channel activation time there is no codec mode specified by Layer3 or RATSCCH, there are some
default rules (TS 45.009 Chapter 3.4.3) that define which of the codecs will be used for the first speech frames.
The content of this configuration is a set of codec rates and C/I (carrier/inteference) thresholds,
which are to be applied. Also, the initial codec mode can be specified.
When one of the network-specified thresholds is reached, the codec mode command/command procedure is
- if the MS detects a C/I threshold on incoming downlink bursts was hit, it requests a new codec mode using the CODEC MODE REQUEST (CMR)
- if the BTS detects a C/i threshold on incoming uplink bursts was hit, it will instruct the MS to use a different codec in the uplink direction using a CODEC MODE COMMAND (CMC)
Furthermore, each sender frequently uses the CODEC MODE INDICATION (CMI) to let the recipient know which codec was used to encode the speech frames.
The CMI/CMC/CMR fields are not part of every voice frame on the Um interface. Rather, they are switched/multiplexed, i.e the same bits in the message have different role depending on the time / frame number at whcih they are sent.
The BTS converts between the Um interface of AMR and the RTP encapsulation for RTP. On RTP, each packet always contains an indication of the mode used for this codec frame at the transmitter (FT field) and the CMR of what the transmitter requests the peer to use in the opposite direction.