同步及元素解码

同步及元素解码模块主要用于找出格式信息,并进行头信息解码,以及对元素信息进行解码。这些解码的结果用于后续的无噪解码和尺度因子解码模块。

AAC的音频文件格式有以下两种:

  • ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。
  • ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。

AAC的ADIF格式见下图:

ADIF的组织结构

AAC的ADTS的一般格式见下图:

ADTS的组织结构

图中表示出了ADTS一帧的简明结构,其两边的空白矩形表示一帧前后的数据。ADIF和ADTS的header是不同的。它们分别如下所示:

ADIF的头信息

ADTS的固定头信息

帧同步

同步目的在于找出帧头在比特流中的位置,13818-7规定,aac ADTS格式的帧头为12比特的“1111 1111 1111”.

头信息解码

ADTS的头信息为两部分组成,其一为固定头信息,紧接着是可变头信息。固定头信息中的数据每一帧都相同,而可变头信息则在帧与帧之间可变。

元素信息解码

AAC中,原始数据块的组成可能有六种不同的元素。它们分别是:

  • SCE: Single Channel Element单通道元素。单通道元素基本上只由一个ICS组成。一个原始数据块最可能由16个SCE组成。
  • CPE: Channel Pair Element 双通道元素,由两个可能共享边信息的ICS和一些联合立体声编码信息组成。一个原始数据块最多可能由16个SCE组成。
  • CCE: Coupling Channel Element 藕合通道元素。代表一个块的多通道联合立体声信息或者多语种程序的对话信息。
  • LFE: Low Frequency Element 低频元素。包含了一个加强低采样频率的通道。
  • DSE: Data Stream Element 数据流元素,包含了一些并不属于音频的附加信息。
  • PCE: Program Config Element 程序配置元素。包含了声道的配置信息。它可能出现在ADIF 头部信息中。
  • FIL: Fill Element 填充元素。包含了一些扩展信息。如SBR,动态范围控制信息等。

处理流程

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