首页 关于 微信公众号
欢迎关注我的微信公众号

多种音频的格式以及其解码流程

AAC音频

AAC音频文件格式

AAC的音频文件格式有两种分别是ADIFADTS

ADIF和ADTS

简单说,ADTS可以在任意帧解码,也就是说它每一帧都有头信息。ADIF只有一个统一的头,所以必须得到所有的数据后解码。且这两种的header的格式也是不同的,目前一般编码后的和抽取出的都是ADTS格式的音频流。

ADIF格式:

image

ADTS格式:

image

ADIF和ADTS的头信息

ADIF的头信息如图:

image

ADIF头信息位于AAC文件的起始处,接下来就是连续的 raw data blocks。组成 ADIF头信息的各个域如下所示:

image

ADTS的固定头信息:

image

ADTS的可变头信息:

image

AAC元素信息

在AAC中,原始数据块的组成可能有六种不同的元素:

AAC文件的处理流程

  1. 判断文件格式,确定为ADIF或ADTS
  2. 若为ADIF,解ADIF头信息,跳至第6步。
  3. 若为ADTS,寻找同步头。
  4. 解ADTS帧头信息。
  5. 若有错误检测,进行错误检测。
  6. 解块信息。
  7. 解元素信息。

AAC解码流程

image

在主控模块开始运行后,主控模块将AAC比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始,找到后,根据ISO/IEC 13818-7所述的语法开始进行Noisless Decoding(无噪解码),无噪解码实际上就是哈夫曼解码,通过反量化(Dequantize)、联合立体声(Joint Stereo),知觉噪声替换(PNS),瞬时噪声整形(TNS),反离散余弦变换(IMDCT),频段复制(SBR)这几个模块之后,得出左右声道的PCM码流,再由主控模块将其放入输出缓冲区输出到声音播放设备。

Blog

Opinion

Project