- Print
- PDF
This article is intended to give the reader a complete description of how Accedianβs Skylight suite of products calculate the Mean Opinion Score (MOS), a general and widely-used metric, to state the quality for Voice over IP (VoIP).
Skylight sensor: control and Measurement Data
The Accedian Skylight measurement system collects measurement data using active performance monitoring sessions injected by the Skylight sensor: control. The data is periodically pushed to the Skylight orchestrator for storage and analysis. The Skylight sensor: controls measure per-packet data, but distill this into result records (RR) that are sent upstream to the Skylight orchestrator.
For VoIP measurements, the Skylight sensor: controls emulate telephone voice packet streams. For such sessions, the Mean Opinion Score (MOS) can be calculated based on the RR data on the Skylight orchestrator.
Result records are created using a fixed configurable measurement interval, by default every 30 seconds.
The calculation of MOS follows the appropriate ITU standards using the E-model [2]. However, several simplifications have been made since many of the parameters in the E- model are based on acoustical and analog models that are not relevant in a computer networking transmission environment.
Playout Buffers
Since the Skylight sensor: control is not actually playing out the audio, it emulates a playout buffer (jitter buffer) to calculate a quality measure for the audio. Such a playout buffer absorbs jitter while not delaying the data more than necessary. If the playout buffer is too large, the end-to-end (E2E) delay will be higher and thus affect the MOS value negatively. If the playout buffer is too short, packets will be lost and also affect the MOS value negatively.
During calculation of MOS value, the Skylight orchestrator assumes a number of different playout buffers based on the delay and jitter values of a measurement interval. The reasoning is that a playout buffer adapts to a changing delay and jitter and that such an algorithm is implemented in a hypothetical system. The playout buffers in the Skylight system are in a sense optimal in that they are computed in retrospect when the delay and jitter values are known. A real jitter buffer does not have such knowledge but must act on packets when they arrive at the receiver.
The MOS and R-value metrics that are exported from Skylight orchestrator via CSV and XML feeds do not include any added virtual packet loss due to jitter buffer overflow but represents the pure MOS value of the network itself.
A packet trace showing the end-to-end delay of individual packets. The median, 96%, 98% and 99% delay percentiles are also shown.
There are several ways to calculate the length of the playout buffers. One simple way is to use the delay percentiles of the traffic and shape the playout buffers based on that. All packets are then delayed to that percentile, while packets arriving later are discarded.
Assume for example the distribution shown in the above figure, where the 99% delay percentile is
102ms. The playout buffer is then designed so that all packets arriving with a shorter delay are stored until 102ms have passed. 1% of the packets, those that arrive after 102ms, are dropped.
Another method is to use a delay jitter measure combined with the mean or median to create a playout buffer. This is the method used in the Skylight sensor: controls. The jitter as defined in [1] and the percentiles of the jitter is computed. The (hypothetical) playout buffer is then set to delay all packets uniformly to the median plus a jitter percentile. Additionally, the packet encoding time is added. Packet encoding time is the packet processing time, i.e., a 50Hz stream has 20ms packet encoding time. Packet loss is also increased with lower jitter percentiles as follows:
- 99% jitter percentile: Latency is set to the median plus the 99% jitter percentile. Packet loss is increased with 0%.
- 98% jitter percentile: latency is set to the median plus the 98% jitter percentile. Packet loss is increased with 2%.
- 96% jitter percentile: latency is set to the median plus the 96% jitter percentile. Packet loss is increased with 4%.
The 96%, 98% and 99% limits are sometimes referred to as bad, good and best quality.
Further, the loss is computed as absolute loss plus reorder divided by the number of received packets plus lost minus duplicated packets.
General
The E-model [2] defines the rating factor R as:
π
= π
0 β πΌπ β πΌπ β πΌπβπππ + π΄
where
- π 0 is the basic signal to noise ration
- πΌπ is the simultaneous impairment factor
- πΌπ is the delay impairment factor
- πΌπβπππ is the effective equipment impairment factor
- π΄ is the advantage factor
R to MOS mapping
πππ can be calculated from π
using [2], appendix B:
πππ = 1 + 0.035π
+ π
(π
β 60)(100 β π
)7 β 10β6 In the range 0 < π
< 100. This function is shown in the above figure.
For advanced codecs, an R-value range of 0-129 is used, the mapping towards MOS of Rvalues larger than 100 is fixed to 4.5.
The rest of this article describes how each component of equation 1 is computed.
The Basic Signal-To-Noise Ratio
The basic signal-to-noise ratio π 0 is set to 129 following [2] default values and was updated in 2015 according to the latest version of the ITU-T model catering for wideband codecs. This value was previously set to 93.2. This also has the effect that the constant used in the formula to calculate πΌπβπππ has increased from 95 to 130.8 with the introduction of wideband codec support. In the Accedian Skylight system, π 0 can be preset to another fixed value.
The Simultaneous Impairment Factor
πΌπ includes loudness factors, sidetones and quantizing distorsion. πΌπ is set by default to 0. πΌπ is also a configured value.
It should be noted that πΌπ is 1.42 using the default values of [2], but are by most systems set to 0.
The Delay Impairment Factor
πΌπ is dependent on talker and listener echoes and absolute delay:
πΌπ = πΌππ‘π + πΌπππ + πΌππ
The echo delay factors πΌππ‘π and πΌπππ I are configurable and set to 0 by default.
Values when absolute delay in ms (ππ) is changed, all other values kept cons
The dependency of absolute delay, πΌππ follows [2]. It is 0 for absolute delay (ππ) values up to 100ππ and increases slowly for values above 100ππ . Figure 3 shows the effect of πΌππ on π
when ππ is varied, all other factors are kept constant.
The computation of πΌππ is given below in C-code for ππ values above 100ππ : double X, Id;
X = (log(Ta100.0))/log(2);
Idd = 25* (pow(1+pow(X,6),1.0/6.0) -3* pow(1+pow(X/3.0,6),1.0/6.0)+2);
In the Skylight measurement system, ππ is approximated over the measurement interval (default 30s). The MOS calculation assumes a fixed jitter buffer that drops all packets with a ππ higher than a set of limits.
Note that this means that no jitter value is directly involved in the calculation of πΌπ .
The Effective Equipment Impairment Factor
π β πππ dependency on packet loss for a selected set of codecs at random loss
π β πππ is dependent on equipment which includes codecs and effects of losses on codecs.
where the components of equation 4 are as follows:
- πΌπ is the Equipment impairment factor,
- πππ is the packet-loss probability,
- π΅ππ is the packet-loss robustness factor,
- π΅π’ππ π‘π is Burst Ratio.
Bpl and πΌπ values for a selected set of codecs
Codec Name | UDPBpl | UDP impairment Value |
---|---|---|
G.722-hq | 7.1 | 5 |
G.722-lc | 5.1 | 5 |
G.722.2 23kbps | 4.6 | 8 |
G.722.2 12kbps | 4.3 | 20 |
G.729.1 32kbps | 6.1 | 7 |
G.729.1 24kbps | 7.3 | 16 |
G.711 | 25.1 | 35.8 |
G.723.1 | 16.1 | 50.8 |
G.729a | 19.0 | 46.8 |
G.729 | 19.0 | 40.8 |
GSMEfr (AMR-NB) | 10.0 | 58.8 |
GSMHr | 10.0 | 58.8 |
The values of Ie are codec dependent and set according to the standard [3]. A selected set of values are shown in Table 1. Note however, that these values are valid for normal conditions and may be different under error conditions or large packet sizes. The standard is not complete in this area, so the base cases shown in Table 1 are always used in the system.
The packet loss probability Ppl is the percentage of packets lost during a measurement interval added to the packets loss due to the jitter buffer described in Chapter 2. For example, if the 98% delay quantile is selected, and the packet loss during an interval is 1:2%, then Ppl = 3.2%
Bpl is also taken from the standard [3]. The values are as shown in the above table for some codecs.
Again, the standard is somewhat unclear on some cases, so these are the values used.
Finally, π΅π’ππ π‘π is a burst measure which is 0 at random loss. π΅π’ππ π‘π is however currently not reported by the Skylight sensor: controls.
The Advantage Factor
The advantage factor is set to 0 by default but can be preset to another fixed value.
Reconfiguration of Constants
All three constants used in the MOS and R calculations are configurable via SkyLIGHT Director advanced CLI settings but it is not recommended to change these parameters unless advised so by Accedian. The constant names and default values are shown below:
- MOS_R0 = 129.0 - Base signal-to-noise ratio
- MOS_Is = 0 - Simultaneous impairment factor
- MOS_A = 0 - Advantage factor
Examples
General
In this section, MOS values for some codecs are presented. For each codec, two graphs are shown. One where the loss is zero and the end-to-end (E2E) delay is varied delay, and one where the delay is constant, but the loss is varied.
The MOS value is computed for four different playout buffers:
- Max β The playout-buffer is adapted to the packet with the longest delay
- 99% β The playout-buffer is adapted to the 99th delay percentile. That is, one percent
- of the packets are dropped by the playout buffer since they arrive too late
- 98% β The playout-buffer is adapted to the 98th delay percentile
- 96% β The playout-buffer is adapted to the 96th delay percentile
In the following section graphs for these codecs are shown:
- Graphs for G711 with loss concealment
- Graphs for G723.1
- Graphs for G729.a
- Graphs for GSMEfr
Codec β G.711
G.711 delay dependency
G.711 loss dependency
Codec β G.723.1
G.723.1 delay dependency
G.723.1 loss dependency
Codec β G.729.a
G.729.a delay dependency
G.729.a loss dependency
Codec β GSME Full-Rate
GSMEfr delay dependency
GSMEfr loss dependency
Β© 2024 Cisco and/or its affiliates. All rights reserved.
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms
For legal information about Accedian Skylight products, please visit: Accedian legal terms and tradmarks