更新时间:2023-03-30 20:25
自适应多码率编译码器是一种在较大数据传输速率范围内的编译码器,AMR编解码器也用在多种蜂窝系统中协调编译码器标准。
这里都是针对AMR narrow-band (AMR-NB)进行讨论
Mode 0 - AMR 4.75 - Encodes at 4.75kbit/s
Mode 1 - AMR 5.15 - Encodes at 5.15kbit/s
Mode 2 - AMR 5.9 - Encodes at 5.9kbit/s
Mode 3 - AMR 6.7 - Encodes at 6.7kbit/s
Mode 4 - AMR 7.4 - Encodes at 7.4kbit/s
Mode 5 - AMR 7.95 - Encodes at 7.95kbit/s
Mode 6 - AMR 10.2 - Encodes at 10.2kbit/s
Mode 7 - AMR 12.2 - Encodes at 12.2kbit/s
8~15位一些 noise frames 和保留位的定义。
CMR Mode Frame size (bytes)
0 AMR 4.75 13
1 AMR 5.15 14
2 AMR 5.9 16
3 AMR 6.7 18
4 AMR 7.4 20
5 AMR 7.95 21
6 AMR 10.2 27
7 AMR 12.2 32
我们来做一个简单的计算,PCM16和AMR之间的转换
Amr 一帧为20毫秒
AMR 4.75Kbits/s:
每秒产生的声音位数 = 4750bits/s
每20ms帧占用的位数 = 4750bits/s / 50frames/s = 95bits
每20ms帧占用的字节数 = 95bits / 8bits/byte = 11.875bytes - 圆整到12字节,不足的补0
加上一个字节的帧头,所以,20ms一帧的AMR: 12-bytes + 1-byte = 13-bytes
相反,转换回来就成了
13-bytes * 50frames/s * 8bits/byte = 5200bits/s
注意,这里两个数值并不对应,是由于圆整地原因