mainly tailfirst said:
IIRC, Skype quotes BW usage at 3-16 kBytes/sec, not kbps. <checks web>
Yep,
Skype Technical Frequently Asked Questions confirms this.
I've never instrumented the stream (though I may be motivated to do so now that I intend to use it more), but from experience I get excellent Skype-to-Skype audio quality at between 5-6kB/sec. I find 3-3.5kB/sec yields acceptable quality even for trans-pac calls into a landline.
Ahh, yes. That makes more sense. Making it 24-120kbps.
But with VoIP, the most common cause of quality issues are dropped packets and jitter. Unfortunately there is no way to control those things on a public network like the Internet.
Another major factor for any softphone can be the audio device being used. Using built in microphone/speakers or even just adding a microphone and headphones to a computer generally results in poor audio quality. Using a USB audio device with its own DPS generally results in better quality. I use a Nortel USB DPS headset and get very good audio quality with various soft phones that I use, yet using a microphone and headphones with the same computer and software results in very much sub-standard quality.
mainly tailfirst said:
I don't know what Skype uses for POTS termination - I suspect G.711 or G.729 - so even the lower bound of 3kB/sec should be OK.
I believe it is neither. Their direct POTS connection in most cases will be T1/E1 (ISDN in most cases) which use a 64kbps PCM which is similar to G.711. The connection from the Skype client to the POTS gateway uses the Skype proprietary CODEC which is neither G.711 or G.729 (not that it really matters, so long as it works).
mainly tailfirst said:
If we assume an IP packet size of 160B ('typical' number I remember from somewhere), 40B header o/head and packet every 30mSec, we get approx 5.2kB/sec - which dovetails nicely with my very rough measuring (add another 14B for Ethernet header per packet).
G.711 CODEC results in 160 bytes of data per packet. Sample rate is 8000 samples/second using logarithmic PCM. The CODEC sample interval is 10ms resulting in 80 bytes per sample interval, and two samples are carried in each voice payload resulting in 160 bytes every 20ms.
Add to the 20 bytes for IP, 8 bytes for UDP and 12 bytes for RTP and we have 40 bytes of packet overhead or 200 bytes/packet at a rate of 50 packets/second. This results in 80Kbps requirement plus the layer-2 MAC requirements (ethernet, PPP, FR etc). On ethernet it grows to 87.2Kbps and on FR it would be 82.8Kbps.
G.729 is a little different, producing 10Bytes or data every 10ms sample and again sent as 2 samples every 20ms resulting in 20 bytes of data with the same 40 bytes of IP/UDP/RTP overhead. These 60 byte packets are sent at a rate of 50 packets/second resulting in a requirement of 24Kbps plus layer-2 overhead. On ethernet it grows to 31.2Kbps and on FR it would be 26.8Kbps.
mainly tailfirst said:
So having an audio stream at ~3.8kB/sec (30kb/sec) explains alot why the quality is so good.
As you state above, to get the quality that they do with an 8th of that bandwdth would be extraordinary - obviously they don't.
I don't think Skype's audio codec is that brilliant, certainly I would expect that Motorola and Nokia et al. have better ones in their phones.
You have to wonder why they didn't just use G.729. I guess by keeping it proprietary they have to maintain control of the product/service??
mainly tailfirst said:
To me, this is the real magic of Skype. I give up some bandwidth (usually an ammortized cost if I'm on a decent monthly plan), minor hit to processing (free) and in turn I get excellent sound quality calling most people for nix. Fair enough swap - almost a 17th century commons in action.
Providing you have a good ISP connection and don't suffer congestion, lost packets or jitter, and you use a decent DSP audio device on the PC, quality can be good. I still worry about using any Peer-2-Peer application on my PC. But I probably make 15+ hours of calls a week using various VoIP services, all via my home ADSL Internet service. But mine have the added overhead of running through an IPSec tunnel as well, adding a further 52 bytes/packet overhead so my G.711 connections use closer to 120Kbps and G.729 is more like 70Kbps
mainly tailfirst said:
Aside: I never thought I'd have such a good tech thread on AFF. But there you go
mt
Its amazing what snippets of trivia can be find in a community like this :mrgreen: .