使 用 介 绍
经历了许多波折之后,Ogg Vorbis 这个曾经给大家带来许多希望的完全免费的声音格式终于推出了编码/解码器的1.0 rc2版本。相比之前的许多BETA版本,目前这个已经有了很大的进步。世纪音频一直都在观察着Ogg Vorbis的发展,现在我们来看看这个最新的版本的性能和音质到底能到达那一个程度。
首先上网下载最新的编码和解码器。编码器 有两个,分别是命令行界面的和图形界面的。首先来看看命令行的,发现并没有多少选项,而且没有对音质进行调节的选项,这一点与LAME有很大分别。唯一能 影响音质的只有比特率选项。考虑到大多数人都偏爱使用图形界面的东西,命令行的就不详细谈了。我们来看看图形界面的编码器截图:
怎 么样,相信在世界上也找不出能比它更简洁的编码器界面了。这个播放器使用拖放操作接受文件,只要把要编码的WAV文件(一个或多个)选中后拖到窗口上放 开,它便会自动开始工作,压缩后的文件扩展名为OGG,并放到编码器所在目录下。由于编码器还不是最终版,因此OGG 的压缩速度很慢(可以跟VQF相比),据本人计算,以128KBPS压缩一段长度为4分40秒(47.1MB)的CD音质音乐用了6分3秒(本人的老机: K6-2-400,256M RAM, WIN98)。至于出来的文件长度就差不多。这是一张工作中的截图:
上面的黑色横杠表示正在压缩的文件的进度,下面是所有文件的进度。在工作的时候那条鱼还会转动,挺有趣的。
要调节OGG的压缩设置,可以在其界面上按鼠标右键,出来也是一个非常简单的菜单,最关键的也只有一个项目:编码的比特率bitrate。这东西默认情况下 是使用80KBPS的比特率的,不禁让人想起了VQF。不过OGG的官方网站只声称在128KBPS下可以达到或者超过128KBPS的MP3的质量,因 此我们主要要看的也就是在128KBPS下的表现了。当然,64、80和96KBPS也会看看。
值得一提的是:命令行版本的编码器在解释指定kbps的参数意义时有这样的表述:
-b, --bitrate Choose a nominal bitrate to encode at. Attempt to encode
at a bitrate averaging this. Takes an argument in kbps.
看起来,Ogg Vorbis是一种基于ABR(Average Bitrate平均比特率)而不是平时常见的CBR(Constant
Bitrate常数比特率)的编码方式。这一点推测随后得到证实,请看下图:
该图是在WINAMP中使用File Info功能显示的OGG格式文件的信息,很明显地我们可以看到average bitrate平均比特率和nominal bitrate名义比特率字样。这样看来OGG能超越CBR方式的MP3质量也不无道理。另外就是OGG的附带信息格式实在是太灵活了,只能用惊叹两字形 容。
在解码播放方面,许多流行的软件都已经支持OGG播放,比如WINAMP、SONIQUE等等。因此这次测试的播放软件也就 是WINAMP。另外,值得一提的是著名的音频编辑软件SOUND FORGE 5已经支持OGG格式的打开和保存,这对推动OGG的发展有相当的正面作用。
测 试 过 程
这一次的测试,与本站曾经做过的mp3PRO的测试有所区别。mp3PRO是基于MP3技术的,因此质量如何,大家也 有底。OGG则完全是一种全新的压缩算法,因此有必要从一些物理指标入手。另外,据OGG官方介绍,编码器只是对44和48KHZ的声音做了微调以达到最 佳效果,因此我们也只测试44KHZ的声音。
测试准备
使用工具: COOLEDIT PRO 1.2(噪音生成、特定频率声音生成、频谱显示等),WINAMP 2.76(解码为WAV文件),OGGDROP 1.0 RC2,LAME 3.89 BETA,WINDOWS MEDIA ENCODING UTILITY 8,TVQENC,THOMSON mp3PRO PLAYER 1.02及其WINAMP插件,还有自己写的WAVECN(主要是编辑和MP3方面的压缩、解压)。
测试声音:
1、利用COOLEDIT PRO的噪音生成器和频率发生器生成声音
2、利用LAME源代码中附带的测试片断。有兴趣的朋友可以按这里下载。
一、非乐音测试
对 于此种测试的最佳测试方式应该是使用一个实时OGG编码/解码器,可以直接调节输入信号频率及强度并可即时观察到其输出频谱,这种测试方法又称黑箱法。在 一些检测机构中对音频功率放大器和音箱的测试都是基于这种方法使用专门的仪器进行。不过在软件上不具备这种条件,只能用生成音频-压缩-解码-观察频谱的缓慢方法。
测试内容包括三种标准噪音:白噪音、粉红噪音和褐色噪音。这里先解释一下这几种噪音都是什么东东:
白噪音
所谓白噪音是指一段声音中的频率分量的功率在整个可听范围(0~20KHZ)内都是均匀的。由于人耳对高频敏感一点这种声音听上去是很吵耳的沙沙声。粉红噪音
粉红噪音是自然界最常见的噪音,简单说来,粉红噪音的频率分量功率主要分布在中低频段。从波形角度看,粉红噪音是分形的,在一定的范围内音频数据具有相同 或类似的能量。从功率(能量)的角度来看,粉红噪音的能量从低频向高频不断衰减,曲线为1/f,通常为每8度下降3分贝。粉红噪音是最常用于进行声学测试 的声音。褐色噪音
褐色噪音的频率分量功率主要集中在低频段。其能量下降曲线为1/f^2,其波形是非常自相似的。作 者利用COOLEDIT PRO 1.2生成一段全功率44100HZ单声道的噪音,时间长度为2秒。然后分别以128、96、80和64kbps进行压缩。然后通过Ogg Vorbis的WINAMP播放插件(本站也提供下载),利用WINAMP的输出到文件插件(DiskWriter)将其解码还原为WAV文件。
这 一系列步骤完成后,再使用COOLEDIT提供的Spectral View(频谱浏览)观察整体的频谱表现。由于所有的这些音频压缩方式都是有损压缩方法,也就是说会丢失原来数据中某些人耳比较容易忽略掉的信号,因此将 解码后的频谱与原来未压缩的频谱比较便可知道丢失的是那些信号,而不同压缩方式之间的频谱互相比较便可以看出那种压缩方式更优胜(也就是丢失的信号少)。
这 些图怎么看呢?在图片上,从左到右是时间轴不断递增。窗口右边标尺上的数字是频率,最顶上一横(没有标上数字的)是20000赫兹,是一般人的听觉上限。 在图中,亮的部位表示能量较强,也就是在这一点的时刻该频率的声音比较多。暗的部位则能量弱,黑色的当然就是没有啦。通过以上各图片的对比,发现在80及 64KBPS下音频数据会出现高频部分被截掉的现象,不过截止频率是比较高的:大约在17KHZ左右。
为测试Ogg Vorbis实际的截断频率,作者尝试产生20KHZ 19KHZ 18KHZ 17KHZ 16KHZ 15KHZ共6种频率的的纯音给OGG进行编码。使用的比特率为128KBPS。在测试中作者发现OGG是没有绝对的截断频率的,关键是看信号的强度。同 样的一段18KHZ的高频信号,当强度为最大时OGG会很好地将其编码。但强度低于-20分贝时则被完全抹掉。由于这种测试实在耗时耗力且意义不大,因此 没有做完整的测试和比较,只进行了如下的几次测试:
以上的6个纯音信号都能重现,不过在能量方面都有衰减。不过相比其他编码方式,只有Ogg Vorbis才能在128KBPS下完全通过以上频率地压缩重方测试,而其他的几种编码方式,都无法完全重现原来的信号。比如mp3PRO,则只能最高重 现16KHZ的信号。有兴趣的朋友可以自行测试。
不过,并不能因为OGG能在128KBPS下可以准确还原高频纯音信号就可以说其性能是最优的。这是因为在实际情况中声音的信号都 不会是单一频率的。所以关键还是要看其在乐音方面的表现。
二、乐音对比测试
1)在128KBPS下与MP3相比
需要说一说的是,MP3的算法有一个不好的地方,就是解码时需要有一段“热身”时间。在平时解码长的MP3文件是不会觉察的,但LAME提供的 TESTCASE文件很短,只有0.567秒,因此就变得非常明显。而OGG就没有这个问题。这个问题的最坏影响就是会使得COOLEDIT的窗口显示比 例小了(同样大小的窗口,MP3要显示多些数据),因此各位在观察频谱区别时要适当注意一下。
2)在96KBPS下与WMA相比
很不幸的是,WMA也有“热身”时间。不过差别还是很明显的。另外要说的一句是,微软的WMA格式号称能在64kBPS下提供CD音质的音乐,其实根本是 骗人的。因此这里用的是96kBPS的WMA格式。
3)在80KBPS下与VQF相比
VQF没有这个“热身”时间,不过却多了个结尾时间。低比特率下面,VQF的优势挺明显的。
4)在64KBPS下与mp3PRO相比
mp3PRO是基于MP3的,“热身”时间当然也少不了。mp3PRO的确是低比特率的强者。
5)HIEND级别的,350KBPS OGG与最高质量的VBR LAME MP3比较
不用比都应该知道谁好。
最 后 结 论
从 频谱来看,Ogg Vorbis在标准比特率下质量优于MP3、WMA、劣于VQF和mp3PRO,基本符合其官方宣称。至于主观测试则留给大家自己去进行了。毕竟不是每个 人的听觉模型都是相同的。不过,到目前为止,对于单一算法的编码方式(即除了mp3PRO)能在达到最高质量同时还能兼顾存储容量的还只有以VBR模式的 LAME压缩的MP3。
技 术 资 料
下面再给兴趣的朋友介绍一下Ogg Vorbis的编码技术规范。由于一直到目前为止Ogg Vorbis的标准技术文档还没有出台,只能从官方网站上公布的一些FAQ来获得信息:
首 先,VORBIS基于最大的灵活性考虑,使用的是向前适应算法结构(forward adaptive algorithm format)。因为VORBIS会不断地研究和改进,因此无论是核心、规范抑或算法的通用性(generalized,或称环境无关性)都定位在一个不 同寻常的层次。虽然向前适应算法结构在今天看来已经显得有点落后,但其灵活性是无可比拟的。
目前,VORBIS中的主要算法还是 利用MDCT(修饰离散余弦变换Modified Discrete Cosine Transform )而不是用现在比较时兴的小波(wavelet)技术。这是因为MDCT对于蕴含丰富音调的音频来说差不多是最优化的转换方法。况且小波技术也不是万能 的,它所能提供的在时间、频率分辨率方面的平衡性对于音频数据来说并不是任何时候都处理得很好。不过小波技术也是VORBIS规范的一部分,但只是停留在 试验阶段,也就是说,在VORBIS 1.0标准规范中不会出现。而实际上,Ogg Vorbis在小波技术上遇到了专利壁垒。
在错误校正方面,由于VORBIS所使用的OGG流结构具有数据检查和这一特性,因此可以保护流中的数据。但是VORBIS没有提供任 何错误校正的冗余信息,因此,虽然VORBIS可以检测出数据的错误并会跳过错误的数据,但错误的地方是不能恢复的。
还 有就是,VORBIS目前并不支持我们俗称为“联合立体声Joint Stereo”的编码模式(此模式通过将左右声道中相同的频率分量提取出来做中间声道,将不同的作为边带声道然后编码,可以提高声音质量和压缩效率,又称 为Mid/Side模式)。在官方站点上介绍说是该模式的规范还未正式订立并实现。但据资料显示,该编码模式也是专利技术。因此Ogg Vorbis根本不会有这种编码方式。但是,并不是说Ogg Vorbis在这方面就毫无作为。在1.0 Beta 4 版本之前的编码器是以各通道相互独立的标准立体声模式来编码的。但从1.0 RC 1开始,Ogg Vorbis发展出了两种全新的多通道编码技术,统称为立体声通道耦合Stereo Channel Coupling。而该技术实际又是由两种不同的技术组成的:channel interleaving 和 square polar mapping。据官方声称,与其他会造成立体空间感减弱的编码模型相比,这两种技术都可以在保持编码器的灵活性的同时而不损害本来的立体声空间影像。而 且实现的复杂程度比联合立体声方式要低。
channel interleaving可以简单地应用于多声道的编码,而square polar mapping是可继承的,可以适应于任何数量的声音通道。详细的介绍可以看以下页面:http://www.xiph.org/ogg/vorbis/doc/stereo.html。 这里不详细讨论了。但可以相信的是,Ogg Vorbis的音质与以前的版本相比的不断提高,与立体声通道耦合这一技术有着很大的关系。
虽然Ogg Vorbis的诞生并不顺利,在发展中又受到诸多制约,但丝毫不影响其作为一 种完全开放性的技术活跃在音频的各个领越。我们有充分的理由相信,OGG的明天将会非常美好。
- END -
版权所有,未经作者(苏信东)本人许可不得转载于任何媒体
本站微信订阅号:
本页网址二维码: