Mean Opinion Score (MOS)¶
The metric used for estimating voice quality is a Mean Opinion Score (MOS) based on the ITU-T E-model (► ITU-T Recommendation G.107). The inputs are network statistics such as speech codec usage, network delay, jitter, and packet loss. The modified E-model outputs an R-value, which is straightforwardly converted to a MOS value.
The MOS scale is laid out in the following table:
MOS |
Quality |
Impairment |
---|---|---|
5 |
Excellent |
Imperceptible |
4 |
Good |
Perceptible |
3 |
Fair |
Annoying |
2 |
Poor |
Very annoying |
1 |
Bad |
Impossible to communicate |
Calculation of MOS in Paragon Active Assurance¶
The algorithm for calculating MOS in the VoIP task is given below. It follows the ITU-T E-model.
For SIP, the algorithm is the same, but the average delay (davg) is assumed to be 5 ms in this case.
The function takes the following arguments:
loss = packet loss in %
davg = average delay
dmin = minimum delay
dmax = maximum delay
ie = equipment impairment factor
bpl = packet-loss robustness factor (codec-specific)
float Stats::calc_mos(float loss, float davg, float dmin, float dmax, float ie, float bpl)
{
float mos, r, deff;
deff = davg + 2 * (dmax - dmin) + 10;
if (deff < 160)
{
r = 93.2 - deff / 40;
}
else
{
r = 93.2 - (deff - 120) / 12;
}
r -= ie + (95 - ie) * loss / (loss + bpl);
if (r < 0)
{
mos = 1;
}
else
{
mos = 1 + 0.035 * r + 0.000007 * r * (r - 60) * (100 - r);
}
return mos;
}