[Asterisk-Dev] Re: jitterbuffer
Jesse Kaijen
jesse at kayen.nl
Wed Apr 13 10:29:05 MST 2005
Hi,
I noticed that some people don't understand what I want to establish, so
here is some explanation.
The possibility of changing a codec during a call can have various impacts
on the perceived audio quality.
We all want the best audioperception and there are a few variables that have
impact.
They are: codec, delay, loss and jitter.
Jitter can be handled by a jitterbuffer and results in more delay (and/or
loss).
So there are still 3 variables left.
In our target environment we have no influence on delay and loss by the
network (open Internet!), but we do have on the jb_delay and jb_loss.
However jb_delay can be a trade off against jb_loss.
Let's say we have three codecs available. ulaw, GSM, ILBC.
ulaw: best_quality, high_bandwith, terrible with loss
GSM: high_quality, low_bandwith, mediocre with loss
ILBC: good_quality, low_bandwith, good with loss
Assumption 1: we always want the best achievable audio quality and we have
little or no influence on the network.
Assumption 2: user is stupid and/or can't give information of the
connection.
Assumption 3: 'program' has to give best solution for all types of
connections, without manual reconfiguring.
In a private network the end-end delivery is perfect ==>> ulaw.
modem-connection ==>> GSM || ILBC
internet-connection:
if there is low traffic (no loss) ==>> ulaw
if there is traffic and some loss ==>> GSM
high traffic with losses ==>>ILBC (if your kids uses Kazaa, kill Kazaa
and use ulaw)
(extreme scenario: send more packets to push Kazaa 1d10ts out of the link)
With ILBC the loss is not resolved, but user perception will be better
because ILBC uses FEC/PLC techniques.
This is the theory I am trying to prove and for that I need correct
netstats.
In the first few seconds of a call a user may experience some (little)
delay/loss and won't notice it (maybe repeat his name...) but only if after
those few moments the audio perception is good.
If a connection between two *-boxes is mediocre then a switch between those
to boxes (causing transcoding back and forth) can help the audio quality
while increasing the delay. Ofcource making the audio switch end-to-end is
preffered, but this can only be done by handshaking through the whole path.
I will probably work on that after my research on current topic is
completed.
Hopefully my intentions are more clear for people. That's why I send it
again to asterisk-dev - I think carrier people may be interested as well.
Greetings,
Jesse Kaijen
(Note: We are based in Europe, so we would actually prefer alaw, but for
argument's sake we will take ulaw too ;-))
----- Original Message -----
From: "Steve Kann" <stevek at stevek.com>
To: "Steve Underwood" <steveu at coppice.org>
Cc: <iaxclient-devel at lists.sourceforge.net>
Sent: Wednesday, April 13, 2005 6:31 PM
Subject: Re: [Iaxclient-devel] jitterbuffer
> Steve Underwood wrote:
>
>> Steve Kann wrote:
>>
>>> In the larger context, it was my understanding that (one of?) your goals
>>> is to use the jitterbuffer to detect congestion, and then change codecs
>>> or something to try to avoid the congestion.
>>>
>>> As I said before, the idea of congestion avoidance (and increasing call
>>> quality by avoiding loss), is interesting, but I don't think that
>>> changing codecs alone is really the best solution, since you have the
>>> constant 12kb/s overhead for sending 50 packets per second. However, if
>>> you do figure out how to detect congestion well, there's several things
>>> you can do:
>>
>>
>> Detecting that there is congestion is largely worthless unless you are
>> using an end-to-end private network. In that case congestion should only
>> occur when you overwhelm the QoS controls you should have in place. If
>> all the users of the link back off their bandwidth demands, congestion
>> detection might be quite valuable.
>>
>> Most of use are using a shared network, like the public Internet. Here
>> you need to detect exactly where the congestion occurs, to be able to do
>> anything meaningful about it. In most cases the legs where bandwidth
>> reduction makes sense will be the local legs, where QoS should probably
>> have avoided the congestion in the first place. Reducing your demands on
>> the shared backbone can actually result in worse, rather than better,
>> performance for a number of reasons. I haven't seen a well thought paper
>> that suggests it makes any sense.
>
> I agree, there's going to be few cases where this would help, but Jesse
> finds it interesting, so maybe he'll be the one to research the topic and
> find a good solution.
:D
finally.... they understand....
:D
>
> The case where I can see it helping is when the congestion is largely due
> to calls made using this technology, _and_ QOS can't help. (i.e. if all
> the traffic on the link is VoIP or Video over IP -- QoS can't make more
> than 1.544mbps fit on a T1). In that case, if the calls lowered their bit
> usage, they'd get better performance. This doesn't seem like an
> outrageously outlying case: If you have an (oversubscribed) Dedicated
> IP link between two VoIP endpoints, this can happen as you approach your
> peak capacity.
>
> You can then extend your capacity by cutting back on bandwidth usage, in
> one of the ways listed.
>
> However, the other likely case is that your calls are going over the
> internet, and some huge pipe in the middle is dropping packets. In that
> case, it's likely that changing _your_ bandwidth usage won't make a whit
> of difference, and in these cases, all of the lower-bandwidth strategies
> are both of a lesser base quality, _and_ of lower tolerance to loss. In
> _this_ case, what you might want to do is be a bad internet-neighbor, and
> use _more_ bandwidth to get some loss tolerance (for instance, use FEC or
> something like that).
>
> I'm not sure how you can distinguish between these two cases though :)
> [I'm pretty sure this has all been covered already on the various lists..]
>
> Cc'ing back to iaxclient-list; hope you don't mind, Steve.
>
> -SteveK
>
>
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now.
> http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> _______________________________________________
> Iaxclient-devel mailing list
> Iaxclient-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/iaxclient-devel
>
More information about the asterisk-dev
mailing list