Skip to main content

Posts

Showing posts from December, 2012

How to compute or validate the network bandwidth when using Speex

This is a quite simple computation or validation of the network bandwidth, but can be tricky if you don't take into account the "quality" parameter used in Speex . Speex is designed to change bitrate depending on the desired quality, and there are 10 different levels of quality per type (narrowband (8 KHz), wideband (16 KHz), ultra-wideband (32 KHz)). All you have to do is take the expected encoding bitrate for that quality ( e.g. 28 Kbps for wideband at quality 8/10 ), compute the payload per frame, optionally sum the payload when you have more than 1 frame per packet, add the overhead of IP, UDP and RTP, then recompute the overall bitrate. Each Speex frame has 20 msec duration. The payload for Speex wideband at quality 8 (28 kbps) is: P = (28*10^3 kbps * 20*10^-3 msec/frame) = 70 B/frame Consider 1 frame per packet and add the overhead from IP, UDP and RTP: Ptot = 70 B + 40 B = 110 B/packet Compute the final network bandwidth: BW = (110 B)*8 / (20 * 10^...