音频常见的波形编码

G.711是一种由国际电信联盟(ITU-T)订定音频编码方式,又称为ITU-T G.711。
G.711使用64Kbps的带宽,可将14bits转换成8bits。目前G.711有两个编码方式:一种是u-law又称mu-law,主要运用于北美和日本;另一种是a-law,主要运用于欧洲和世界其他地区。其中,a-law编码方式是为方便计算机处理而特别设计的。2008年3月国际电信联盟正式发布了最新的宽带语音编译码标准G.711.1。

前面博客讲过G711编码,有两种G711A/G711U,主要在安防中应用,是一帧波形编码的音频数据,只是将PCM压缩一半数据量。一般G711,采样率8000,通道数1。所以G711中1B就是一个样本数据。G711打包RTP非常简单,只要在G711数据前加上RTP头即可。G711没有想AAC那样,按照帧一帧一帧发送,而是设定一个打包频率,打包频率有10ms,20ms,30ms,40ms 等。如40ms的打包频率,1S打包25帧,1S需要发送8000个样本,所以一帧需要8000/25=320个样本,RTP时间戳增量绝对值是320/8000S,协议要求以采样率作为时钟频率,所以RTP时间戳为 (320/8000)*8000。

 

S8:     signed   8 bits,有符号字符 = char,          表示范围 -128~127
U8:     unsigned 8 bits,无符号字符 = unsigned char,表示范围 0~255
S16_LE: little endian signed 16 bits,小端有符号字 = short,表示范围 -32768~32767
S16_BE: big endian signed 16 bits,大端有符号字 = short倒序(PPC),表示范围 -32768~32767
U16_LE: little endian unsigned 16 bits,小端无符号字 = unsigned short,表示范围 0~65535
U16_BE: big endian unsigned signed 16 bits,大端无符号字 = unsigned short倒序(PPC),表示范围 0~65535
还有S24_LE,S32_LE等,都可以表示数字的方法,PCM都可以用这些表示。
        上面这些值中,所有最小值-128, 0, -32768, -32768, 0, 0对应PCM描叙来说都是一个值,表示最小值,可以量化到浮点-1。所有最大值也是一个值,可以量化到浮点1,其他值可以等比例转换。
PCMU应该是指无符号PCM:可以包括U8,U16_LE,U16_BE,...
PCMA应该是指有符号PCM:可以包括S8,S16_LE,S16_BE,...

G721

G723

G726

G729

G.729标准制定是通过的8kbps的语音编码协议,采用共轭结构的算术码本激励线性预测CS-ACELP算法。
G.729系列主要有以下几种:
    G.729    ---  最基本的G.729 标准协议
    G.729A  --- 对G.729 codec 一些算法进行简单处理,相当于降低了算法的复杂度
    G.729B  --- 加入了语音端点检测模块,在编码前对语音进行语音和静默音进行检测,然后分别对不同情况进行编码
    G.729AB --- 就是G.729A 中加入语音端点检测算法, 目前G.729AB 用得比较多,encoder 后,码流中有三种数据块: 语音(80bits), CNG (16bits), DTX(0 bit).
 

你可能感兴趣的:(多媒体--音频)