进阶音讯编码

科技工作者之家 2020-11-17

进阶音讯编码(英语:Advanced Audio Coding,AAC),出现于1997年,为一种基于MPEG-2的有损数字音频压缩的专利音频编码标准,由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发。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和多款Nokia40系列手机采用为默认的音频编码格式,并且被PlayStation Vita、Wii、Sony Walkman MP3系列及随后的Android、BlackBerry等移动操作系统支持。1

扩展名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。1

概览作为一种高压缩比的音频压缩算法,AAC压缩比通常为18:1,也有数据说为20:1;在音质方面,由于采用多声道,和使用低复杂性的描述方式,使其比几乎所有的传统编码方式在同规格的情况下更胜一筹。不过直到2006年,使用这一格式存储音乐的并不多,可以播放该格式的mp3播放器更是少之又少,目前所知仅有苹果iPod、SonyWalkman(NWZ-A、NWZ-S、NWZ-E、NWZ-X系列)、任天堂NDSi和iPhone(微软推出的Windows 7附带的Windows Media Player 12也支持AAC)。此外电脑上很多音乐播放软件都支持AAC(前提是安装过AAC解码器),如苹果iTunes。但在移动电话领域,AAC的支持度已很普遍,Nokia、Sony Ericsson、Motorola等品牌均在其中高端产品中支持AAC(一开始主要是LC-AAC,随着移动电话性能的发展,HE-AAC的支持也已广泛)。1

相较于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一个有力的竞争对手。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点区块以增加频域的分辨率,因为如此可以运用更复杂的心理声学模型来达成更好的编码效率2

低码率规格相对于传统的LC-AAC,High Efficiency AAC(高效AAC,简写为HE-AAC或AAC-HE)又称为"aacPlus v1"或"AAC+"- 结合了谱带复制(Spectral Band Replication,SBR)及AAC技术;适用于低比特率(64kbps以下);

HE-AAC v2,又称为"aacPlus v2" - 结合了参数化立体声(Parametric Stereo,PS)和HE-AAC中的SBR技术。HE/AAC v2进一步降低了对码率的需求(接近于50%),被应用于类似于DAB等码率资源很有限的领域。2

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

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

本词条内容贡献者为:

李嘉骞 - 博士 - 同济大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。