cugxchen / StreamMedia

0 stars 0 forks source link

音频G711编解码 #2

Open cugxchen opened 6 years ago

cugxchen commented 6 years ago

G711的内容是将14bit或者13bit采样的PCM音频数据编码成8bit的数据流,播放的时候将此8bit的数据还原成14bit或者13bit进行播放.不同于MPEG这种对整体或者一段音频数据进行考虑再进行编解码的做法,G711是波形编解码算法,就是一个sample对应一个编码.所以压缩比是固定的,为

8/14 = 57% (uLaw)或者

8/13 = 62% (aLaw).

因为主要用于语音音频,采样率一般使用8KHz,这样带宽为8bit乘以8KHz = 64Kbps.这个64Kbps也常常被称作"一路数字电话"作为非正式的带宽计算单位.

G711主要的两种版本称之为uLaw(u律,14bit版本)与ALaw(a律,13bit版本).

有人会问,直接将14bit和13bit的PCM采样进行移位,丢掉低位得到8bit结果,岂不是更简单.但是音频数据的特点不适合这样的线性编码,直接移位的结果会丢弃音频的主要变化的部分(低位部分)从而导致直接移位的结果是音频质量大大降低.不管是ALaw还是uLaw,其核心思想是,音频的大多数变化发生在整个动态范围的低部分.而且人耳对音频幅度的感觉成对数关系.从这个角度来讲,说G711是前PC时代的MP3算法也有点道理.

cugxchen commented 6 years ago

G711格式简介