数字音频需要传送大量的数据,例如在我们经常使用的一条普通的电话线上,每秒就能传送64000比特,如果没有进行数据压缩,那么我们就需要在音频通道上以706kb/s的速度来传送所希望达到的CD音质的音频(16比特/44.1kHz)。但是现在远程数据传送所使用的电话线却只能实现8比特/8kHz(或64kb/s)的速度,而这只是我们需要的11%。
可以尝试通过降低音质来减少数据量,通过测算,只有大于78dB的动态范围的音频才能够满足家庭收听,而每一比特的采样宽度大致能产生6dB的动态范围,由此需要13比特的量化,即使是这样的话,如果还是利用我们的电话线,还是超出了93%,所以这条道路是行不通的。
音频编码技术最先采用的是ADPCM编码,主要是利用少量的编码来表示有效音频采样间的不同差别和比较个别值。由于其本身的特点,要适应不同比较,导致效率比较低。G.722和APT-X就是这类编码模式,它们大约能降低1/4的原有数据量。G.722通过锁定比特数和人声模式的关系来提高效率。在ISDN上用于谈话和新闻类的节目是足够了,但是如果需要传送高保真的音乐,则需要更为有用,功能强大的编码算法,而这种算法的基础就是心理声学。利用心理声学,音频编码能被设计得更加适合我们的听觉,其更为细致的算法能更好的表现音质间的差别。
知觉编码的基本规律
知觉编码(心理声学编码),就是我们只需要传输能被人类听觉系统所感知的那一部分音频内容。
我们最为理想的传输方式是,没有任何损伤的音频进行不添加任何噪声的变换后再完美的被编码,这样就不会丢失或损坏任何的信息。但不幸的是,不连续的压缩比导致个别信号的冗余有变化。例如像持续正玄波这一类含有大量冗余的信号,而其他一些接近宽带的噪声,则会偶然出现,不含任何冗余。查找冗余需要花费大量时间。用于实时通话的任何信道系统必须要有持续的输出率,并能适应任何出现的情况,因此仅依靠减少冗余度来提高音频的压缩率是不可能的。
心理声学家幸运地找到一个清楚的结论,在人类听觉系统中发现有一个“屏蔽”效应。可以利用这个在时域和频域都被发现存在的屏蔽效应来减少数据的传输。对于音频编码帮助最有效的就是在频域里面。研究表明,一个频率确定的声音或者窄带噪声会在频域上形成以其本身为中心的一个门限电平曲线,其他所有低于这个电平曲线的信号都会被它屏蔽掉。举个例子,如果我们听到一个典型的摇滚乐,其频谱固定,这个时候出现了另外一个简单持续的乐音,其频谱在摇滚乐频谱的附近。这时听觉门限随之改变并被提高,人耳对这个持续乐音附近的信号感觉会变弱,先前可被听见的摇滚乐音就被“屏蔽”在当前的“屏蔽区域”之内。
借助屏蔽效应,研发者们用过滤器组把输入音频分解成多个频带来进行分析和处理。计算出最大的屏蔽噪声电平和可能的比特数,使得所有的量化噪声都位于频谱上每一点的屏蔽门限之下。所以对于广播传输来说,我们就可以丢掉这部分内容或者是用最简化的比特数来量化。任何因初始化所产生的噪声,如果在“屏蔽门限”之下,那么都是听不见的。这个屏蔽区域是由频率,幅度和所以声音的综合分布来决定的。
G.722 G.722是最早期应用最广泛的模式,上世纪70年代开发,1984年被CCITT定义标准,而且现今还在使用。G.722是所有模式中延时最低的,但音质很差,费用低廉,使用低频带ADPCM技术,通过传输有效采样值之间的不同来降低传输数据。通过我们实际使用发现,G.722在7.5kHz处有一个频率响应,此时音质最差,所以在我们看来,这种技术只适合于不需要高保真音质的单声道语言传输。
MPEG Layer2&3
多年以前,国际标准组织ISO/IEC颁布了ISO/MPEG的标准,用来对图像编码和音频编码确定一个全球的标准,以便它们的存贮和传输。早先应用最广的音频编码器技术大多数都是在MPEG的基础上发展起来。MPEG标准是开放发展的,1992年,在MPEG-1中推出了三种不同的音频编码模式,每一个都有不同的码率和应用范围,这就是著名的Layer-1.2和3。层数越高就越复杂。Layer-1没有太大作用,Layer-2被广泛应用于DAB、电视伴音、广播播出系统。在欧洲,Layer-3被用于广播编码,并发展成为著名的网络电子消费品MP3。而MPEG-2则开辟了新的天地,许多附加的改进功能被应用于Layer-2和Layer-3。在1997年,MPEG标准首次增加了AAC家族。MPEG-4现在也已经出台。
MPEG AAC高级音频编码
MPEG-2 AAC是被MPEG确定的较新的音频编码系统,并在1997年3月成为国际标准,是一种高水准的音频压缩工具,能较好的处理比特率超过64kb/s或低于16kb/s的数据流。
AAC研究者们选择了一种模块化设计方式,能更好的提供一种框架结构来满足特别的应用要求。和以前的Layers相比,AAC具有了一些新功能,如“瞬间噪声成型”,“逆适应线性预测”等。AAC支持采样率为(8-96kHz)、比特率为(16-576kHz)的所以组合模式,支持48种声音通道。AAC因为其模块化设计,比以往的MPEG Layer-2&3更为强大。本身的框架结构能够被不断的新的东西填充,这就使得不同发展方面的内核相互融合,彼此吸收精华成为可能。
与MPEG的层相比,AAC具有以下新的增加的功能:
a. 增加的过滤器段能提供2048的频率分析,是以前Layer-3的四倍;
b. 瞬间噪声成型,一种使瞬间干扰最小化的新模块程序,特别有利于语言信号;
c. 可预测模块导向,用力量化如高音等特别信号的高效编码;
d. 知觉噪声消除,让量化分析更容易被控制,数据利用效率高
因为AAC的模块化,使用者可以选择不同的模块自由组合成一个新编码来满足需要。换句话说,新模块可能被发展并移植到其基本结构中,使用不同的模块产生不同的组合。
AAC是建立在与Layer-3相似的结构之上,所以保持与之相同的以下很多优点:
1.冗余降低 Huffman编码将出现频率高的值用短字符来表示,很少采用长字符,这些就能使编码效率大大提高。没有任何冗余,因为整个编码过程是无损的。
2.比特存储缓冲 通常,如果没有噪声的情况,一段音乐当中的临界部分在现有的数据率下是不能被编码的。这类序列要求更高些的数据率来避免冲突。而另一方面,一些信号很容易被编码,如果帧很简单,那么不需要的比特就可以进入存储缓冲区中,当帧变得很多,需要比特时,缓冲区又可以重新向外输出数据。
3.附属数据 数据缓存对于像文本或控制信号这类附属数据可以提高一种高效的解决办法:把它们存在一个特别的缓存区内,根据是否被需要来控制其在输出比特流中的多少。
4.Joint Stereo模式利用了立体声程序素材中的冗余度,编码器可以根据程序素材在四种模式:L、R、L+R和L-R中来回切换。
以上便是AAC研发者们的成功。AAC的编码功能是Laye