LV010-G711简介
一、G711 简介
1. G711
G.711 是 ITU-T 制定的适用于语音频率范围的音频编码标准,它代表了对数 PCM(logarithmic pulse-code modulation)抽样标准,主要用于电话。它有以下特点:
- G.711 标准的音频 采样率 8K,单声道,编码的码率为 64kbps。
- G.711 编码后的数据为 8 位,因此, G.711 可以实现一半的数据压缩。
一般来说,对于一般的 G.711 编码库,算法默认的输入数据长度为 40ms, 即 320 个采样点, 640Byte, 输出数据长度为 320Byte, 实现 2 倍的音频数据压缩。如果是 16k 采样率,那么一帧就是 640 个采样点,需要进行降采样处理,使用 8k 采样率重采。
算法复杂度低,压缩比小(CD音质>400kbps),编解码延时最短(相对其它技术),但是占用的带宽较高。
2. A law 和 Mu law
G.711 标准有 A law 和 Mu law 两种不同的编解码算法。Alaw 与 Mu law 本质的区别是 Mu law 保留了原始信号中最高有效位中最高 5 位的精度,然后用对数关系将剩下的信息映射到编码的最后 3 位;而 Alaw 则保留了原始信号中最高有效位中最高 4 位的精度,然后用对数关系将剩下的信息映射到编码的最后 4 位。
2.1 A law
G.711 A law 主要用于欧洲, A law 可以表示的信号范围是 -4096 到 4096。 Alaw 每个样点的有效位数是 13 位(包含一个符号位),一般情况下,数据采样精度为 16 位。
2.2 Mu law
G.711 Mu law 用于 美国,可以表示的信号范围是-8159 和 8159。Mu law 每个样点的有效位数是 14,但是一般情况下,数据采样精度为 16 位。
二、G711 的内容
G711 的内容是将 14bit(uLaw)或者 13bit(aLaw)采样的 PCM 数据编码成 8bit 的数据流,播放的时候在将此 8bit 的数据还原成 14bit 或者 13bit 进行播放,不同于 MPEG 这种对于整体或者一段数据进行考虑再进行编解码的做法,G711 是波形编解码算法,就是一个 sample 对应一个编码,所以压缩比固定为:
- 8/14 = 57% (uLaw)
- 8/13 = 62% (aLaw)
简单理解,G.711 就是语音模拟信号的一种非线性量化, bitrate 是 64kbps。
三、相关计算
已知:采样率 16K,采样点为 640,位深为 16 位,采用 G711A 和 G711U 进行压缩,每个采样点使用 8 位(1 字节), 压缩时重采样为 8k,压缩比特率为 64000,那么压缩后一帧字节?
帧时间长度 = 原始采样点数 / 原始采样 = 640 / 16,000 = 0.04秒 = 40毫秒
重采样后一帧采样点数 = 重采样率 × 帧时间长度 = 8000 × 0.04 = 320个采样点
方法一:基于采样点计算
压缩后一帧字节大小 = 采样点数 × 每个采样点字节数
= 320 × 1
= 320字节
方法二:基于比特率计算
压缩后一帧字节大小 = (比特率 × 帧时间长度) ÷ 8
= (64,000 × 0.04) ÷ 8
= 2,560 ÷ 8
= 320字节参考资料: