1. 概念算法
音频压缩技术指的是对原始数字音频信号流(PCM编码)运用的数字信号处理技术。网站
2. 背景 和 压缩的必要性编码
研究发现,直接采用PCM码流进行存储和传输存在很是大的冗余度。spa
以CD为例,其采样率为44.1KHz,量化精度为16比特,则1分钟的立体声音频信号需占约10M字节的存储容量,也就是说,一张CD唱盘的容量只有1小时左右。3d
事实上,在无损的条件下对声音至少可进行4:1压缩,即只用25%的数字量保留全部的信息,而在视频领域压缩比甚至能够达到几百倍。视频
3. 注: 消除冗余信息是有损编码blog
4. 有损编码, 能够采用消除冗余信息的思路get
使用傅里叶变换获得频域信息,看着该频域信息图,咱们来进行遮蔽效应的概念解释:直播
划红线处的蓝色音源,威力很大,能把其余频率的信息覆盖,这是遮蔽源。it
你能够把这个蓝色的音源理解为一个爱吵架的女生,音调很高,1KHz, 嗓门很大(即声音强度大概在70dB)。
这个女生一扯嗓子,就能把别人的声音遮蔽掉,
那么这个女生扯嗓子时候最容易把谁的声音遮蔽掉呢?
这就须要科学来解释了,上面这张图就是科学规律的总结。
频率相近的三个棕色的音源是最容易被遮蔽掉的音源了,上图也标识出了这些是被遮蔽的声音。
那是否是只要嗓门(声音强度)没这个女生大的音源,都会被覆盖呢?并非!
上图中红圆圈所示的音源,频率大概在0.25KHz,声音强度超过了10dB, 但声音强度远远不及70dB, 你能够把这理解为一个声音低沉且嗓门也不大的魅力男嗓。
从上图能够看出,该男嗓未处在爱吵架女生声音的遮罩门槛内,
且同时也未处在静音门槛内(一些冰箱、电风扇工做时发出的声音可能处在静音门槛范围内,因此也被遮蔽了),
因此该男嗓的声音强度虽然不及该女生,可是却不会被遮蔽。
这就是频域遮蔽效应的特色了。
在同一个时间点,谁的声音强度小,就会被遮蔽。
既然科学规律咱们知道存在这个遮蔽效应,咱们就能够经过必定的算法分析出哪些声音信息是会被遮蔽的,这就是消除冗余信息,是有损编码的一种实现思路。
5. 无损编码
熵编码是无损编码,具体的编码方式有不少,以下图
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。
Huffman于1952年提出一种编码方法,该方法彻底依据字符出现几率来构造异字头的平均长度最短的码字,
有时称之为最佳编码,通常就叫作Huffman编码(有时也称为霍夫曼编码)。
6. 音频编码过程
7. 常见的音频编解码器
注:Speex包含回音消除功能。
8. AAC编码器介绍
9. ADTS格式头
AAC前面有个数据头,通常是ADTS格式的头。
对于直播系统,通常使用AAC,咱们使用的都是ADTS格式。
注意,读出来Audio Object Types值还须要加1,才是对应的类型。
若是读出来Audio Object Types值是1,那么对应的是AAL LC类型。
ADTS头解析网站
PS:
1. 有时候咱们没法播放一段AAC数据,多是缺乏了ADTS头信息,这是咱们就须要想办法加上这个头信息。
2. 咱们在使用ffmpeg时,虽然ADTS这些信息都会被封装在其内部,可是咱们须要具有基本的音视频知识,以便更好地解决各种可能出现的麻烦问题。
10.
.