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
Related specs
  • 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


Codec Negotiaiton / Adaption

At any given time, there is an active set of four speech codecs. Which four is defined by a number of different procedures, e.g.
  • RATSCCH based signalling, using stealing frames from the speech channel (like FACCH)

During call set-up and/or handover, there is a MultiRate configuration IE (TS 44.018 that gives
a description of the multi-rate function to the MS.
There can also be CHANNEL MODE MODIFY and HANDOVER COMMAND messages, containing the same IE.

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

  • Downlink
    • 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)
  • Uplink
    • 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, the sender frequently uses the CODEC MODE INDICATION (CMI) to let the recipient know which codec was used to encode the speech frames.