AMR » History » Version 3
laforge, 01/28/2021 01:06 PM
1 | 1 | laforge | |
---|---|---|---|
2 | 2 | laforge | h1. AMR (Adaptive Multi Rate) |
3 | |||
4 | |||
5 | 1 | laforge | The AMR codec is the latest and most advanced member of the GSM voice codec family. |
6 | |||
7 | |||
8 | 2 | laforge | h2. Specification |
9 | |||
10 | |||
11 | 1 | laforge | AMR is specified in the following specs: |
12 | |||
13 | 2 | laforge | * TS 26.090: AMR Speech Codec; Speech Transcoding Functions |
14 | ** mathematical description of the encoding functions and adaptive/algebraic codebook |
||
15 | * TS 26.091: AMR Speech Codec; Error concealment of lost frames |
||
16 | * TS 26.092; AMR Speech Codec; Comfort Noise Aspects |
||
17 | ** how to detect background noise, encode its parameters and re-create it at the decoder |
||
18 | * TS 26.093: AMR Speech Codec; Source Controlled Rate Operation (old 06.93) |
||
19 | ** Controlled Rate Operation is what happens during DTX (discontinuous transmission) |
||
20 | ** |
||
21 | * TS 26.094: AMR Speech Codec; Voice Activity Detector |
||
22 | * TS 26.101: AMR Speech Codec; Frame Structure |
||
23 | ** defines FR1 and FR2 frame formats used in the back-haul/core network |
||
24 | * TS 26.073: AMR Speech Codec; ANSI C source code |
||
25 | ** reference implementation of the codec |
||
26 | * TS 26.074: AMR Speech Codec; Test sequences |
||
27 | ** test sequences for testing a codce implementation |
||
28 | * TS 45.009: Link Adaption |
||
29 | ** describe the mechanism + inband signalling for rate/link adaption |
||
30 | ** SID, codec mode indication/request/command, RATSCCH |
||
31 | 1 | laforge | |
32 | Related specs |
||
33 | 2 | laforge | * TS 28.062: Tandem Free Operation |
34 | ** a method by which the double-transcoding in a MO-to-MT call can be avoided |
||
35 | * TS 26.071: Overall description of speech processing |
||
36 | 1 | laforge | |
37 | |||
38 | 2 | laforge | h2. Details |
39 | 1 | laforge | |
40 | 2 | laforge | |
41 | 3 | laforge | h3. AMR Rate/Link Adaption |
42 | 1 | laforge | |
43 | 3 | laforge | 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. |
44 | * Layer 3 signalling from BSC to BTS (RSL CHANNEL MODE MODIFY, ASSIGNMENT COMMAND, HANDOVER COMMAND) |
||
45 | * RATSCCH based signalling, using stealing frames from the speech channel (like FACCH) |
||
46 | 1 | laforge | |
47 | 3 | laforge | During call set-up and/or handover, the BSC communicates |
48 | * a _RR MultiRate configuration IE_ (TS 44.018 10.5.2.21aa) to the MS, to control the MS side rate adaptation |
||
49 | * a _RSL MultiRate configuration IE_ (TS 48.058 9.3.52) to the BTS, to control the BTS side rate adaptation |
||
50 | * 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, ... |
||
51 | 1 | laforge | |
52 | 3 | laforge | These IEs give a description of the multi-rate function to the MS and BTS, respectively. They contains |
53 | * up to four different AMR codec modes, together with a C/I threshold + hysteresis the determine the selection of the respective codec |
||
54 | * whether Noise Suppressions shall be enabled |
||
55 | * how the initial codec modec is to be selected |
||
56 | 1 | laforge | |
57 | 3 | laforge | 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. |
58 | 1 | laforge | |
59 | If at channel activation time there is no codec mode specified by Layer3 or RATSCCH, there are some |
||
60 | default rules (TS 45.009 Chapter 3.4.3) that define which of the codecs will be used for the first speech frames. |
||
61 | The content of this configuration is a set of codec rates and C/I (carrier/inteference) thresholds, |
||
62 | which are to be applied. Also, the initial codec mode can be specified. |
||
63 | 2 | laforge | |
64 | 1 | laforge | When one of the network-specified thresholds is reached, the codec mode command/command procedure is |
65 | invoked. |
||
66 | |||
67 | * Downlink |
||
68 | ** 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)_ |
||
69 | 2 | laforge | * Uplink |
70 | ** 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)_ |
||
71 | |||
72 | 3 | laforge | Furthermore, each sender frequently uses the _CODEC MODE INDICATION (CMI)_ to let the recipient know which codec was used to encode the speech frames. |
73 | |||
74 | 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. |
||
75 | |||
76 | 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. |