荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: enjoy (疼了一星期,智齿没长出来~), 信区: Newsoftware
标  题: foobar2000设置指南(zz)
发信站: 荔园晨风BBS站 (Sat Nov  8 11:11:48 2003), 站内信件

foobar2000的一些使用指南
Directsound 与 Waveout

Q: Directsound 与 Waveout 有何不同?
A: Waveout 是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用程
序接口(Application Programming Interface,简称API)。旧的Windows操作系
统(如Win9x WinNT4)在 Waveout 的完成度很高(因为 waveout 是针对这些操作
系统设计的),如果你想获得最好的效能,你应该在这些操作系统上使用
Waveout输出。然而 Waveout 的功能有所局限,它无法支持「混和多重音讯流」的
功能。这显示在Win2k/XP下的Waveout,只是为了旧的软件的兼容性所提供的,也
因此Win2k/XP下 Waveout 的完成度很糟,它没有使用任何的硬件加速功能,所有
的混音动作都是用软件来执行(因此当CPU的使用率很高时,常常会发生类似CD跳
针的断音现象)。

Directsound 是种较新、较现代化的声音播放 API,都已经内建在最近的32位
Windows操作系统中。

Directsound 支持混和多重音讯流、独立的音量控制、硬件加速层及硬件仿真层(
如果某些功能硬件无法支持

,可以用软件来仿真,因此程序设计师无须担心他们的新 l33t 码无法在旧的声霸
卡16上运作)。一般来说,

只要你的操作系统安装了适当的声卡驱动程序及最新的 DirectX,Direstsound 都
应该可以运作的很好(除了

WinNT4以外)。在Win2k/XP下,Directsound 比 waveout 更好,因为在这些操作
系统里,Directsound 的完成

度相对的比 waveout 来的更高(比 waveout 占用较少的CPU资源,自由度较高,
且不会有 Waveout 常见的小

毛病)。Directsound 原本是被设计来让游戏利用系统的硬件加速功能,而无须直
接接触低阶的硬件函数(就

如同 DirectX 其它的组件)。

Q: 为何 Directsound 总是比 waveout 来的小声?
A: 在Win2k/XP中,改变 waveout 的音量似乎会改变整体音量的设定,然而
Directsound 的音量是独立控制的

。换句话说,你用 waveout 来播放音乐,你将音量设为50%,你就会得到50%的音
量,然后你用 Directsound

来播放,你将音量设为50%,你只会得到最大音量的25%。解决之道:别使用
waveout,并在Windows的音量控制

中将音量设为最大。

Q: Directsound 及 waveout 之间的声音输出品质有所不同吗?
A1: 在Win2k/XP下(或者使用WDM驱动程序),waveout 及 Directsound 只有在传
输 PCM 资料给 Windows

kernel mixer 上有两点不同。waveout 只使用软件混音,因此较少造成系统中的
特殊问题,而 Dircetsound

可以使用硬件混音,因此会造成某些已知的,声音品质的问题。
A2: 在Win9x下,Directsound 驱动系统完全的与 waveout 分离,并使用低阶的方
式来控制硬件,因此这就像

拿两种不同的驱动程序来配合 waveout 及 Directsound。在使用某些老旧的ISA接
口的声卡时,Directsound

为了节省 ISA 总线的频宽,有着会将音讯资料降低取样率至 22khz 8bit (或者
其它相近的取样率)的问题。

Q: 对于 Directsound 而言,软件混音及硬件混音有何不同?
A: 在 WinXP sp1、DirectX 8.1 中,无论是使用微软的 Directsound 核心或者是
驱动程序来进行硬件混音,

都很容易碰到问题。目前已经证实,在 Winxp 下使用硬件混音来传输音讯资料时
,即使是使用不同的声卡,皆

会碰上「取样频率」的问题。特别是某些驱动程序存在已久的问题(著名的创新未
来 Audigy 声卡 Skipping

问题,在某些设定中会出现不间断、静态的杂音,甚至在某些例子中,会发生声音
品质骤降的情形,天晓得为

何会如此!)。如果你想稳定的运作计算机,那建议你最好把硬件加速给关掉。硬
件混音可以 foobar2000 的

偏好设定中的 Driectsound 这个字段里找到 "allow hardware acceleration"。
开启它不代表你就真的激活了

这个功能(Directsound 会在没有可用资源时自动使用软件混音)。

关于重新取样(resampling)
Q: 如果我使用重新取样的功能,能够增进(improve)声音的品质吗?
A: 不行,你无法利用重新取样来「增进」声音的品质,重新取样是个有耗损的过
程。你可以试看看改变一张

bmp 图片的大小,改过大小的图片会和原本的图片极为相似,不过假如你把两张图
都放大(zoom-in)来看,你会

发现它们在细节上并不相同。在某些硬件上,如果你使用高品质的重新取样软件,
来避免让你的驱动程序/硬件

处理重新取样的过程,你可以避免大量资料的损失(也就是避免音讯品质降低)。
我知道某些人在他们的声霸

卡16上将取样率提升为 96khz 24bit,并且声称这样能听到较「明亮」的声音(事
实上 Windows kernel mixer

会将取样率降回 44khz 16bit),别听他们所说的屁话。

Q: 我应该将重新取样的参数设为多少比较好?
A: 首先,你应该查询你声卡的硬件资料。某些声卡(例:在SB Awesome系列以前
发售的声霸卡)不需要重新取

样,这表示你不需要额外的重新取样就已经得到最好的品质了(不会有重新取样造
成的品质降低)。所有的 SB

Live!系列/Audigy系列/AC97兼容的声卡,都已经将输出的取样频率固定为 48khz
,重新取样的品质会因为驱动

程序/硬件装置/Windows混音设定而改变。在许多例子中,SSRC重新取样软件会优
先于你的硬件/驱动程序,因

此你需要将重新取样的参数设为 48khz/16bits,以避免你的硬件/驱动程序来进行
它们较差的重新取样。

Q: 但是我在我的声霸卡上可以重新取样为 96khz/24bits ...
A: 当然可以,Windows混音器会将取样率降回你硬件能够接受的格式(例如:
48khz/16bits),这会造成额外

的品质降低。不要提升取样率,除非你的硬件真的能够接受这些格式。

Dithering

dither 在计算机绘图上称为「递色」,而在处理音讯上,也有着相似的意思。以
下有三张图,大家可以看看

dither 的差异在何处。


原始的图(24bit 高彩),左上角的小方块是从黑框中放大的。


有 dither 的图(8bit 256色),较远处看可以说看不出与原图的差异。


无 dither 的图(8bit 256色),色彩的分布不平顺,与原图可以看出根本的差异
。(图略)

启用这个功能,将会在播放波形时Dithering。如果dithering没有激活,那么
foobar2000将会改用切平。这意

指没有用到的位会被砍掉并丢弃。在许多较安静的音乐中有淡入或淡出的情况时,
会造成「断裂」的听觉效果

(也就是淡入/出的效果不平顺)。

Dithering只有在你将高位(例如:32bit)的音讯以低位(例如:16bit)来播放
时才真正有用。

输出位设定(Output bit depth)
这里有个下拉式选单,可以让你选择输出的位率。如果你有张 24bit 的声卡,你
当然会想让那些没有用到的位

使用 dither to 24bit 来输出。即使是 16bit 的声卡,在播放 32bit 的音讯时
使用 dither to 16bit 也能

增进音质。

foobar2000 处理音讯资料的管道如下

decoder(32 bit fp)=>[replaygain]=>[DSP]=>downsample to 16/24 bit with
optional dithering

因此当你选择 dither to 16/24bit 时,建议你激活dithering。然而如果设为
32bit 是不需要激活

dithering,因为从译码器直接传送过来的资料就是 32bit。

关于 Kernel Streaming
Q: 何谓 Kernel Streaming ?
A: Kernel Streaming 会绕过 Windows kernel mixer,直接输出音讯资料给声卡
。这种方式有着较低的输出延

迟,也许可以被视为 ASIO output 之外的另一种选择。

Q: 我应该用 Kernel Streaming 吗?
A: 如果你的声卡及驱动程序能支持,且你使用 Kernel Streaming 没有什么问题
的情况下,我会建议你使用

Kernel Streaming 。

Q: 为何使用 Kernel Streaming 来输出,比使用 Directsound 输出,感觉声音变
的更大声或者明亮?
A: 声音并没有变的明亮,只有变大声。因为输出资料给声卡的方式不同,因为绕
过了 Windows 的混音器,音

量控制(wave)对于 Kernel Streaming 是无效的,而且都以最大音量来输出。如果
你将音量控制中的 wave 音

量设为最大,并使用 Directsound 输出,你会发现音质和 Kernel Streaming 输
出没什么不同。

Q: 哪些操作系统可以使用 Kernel Streaming ?
A: Kernel Streaming 只能在 Windows 2000 及 Windows XP 上运作,有人说应该
可以在Windows ME 上运作

--
Νο1:ftp://192.168.36.111:111 (NewsoftZ→enjoy站)

 ★『軟件是工具,工慾善其事必先利其器~~』★
 ☆〖歡迎你多到Newsoftware版來〗☆

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.27]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店