Hi Fu,
The formulas come from me, determined empirically.
I thought that as often with human perception, logarithm givew good
results. The first percentage of losses ( between 0-20) are more
important than the others, in other words, with 1% it is not
perfect, at 20% this is already unusable.
With normal usual rates (0-10%) the variation of the indicator is
important and gives numbers that are understandable by a human.
Simon
On 23/09/2011 10:53, Fu Jiantao wrote:
Hi all,
I'm using mediastreamer now, it's easy to use, even compiling
it was painful in windows. When testing with mediastreamer.exe,
I've seen it will print audio quality when processing rtcp, I've
seen there's a file named qualityindicator which does the work,
but I'm wondering where the formulas comes from.
#define WORSE_JITTER 0.2
#define WORSE_RT_PROP 5.0
static float inter_jitter_rating(float inter_jitter){
float tmp=inter_jitter/WORSE_JITTER;
if (tmp>1) tmp=1;
return 1.0-(0.3*tmp);
}
static float rt_prop_rating(float rt_prop){
float tmp=rt_prop/WORSE_RT_PROP;
if (tmp>1) tmp=1;
return 1.0-(0.7*tmp);
}
static float loss_rating(float loss){
/* the exp function allows to have a rating that decrease
rapidly at the begining.
Indeed even with 10% loss, the quality is significantly
affected. It is not good at all.
With this formula:
5% losses gives a rating of 4/5
20% losses gives a ratiosip mailing list
<address@hidden>ng of 2.2/5
80% losses gives a rating of 0.2
*/
return expf(-loss*4.0);
}
static float compute_rating(float loss_rate, float inter_jitter,
float late_rate, float rt_prop){
return
loss_rating(loss_rate)*inter_jitter_rating(inter_jitter)*loss_rating(late_rate)*rt_prop_rating(rt_prop);
}
Thanks!
_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers
|