170 likes | 514 Views
Voice Over IP Developing IPHONE Jeremy Stanley CS 460 section 1 VoIP Advantages No long distance fees No dedicated circuit More efficient use of networks 64 Kbps raw audio vs. 13 Kbps compressed Data need not be transmitted during silence VoIP Issues Latency Packetization
E N D
Voice Over IP Developing IPHONE Jeremy Stanley CS 460 section 1
VoIP Advantages • No long distance fees • No dedicated circuit • More efficient use of networks • 64 Kbps raw audio vs. 13 Kbps compressed • Data need not be transmitted during silence
VoIP Issues • Latency • Packetization • Network jitter • Quality of Service • Real-time requirements • Addressing Issues • IPv6 is a pratical necessity
Voice Encoding • PCM (pulse code modulation) • ADPCM - adaptive delta PCM • Fast 4:1 Compression, Good quality • Vocoders (LPC, CELP, GSM) • Slower, 12-30x compression common • Voice only - Music does not work well
Introduction to IPHONE • Win32 application • Uses Windows Multimedia and Sockets APIs for audio and communication • Two-way, full duplex voice channel (PC to PC) • Runs over UDP or TCP, supports data compression and silence detection
The Naïve Algorithm • Receive thread • Receive a packet • Decode and play audio • Return to step 1 • Send thread • Record audio • Encode, packetize, and send • Return to step 1
Problems • Sounds like talking into a fan • Latency quickly rises to intolerable levels
Solutions • Asynchronous sound processing • Encode and send previous packet while recording current packet • Receive and decode next packet while playing current packet • At least two send and receive buffers required
Network Jitter • The double-buffered solution last described works well on a LAN • Delay still accumulates when receive buffer empties due to delayed packets • Increasing receive buffer only does so much - it will eventually be exhausted
Jitter Solutions • Drop late packets • Imperceptibly increase playback speed • Shorten delays between words • Use silence detection • IPHONE does this
Silence Detection • Do not send audio chunks whose maximum amplitude is below a silence threshold • Phone conversations are 60% silence • Turns voice into bursty data
Comfort Noise • Total silence construed as dead line • Substitute pre-recorded "open mic" • Play low-volume white noise • Record and repeat periods of silence during conversation