日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Directsound 与 Waveout 有何不同

發(fā)布時(shí)間:2024/3/13 100 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Directsound 与 Waveout 有何不同 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Q Directsound 與 Waveout 有何不同?
A Waveout 是在32位的Windows上的一種老舊且過時(shí),用來播放數(shù)字音訊的應(yīng)用程序接
口(Application
Programming Interface,簡(jiǎn)稱API)。舊的Windows操作系統(tǒng)(如Win9x WinNT4)在 Wav
eout 的完成度很高(因?yàn)?waveout 是針對(duì)這些操作系統(tǒng)設(shè)計(jì)的),如果你想獲得最好
的效能,你應(yīng)該在這些操作系統(tǒng)上使用 Waveout 輸出。然而 Waveout 的功能有所局限
,它無法支持「混和多重音訊流」的功能。這顯示在Win2kXP下的 Waveout,只是為了
舊的軟件的兼容性所提供的,也因此Win2kXP下 Waveout 的完成度很糟,它沒有使用任
何的硬件加速功能,所有的混音動(dòng)作都是用軟件來執(zhí)行(因此當(dāng)CPU的使用率很高時(shí),常
常會(huì)發(fā)生類似CD跳針的斷音現(xiàn)象)。
Directsound 是種較新、較現(xiàn)代化的聲音播放 API,都已經(jīng)內(nèi)建在最近的32位Windows操
作系統(tǒng)中。
Directsound 支持混和多重音訊流、獨(dú)立的音量控制、硬件加速層及硬件仿真層(如果
某些功能硬件無法支持,可以用軟件來仿真,因此程序設(shè)計(jì)師無須擔(dān)心他們的新 l33t?
碼無法在舊的聲霸卡16上運(yùn)作)。一般來說,只要你的操作系統(tǒng)安裝了適當(dāng)?shù)穆暱?qū)動(dòng)
程序及最新的 DirectX,Direstsound 都應(yīng)該可以運(yùn)作的很好(除了WinNT4以外)。在
Win2kXP下,Directsound 比 waveout 更好,因?yàn)樵谶@些操作系統(tǒng)里,Directsound 的
完成度相對(duì)的比 waveout 來的更高(比 waveout 占用較少的CPU資源,自由度較高,且
不會(huì)有 Waveout 常見的小毛病)。Directsound 原本是被設(shè)計(jì)來讓游戲利用系統(tǒng)的硬件
加速功能,而無須直接接觸低階的硬件函數(shù)(就如同 DirectX 其它的組件)。
Q 為何 Directsound 總是比 waveout 來的小聲?
A 在Win2kXP中,改變 waveout 的音量似乎會(huì)改變整體音量的設(shè)定,然而 Directsou
nd 的音量是獨(dú)立控制的。換句話說,你用 waveout 來播放音樂,你將音量設(shè)為50%,你
就會(huì)得到50%的音量,然后你用 Directsound 來播放,你將音量設(shè)為50%,你只會(huì)得到最
大音量的25%。解決之道:別使用 waveout,并在Windows的音量控制中將音量設(shè)為最大

Q Directsound 及 waveout 之間的聲音輸出品質(zhì)有所不同嗎?
A1 在Win2kXP下(或者使用WDM驅(qū)動(dòng)程序),waveout 及 Directsound 只有在傳輸 P
CM 資料給 Windows kernel mixer 上有兩點(diǎn)不同。waveout 只使用軟件混音,因此較少
造成系統(tǒng)中的特殊問題,而 Dircetsound可以使用硬件混音,因此會(huì)造成某些已知的,
聲音品質(zhì)的問題。
A2 在Win9x下,Directsound 驅(qū)動(dòng)系統(tǒng)完全的與 waveout 分離,并使用低階的方式來
控制硬件,因此這就像拿兩種不同的驅(qū)動(dòng)程序來配合 waveout 及 Directsound。在使用
某些老舊的ISA接口的聲卡時(shí),Directsound 為了節(jié)省 ISA 總線的頻寬,有著會(huì)將音訊
資料降低取樣率至 22khz 8bit (或者其它相近的取樣率)的問題。
Q 對(duì)于 Directsound 而言,軟件混音及硬件混音有何不同?
A 在 WinXP sp1、DirectX 8.1 中,無論是使用微軟的 Directsound 核心或者是驅(qū)動(dòng)
程序來進(jìn)行硬件混音,都很容易碰到問題。目前已經(jīng)證實(shí),在 Winxp 下使用硬件混音來
傳輸音訊資料時(shí),即使是使用不同的聲卡,皆會(huì)碰上「取樣頻率」的問題。特別是某些
驅(qū)動(dòng)程序存在已久的問題(著名的創(chuàng)新未來 Audigy 聲卡 Skipping 問題,在某些設(shè)定
中會(huì)出現(xiàn)不間斷、靜態(tài)的雜音,甚至在某些例子中,會(huì)發(fā)生聲音品質(zhì)驟降的情形,天曉
得為何會(huì)如此!)。如果你想穩(wěn)定的運(yùn)作計(jì)算機(jī),那建議你最好把硬件加速給關(guān)掉。硬
件混音可以 foobar2000 的偏好設(shè)定中的 Driectsound 這個(gè)字段里找到 "allow hardw
are acceleration"。開啟它不代表你就真的激活了這個(gè)功能(Directsound 會(huì)在沒有可
用資源時(shí)自動(dòng)使用軟件混音)。
關(guān)于重新取樣(resampling)
Q 如果我使用重新取樣的功能,能夠增進(jìn)(improve)聲音的品質(zhì)嗎?
A 不行,你無法利用重新取樣來「增進(jìn)」聲音的品質(zhì),重新取樣是個(gè)有耗損的過程。你
可以試看看改變一張 bmp 圖片的大小,改過大小的圖片會(huì)和原本的圖片極為相似,不過
假如你把兩張圖都放大(zoom-in)來看,你會(huì)發(fā)現(xiàn)它們?cè)诩?xì)節(jié)上并不相同。在某些硬件上
,如果你使用高品質(zhì)的重新取樣軟件,來避免讓你的驅(qū)動(dòng)程序硬件處理重新取樣的過程
,你可以避免大量資料的損失(也就是避免音訊品質(zhì)降低)。我知道某些人在他們的聲
霸卡16上將取樣率提升為 96khz 24bit,并且聲稱這樣能聽到較「明亮」的聲音(事實(shí)
上Windows kernel mixer會(huì)將取樣率降回 44khz 16bit),別聽他們所說的話。
Q 我應(yīng)該將重新取樣的參數(shù)設(shè)為多少比較好?
A 首先,你應(yīng)該查詢你聲卡的硬件資料。某些聲卡(例:在 Awesome系列以前發(fā)售的
聲霸卡)不需要重新取樣,這表示你不需要額外的重新取樣就已經(jīng)得到最好的品質(zhì)了(
不會(huì)有重新取樣造成的品質(zhì)降低)。所有的 Live!系列Audigy系列AC97兼容的聲卡
,都已經(jīng)將輸出的取樣頻率固定為 48khz,重新取樣的品質(zhì)會(huì)因?yàn)轵?qū)動(dòng)程序硬件裝置
Windows混音設(shè)定而改變。在許多例子中,SSRC重新取樣軟件會(huì)優(yōu)先于你的硬件驅(qū)動(dòng)程
序,因此你需要將重新取樣的參數(shù)設(shè)為 48khz16bits,以避免你的硬件驅(qū)動(dòng)程序來進(jìn)
行它們較差的重新取樣。
Q 但是我在我的聲霸卡上可以重新取樣為 96khz24bits ...
A 當(dāng)然可以,Windows混音器會(huì)將取樣率降回你硬件能夠接受的格式(例如: 48khz1
6bits),這會(huì)造成額外的品質(zhì)降低。不要提升取樣率,除非你的硬件真的能夠接受這些
格式。
Dithering
dither 在計(jì)算機(jī)繪圖上稱為「遞色」,而在處理音訊上,也有著相似的意思。以下有三
張圖,大家可以看看 dither 的差異在何處。
原始的圖(24bit 高彩),左上角的小方塊是從黑框中放大的。
有 dither 的圖(8bit 256色),較遠(yuǎn)處看可以說看不出與原圖的差異。
無 dither 的圖(8bit 256色),色彩的分布不平順,與原圖可以看出根本的差異。(圖
略)
啟用這個(gè)功能,將會(huì)在播放波形時(shí)Dithering。如果dithering沒有激活,那么foobar20
00將會(huì)改用切平。這意指沒有用到的位會(huì)被砍掉并丟棄。在許多較安靜的音樂中有淡入
或淡出的情況時(shí),會(huì)造成「斷裂」的聽覺效果(也就是淡入出的效果不平順)。
Dithering只有在你將高位(例如:32bit)的音訊以低位(例如:16bit)來播放時(shí)才真
正有用。
輸出位設(shè)定(Output bit depth)
這里有個(gè)下拉式選單,可以讓你選擇輸出的位率。如果你有張 24bit 的聲卡,你當(dāng)然會(huì)
想讓那些沒有用到的位使用 dither to 24bit 來輸出。即使是 16bit 的聲卡,在播放
32bit 的音訊時(shí)使用 dither to 16bit 也能增進(jìn)音質(zhì)。
foobar2000 處理音訊資料的管道如下
decoder(32 bit fp)=>[replaygain]=>[DSP]=>downsample to 1624 bit with option
al dithering
因此當(dāng)你選擇 dither to 1624bit 時(shí),建議你激活dithering。然而如果設(shè)為 32bit?
是不需要激活dithering,因?yàn)閺淖g碼器直接傳送過來的資料就是 32bit。
關(guān)于 Kernel Streaming
Q 何謂 Kernel Streaming ?
A Kernel Streaming 會(huì)繞過 Windows kernel mixer,直接輸出音訊資料給聲卡。這種
方式有著較低的輸出延遲,也許可以被視為 ASIO output 之外的另一種選擇。
Q 我應(yīng)該用 Kernel Streaming 嗎?
A 如果你的聲卡及驅(qū)動(dòng)程序能支持,且你使用 Kernel Streaming 沒有什么問題的情況
下,我會(huì)建議你使用Kernel Streaming 。
Q 為何使用 Kernel Streaming 來輸出,比使用 Directsound 輸出,感覺聲音變的更大聲或者明亮?
A 聲音并沒有變的明亮,只有變大聲。因?yàn)檩敵鲑Y料給聲卡的方式不同,因?yàn)槔@過了?
Windows 的混音器
,音量控制(wave)對(duì)于 Kernel Streaming 是無效的,而且都以最大音量來輸出。如果
你將音量控制中的 wave 音量設(shè)為最大,并使用 Directsound 輸出,你會(huì)發(fā)現(xiàn)音質(zhì)和
Kernel Streaming 輸出沒什么不同。
Q 哪些操作系統(tǒng)可以使用 Kernel Streaming ?
A Kernel Streaming 只能在 Windows 2000 及 Windows XP 上運(yùn)作,有人說應(yīng)該可以
在Windows ME 上運(yùn)作。
如何設(shè)置
一打開 foobar2000, 你會(huì)發(fā)現(xiàn)它連 play, stop 這些基本的按鈕都沒有, 你可以到 Fo
obar2000>Preferences>Display 里, 選 Show buttons, 接著到 DSP Manager, 把右邊
的 Resampler 移到左邊, 然后在 DSP Manager 下的 Resampler 里, 把 Target sampl
e rate 設(shè)定成你 soundcard 本身的 sample
rate 以下是一些建議數(shù)值 (參考自 DearHoney 的 RMAA 數(shù)據(jù)庫(kù))
44100 - 16, AWE32, AWE64 和其它類似的 ISA soundcard
48000 - PCI, Live, Audigy1, Audigy2, Extigy, Philips AE, Sonic Fury, Ya
maha 7x4 和一般的 onboard soundcard
96000 - Audigy2 和一些真正支持 96khz 的 soundcard, 例如 Terratec 的
在使用 Resampler 之后, 再試試播放上面提及的兩個(gè)測(cè)試訊號(hào), 聽聽是否只聽到很純很
尖的超高頻聲音, 而且聽不出兩個(gè)檔案的分別。如果是的話, 高質(zhì)素的 src 已經(jīng)成功了
。否則請(qǐng)到 foobar2000>preferences>Output 里, 試試選用不同的 Output, 如 Kerne
l Streaming (只限 WDM driver), 變更 DirectSoundWaveOut 里的各種設(shè)定再試試看
, 如果仍然失敗的話, 試試在 Windows 音量控制里按選項(xiàng)>進(jìn)階控制, 看看是否有高低
音控制, 如果有的話, 把高低音都移到正中間再試試看 (如果本身已經(jīng)在中間就不用移
了), 如果還是不行的話, 我也無話可說。注意使用 Kernel Streaming 時(shí) Windows 音
量控制里的 wave 輸出可能會(huì)無法控制, 那是正常的現(xiàn)象。
接著到 Playback 一欄, 會(huì)有一個(gè) Output bit depth 的選項(xiàng), 只有 soundcard 真正支
持 24-bit 時(shí)才選擇 24-bit (Audigy1 是 16-bit, Audigy2 才是 24-bit), 因?yàn)樵诓?br /> 支持 24-bit 的 soundcard 上選 24-bit 只會(huì)令音質(zhì)比 16-bit 更差, 即使你可能聽
不出。
大致上就是這樣了, 其它的功能自己慢慢發(fā)掘吧。

總結(jié)

以上是生活随笔為你收集整理的Directsound 与 Waveout 有何不同的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。