[摘 要] 以高性能DSP作為音頻運(yùn)算單元,支持多種音頻編碼器的動(dòng)態(tài)加載,輸出實(shí)時(shí)壓縮的音頻流,與基于Linux系統(tǒng)級(jí)聯(lián)組成實(shí)時(shí)音頻網(wǎng)絡(luò)電臺(tái)。分析了在系統(tǒng)的功能需求和結(jié)構(gòu)的基礎(chǔ)上,以MP3音頻流為例,對(duì)數(shù)據(jù)處理單元和數(shù)據(jù)轉(zhuǎn)發(fā)單元的軟件、硬件設(shè)計(jì)方案做了詳細(xì)的論證,實(shí)驗(yàn)結(jié)果表明實(shí)時(shí)性、可擴(kuò)展性、可靠性可滿足互聯(lián)網(wǎng)音頻廣播的要求。
[關(guān)鍵詞] 音頻編碼 流媒體 數(shù)字信號(hào)處理器
一、引言
信息技術(shù)的革命與發(fā)展、計(jì)算機(jī)的普及、多媒體技術(shù)的發(fā)展以及互聯(lián)網(wǎng)的迅速崛起,應(yīng)運(yùn)而生了流媒體。流媒體技術(shù)是在數(shù)據(jù)網(wǎng)絡(luò)上以流的方式傳輸多媒體信息的技術(shù)。近年來,隨著寬帶網(wǎng)絡(luò)的發(fā)展和用戶需求的驅(qū)動(dòng),流媒體技術(shù)和相關(guān)的應(yīng)用得到越來越多的關(guān)注,被認(rèn)為是未來高速寬帶網(wǎng)絡(luò)的主流應(yīng)用之一。實(shí)時(shí)音頻流服務(wù)也就是通稱的網(wǎng)絡(luò)電臺(tái)也成為比如的研究熱點(diǎn)。在我國進(jìn)行獨(dú)立自主開發(fā)安全可靠、具有自主知識(shí)產(chǎn)權(quán)的流媒體增值業(yè)務(wù)平臺(tái)已是當(dāng)務(wù)之急。
本文提出了一種基于高性能DSP的網(wǎng)絡(luò)電臺(tái)方案。文中首先分析了該平臺(tái)的數(shù)據(jù)流、功能需求和對(duì)應(yīng)的系統(tǒng)結(jié)構(gòu),然后重點(diǎn)討論了數(shù)據(jù)處理單元和數(shù)據(jù)轉(zhuǎn)發(fā)單元的硬件、軟件設(shè)計(jì)要點(diǎn),接著給出了構(gòu)建的實(shí)驗(yàn)系統(tǒng)的技術(shù)參數(shù),最后在測(cè)試分析的基礎(chǔ)上給出了結(jié)論。
二、系統(tǒng)的搭建
在本文研究中,高性能DSP可以實(shí)時(shí)編碼模擬輸入的音頻信號(hào),級(jí)聯(lián)的Linux系統(tǒng)作為流媒體服務(wù)器,實(shí)現(xiàn)實(shí)時(shí)信號(hào)處理和網(wǎng)絡(luò)接入服務(wù)的分離,提高了系統(tǒng)的可靠性。在系統(tǒng)搭建的時(shí)候,考慮到MP3是目前無論是互聯(lián)網(wǎng)還是便攜式播放器應(yīng)用中最廣泛的壓縮音頻格式,我們的流媒體服務(wù)器的音頻標(biāo)準(zhǔn)選用了MPEG-1的音頻編碼Layer3即MP3。系統(tǒng)的基本結(jié)構(gòu)如圖1所示。
經(jīng)過AD變換后的PCM音頻送入到MP3音頻編碼器,MP3音頻編碼器輸出的MP3碼流傳送到流媒體服務(wù)器RTSP Server,RTSP客戶端通過互聯(lián)網(wǎng)接收MP3碼流,通過任一MP3播放器收聽。
上述系統(tǒng)分四個(gè)處理單元:數(shù)據(jù)處理單元、數(shù)據(jù)轉(zhuǎn)發(fā)單元、互聯(lián)網(wǎng)絡(luò)、流媒體終端。系統(tǒng)中各單元的軟件設(shè)計(jì)、硬件設(shè)計(jì),必須綜合考慮性能需求與可擴(kuò)展性等多方面的要求:
1.高性能的信息處理單元滿足實(shí)時(shí)的MP3編碼需要。
2.RTSP服務(wù)器具有一定的兼容性和負(fù)載承受能力,對(duì)RTSP客戶端沒有特定的要求。
3.DSP端的信息不能讓外部用戶直接獲取,流媒體服務(wù)器和信息處理單元之間實(shí)現(xiàn)的鏈接盡可能簡單,完全可控。
4.能夠提供機(jī)制,調(diào)整MP3編碼參數(shù),明確顯示系統(tǒng)的工作狀態(tài)。
對(duì)于后兩個(gè)處理單互聯(lián)網(wǎng)和流媒體終端不是本文的討論范圍,本文將重點(diǎn)討論數(shù)據(jù)處理單元和數(shù)據(jù)轉(zhuǎn)發(fā)單元的硬軟件設(shè)計(jì)方案。
三、數(shù)據(jù)處理、轉(zhuǎn)發(fā)單元設(shè)計(jì)
1.硬件設(shè)計(jì)。在本文的研究中數(shù)據(jù)處理、轉(zhuǎn)發(fā)單元主要有五個(gè)模塊:音頻信號(hào)采集模塊、數(shù)字信號(hào)處理器、USB控制模塊、太網(wǎng)控制模塊和數(shù)據(jù)轉(zhuǎn)發(fā)模塊。硬件原理略圖如下圖2所示。
(1)數(shù)字信號(hào)處理器TMS320C6713B。該處理器主頻為200到300MHz,包含八個(gè)獨(dú)立的運(yùn)算單元,其中有6個(gè)可以作為浮點(diǎn)運(yùn)算單元,處理能力為1000~1800MFLOPS,指令執(zhí)行單元是VLIW架構(gòu),開發(fā)工具的C編譯器效率很高。
運(yùn)算能力強(qiáng)的浮點(diǎn)數(shù)字信號(hào)處理器能很好的滿足隱信道傳輸平臺(tái)的要求,直接支持浮點(diǎn)運(yùn)算,避免了算法向定點(diǎn)處理器移植過程中定標(biāo)的過程,這樣針對(duì)音頻編碼器各個(gè)環(huán)節(jié)的各種隱藏算法能方便的集成到該平臺(tái)上。
(2)音頻信號(hào)采集模塊TLV320AIC23B。該芯片可以直接連接C6713的同步串口,立體聲采樣率從8kHz到96kHz,量化位數(shù)從16位到32位。本系統(tǒng)中上述參數(shù)都是可通過軟件進(jìn)行動(dòng)態(tài)配置,以滿足MP3編碼器和隱藏算法對(duì)不同抽樣率,不同量化位數(shù)的要求。
(3)USB控制模塊SL911HS。本系統(tǒng)中提供直接從移動(dòng)存貯器讀取數(shù)據(jù)的功能,增強(qiáng)系統(tǒng)的可擴(kuò)展性。通過軟件的方式,C6713可通過該控制模塊訪問移動(dòng)存貯器。
(4)太網(wǎng)控制模塊RTL8019AS。與數(shù)據(jù)轉(zhuǎn)發(fā)單元的通信,采用以太網(wǎng)接口,實(shí)際系統(tǒng)工作時(shí),通過該接口直接與數(shù)據(jù)轉(zhuǎn)發(fā)單元通信。采用全雙工模式通信,這樣的模式優(yōu)點(diǎn)是同服務(wù)器接口容易,作為嵌入式系統(tǒng),該接口方案基于TCP/IP的協(xié)議棧開發(fā)軟件,可以避免設(shè)計(jì)底層的通信協(xié)議,C6713和RTL8019A的驅(qū)動(dòng)軟件編寫也很容易。
(5)數(shù)據(jù)轉(zhuǎn)發(fā)模塊。數(shù)據(jù)轉(zhuǎn)發(fā)有三項(xiàng)任務(wù):一是接收數(shù)據(jù)處理單元的音頻碼流;二是流媒體服務(wù)器,處理與流媒體客戶端的會(huì)話;三是配置管理數(shù)據(jù)處理單元。在本文的研究中,選用了帶有雙網(wǎng)卡的工控機(jī)作為硬件平臺(tái),安裝Linux操作系統(tǒng),所有軟件運(yùn)行在該系統(tǒng)上。在系統(tǒng)設(shè)計(jì)時(shí),從DSP接收碼流和流媒體服務(wù)器為一個(gè)進(jìn)程,配置管理數(shù)據(jù)單元為另一個(gè)進(jìn)程。
2.軟件設(shè)計(jì)。系統(tǒng)在軟件設(shè)計(jì)過程中采用數(shù)據(jù)驅(qū)動(dòng)的原則,從外部輸入輸出的數(shù)據(jù)實(shí)現(xiàn)中斷的觸發(fā),即在中斷服務(wù)程序中設(shè)置標(biāo)志位。在主循環(huán)中,通過檢測(cè)標(biāo)志位,判斷音頻緩沖區(qū)、網(wǎng)絡(luò)狀態(tài),啟動(dòng)編碼、信息嵌入,然后發(fā)送MP3碼流。如圖3所示給出了數(shù)據(jù)處理單元的流程圖。
在主循環(huán)中,通過檢測(cè)標(biāo)志位控制流程。最重要的標(biāo)志位有兩個(gè):一個(gè)是從數(shù)據(jù)轉(zhuǎn)發(fā)單元來的控制字,包含運(yùn)行狀態(tài)的查詢、配置的修改,如編碼碼率,輸入增益的調(diào)整;另一個(gè)是音頻緩沖區(qū)是否滿的標(biāo)志,如果緩沖區(qū)滿,則讀取該緩沖區(qū)數(shù)據(jù),經(jīng)過信息編碼后,將數(shù)據(jù)包送出。
中斷服務(wù)程序包含定時(shí)器中斷、模擬音頻輸入串口中斷、網(wǎng)絡(luò)接收發(fā)送數(shù)據(jù)中斷和USB接口輸入中斷。由于核心數(shù)字信號(hào)處理器的處理能力非常強(qiáng)大,中斷服務(wù)程序的處理相對(duì)開銷較低,因此所有的中斷分配了同樣的優(yōu)先級(jí)。
核心編碼算法的DSPs移植也是很重要的一環(huán),移植使用了TI數(shù)字處理器的快速浮點(diǎn)運(yùn)算庫,通過Profile分析的結(jié)果,按編碼器算法框架內(nèi)各函數(shù)的執(zhí)行次數(shù)和開銷百分比,分布實(shí)施優(yōu)化策略,其中的時(shí)頻變換可以使用FFT來計(jì)算。
因?yàn)閁SB接口為低速外設(shè),讀取移動(dòng)存貯器的數(shù)據(jù)文件時(shí),可以根據(jù)文件的大小和系統(tǒng)可用內(nèi)存空間,決定是否分塊讀取,減少系統(tǒng)開銷。
四、系統(tǒng)測(cè)試
本文按照前述方案完成軟件硬件設(shè)計(jì)后,構(gòu)建了一個(gè)高性能的實(shí)時(shí)流媒體系統(tǒng),結(jié)構(gòu)如圖4所示。數(shù)據(jù)處理單元與數(shù)據(jù)轉(zhuǎn)發(fā)單元通過“直連”模式的雙絞線連接,組成一個(gè)內(nèi)網(wǎng),配置一個(gè)獨(dú)立的網(wǎng)段。數(shù)據(jù)轉(zhuǎn)發(fā)單元的第二個(gè)以太網(wǎng)口與外網(wǎng)相接,客戶端通過該網(wǎng)口訪問流媒體服務(wù)器,用戶也可以遠(yuǎn)程登錄服務(wù)器后,維護(hù)和管理整個(gè)系統(tǒng)。由于數(shù)據(jù)處理單元內(nèi)的TCP/IP協(xié)議棧只處理內(nèi)部約定的交互命令,這樣客戶端無法訪問到USB連接的移動(dòng)存貯設(shè)備。
系統(tǒng)在研制過程中,各模塊都進(jìn)行了正確性測(cè)試,系統(tǒng)集成后,進(jìn)行了穩(wěn)定性測(cè)試,最后是系統(tǒng)指標(biāo)測(cè)試和負(fù)載測(cè)試。在系統(tǒng)的性能參數(shù)中,處理器的負(fù)載和延遲是最重要的兩項(xiàng)技術(shù)指標(biāo)。
1.延遲測(cè)試。在確保系統(tǒng)能夠長時(shí)間穩(wěn)定工作之后,我們測(cè)試系統(tǒng)各功能部分的延遲時(shí)間。主要包括以下三項(xiàng):(1)DSP從上電到發(fā)包開始的時(shí)間:(2)客戶端RealPlayer從開始點(diǎn)播到連接服務(wù)器成功的時(shí)間:(3)音源播放到客戶端RealPlayer播出聲音的延遲時(shí)間。表1給出了測(cè)試過程中記錄的延遲最大值,最小值和平均值。通過多次測(cè)試,各類延遲時(shí)間記錄如下:
2.負(fù)載測(cè)試。系統(tǒng)分別對(duì)數(shù)據(jù)處理單元和數(shù)據(jù)轉(zhuǎn)發(fā)單元進(jìn)行負(fù)載測(cè)試。
(1)數(shù)據(jù)處理單元,使用Profile測(cè)試。測(cè)試時(shí)使用的MP3編碼器輸出碼率為128kbps。通過對(duì)12個(gè)不同類型的測(cè)試序列進(jìn)行數(shù)據(jù)處理,測(cè)試的DSPs負(fù)載均小于10%;
(2)數(shù)據(jù)轉(zhuǎn)發(fā)單元,使用Linux下TOP指令查看CPU負(fù)載。測(cè)試中發(fā)現(xiàn)在用戶接入的瞬間,CPU占用率會(huì)有所增加,但是很快穩(wěn)定,在20個(gè)接入時(shí),CPU穩(wěn)定后占用率仍低于1%。
從測(cè)試結(jié)果可以看出,系統(tǒng)能夠進(jìn)行實(shí)時(shí)的在線廣播,延遲參數(shù)完全滿足應(yīng)用要求,數(shù)據(jù)處理單元的CPU資源有充分的余量,為使用更復(fù)雜的音頻編碼算法和信息嵌入算法,甚至擴(kuò)展視頻流媒體應(yīng)用留下了足夠的空間。
五、結(jié)論
本文提出的基于音頻流媒體的實(shí)時(shí)傳輸系統(tǒng),具有實(shí)時(shí)壓縮音頻數(shù)據(jù),實(shí)時(shí)轉(zhuǎn)發(fā),原信息與外網(wǎng)隔離等優(yōu)點(diǎn)。能滿足實(shí)時(shí)應(yīng)用的要求。由于數(shù)據(jù)處理單元的處理器有強(qiáng)大的運(yùn)算能力,可以引入視頻、音頻等多種編碼算法,直接通過軟件升級(jí)來設(shè)計(jì)各種流媒體傳輸系統(tǒng)。
參考文獻(xiàn):
[1]TMS320C6713, TMS320C6713B floating-point digital signal processors Data Sheet, SPPS1861, May, 2004
[2]TMS320C6000 CPU and Instruction Set Reference Guide, SPRU189F,October 2000
[3]Real Time Streaming Protocol (RTSP), http://www.ietf.org/rfc/rfc2326.txt
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”