PCM音频数据、DSD音频数据,spdif,以及DOP格式说明
了解PCM音頻數(shù)據(jù)、DSD音頻數(shù)據(jù),spdif看下面連接
https://blog.csdn.net/LINZAI508/article/details/111413061#commentBox
DOP格式
對蘋果平臺而言,既然它只支持PCM,因此我們想辦法把DSD數(shù)據(jù)裝進(jìn)每一幀PCM數(shù)據(jù)里,并用它系統(tǒng)原生的usb驅(qū)動傳輸。DSD數(shù)據(jù)是1bit的,采樣率為2.8224Mhz。換句話說其碼率為2.8224Mbits/sec。這相當(dāng)于16bit/176.4khz規(guī)格的PCM。為了能清楚的表示該PCM數(shù)據(jù)流里封裝的到底是PCM還是DSD,我們還需額外的位來放一些標(biāo)識信息。一般來講比16/176.4規(guī)格還高一級的就是24/176.4了。也就是說我們多出來8位可用。雖然看起來有點多(如果我們能用01兩種狀態(tài)就夠的話,8位能給出256種狀態(tài))。但實際上這8位都能派上用場,如圖:
最前面的8位(Most Significant Bits,簡稱MSB)用作DSD標(biāo)識,在每聲道的每個PCM幀中以0x05和0xFA(16進(jìn)制碼,這種碼每一位分別可對應(yīng)二進(jìn)制中的4位)兩種形式交替出現(xiàn)(早先版本則使用0xAA)。這樣做是為了防止解碼器錯把DSD數(shù)據(jù)認(rèn)成PCM時爆出大量雜音,經(jīng)上述設(shè)置,誤讀時會輸出一個88khz但幅度低至-34db的聲音。絕對無害且多數(shù)解碼器內(nèi)部在輸出前就把他濾掉了(如果反過來,將PCM認(rèn)成DSD的話,產(chǎn)生的雜音則不大好預(yù)測)。需要強調(diào)的是,軟硬件廠商能用一些安全手段就輕易將上述隱患扼殺在設(shè)計階段。這也是他們的責(zé)任:保證成品絕不出此類問題。經(jīng)此文原作者驗證,一種比較穩(wěn)妥的,防止誤判的辦法是:傳輸?shù)臄?shù)據(jù)從PCM切換成DSD時,接收端至少檢查32個連續(xù)的DSD標(biāo)識符,每聲道都要查!從DSD切換到PCM時,至少檢測其中一個聲道丟失的一個標(biāo)識符。這樣做會產(chǎn)生額外180微秒的延遲,但如果這時USB緩存沒空且微幀(USB規(guī)范中對幀和微幀的劃分和本主題關(guān)系不大,這里不再贅述,只需知道他和本身中PCM幀不是一個層面上的事)依然在被接收時,則不會產(chǎn)生延遲。當(dāng)然,最好的辦法還是讓播放軟件先驗證下播放硬件能否支持DSD,然后再開始播放,驗證的渠道也是多種多樣的,通過物理層,驅(qū)動或OS都可做到。
圖中后16位用來承載DSD數(shù)據(jù),從t0開始裝入。USB規(guī)范通常將每個PCM幀分配到一個特定聲道上(比如左或右)。使用DoP模式時,被打包的DSD數(shù)據(jù)的聲道,要與封裝他的那個PCM幀被指派的聲道一致。
上述情況都是針對DSD64而言,而對DSD128,由于碼率增加一倍,相應(yīng)的也需要PCM的采樣率增加到352.8kHz,這里分兩種情況:
用戶的播放設(shè)備支持上述規(guī)格,那么從DSD64直接擴展到128即可,所有表示位和數(shù)據(jù)結(jié)構(gòu)都保持不變。
設(shè)備不支持這種高規(guī)格(例如使用AES/EBU時),這時還有一種辦法:
用原先一對PCM幀,比如分別存儲左右聲道的兩幀湊來存一個聲道的DSD128數(shù)據(jù)。不過把前16個DSD位和后16個DSD位拆開存在前后兩幀里。同時這里要用與之前不同的標(biāo)識符,如下圖紅框中所示:
總結(jié)
以上是生活随笔為你收集整理的PCM音频数据、DSD音频数据,spdif,以及DOP格式说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于流量套利你需要知道的一切(下)
- 下一篇: Vue框架基础知识