DirectSound与Waveout的区别_第1页
DirectSound与Waveout的区别_第2页
DirectSound与Waveout的区别_第3页
DirectSound与Waveout的区别_第4页
DirectSound与Waveout的区别_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DirectSound与Waveout的区别QDirectsound与Waveout有何不同?AWaveout是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用程序接口(ApplicationProgrammingInterface,简称API)。旧的Windows操作系统(如Win9xWinNT4)在Waveout的完成度很高(因为waveout是针对这些操作系统设计的),如果你想获得最好的效能,你应该在这些操作系统上使用Waveout输出。然而Waveout的功能有所局限,它无法支持混和多重音讯流的功能。这显示在Win2kXP下的Waveout,只是为了旧的软件的兼容性所

2、提供的,也因此Win2kXP下Waveout的完成度很糟,它没有使用任何的硬件加速功能,所有的混音动作都是用软件来执行(因此当CPU的使用率很高时,常常会发生类似CD跳针的断音现象)Directsound是种较新、较现代化的声音播放API,都已经内建在最近的32位Windows操作系统中。Directsound支持混和多重音讯流、独立的音量控制、硬件加速层及硬件仿真层(如果某些功能硬件无法支持,可以用软件来仿真,因此程序设计师无须担心他们的新l33t码无法在旧的声霸卡16上运作)。一般来说,只要你的操作系统安装了适当的声卡驱动程序及最新的DirectX,Direstsound都应该可以运作的很

3、好(除了Win2kXP下,Directsound比waveout更好,因为在这些操作系统里,WinNT4以外)。在Directsound的完成度相对的比waveout来的更高(比waveout占用较少的CPU资源,自由度较高,且控制硬件,因此这就像拿两种不同的驱动程序来配合waveout及Directsound。在使用某些老旧的ISA接口的声卡时,Directsound为了节省ISA总线的频宽,有着会将音讯不会有Waveout常见的小毛病)。Directsound原本是被设计来让游戏利用系统的硬件加速功能,而无须直接接触低阶的硬件函数(就如同DirectX其它的组件)。Q为何Directsou

4、nd总是比waveout来的小声?A在Win2kXP中,改变waveout的音量似乎会改变整体音量的设定,然而Directsound的音量是独立控制的。换句话说,你用waveout来播放音乐,你将音量设为50%,你就会得到50%的音量,然后你用Directsound来播放,你将音量设为50%,你只会得到最大音量的25%。解决之道:别使用waveout,并在Windows的音量控制中将音量设为最大。QDirectsound及waveout之间的声音输出品质有所不同吗?A1在Win2kXP下(或者使用WDM驱动程序),waveout及Directsound只有在传输PCM资料给Windowsker

5、nelmixer上有两点不同。waveout只使用软件混音,因此较少造成系统中的特殊问题,而Dircetsound可以使用硬件混音,因此会造成某些已知的,声音品质的问题。waveout分离,并使用低阶的方式来A2在Win9x下,Directsound驱动系统完全的与资料降低取样率至22khz8bit(或者其它相近的取样率)的问题。Q对于Directsound而言,软件混音及硬件混音有何不同?A在WinXPsp1、DirectX8.1中,无论是使用微软的Directsound核心或者是驱动程序来进行硬件混音,都很容易碰到问题。目前已经证实,在Winxp下使用硬件混音来传输音讯资料时,即使是使用不

6、同的声卡,皆会碰上取样频率的问题。特别是某些驱动程序存在已久的问题(著名的创新未来Audigy声卡Skipping问题,在某些设定中会出现不间断、静态的杂音,甚至在某些例子中,会发生声音品质骤降的情形,天晓得为何会如此!)。如果你想稳定的运作计算机,那建议你最好把硬件加速给关掉。硬件混音可以foobar2000的偏好设定中的Driectsound这个字段里找到allowhardwareacceleration。开启它不代表你就真的激活了这个功能(可Directsound会在没有用资源时自动使用软件混音)。关于重新取样(resampling)Q如果我使用重新取样的功能,能够增进(improve)

7、声音的品质吗?A不行,你无法利用重新取样来增进声音的品质,重新取样是个有耗损的过程。你可以试看看改变一张bmp图片的大小,改过大小的图片会和原本的图片极为相似,不过假如你把两张图都放大(zoomin)来看,你会发现它们在细节上并不相同。在某些硬件上,如果你使用高品质的重新取样软件,来避免让你的驱动程序硬件处理重新取样的过程,你可以避免大量资料的损失(也就是避免音讯品质降低)。我知道某些人在他们的声霸卡16上将取样率提升为96khz24bit,并且声称这样能听到较明亮的声音(事实上Windowskernelmixer会将取样率降回44khz16bit),别听他们所说的话。Q我应该将重新取样的参数

8、设为多少比较好?A首先,你应该查询你声卡的硬件资料。某些声卡(例:在Awesome系列以前发售的声霸卡)不需要重新取样,这表示你不需要额外的重新取样就已经得到最好的品质了(不会有重新取样造成的品质降低)。所有的,都已经将输出的取样频率固定为Live!系列Audigy系列48khz,重新取样的品质会因为驱动程序硬件装置AC97兼容的声卡Windows混音设定而改变。在许多例子中,SSRC重新取样软件会优先于你的硬件驱动程序,因此你需要将重新取样的参数设为48khzl6bits,以避免你的硬件驱动程序来进行它们较差的重新取样。Q但是我在我的声霸卡上可以重新取样为A当然可以,Windows混音器会将

9、取样率降回你硬件能够接受的格式(例如:96khz24bits.48khz16bits),这会造成额外的品质降低。不要提升取样率,除非你的硬件真的能够接受这些格式。Ditheringdither在计算机绘图上称为递色,而在处理音讯上,也有着相似的意思。以下有三原始的图(24bit高彩),左上角的小方块是从黑框中放大的。有dither的图(8bit256色),较远处看可以说看不出与原图的差异。无dither的图(8bit256色),色彩的分布不平顺,与原图可以看出根本的差异。(图dither的差异在何处。张图,大家可以看看)略Dithering。如果dithering没有激活,那么00将会改用切平

10、。这意指没有用到的位会被砍掉并丢弃。在许多较安静的音乐中有淡入启用这个功能,将会在播放波形时foobar20或淡出的情况时,会造成断裂的听觉效果(也就是淡入出的效果不平顺)Dithering只有在你将高位(例如:正有用。32bit)的音讯以低位(例如:16bit)来播放时才真(Outputbitdepth)这里有个下拉式选单,可以让你选择输出的位率。如果你有张输出位设定24bit的声卡,你当然会想让那些没有用到的位使用ditherto24bit来输出。即使是16bit的声卡,在播放32bit的音讯时使用ditherto16bit也能增进音质。foobar2000处理音讯资料的管道如下decod

11、er(32bitfp)=replaygain=DSP=downsampleto1624bitwithoptionaldithering因此当你选择ditherto1624bit时,建议你激活dithering。然而如果设为32bit是不需要激活dithering,因为从译码器直接传送过来的资料就是32bit。关于KernelStreamingQ何谓KernelStreaming?AKernelStreaming会绕过Windowskernelmixer,直接输出音讯资料给声卡。这种方式有着较低的输出延迟,也许可以被视为ASIOoutput之外的另一种选择。Q我应该用KernelStreamin

12、g吗?A如果你的声卡及驱动程序能支持,且你使用KernelStreaming没有什么问题的情况下,我会建议你使用KernelStreaming。Q为何使用KernelStreaming来输出,比使用Directsound输出,感觉声音变的更大声或者明亮?A声音并没有变的明亮,只有变大声。因为输出资料给声卡的方式不同,因为绕过了Windows的混音器,音量控制(wave)对于KernelStreaming是无效的,而且都以最大音量来输出。如果你将音量控制中的wave音量设为最大,并使用Directsound输出,你会发现音质和KernelStreaming输出没什么不同。Q哪些操作系统可以使用K

13、ernelStreaming?AKernelStreaming只能在Windows2000及WindowsXP上运作,有人说应该可以在WindowsME上运作。如何设置一打开foobar2000,你会发现它连play,stop这些基本的按钮都没有,你可以到Foobar2000PreferencesDisplay里,选Showbuttons,接着到DSPManager,把右边的Resampler移到左边,然后在DSPManager下的Resampler里,把Targetsamplerate设定成你soundcard本身的samplerate以下是一些建议数值(参考自DearHoney的RMAA数

14、据库)44100-16,AWE32,AWE64和其它类似的ISAsoundcard48000-PCI,Live,Audigy1,Audigy2,Extigy,PhilipsAE,SonicFury,Yamaha7x4和一般的onboardsoundcard96000-Audigy2和一些真正支持96khz的soundcard,例如Terratec的在使用Resampler之后,再试试播放上面提及的两个测试讯号,听听是否只听到很纯很尖的超高频声音,而且听不出两个档案的分别。如果是的话,高质素的src已经成功了。否则请到foobar2000preferences0里t,pUt选用不同的Output,如KernelStreaming(只限,如果仍然失败的话,试试在Windows音量控制里按选项进阶控制,看看是否有高低音控制,如果有的话,把高低音都移到正中间再试试看(如果本身已经在中间就不用移了),如果还是不行的话,我也无话可说。注意使用KernelStreaming时Windows音量控制里的wave输出可能会无

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论