Share via


S/PDIF Pass-Through 非 PCM 資料流程的傳輸

(S/PDIF 的數位介面) 格式主要定義用於傳輸 PCM 音訊資料,但可以輕鬆地調整以傳輸非 PCM 資料。 S/PDIF 傳遞傳輸的原則是非 PCM 資料流程可以透過 S/PDIF 連結傳遞,就像是 PCM 資料流程一樣。 傳遞傳輸不需要 S/PDIF 傳送和接收埠,才能瞭解非 PCM 資料流程的編碼方式。

WMA Pro 和 AC-3 都是壓縮的非 PCM 格式,以稱為同步畫面的單位傳輸數位音訊資料流程。 每個同步框架都包含自己的標頭,而且可以與資料流程中的其他同步畫面分開進行解碼。 例如,在 48-kHz 取樣率中,WMA Pro 同步畫面包含足夠的資料來播放樣本時鐘的 2048 刻度, (42.67 毫秒) 。 同樣地,AC-3 同步畫面包含足夠的資料,以 1536 個刻度 (32 毫秒) 。

在 48-kHz 取樣率中,5.1 通道 WMA Pro 同步畫面永遠不會超過 8192 個位元組,這是 2048 立體 (雙通道) 16 位 PCM 範例所佔用的位元組數。 同樣地,5.1 通道 AC-3 同步畫面永遠不會超過 6144 個位元組,這是 1536 個身歷聲、16 位 PCM 樣本所佔用的位元組數目。 (此規則有例外狀況,但 AC-3 同步處理畫面的類型非常罕見、無法透過 S/PDIF 傳輸,而且可以在這裡忽略。)

當 48-kHz WMA Pro 或 AC-3 音訊串流通過數位格式的 S/PDIF 連結而不進行解碼時,S/PDIF 傳送和接收埠可以將資料流程視為與立體、16 位、48-kHz PCM 資料流程相同。 針對可傳輸 WMA Pro-over-S/PDIF 或 AC-3-over-S/PDIF 資料流程的針腳指定資料範圍時,波浪格式標記本身是唯一不同于透過 S/PDIF 埠傳輸 PCM 資料流程之針腳的資料範圍。 如需範例,請參閱 指定 WMA Pro 資料範圍中的資料範圍宣告。

為了避免在 S/PDIF 介面上傳遞 WMA Pro 壓縮資料流程的速度比即時快 (更快,也就是為了避免在 43 毫秒內傳遞 43 毫秒的音訊,) ,音訊應用程式必須將 WMA Pro 同步處理畫面填補零,直到同步畫面佔用與 2048 立體 PCM 樣本相同的位元組數目為止。 AC-3 同步畫面必須同樣地填補到 1536 個立體 PCM 樣本的大小。

如果您嘗試將未寫入的 WMA Pro 或 AC-3 同步畫面傳送至使用 WaveCyclic 的 PortCls 配接器驅動程式,請注意,當埠驅動程式感知資料耗盡 (時,因為資料流程包含比雙通道未壓縮資料流程較少的位元組會) ,它會以無聲方式填滿迴圈緩衝區。 非 PCM 資料流程解碼器將有解譯這些無聲期間的問題,這些期間為 PCM,而不是非 PCM 格式。

下圖顯示 S/PDIF 傳遞傳輸的範例應用程式。

此圖顯示透過 S/PDIF 傳遞傳輸的同軸纜線連線到 A/V 接收者的電腦。

此圖顯示透過同軸纜線連線到外部音訊/視覺效果 (A/V) 接收器的電腦。 纜線會將電腦上的 S/PDIF 輸出埠連接到 A/V 接收器上的 S/PDIF 輸入埠。

在圖的左邊緣,音訊應用程式會將來自 WMA Pro 音訊資料流程的同步畫面插入 8192 位元組緩衝區的開頭。 (此緩衝區大小只會用來簡化圖例。實際上,可能會改用 4096 個位元組或 10240 個位元組的緩衝區大小。) 應用程式會以零填滿緩衝區中的任何剩餘空間。 音訊驅動程式會程式 S/PDIF 輸出埠來傳輸緩衝區的內容,就像是 PCM 資料的 8192 位元組一樣。

同樣地,A/V 接收器上的 S/PDIF 輸入埠會接收資料流程,就像是 8192 個位元組的 PCM 資料一樣。 它會將資料載入輸入緩衝區,在此範例中,其大小也為 8192 個位元組。 解碼器會從輸入緩衝區擷取 WMA Pro 同步畫面、將同步畫面解碼為 5.1 通道音訊資料流程,並透過圖形右邊緣的周圍喇叭播放串流。

若要讓連接另一端的解碼器知道音訊資料流程是非 PCM 格式,音訊驅動程式應該在 S/PDIF 接收器上設定 /AUDIO 位。 解碼器會從 S/PDIF 通道狀態欄塊讀取此位,以判斷資料流程是否以非 PCM 格式編碼。 設定此位是驅動程式必須執行以容納非 PCM 資料流程的唯一特殊動作。 以其他方式,驅動程式會將資料流程視為包含 PCM 資料。

許多取用者裝置都支援 S/PDIF 傳遞傳輸,但 USB 和 1394 等其他數位介面也可以適應非 PCM 資料到外部音訊解碼器的數位傳遞傳輸。

Dolby Exploreres 引進 AC-3 (Dolby Digital) 1992 壓縮的音訊格式。 支援 AC-3 over S/PDIF 的第一個取用者 A/V 接收者已于大約 1997 年推出。 WMA Pro 音訊資料流程格式的軟體支援已于 2003 年推出 Microsoft Windows Media 9 系列技術。 2003 年引進了支援 WMA Pro-over-S/PDIF 的 A/V 接收者。

在 Windows XP 和更新版本中,waveOut、DirectSound 和 DirectShow API 支援非 PCM 格式。 DirectSound 和 waveOut API 的實作方式是讓驅動程式公開的任何 PCM 或非 PCM 格式自動提供給這些 API 的用戶端使用。