AAC系统包含了滤波器组、心理声学模型、量化与编码、预测、TNS、立体声处理和增益控制等多种高效的编码工具。这些模块或过程的有机组合形成了AAC系统的基本编解码流程。在实际应用中,并不是所有的功能模块都是必需的,下表列出了各模块的可选性:
工具(模块) | 可选性 |
码流打包 | 必需 |
无噪声编码 | 必需 |
量化器 | 必需 |
缩放因子处理 | 必需 |
M/S立体声处理 | 可选 |
预测 | 可选 |
IS(强度立体声) / 耦合声道处理 | 可选 |
TNS | 可选 |
滤波器组 | 必需 |
增益控制(预处理) | 可选 |
心理声学模型(感知模块) | 必需 |
MPEG-2 AAC编码器各模块的可选性
为了能够适应于不同的应用场合,在AAC标准中定义了三种不同复杂度的框架(Profile)。分别为:
Main Profile:在这种框架具有最高的复杂度,可以用于存储量和计算能力都很充足的场合。在这种框架中,利用了除增益控制以外的所有编码工具来提高压缩效率。
LC(Low Complexity) Profile:这种框架用于要求在有限的存储空间和计算能力的条件下进行压缩场合。在这种框架中,没有预测和增益控制这两种工具,TNS的阶数比较低。
SSR(Scalable Sample Rate) Profile:在这种框架中,使用了增益控制工具,但是预测和耦合工具是不被允许的,具有较低的带宽和TNS阶数。对于最低的一个PQF子带不使用增益控制工具。当带宽降低时,SSR框架的复杂度也可降低,特别适应于网络带宽变化的场合。
Main和LC框架式变化编码算法,采用MDCT作为其时/频分析模块,SSR框架则采用混合滤波器组,先将信号等带宽地分成4个子带,再作MDCT变换。在三种方案里,通过选用不同模块在编码质量和编码算法复杂度之间进行折衷。
AAC属于感知音频编码。与所有感知音频编码类似,其原理是利用人耳听觉的掩蔽效应,对变换域中的谱线进行编码,去除将被掩蔽的信息,并控制编码时的量化噪声不被分辨。
在编码过程中,时域信号先通过滤波器组(进行加窗MDCT变换)分解成频域谱线,同时时域信号经过MPEG中II型心理声学模型获得信掩比,掩蔽阈值,M/S以及强度立体声编码需要的控制信息,还有滤波器组中应使用长短窗选择信息。暂态噪声整形(TNS)模块将噪声整形为与能量谱包络形状类似,控制噪声的分布。强度立体声编码和预测以及M/S立体声编码都能有效降低编码所需比特数,随后的量化模块用两个嵌套循环进行了比特分配并控制量化噪声小于掩蔽阈值,之后就是改进了码本的哈夫曼编码。这样,与前面各模块得到的边带信息一起,就能构成AAC码流了。