沈向輝,劉月萍
(中國(guó)傳媒大學(xué)廣播電視數(shù)字化教育部工程研究中心,北京 100024)
MPEG1 layer2音頻幀由幀頭開(kāi)始,幀頭由同步字(12比特)和聲音系統(tǒng)相關(guān)信息(20比特)組成。幀頭后的一個(gè)循環(huán)冗余校驗(yàn)(CRC,16比特)用以保護(hù)幀頭信息、比特分配和比例因子選擇信息區(qū)域的部分信息。CRC之后是比特分配、比例因子選擇信息(ScFSI)和比例因子(Scale Factors)。再接著便是被解碼器用來(lái)重建 PCM聲音信號(hào)的子頻道樣值,最后是長(zhǎng)度可變的附加數(shù)據(jù)區(qū)域。在采樣率為48KHz時(shí),每個(gè) MPEG1 layer2音頻幀相當(dāng) 1152個(gè)PCM音頻樣值,持續(xù)期為 24ms。
MPEG1 layer2音頻幀的幀結(jié)構(gòu)如圖 1所示。
DAB應(yīng)用系統(tǒng)采用了具有附加特定信息的MPEG1 layer2音頻幀格式。特定信息包括擴(kuò)展節(jié)目伴隨數(shù)據(jù)(X-PAD)、聲音比例因子差錯(cuò)校驗(yàn)(SCF-CRC)和固定節(jié)目伴隨數(shù)據(jù)(F-PAD)。
DAB音頻幀結(jié)構(gòu)如圖 1所示。
現(xiàn)將有關(guān)數(shù)據(jù)說(shuō)明如下:
(1)聲音業(yè)務(wù)同步數(shù)據(jù)(ASSD)
可用于需要保護(hù)的同步于 DAB音頻幀的數(shù)據(jù),該信息共 16比特,置于幀頭之前。
(2)DAB幀頭
與 DAB音頻解碼器有關(guān)的狀態(tài)信息,共 16比特,包括:
圖 1 MPEG 1 Layer 2幀結(jié)構(gòu)和 DAB幀結(jié)構(gòu)對(duì)比
A.比特率標(biāo)記,共 4比特,表明每個(gè)音頻節(jié)目的總比特率。總比特率包括一個(gè)音頻幀中的所有比特,即所有用于幀頭、聲音信號(hào)、PAD和差錯(cuò)檢測(cè)信息必要的比特。
B.采樣頻率,共 2比特,DAB系統(tǒng)規(guī)定采用“01”值,指定 48KHz的采樣頻率。
C.填充比特,1比特,固定為“0”,表明 48KHz采樣頻率時(shí)不需要填充比特。
D.專(zhuān)用比特,1比特,該比特不被解碼器解釋。
E.聲音模式,用 “00”、“01”、“10”、“11”分別表示立體聲、聯(lián)合立體聲、雙聲道和單聲道工作模式。
F.模式擴(kuò)展,2比特,用于聯(lián)合立體聲模式中,指明哪些子頻帶處于強(qiáng)度立體聲,所有其他子頻帶在立體聲模式中被編碼。
G.版權(quán),1比特,等于“1”意味著版權(quán)受保護(hù)。
H.原版 /復(fù)制,1比特。
I.加重,2比特,指明解碼器應(yīng)采用的去重類(lèi)型。DAB系統(tǒng)采用固定值“00”,表明未加重,因此加重/去重的使用排除。
(3)差錯(cuò)校驗(yàn)
CRC校驗(yàn),一個(gè) 16比特的奇偶校驗(yàn)字,用于編碼聲音比特流中聲音信息對(duì)差錯(cuò)最敏感部分的差錯(cuò)校驗(yàn),這些信息包括 DAB幀頭的第三、四字節(jié)及比特分配和比例因子選擇信息。
(4)音頻數(shù)據(jù)
比特分配信息、比例因子選擇信息、比例因子、子頻帶樣值編碼信息。
(5)聲音填充比特
每個(gè) DAB音頻幀中音頻數(shù)據(jù)的總比特量等于比特率*0.024減去由音頻業(yè)務(wù)同步數(shù)據(jù)(ASSD)、DAB幀頭、差錯(cuò)校驗(yàn)(CRC)、擴(kuò)展節(jié)目伴隨數(shù)據(jù)(X-PAD)、比例因子校驗(yàn)(SCF-CRC)和固定節(jié)目伴隨數(shù)據(jù)(F-PAD)所占用的比特量。實(shí)際被聲音數(shù)據(jù)使用的比特量可能更少。在這種情況下一定數(shù)量的填充比特被插入到聲音數(shù)據(jù)終端與 X-PAD始端之間。
(6)擴(kuò)展節(jié)目伴隨數(shù)據(jù)(X-PAD)
該區(qū)域的長(zhǎng)度在字節(jié)復(fù)用中可變。
(7)比例因子校驗(yàn)(SCF-CRC)
每個(gè)字保護(hù)下一個(gè) DAB音頻幀子頻帶的一個(gè)組中的比例因子,CRC字的實(shí)際數(shù)量取決于比特率和聲音模式。對(duì)于編碼數(shù)據(jù)流中比例因子的兩個(gè)或四個(gè)不同頻譜組的差錯(cuò)校驗(yàn),使用兩個(gè)或四個(gè) 8比特循環(huán)冗余校驗(yàn)字。
(8)固定節(jié)目伴隨數(shù)據(jù)(F-PAD)
對(duì)于 F-PAD,使用了兩個(gè)固定數(shù)量的字節(jié),它們是 DAB音頻幀的最后兩個(gè)字節(jié)。
將 MPEG1 layer2格式的音頻幀轉(zhuǎn)換成 DAB格式。DAB音頻幀的幀頭、校驗(yàn)和以及音頻數(shù)據(jù)部分與 MPEG音頻幀相同,因此轉(zhuǎn)換格式時(shí)保持 MPEG幀頭、CRC校驗(yàn)和以及音頻數(shù)據(jù)這幾部分?jǐn)?shù)據(jù)不變,而將 MPEG音頻幀尾部的輔助數(shù)據(jù)(ancillary data)部分加入節(jié)目伴隨數(shù)據(jù)(PAD)和比例因子校驗(yàn)和(ScF-CRC)以及填充數(shù)據(jù)(stuffing data)。PAD又可分為固定 PAD(F-PAD)和擴(kuò)展的 PAD(X-PAD)。在 X-PAD內(nèi)可傳送不同的應(yīng)用數(shù)據(jù),如文本、圖像或者多媒體,一個(gè)音頻數(shù)據(jù)幀的 X-PAD區(qū)域可包含最多 4種不同應(yīng)用的數(shù)據(jù)包。X-PAD長(zhǎng)度可變,根據(jù)其長(zhǎng)度可以有三種不同的狀態(tài):無(wú) X-PAD(長(zhǎng)度為 0)、短 X-PAD(固定 4個(gè)字節(jié))、變長(zhǎng) X-PAD(長(zhǎng)度大于 4個(gè)字節(jié),小于 48個(gè)字節(jié))。而 F-PAD負(fù)責(zé)傳輸控制信息,也可作為有用數(shù)據(jù)信道使用,可包括動(dòng)態(tài)范圍控制(DRC)。FPAD固定為 2個(gè)字節(jié),位于音頻幀的最后 2個(gè)字節(jié)。
MPEG1 layer2音頻幀和 DAB幀的結(jié)構(gòu)對(duì)比如圖 1所示。
由兩幀連續(xù)的 MPEG幀生成一幀 DAB幀。首先讀取連續(xù)的兩幀 MPEG1 layer2格式的音頻幀,解析 MPEG幀頭數(shù)據(jù),確定比特率、采樣頻率、音頻模式和模式擴(kuò)展信息,并根據(jù)這些信息計(jì)算幀長(zhǎng)度、比特分配、比例因子信息選擇 (ScFSI)和比例因子(Scale Factors)等數(shù)據(jù)信息。將第一幀 MPEG幀的幀頭、CRC校驗(yàn)和以及音頻數(shù)據(jù)部分直接復(fù)制到DAB幀的相應(yīng)位置,根據(jù)第二幀 MPEG幀中各子帶比例因子的前三位生成 2-4個(gè)字節(jié)的比例因子校驗(yàn)和(ScF-CRC),置于 DAB幀的 F-PAD之前。根據(jù)外部節(jié)目伴隨信息,分別設(shè)置 X-PAD和 FPAD。
音頻幀由 MPEG1 layer2格式轉(zhuǎn)換成 DAB格式的軟件實(shí)現(xiàn)流程如圖 2所示。
圖 2 音頻幀格式轉(zhuǎn)換流程圖
將 MPEG幀轉(zhuǎn)換為 DAB幀的軟件模塊嵌入到具有 MPEG音頻編碼功能的 DAB復(fù)用器中,并將復(fù)用器與 DAB編碼調(diào)制器相連,構(gòu)成 DAB發(fā)射系統(tǒng);接收端采用 RS公司的 DAB軟件接收機(jī)。實(shí)驗(yàn)表明,接收端能夠正確的接收、解碼并播放 MPEG音頻編碼器編碼的音頻文件,從而證明在發(fā)端,已經(jīng)正確地將 MPEG音頻幀轉(zhuǎn)換成為 DAB音頻幀。
MPEG音頻編碼器輸出的是 MPEG1 layer2格式的音頻幀,將其用于 DAB系統(tǒng)中,必須將 MPEG幀轉(zhuǎn)換為 DAB音頻幀,然后再進(jìn)行復(fù)用、信道編碼調(diào)制。本文給出了 MPEG幀格式轉(zhuǎn)換為 DAB幀的實(shí)現(xiàn)方法,并驗(yàn)證了其可行性。
[1] ETSI EN 300 401:Radio Broadcasting Systems;Digital Audio Broadcasting(DAB)to mobile,portable and fixed receivers[S].2006.6
[2] 李棟.數(shù)字聲音廣播[M].北京:北京廣播學(xué)院出版社,2001.
[3] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1991.
[4] 叢建剛.Visual C++6.0編程實(shí)戰(zhàn)[M].青島:青島出版社,2000.