|
|
|
|
计算Speex实际使用带宽 |
| |
2007年10月31日 |
我们终于基本上完成了AR1688 DSP上Speex的编码. 这个开放源代码的语音压缩算法比我们预料的要复杂很多. 在8k采样下它支持8种不同比特率, 从2.15kpbs到24.6kpbs. 因为有人问通话时这个算法实际占用多少带宽, 我就写了这篇文章.
基于802.3网络, SIP协议计算:
网络CRC: 4字节
MAC包头: 14字节
IP包头: 20字节
UDP包头: 8字节
RTP包头: 12字节
Speex数据: x字节, x随使用的比特率以及一个网络包中放的语音帧数不同变化(见AR1688中"语音帧数"的选项)
总数: (58 + x)字节
根据网络包中放不同语音帧计算, 实际使用带宽如下表.
|
比特率 (kbps) |
2.15 |
3.95 |
5.95 |
8 |
11 |
15 |
18.2 |
24.6 |
20ms语音帧 (字节) |
6 |
10 |
15 |
20 |
28 |
38 |
46 |
62 |
网络包中放1帧语音 (kbps) |
25.6 |
27.2 |
29.2 |
31.2 |
34.4 |
38.4 |
41.6 |
48 |
网络包中放2帧语音 (kbps) |
14 |
15.6 |
17.6 |
19.6 |
22.8 |
26.8 |
30 |
36.4 |
网络包中放3帧语音 (kbps) |
10.1 |
11.7 |
13.7 |
15.7 |
18.9 |
22.9 |
26.1 |
32.5 |
网络包中放4帧语音 (kbps) |
8.2 |
9.8 |
11.8 |
13.8 |
17 |
21 |
24.2 |
30.6 |
|