Software 版 (精华区)

发信人: JJason (总统), 信区: Software
标  题: foobar Output(输出)
发信站: 哈工大紫丁香 (2004年01月04日19:03:35 星期天), 站内信件

http://foobar.nease.net/output.htm

  Output(输出)   

  几种输出方式FAQ [短歌行]
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以外)。在W
in2k/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 之间的声音输出品质有所不同吗?
A: 在Win2k/XP下(或者使用WDM驱动程序),waveout 及 Directsound 只有在传输 PCM 
资料给 Windows kernel mixer(Windows内核混音器)上有两点不同。waveout 只使用软
件混音,因此较少造成系统中的特殊问题,而 Dircetsound可以使用硬件混音,因此会造
成某些已知的,声音品质的问题。
在Win9x下,Directsound 驱动系统完全的与 waveout 分离,并使用低阶的方式来控制硬
件,因此这就像拿两种不同的驱动程序来配合 waveout 及 Directsound。在使用某些老旧
的ISA接口的声卡时,Directsound为了节省 ISA 总线的频宽,有着会将音讯资料降低取样
率至 22khz 8bit (或者其它相近的取样率)的问题。
Q: 对于 Directsound 而言,软件混音及硬件混音有何不同?
A: 在 WinXP sp1、DirectX 8.1 中,无论是使用微软的 Directsound 核心或者是驱动程
序来进行硬件混音,都很容易碰到问题。目前已经证实,在 Winxp 下使用硬件混音来传输
音讯资料时,即使是使用不同的声卡,皆会碰上「取样频率」的问题。特别是某些驱动程
序存在已久的问题(著名的创新未来 Audigy 声卡 Skipping问题,在某些设定中会出现不
间断、静态的杂音,甚至在某些例子中,会发生声音品质骤降的情形,天晓得为何会如此
!)。如果你想稳定的运作计算机,那建议你最好把硬件加速给关掉。硬件混音可以fooba
r2000 的偏好设定中的 Driectsound 这个字段里找到 "allow hardware acceleration"。
开启它不代表你就真的激活了这个功能(Directsound 会在没有可用资源时自动使用软件
混音)。
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 上运作,有人说应该可以在W
indows ME 上运作一打开 foobar2000, 你会发现它连 播放, 停止 这些基本的按钮都没有
, 你可以到Foobar2000>参数设置>DSP Manager, 把右边的 重采样 (SSRC) 移到左边, 然
后在 DSP Manager 下的 重采样 里, 把 目标采样频率 设定成你 soundcard 本身的采样
率以下是一些建议数值 (参考自 DearHoney 的 RMAA 数据库):
44100 - SB16, AWE32, AWE64 和其它类似的 ISA soundcard 
48000 - SB PCI, SBLive, Audigy1, Audigy2, Extigy, Philips AE, Sonic Fury, 
Yamaha 7x4 和一般的 onboard soundcard 
96000 - Audigy2 和一些真正支持 96khz 的 soundcard, 例如 Terratec 的
在使用 重采样 之后, 再试试播放上面提及的两个测试讯号, 听听是否只听到很纯很尖的
超高频声音, 而且听不出两个档案的分别。如果是的话, 高质素的 src 已经成功了。否则
请到foobar2000>参数设置>Output 里, 试试选用不同的 Output, 如 Kernel Streaming 
(只限 WDM driver), 变更 DirectSound/WaveOut 里的各种设定再试试看, 如果仍然失败
的话, 试试在 Windows 音量控制里按 选项>高级控制, 看看是否有高低音控制, 如果有的
话, 把高低音都移到正中间再试试看 (如果本身已经在中间就不用移了), 如果还是不行的
话, 我也无话可说。注意使用 Kernel Streaming 时 Windows 音量控制里的 wave 输出可
能会无法控制, 那是正常的现象。接着到 Playback 一栏, 会有一个 Output bit depth 
的选项, 只有 soundcard 真正支持 24-bit 时才选择 24-bit (Audigy1 是 16-bit, 
Audigy2 才是 24-bit), 因为在不支持 24-bit 的 soundcard 上选 24-bit 只会令音质比
 16-bit 更差, 即使你可能听不出。 

ASIO FAQ [梦想王国] 
Q: 什么是ASIO?
A: ASIO是Audio Stream Input Output的缩写。由Steinberg发展出的一种多重声道音频传
输协议。
Q: 为什么在WinXP下,使用ASIO会比Directsound输出好?
A: ASIO会跳过Windows Kernel Mixer,和Kernel Streaming一样,但是在某些生卡上使用
Kernel Streaming 会发生死机的情況,因此ASIO被视为另一种替代的选择。
Q: 如果我要使用声卡的数字输出(SPDIF/光纤),那我要选用哪种API呢? 
A: 你必须使用DirectSound来输出数字信号,使用waveOut或Kernel Streaming均输出错误
的的数字信号。

ASIO 简介[X-Sound]
ASIO:Audio Stream Input Output,这是一套带有专业色彩的API,名字就说明问题,是
一套专门负责输入输出的API。在专业创作的时候,一点平时并不起眼的延时都会严重的破
坏创作情绪,当按下琴键后需要几百毫秒才能有所反应的话,会是一个什么样子的感觉。A
SIO因此诞生,音乐制作软件Cubase VST的开发者Steinberg公司提出了被称为Audio 
Stream Input Output的标准规范,ASIO完全摆脱了Windows操作系统对硬件的集中控制,
它能实现在音频处理软件与硬件之间进行多通道传输的同时,将系统对音频流的响应时间
降至最短。这套API在普通播放和录音时并没有大的优势,因此也不是太多声卡支持。
   
本页最后更新日期: 12/09/2003 10:12:28  
『返回上一页』 | 『转到首页』 | 『联系我』 | 『关闭窗口』 

 
 
--

     人生,就是一团欲望:
     欲望没有满足的时候就是痛苦,
     欲望被满足的时候就是无聊;
     人生就是在痛苦与无聊之间徘徊。

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 172.16.4.63]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.981毫秒