Win10 變靚聲 Audio API 技術剖析

| Ringo | 30-01-2016 19:15 | |
Win10 變靚聲   Audio API 技術剖析

全新 Audio API 各有特色,「WASAPI + Raw Mode」走原音路線,AudioGraph 針對專業用途,PortAudio 則以時間準確性為大前題。以下剖析它們的技術原理,讓用家清楚哪一種 Audio API 最適合自己口味。

API 01:WASAPI + Raw Mode

WASAPI 隨第一代 UAA 架構面世時,外界評價甚高,音質較傳統 DirectSound 優勝,表現追貼 ASIO 2.0。WASASPI 本身設有 Exclusive Mode「獨佔模式」,容許音效軟件完全佔用音效卡 (或 USB DAC),並根據音訊的原來取樣格式 (Sampling Rate) 直接播放,而且不作額外的 SRC (取樣格式轉換) 處理,做法跟 ASIO 2.0 非常接近。《Windows 10》為 WASAPI 新增的 Raw Mode 模式更進一步,直接略過 WASAPI 中的非必要混音單元,包括:SFX (Stream Effects) 及 MFX (Mode Effects),將音訊直接交到 WASAPI 最末端的 EFX (Endpoint Effect),直接傳輸至音效卡驅動程式及音效晶片,大幅減少音訊失真。Raw Mode 另一特點是支援傳輸 PCM (Pulse Code Modulation) 制式以外的音訊,譬如近年熾熱的 Sony DSD 制式,PC 平台毋須依靠 DoP (DSD-over-PCM) 技術,省卻 DSD 音訊「偽裝」成 PCM 音訊的步驟,直接傳輸 DSD 音訊至 USB DAC。


API 02:AudioGraph

WASAPI 在 CAS 層面嬴得正面評價,但專業製作市場如:現場錄音、電子樂器彈奏等,仍然主要使用 ASIO 2.0。究其原因,乃 WASAPI 平均最低延遲時間介乎 10ms 至 30ms,雖然對 CAS 純播放用途已足夠,但此數值對專業製作要求的 <10ms 而言,卻是偏高。為此,《Windows 10》藉著第二代 UAA 架構,引入全新 AudioGraph Audio API。AudioGraph 技術很大程度衍生自 WASAPI,但根據官方在今年 WinHEC (視窗硬體工程研討會) 公開的技術文件,兩者主要分別在於編程語言,AudioGraph 基於高階《C#》寫成,WASAPI 則基於較低階的《C++》,故 AudioGraph 編程的複雜程度較高,但對音效硬件卻有更高直接控制權。Microsoft 表示,AudioGraph 的最低延遲時間可控制在 1ms 至 5ms 之間,表現跟 ASIO 2.0 幾乎看齊,可見 AudioGraph 擺明是衝著 ASIO 2.0 而來。


API 03:PortAudio

有外國玩家自行開發全新 PortAudio,為《Windows》、《Linux》及《Mac OS X》作業系統提供統一 Audio API。僅須播放軟件支援 PortAudio 輸出,音訊便能經過「PortAudio Wrapper」進行實時編譯,依據作業系統類型而轉換成 WASAPI、ASIO 2.0、ALSA 或 Core Audio 等訊號。因此,音效硬件毋須作出任何修改或刻意提供 PortAudio API 驅動程式,PortAudio API 亦能正常運作。PortAudio API 最初是針對《Linux》平台而開發,因此具備《Linux》ALSA 音效架構特質,包括:取樣頻率無上限、支援 32-bit 浮點 Bit-Depth 解像度及對應 DoP 傳輸等。更重要是加入 Stream Timing Information (串流時間資訊) 及 Time Synchronization (時間同步) 兩項功能,在音訊中加入時間資料,透過時間同步功能,協調播放軟件跟音效硬件的時間準確性,確保音訊能完整傳輸兼消除 Jitter 時間誤差。

 

Source:ezone.hk

 

Page 1 of 13