进阶音讯编码

进阶音讯编码（Advanced Audio Coding，AAC）是有损音讯压缩的专利数位音讯编码标准，由Fraunhofer IIS、杜比实验室、贝尔实验室、Sony、Nokia等公司共同开发。出现于1997年，为一种基于MPEG-2的标准，2000年，MPEG-4标准在原本的基础上加上了PNS（Perceptual Noise Substitution）等技术，并提供了多种扩展工具。为了区别于传统的MPEG-2 AAC又称为MPEG-4 AAC。其作为MP3的后继者而被设计出来，在相同的位元速率之下，AAC相较于MP3通常可以达到更好的声音品质。

AAC由国际标准化组织及国际电工委员会标准化为MPEG-2及MPEG-4规格的一部分。部分的AAC、HE-AAC(AAC+)为MPEG-4音讯的一部分，并且被采用在数位声音广播、世界数位广播两个数位广播标准中以及DVB-H、ATSC-M/H两个移动电视标准中。

AAC支援包含一个串流中48个最高至96 kHz的全带宽声道，加上16个120 Hz的低频声道(LFE)、不多于16个耦合声道及资料串流。在joint stereo模式下，要使立体声的品质达到可接受的程度仅需96 kbps的位元速率，若要达到Hi-fi则最少需要在可变位元速率下128 kbps。

AAC被YouTube、iPhone、iPod、 iPad、任天堂DSi、任天堂3DS、iTunes、DivX、PlayStation 3和多款Nokia 40系列、Sony Ericsson手机采用为预设的音讯编码格式，并且被PlayStation Vita、Wii、Sony Walkman MP3系列及随后的Android、BlackBerry等移动操作系统支援。

## 副档名

AAC编码的主要副档名有三种：

- .aac - 使用MPEG-2 Audio Transport Stream（ADTS，参见MPEG-2）容器，区别于使用MPEG-4容器的MP4/M4A格式，属于传统的AAC编码（FAAC默认的封装，但FAAC亦可输出MPEG-4封装的AAC）。
- .mp4 - 使用了MPEG-4 Part 14（第14部分）的简化版即3GPP Media Release 6 Basic（3gp6，参见3GP）进行封装的AAC编码（Nero AAC编码器仅能输出MPEG-4封装的AAC）。
- .m4a - 为了区别纯音频MP4文件和包含视频的MP4文件而由苹果（Apple）公司使用的副档名，Apple iTunes对纯音频MP4文件采用了".m4a"命名。M4A的本质和音频MP4相同，故音频MP4文件亦可直接更改副档名为M4A。Sony Ericsson于2006年后发表的手机原厂铃声几乎都慢慢改为M4A文件。

## 技术概览

AAC作为一种高压缩比的音频压缩算法，压缩比通常为18：1，也有资料说为20：1；在音质方面，由于采用多声道，和使用低复杂性的描述方式，使其比几乎所有的传统编码方式在同规格的情况下更胜一筹。

AAC是一种宽频音讯编码算法，主要利用以下两种编码策略来大幅减少储存高品质数位音讯所需要的资料量：

- 舍去与感知上无关的讯号成分
- 去除编码后讯号的冗余部分

实际的编码流程包含以下步骤：

- 利用改进的离散余弦变换(MDCT)将讯号由时域转换至频域：选取适当的时域取样点数由滤波器组将其转换至频域
- 基于心理声学将频域讯号量化及编码
- 加入内部的错误更正码
- 储存或传输讯号
- 为避免损坏的取样点，对每帧使用模N的Luhn算法作为校验

在MPEG-4中并没有定义一个单一的高效率压缩流程，而是一组复杂的工具来达成从低编码速率的语音编码到高品质音讯压缩、音乐合成等广泛的操作。

- MPEG-4音讯编码算法家族横跨了从低位元速率的语音编码(最低至2 kbps)到高品质音讯编码(每声道64 kbps或更高)
- AAC提供了低至8 kHz高至96 kHz的多种取样频率、更高的位元深度(8, 16, 24, 32 bit)，并且支援1到48之间的任何声道数
- 相较于MP3使用的混和滤波器组，AAC使用MDCT搭配增加至1024或960点的窗长度

AAC编码器可以动态的在单一的1024点MDCT区块或8个128点区块之间切换(或960及120点)

- 在有暂态的讯号变化时，选择使用8个较短的128/120点区块以达到更好的时域分辨率
- 在预设的情况下则使用较长的1024/960点区块以增加频域的分辨率，因为如此可以运用更复杂的心理声学模型来达成更好的编码效率

## 相较于MP3的改进

AAC是作为MP3的后继者被设计出来，在1990年代后期的双盲试验中显示在相同的位元速率下，AAC比MP3表现出更好的声音品质。

AAC相较于MP3的改进包含：

- 更多的取样频率选择(8 kHz至96 kHz，MP3为16 kHz至48 kHz)
- 更高的声道数上限(48个，MP3在MPEG-1模式下为最多双声道，MPEG-2模式下5.1声道)
- 任意的位元速率和可变的帧长度
- 更高效率及更单纯的滤波器组(AAC使用纯粹的MDCT，MP3则使用较复杂的混和滤波器组)
- 对平稳的讯号有更高的编码效率(AAC使用较长的1024/960点区块长度，MP3则为576点)
- 对暂态变化的讯号有更高的编码准确度(AAC使用较短的128/120点区块长度，MP3则为192点)
- 可选择使用凯泽窗函数，以较大的主瓣(main lobe)为代价，消除频谱泄漏效应(spectral leakage)
- 对于频率在16 kHz的声音讯号成分有更好的处理
- 有额外的模组如噪声移频(noise shaping)、反向预测(backward prediction)、感知上的噪声替代(perceptual noise substitution)等，可结合这些模组建构出各种不同的编码规格

整体而言，AAC格式相较于MP3给予开发者在设计编码上更大的弹性，并且修正许多在MPEG-1音讯规格上的设计选择，这些增加的弹性使得更多的编码策略可以同时存在，进而达成更高的压缩效率。尽管如此，若要论及AAC是否比MP3好，AAC并没有完全的决定性的优势，MP3虽然较为古老且有相当的瑕疵，却也被证实是意外的坚固耐用。在低位元速率的情况下(通常低于128 kbps)，AAC及HE-AAC则因为更好的立体声编码、纯粹的MDCT及更好的窗函数长度，优于MP3，尤其在极低位元速率的情况下优势更为显著。

MP3作为最早数年音乐开始在网络上传播、分享所被使用的格式，拥有最为普遍的软件及硬件支援，AAC则由于一些产业界持续坚定的支持，成为MP3一个有力的竞争对手，另一个竞争对手是开源产业界支持的IETF标准开放格式Opus (音频格式)。

## 低码率规格

高效AAC（HE-AAC，High-Efficiency AAC）为有损数据压缩技术，是对进阶音讯编码（AAC）的扩展。HE-AAC v1使用频段复制（SBR，Spectral Band Replication）提高频域的压缩效率，适用于低码率（64kbps以下）。HE-AAC v2结合使用SBR和参数立体声（PS，Parametric Stereo）提高立体声信号的压缩效率。HE-AAC v2进一步降低了对码率的需求（接近于50%），被应用于类似于DAB等码率资源很有限的领域。

HE-AAC之另一常见名称aacPlus（aac+），为开发SBR之公司 Coding Technologies的注册商标。MPEG组织于2003年五月将aac+纳入ISO／IEC 14496-3（MPEG-4 Part 3）。HE-AAC适合于在低位元率（low bitrates）的应用，如：网络电台、数字电视等，其宣称在48kbps的音质可以比128kbps的MP3还好，主要的竞争对象是无专利的IETF标准开放格式Opus。

### 版本

HE-AAC之不同版本：

版本｜别称｜编码功能｜标准

HE-AAC v1｜aacPlus v1, eAAC, AAC+, CT-aacPlus｜AAC LC + SBR｜ISO/IEC 14496-3:2001/Amd 1:2003

HE-AAC v2｜aacPlus v2, eAAC+, AAC++, Enhanced AAC+｜AAC LC + SBR + PS｜ISO/IEC 14496-3:2005/Amd 2:2006

## 规格一览

因为AAC是一个庞大家族，他们共分为9种规格，以适应不同场合的需要，也正是由于AAC的规格（Profile）繁多，导致普通电脑用户感觉十分困扰：

- MPEG-2 AAC LC低复杂度规格（Low Complexity）
- MPEG-2 AAC Main主规格
- MPEG-2 AAC SSR可变取样率规格（Scaleable Sample Rate）
- MPEG-4 AAC LC低复杂度规格（Low Complexity），现在的手机比较常见的MP4档案中的音讯部分就包括了该规格音讯档案
- MPEG-4 AAC Main主规格
- MPEG-4 AAC SSR可变取样率规格（Scaleable Sample Rate）
- MPEG-4 AAC LTP长时期预测规格（Long Term Predicition）
- MPEG-4 AAC LD低延迟规格（Low Delay）
- MPEG-4 AAC HE高效率规格（High Efficiency）

上述的规格中，主规格（Main）包含了除增益控制之外的全部功能，其音质最好，而低复杂度规格（LC）则是比较简单，没有了增益控制，但提高了编码效率，至“SSR”对“LC”规格大体是相同，但是多了增益的控制功能，另外，MPEG-4 AAC/LTP/LD/HE，都是用在低位元率下编码，特别是“HE”是有Nero AAC编码器支援，是近来常用的一种编码器，不过通常来说，Main规格和LC规格的音质相差不大，因此目前使用最多的AAC规格多数是“LC”规格，因为要考虑手机目前的内存能力未达合理水准。

MPEG-4 AAC LC（Low Complexity）是最常用的规格，我们叫“低复杂度规格”，我们简称“LC-AAC”，这种规格在中等码率的编码效率以及音质方面，都能找到平衡点。所谓中等码率，就是指：96kbps-192kbps之间的码率。因此，如果要使用LC-AAC规格，请尽可能把码率控制在之前说的那个区间内。

## 编码器一览

由于AAC格式家族比较庞大，要了解他，首先要清楚其各有不同的编码器，目前包括了商业的、免费的AAC格式音频编码器，其中几个主要的编码器如下：

- FhG：Fraunhofer IIS研发的权威编码器。
- Nero AAC：同时支持LC-AAC / HE-AAC规格，由Nero公司免费发布的Nero AAC编码器。
- QuickTime / iTunes：Apple公司的两款软件都提供了AAC编码功能，其编码技术来自"Dolby Laboratories"（简写为Dolby Labs，杜比实验室）。
- FAAC（Freeware Advanced Audio Coder）：也是一种很好的命令行编码器，支持LC/Main/LTP规格，而这个软件是免费的。FAAC是自由软件。
- DivX AAC：2009年DivX开发出来的新AAC编码器，支持LC/HE/HEv2规格。目前正在测试中。

另外还有Psytel（已停止开发），Coding Technologies（已被杜比实验室收购），HHI/z Plane（Compaact），Dolby AAC等AAC编码器，而其他如Panasonic、Nokia、AT&T、NEC等公司也都有独家开发的编码器，在大家弄清楚这些AAC格式音频规格和编码器之后，我们就不难知道为什么同一款手机会支持看起来都是AAC格式音频的诸多文件格式了，比如Nokia 6230i就是既支持AAC格式也支持M4A格式和MP4格式的机型，而这些音频文件格式其实都是属于AAC家族成员。

目前听到用的比较多的应该是LC和HE（适合低码率）。

HE：“high efficiency”（高效性）。HE-AAC v1（又称AACPlusV1，SBR)用容器的方法加了原AAC（LC）+SBR技术。SBR其实代表的是Spectral Band Replication（频段复制）。简单概括一下，音乐的主要频谱集中在低频段，高频段幅度很小，如果对整个频段编码，要么为了保护高频造成低频段编码过细以致文件巨大，要么为了保存了低频的主要成分而失去高频成分以致丧失音质。SBR把频谱切割开来，低频单独编码保存主要成分，高频单独放大编码保存音质，在相同音质下降低了档案大小。

HEv2(又称为HEPS)它用容器的方法包含了HE-AAC v1和PS技术。PS指“Parametric Stereo”（参数立体声）。这个其实好理解，原来的立体声文件，文件大小是一个声道的两倍。但是两个声道的声音存在某种相似性，根据香农信息熵编码定理，相关性应该被去掉才能减小文件大小。所以PS技术存储了一个声道的全部信息，然后，花很少的字节用参数描述另一个声道和它不同的地方。

## 许可和专利

用户不需要许可或付款来流式传输或分发AAC格式的内容。这个原因可以使AAC比照其前身的MP3一样，特别是根据适用于流媒体（如互联网广播）分发内容成为更有吸引力的格式。

然而，AAC 编解码器的所有制造商或开发商都需要专利许可。因此，FFmpeg和FAAC等自由开放源代码软件的实现可能仅以源代码形式分发，以避免专利侵权。

## 外部链接

- 苹果电脑MPEG-4 AAC
- AAC EE Times文章
- Fraunhofer MPEG-2 AAC资讯
- AAC Licensing
- Open Source AAC codec FAAC（编码器）与FAAD2（解码器）
- Roberto's public listening tests - blind, controlled listening tests of lossy compression formats including AAC
- MPEG-4 HE-AAC v2—audio coding for today's digital media world，article in the EBU technical review（01/2006）giving explanations on HE-AAC.
- Coding Technologies的aacPlus介绍

## 基本资料

- 扩展名：MPEG/3GPP container、`.m4a, .mp4, .3gp` Apple container、`.m4a, .m4b, .m4p, .m4r, .m4v` Raw stream、`.aac`
- 扩展名：1
- mime：audio/aac, audio/aacp, audio/3gpp, audio/3gpp2, audio/mp4, audio/mp4a-latm, audio/mpeg4-generic
- 发行日期：1997年
- 标准：ISO/IEC 13818-7、ISO/IEC 14496-3
- 所有者：Fraunhofer IIS、杜比实验室、贝尔实验室、Sony、Nokia
- 类型：音讯压缩, 破坏性资料压缩
- 使用容器：MPEG-4 Part 14, 3GP and 3G2, ISO base media file format and Audio Data Interchange Format (ADIF)