音视频编解码技术:AAC 音频编码技术
AAC编码概述 AAC是高级音频编码(Advanced Audio Coding)的缩写,出现于1997年,最初是基于MPEG-2的音频编码技术,目的是取代MP3格式,AAC是一种高压缩比的音频压缩算法,它的压缩比远超过较老的音频压缩算法,如AC-3、MP3等,并且其质量可以未压缩的CD音质相媲美。
AAC编码规格简述 AAC共有9种规格,以适应不同的场合的需要,MPEG-4 AAC LC(低复杂度)规格是最常见的一种,还有MPEG-4 AAC Main、AAC SSR(可变采样率)等规格。

AAC编码的特点
- AAC使用变换编码算法,但使用了分辨率更高的滤波器组,因此可以达到更高的压缩比。
- AAC支持更多种采样率和比特率,支持1个到48个音轨,具有多种语言的兼容能力,还有多达15个内嵌数据流。
- AAC几乎不损失声音频率中的甚高、甚低频率成分,并且比WMA在频谱结构上更接近于原始音频,因而声音的保真度更好。
AAC音频文件格式 AAC的音频文件格式有ADIF和ADTS两种。

- ADIF:Audio Data Interchange Format 音频数据交换格式,这种格式的特征是解码必须在明确定义的开始处进行,这种格式常用在磁盘文件中。
- ADTS:Audio Data Transport Stream 音频数据传输流,这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。
ADTS格式中,Syncword用于确定帧的开始,固定头信息和可变头信息中包含了采样率、声道数等重要信息。
AAC文件处理流程

- 判断文件格式,确定为ADIF或ADTS。
- 若为ADIF,直接解析ADIF头信息。
- 若为ADTS,先寻找同步头,然后解析ADTS帧头信息。
- 若有错误检测,进行错误检测。
- 解块信息。
- 解元素信息。
注意:在处理AAC音频流时,有时候需要加上ADTS头信息文件的包装拼接,否则可能会导致播放错误,因为缺少ADTS头信息的AAC文件在PC或手机上可能无法播放。