基于A(yíng)DSP2187的HDTV音頻編碼器系統
關(guān)鍵詞:音頻編碼器;ADSP2187;PES打包
MPEG-2的音頻標準是在MPEG-1音頻標準的基礎上擴展而來(lái)的。MPEG-1在低數據率傳送時(shí)會(huì )聽(tīng)到與信號相關(guān)的編碼噪聲,而MPEG-2的突出貢獻就是在低數據率情況下對音頻質(zhì)量的提高,包括多通道立體聲(環(huán)繞聲)和多語(yǔ)言節目。MPEG-2音頻標準已經(jīng)得到了廣泛的應用,其中高清晰度電視中的音頻編碼就是這些應用中的一個(gè)熱點(diǎn)[1~3]。
高清晰度電視的音頻子系統包括音頻編碼/解碼功能,介于音頻輸入/輸出和傳送子系統之間。一個(gè)音頻節目源由音頻編碼器編碼并產(chǎn)生音頻基本碼流(ES 流),傳送子系統將ES流數據打成PES(Packetsized elementary system)包,然后再把它進(jìn)一步打成傳送包(Transport packet)。傳送子系統將傳送包變換成調制信號傳輸到接收機。本文設計的高清晰度電視信源編碼系統中的音頻編碼器由實(shí)時(shí)音頻編碼及PES打包、傳送組成。實(shí)時(shí)編碼主要采用MPEG-2算法[4],編碼器系統同時(shí)兼顧Dolby AC-3編碼[5,6]。MPEG-2編碼算法實(shí)時(shí)實(shí)現的硬件核心采用AD公司的AD-SP2187來(lái)完成[7],AC-3編碼則由杜比公司提供的Dolby DP569來(lái)完成。因此系統在硬件設計上包括MPEG-2編碼電路及PES打包電路,AC-3編碼器輸出ES流的PES打包電路。
1 音頻編碼系統設計
高清晰度電視的音頻編碼器設計,要求能夠在主控單元的控制下完成立體聲數字音頻的編碼壓縮,壓縮的碼流符合ISO/IEC11183-3 MPEG-2標準,同時(shí)可接收Dolby AC-3 ES流輸入,并完成MPEG-2及AC-3 ES碼流的PES打包,再將音頻PES流輸出到復用器。圖1是系統的原理結構圖。
圖1中的數字音頻輸入和AC-3編碼輸出的ES流是符合AES/EBU標準的。編碼器輸出為音頻PES流,PES打包使用的PTS(Presentationtime stamps)值由復用器提供。主控單元控制編碼器工作。
1.1 音頻編碼系統的硬件設計
音頻編碼系統的硬件結構如圖2所示。


整個(gè)系統由音頻接收器CS8412,采樣頻率轉換器AD1890,編碼器核心ADSP2187,高速FI-FO,雙端口RAM以及EPLD器件組成。其中,CS8412能夠自動(dòng)將輸入數字音頻的左右聲道時(shí)鐘、音頻數據及數據對應的時(shí)鐘分離。采樣頻率轉換器AD1890接收CS8412分離的時(shí)鐘和數據,將采樣率變換為編碼器所需的44.1 kHz或48 kHz。經(jīng)過(guò)采樣頻率變換后的音頻數據在A(yíng)DSP2187中完成全部的編碼。編碼的細節見(jiàn)文[4]。編碼完成后的ES流數據輸出到EPLD完成PES打包。為了使輸出的數據與實(shí)時(shí)加入的包信息的時(shí)序配合上,設計中在二者之間用高速FIFO作為緩存。此外,EPLD除了完成ES流打包成PES流外,還完成硬件系統所有接口邏輯的設計。
主控單元與ADSP2187之間的數據交換,以及初始化時(shí),主控單元向ADSP2187加載編碼程序則通過(guò)雙端口RAM完成。
1.1.1 系統時(shí)鐘電路的設計
由于輸入到音頻編碼器的采樣頻率必須鎖定于27 MHz的系統時(shí)鐘,因此必須由27 MHz系統時(shí)鐘產(chǎn)生出AD1890工作所需的采樣頻率。同時(shí),DSP系統設計屬于高速電路設計,必須考慮信號完整性,延時(shí)一致性等問(wèn)題。在整個(gè)系統板上各種信號時(shí)鐘應盡量由同一時(shí)鐘源產(chǎn)生,所以AD1890的工作主時(shí)鐘(16 MHz)也由27 MHz系統時(shí)鐘變換產(chǎn)生。這里采用由兩片鎖相環(huán)器件AV9110,一片AV9170以及EPLD組成的鎖相環(huán)系統來(lái)實(shí)現27 MHz時(shí)鐘變換,產(chǎn)生16 MHz時(shí)鐘和48 kHz采樣頻率。
鎖相環(huán)系統設計中先采用AV9170將27MHz系統主時(shí)鐘倍頻,倍頻后的時(shí)鐘信號經(jīng)E-PLD分頻產(chǎn)生一個(gè)2 MHz的時(shí)鐘,然后再將這個(gè)2 MHz的時(shí)鐘經(jīng)另一片AV9170倍頻產(chǎn)生32MHz和16 MHz兩種時(shí)鐘。16 MHz時(shí)鐘就作為AD1890工作的主時(shí)鐘。32 MHz時(shí)鐘經(jīng)過(guò)AV9110進(jìn)行編程產(chǎn)生一個(gè)24.576 MHz的頻率,該時(shí)鐘頻率通過(guò)在EPLD中進(jìn)行512分頻后就可產(chǎn)生AD1890所需的48 kHz采樣頻率了,同時(shí)也保證了該頻率與27 MHz時(shí)鐘頻率是同步的。
1.1.2 數據通道的設計
DSP實(shí)時(shí)編碼的同時(shí),還需將已完成的編碼作實(shí)時(shí)的輸出。由于DSP的運算速度是MIPS數量級的,這就需要在DSP輸出數據與實(shí)時(shí)打包之間加一級緩存。異步FIFO是實(shí)現這一功能的最佳選擇。設計中選用IDT7206作為緩存器件。在工作時(shí),DSP不停地向FIFO寫(xiě)入數據,直到FIFO處于半滿(mǎn)狀態(tài),這時(shí)向FIFO發(fā)出讀信號。讀出一個(gè)固定長(cháng)度(如一幀)的數據后,讀信號禁止,然后判FIFO半滿(mǎn)標志位的狀態(tài),直到下一次半滿(mǎn)出現后,再向FIFO 發(fā)讀信號。需要注意,FIFO的讀信號周期一定要比DSP寫(xiě)周期快,否則上述工作方式不成立。
1.2 PES打包設計
音頻的基本碼流在進(jìn)行傳送層處理之前,要被打成可變長(cháng)度的數據分組(PES),PES包的包頭含有一個(gè)開(kāi)始代碼前綴和流的標識ID,用于標識該PES所傳送的基本流,此外還有包長(cháng)和許多可選字段,其中最重要的是顯示時(shí)間(PTS),它在包的音頻壓縮數據開(kāi)始時(shí)出現。音頻編碼器的PTS值由系統復用器實(shí)時(shí)提供,它是33 bit,由27 MHz時(shí)鐘驅動(dòng)的計數器,如圖3所示。
圖3中,DCLK為27 MHz系統時(shí)鐘,DD為串行PTS值,數據高位在前,DVLD為與PTS值對應的有效信號。27 MHz時(shí)鐘的上升沿對應數據的穩定期。每次發(fā)送33 bit的PTS值,重復頻率90kHz。傳送系統開(kāi)始工作后,要用移位寄存器將串行數據轉為并行,再用幀同步信號鎖存PTS值。PES打包完成后,向復用器系統輸出音頻幀起始信號,數據時(shí)鐘以及打包數據。圖4是PES打包的系統結構框圖。
DSP在編碼時(shí),在每一個(gè)音頻幀前都會(huì )加入16位的包頭信息,這個(gè)包頭信息可以作為一幀開(kāi)始的同步信號。因此在打PES包時(shí),要先搜索這個(gè)包頭信息以產(chǎn)生 PTS鎖存用的幀同步信號。圖5為PES打包的時(shí)序仿真,采用VHDL編程完成,Altera的MAX7256設計實(shí)現。
圖5中AD[7..0]值為0xFFFDC400時(shí)表示幀同步頭的信息,當搜索到這一字串時(shí),在這一數據對應的位置上產(chǎn)生搜頭標志信號CN。為了獲得實(shí)時(shí)PTS值,從CN這個(gè)標志開(kāi)始,計數一幀,用計數的進(jìn)位信號作為幀同步信號AVLD,由于音頻的PTS值每次刷新的頻率為90 kHz,也就是說(shuō)音頻PTS值的變化相對于系統時(shí)鐘頻率是緩慢的,因此每次打包輸出前,用AVLD采樣并鎖存已經(jīng)轉為并行數據的PTS值是能夠保證其實(shí)時(shí)性的。當AVLD有效后,輸出到復用器的數據總線(xiàn)AD[7..0]上則插入總共14 Byte的PES包信息值,包括用AVLD鎖存的實(shí)時(shí)輸入的PTS值。為了保證編碼輸出的音頻數據不丟失,在插入PES包信息時(shí),需將FIFO的讀信號禁止以使音頻數據緊隨包信息數據后面,這樣一個(gè)完整的音頻PES包就打包完成了。
AC-3編碼輸出打包設計原理與MPEG-2的相似,只是在搜索包頭時(shí)較為復雜一些,因為AC-3編碼輸出的幀頭信息字在一幀數據中并不是唯一的,在搜索包頭的同時(shí),需要對幀長(cháng)計數,如果前后兩幀搜索到的信息字之間的幀長(cháng)是固定的,說(shuō)明搜索到的是正確的頭信息,否則為偽信息字。此外,Dolby編碼器DP569的輸出是突發(fā)(burst)模式,在一幀數據中,有效數據集中于前部,其余的全部為零,具體地說(shuō),在輸出的一幀中,共有9 830 400個(gè)位時(shí)鐘(bit clock),在這么多的時(shí)鐘中,僅有25%的時(shí)鐘是對應AC-3的有效數據。而有效數據中,AC-3編碼數據又處于有效數據字(32 bit)的高16位,這就需要除了將有效數據從一幀中提取出來(lái)外,還必須將每個(gè)有效數據字的低16位去掉。
3 結 論
本文討論了基于ADSP2187處理器的高清晰度電視音頻編碼器的硬件設計與實(shí)現。編碼器除了能提供符合ISO/IEC13818-3 MPEG-2音頻標準的高質(zhì)量編碼外,還完成了MPEG-2與AC-3 ES流的PES打包設計,對復用器中音視頻壓縮數據復用的設計作了簡(jiǎn)化。通過(guò)主觀(guān)測試實(shí)驗,MPEG-2與AC-3解碼后恢復的聲音接近聽(tīng)不出音質(zhì)的損害。該音頻編碼器現已應用于國家數字電視試驗區的HDTV信源編碼器設備中。
參考文獻
1 Painter T,Spanias A.Perceptualcoding ofdigitalau-dio[J].Proceedings of the IEEE,2000,88(4):451~504
2 Hoekstra E.Design and implementation ofa DSPbasedMPEG-1 audio encoder[J].IEEE Transactions onConsumer Electronics,1999,45(1):1~35
3 Kim Sung-Youn.A real-time implementation of theMPEG-2 audio encoder[J].IEEE Transactions onConsumer Electronics,1997,43(3):593~597
4 ISO/IEC International Standard 13818-3[S].CodingofMoving Pictures and Associated Audio Information,IS,1995
5 DigitalAudio Compression Standard(AC-3)[S].Unit-ed States Advanced Television System Committee ?。ˋTSC),A/52,1995
6 劉曉華.Dolby Digital音頻壓縮技術(shù)的研究和仿真[J].電聲技術(shù),1998,2:2~7
評論