智能小區中嵌入式MP3流媒體網(wǎng)絡(luò )廣播系統設計

發(fā)布時(shí)間:2010-9-16 16:07    發(fā)布者:techshare
早期的智能小區廣播大多采用模擬方式.如調幅、調頻廣播。這種方式的優(yōu)點(diǎn)是減少了布線(xiàn)的麻煩,缺點(diǎn)是容易在傳輸過(guò)程中受空中雜波的干擾。隨著(zhù)數字技術(shù)、多媒體技術(shù)、網(wǎng)絡(luò )技術(shù)的發(fā)展,數字網(wǎng)絡(luò )音頻廣播已悄然興起。

數字網(wǎng)絡(luò )廣播將模擬信號轉換為數字信號進(jìn)行處理和傳輸。由于它采用了糾錯編碼技術(shù),消除了模擬方式的噪聲干擾,從而保證了傳輸的可靠性。傳統廣播只能在規定的頻率和發(fā)射功率內進(jìn)行傳播,覆蓋范圍受到制約。

而數字網(wǎng)絡(luò )廣播卻可以通過(guò)網(wǎng)絡(luò )將廣播發(fā)送至網(wǎng)絡(luò )用戶(hù),廣播范圍大幅度增大,并且其接收音質(zhì)好,可令聽(tīng)眾享受到CD質(zhì)量的廣播節目。網(wǎng)絡(luò )廣播抗干擾能力強,信號幾乎零失真。目前,智能小區已開(kāi)始利用千兆以太局域網(wǎng)進(jìn)行音頻廣播。

網(wǎng)絡(luò )廣播一般分為兩種方式:

(1)下載播放,即先把數據通過(guò)網(wǎng)絡(luò )下載在本地,然后再用媒體播放器播放。這種廣播的優(yōu)點(diǎn)是播放與網(wǎng)絡(luò )的傳輸速率無(wú)關(guān),播放效果好,允許分段多次續傳下載,下載后可以反復播放。缺點(diǎn)是必須等待文件完全下載后才能播放,時(shí)間較長(cháng),且用戶(hù)端要有較大的存儲容量。

(2)流式播放。流是連續傳輸的數據,流式傳輸方式是將整個(gè)多媒體文件經(jīng)過(guò)特殊的壓縮方式分成一個(gè)個(gè)壓縮包,由服務(wù)器向用戶(hù)計算機連續實(shí)時(shí)傳輸。它采用邊下載邊播放的方式。與下載播放方式相比。流式播放不僅使啟動(dòng)延時(shí)大幅度縮短,而且對系統緩存容量的需求也大大降低。流式播放為實(shí)時(shí)廣播提供了保證。

本文設計實(shí)現了一種嵌入式MP3流媒體廣播系統,用于智能小區的媒體廣播。系統的硬件采用嵌入式結構,優(yōu)點(diǎn)是體積小、成本低、占有資源少、管理簡(jiǎn)單、維護容易。因為MP3是目前網(wǎng)絡(luò )上音頻播放文件最普遍的格式,所以音頻數據格式采用MP3。與其他音頻數據格式(如PCM、VOC、MIDI等)相比,MP3具有較高的壓縮率和不遜于CD的音頻質(zhì)量。數據傳輸和播放采用流媒體形式。采用MF3流媒體廣播的優(yōu)點(diǎn)是兼容性強、實(shí)時(shí)性高、連續性好、數據傳輸和廣播連續進(jìn)行、無(wú)須數據下載,解決了掉包、時(shí)斷時(shí)續、數據下載等待等問(wèn)題。

1 嵌入式MP3流媒體網(wǎng)絡(luò )廣播系統的設計

在過(guò)去的十年中,嵌入式系統的開(kāi)發(fā)與應用方式發(fā)生了很大變化,其應用已由工業(yè)、通信和網(wǎng)絡(luò )擴展到與數字多媒體相關(guān)的各個(gè)消費領(lǐng)域。過(guò)去,嵌入式系統是一個(gè)孤立的、資源有限、功能較少、用途單一的系統,各自擁有獨特的顯示方式和用戶(hù)界面。它們的生產(chǎn)商追求在有限的價(jià)格上滿(mǎn)足一定的功能要求,通常采用功能并不強大的CPU,盡可能地壓縮系統性能。今天,人們將嵌入式系統用在智能化和互聯(lián)化的系統中是希望它們能夠通過(guò)互聯(lián)網(wǎng)、無(wú)線(xiàn)或其他方式相互連接,采用相同的方式.運行很多相同的應用程序,實(shí)現多種智能化的功能。

由嵌入式系統的結構可以看出,在實(shí)時(shí)操作系統(RTOS)之上建立嵌入式系統的應用程序非常必要。嵌入式系統應用軟件的開(kāi)發(fā)與研究,一直都是非常重要及有意義的課題。

本系統就是基于嵌入式Linux操作系統開(kāi)發(fā)的一個(gè)應用系統,其功能是實(shí)現智能小區中MP3流媒體網(wǎng)絡(luò )廣播。系統主要由服務(wù)器端和客戶(hù)終端兩部分組成。要創(chuàng )建MP3流媒體廣播嵌入式系統,已有的Linux下的開(kāi)放源碼工具不符合嵌入式系統的工作條件和要求(如采用icecasl和ices進(jìn)行創(chuàng )建),因此,必須對廣播的服務(wù)器端和客戶(hù)終端進(jìn)行軟件的研究和設計。本系統的服務(wù)器端在Windows環(huán)境下工作,界面用VC編程實(shí)現。嵌入式客戶(hù)終端的操作界面應用qt-embedded庫實(shí)現。

在小區的物業(yè)管理中心安裝了MP3廣播服務(wù)器。服務(wù)器端由管理中心人員操作。由于Windows系統的普及性及易操作性,所以在服務(wù)器端選擇以Windows作為系統平臺運行MP3的播放程序。為了讓用戶(hù)能有更多的選擇,系統實(shí)現了多路的MP3廣播。對于多路的發(fā)送與接收,主要利用RTP和RTCP所用端口號分別監聽(tīng)。

每一路分別采用一個(gè)獨立的RTP和RTCP端口號,與接收端的接收路數的端口號相對應。這樣才能使每一路的數據在網(wǎng)絡(luò )中不交叉,各自獨立?紤]到網(wǎng)絡(luò )的帶寬以及使用需求,本設計采用了8路通道以保證數據流能順暢地發(fā)送。

在系統文件中,將需廣播的歌曲分別放置到8個(gè)不同目錄(以后對歌曲的管理都在相應的文件夾下進(jìn)行)中,每路播放分別對應不同的目錄,啟動(dòng)服務(wù)器端程序即啟動(dòng)8路播放線(xiàn)程。首先分別讀出8路所對應文件夾下的所有MP3文件,每路都產(chǎn)生隨機數以便歌曲被隨機播放。

隨后每路利用不同的RTP和RTCP端口號分別建立RTP會(huì )話(huà)。MP3數據被封裝為一個(gè)個(gè)的RTP包,不斷循環(huán)地送往小區局域網(wǎng)絡(luò ),直到一首歌曲發(fā)送完成,開(kāi)始對下一首歌曲文件進(jìn)行封包發(fā)送。這樣不斷循環(huán),從而實(shí)現隨機循環(huán)廣播8路歌曲的目的。服務(wù)器端的結構如圖1所示。



在小區各用戶(hù)家中安裝系統客戶(hù)終端,客戶(hù)終端設計成通過(guò)小區局域網(wǎng)同時(shí)接收8路音樂(lè )廣播,并且可以對這8路音樂(lè )進(jìn)行隨意選擇和切換收聽(tīng)?蛻(hù)端在嵌人式環(huán)境下運行MP3廣播接收程序。

用戶(hù)通過(guò)終端按鍵啟動(dòng)程序,即啟動(dòng)兩個(gè)線(xiàn)程。一個(gè)線(xiàn)程建立RTP會(huì )話(huà)及對8路分別會(huì )話(huà)進(jìn)行相對應的設置,然后從網(wǎng)絡(luò )循環(huán)接收MP3數據流并將數據流寫(xiě)入緩存(這里緩存采用循環(huán)隊列的概念);另一個(gè)線(xiàn)程則首先對聲卡參數(如聲卡采樣率、聲道等)進(jìn)行設置,然后不斷地從緩存(循環(huán)隊列)讀出MP3數據,隨后對數據流進(jìn)行實(shí)時(shí)解碼并寫(xiě)入聲卡,從而達到接收廣播并播放的目的。兩個(gè)線(xiàn)程同時(shí)進(jìn)行,實(shí)現了邊從網(wǎng)絡(luò )接收邊播放數據的功能,體現了系統的實(shí)時(shí)性?蛻(hù)終端結構流程如圖2所示。


2 嵌入式MP3流媒體網(wǎng)絡(luò )廣播系統的實(shí)現

2.1 系統實(shí)現環(huán)境

2.1.1 軟件環(huán)境

在應用于智能小區的嵌入式MP3流媒體廣播系統的實(shí)現中,服務(wù)器端基于Windows平臺,客戶(hù)終端系統基于Linux內核。Linux操作系統可應用于多種硬件平臺,原型可以在標準平臺上開(kāi)發(fā)后移植到具體的硬件上,使軟件與硬件的開(kāi)發(fā)過(guò)程加快。

本系統在X86上開(kāi)發(fā)后再移植到硬件平臺上。Linux的高度模塊化使添加部件非常容易,而且是免費開(kāi)源,定會(huì )節省大量的開(kāi)發(fā)費用。LJnux的優(yōu)勢還體現在可靠性和軟件規模方面。Linux可以根據實(shí)際需要進(jìn)行裁剪,并且具備強大的內存保護功能,可靠性高。如今,業(yè)界已經(jīng)達成共識:嵌入式Linux是大勢所趨,其巨大的市場(chǎng)潛力與醞釀的無(wú)限商機必然會(huì )吸引眾多的廠(chǎng)商進(jìn)入這一領(lǐng)域。

2.1.2 硬件環(huán)境

在應用于智能小區的嵌入式MP3流媒體廣播系統的實(shí)現中,嵌入式CPU采用GT2000,其CPU核心是方舟2號(Area2)。GT2000集成了高性能CPU核心和PC架構南北橋中的大部分功能,是信息終端設備和網(wǎng)絡(luò )設備的理想解決方案。CT2000在40OMHz主頻下運行時(shí)最大功耗只有360毫瓦,是業(yè)界最具競爭力的高性能、低功耗微處理器產(chǎn)品。

方舟開(kāi)發(fā)板Draco則為基于GT2000的產(chǎn)品開(kāi)發(fā)提供了一個(gè)易于擴充、易于配置的平臺,本系統采用了Draco開(kāi)發(fā)板。一個(gè)全新體系結構的開(kāi)發(fā)與應用需要高質(zhì)量編譯器工具鏈的支持。方舟CPU作為一個(gè)全新的RISC指令集體系結構,編譯器的支持至關(guān)重要。

方舟科技移植增強了GNU編譯開(kāi)發(fā)環(huán)境,使其對方舟CPU體系結構提供了全方位的支持。其GNU編譯工具鏈覆蓋了編譯技術(shù)和開(kāi)發(fā)環(huán)境的方方面面,代碼效率及可移植性在業(yè)界處于領(lǐng)先地位,已成為L(cháng)inux操作系統下的標準開(kāi)發(fā)環(huán)境,也是嵌人式CPU開(kāi)發(fā)環(huán)境事實(shí)上的工業(yè)標準。

2.2 MP3流媒體傳輸協(xié)議

在應用于智能小區的嵌入式MP3流媒體廣播系統的實(shí)現中,傳輸方式采用流式傳輸。實(shí)現流式傳輸的一個(gè)重要條件是要有合適的傳輸協(xié)議。RTP(Real-timeTransport Protocol)正是作為這樣一種適時(shí)的傳輸協(xié)議而出現的,它是進(jìn)行實(shí)時(shí)流媒體傳輸的標準協(xié)議和關(guān)鍵技術(shù)。

TRP協(xié)議是用于Intemet上針對多媒體數據流的一種傳輸協(xié)議。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時(shí)間信息和實(shí)現流同步。整個(gè)RTP協(xié)議由兩個(gè)密切相關(guān)的部分組成:RTP數據協(xié)議和RTCP控制協(xié)議。RTP是通過(guò)在UDP上工作來(lái)進(jìn)行數據傳轄的,但也可以在其他協(xié)議上(如TCP)工作。而控制協(xié)議只能使用RTCP。

應用程序開(kāi)始一個(gè)RTP會(huì )話(huà)時(shí)將使用兩個(gè)端口,一個(gè)給RTP,另一個(gè)給RTCP。TRP本身并不能為按順序傳送數據包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務(wù)。通常RTP算法并不作為一個(gè)獨立的網(wǎng)絡(luò )層來(lái)實(shí)現,而是作為應用程序代碼的一部分。RTP與RTCP配合使用,它們能以有效的反饋和最小的開(kāi)銷(xiāo)使傳輸效率最佳化,因而特別適合傳送網(wǎng)上的實(shí)時(shí)數據。相對于傳統的傳輸協(xié)議,RTP協(xié)議更能保證數據的實(shí)時(shí)傳輸。

在本系統實(shí)現中,采用Linux下的LIVE庫進(jìn)行數據傳輸。在Linux下,有很多基于RTP協(xié)議的庫,如LIBRTP,JRTPLIB、LIVE庫等。LIVE庫是一個(gè)基于RTP/RTCP/RTSP/STP協(xié)議的流媒體傳輸庫,其移植性好,既可以在Unix平臺上編譯,也可以在Windows平臺以及其他一些系統平臺上編譯。它適合于嵌入式和低功耗場(chǎng)合的流媒體應用。

2.3 MP3流媒體解碼

在應用于智能小區的嵌入式MP3流媒體廣播系統的實(shí)現中,用戶(hù)接收端接收到的數據是網(wǎng)絡(luò )傳來(lái)的MP3數據流,因此,先對MP3數據流解碼,然后才能寫(xiě)入聲卡播放。

MP3解碼過(guò)程是先將MP3數據幀解包,然后用Huffman解碼解出位分配信息。接著(zhù)在逆變換中利用頻譜系數,在合成濾波器中將32個(gè)子帶合并成一個(gè)寬帶信號,18個(gè)頻譜值執行32次改進(jìn)型離散余弦逆變換(IMDCT)。再將生成的576個(gè)頻譜值變換成長(cháng)度為32的18個(gè)連續頻譜,通過(guò)18次運算,多相位合成濾波器將這些頻譜轉換到時(shí)域完成波形重構,生成PCM音頻數據。多相位濾波器組包含一個(gè)頻率映射運算(例如矩陣相乘)和一個(gè)有512個(gè)系數的FIR濾波器。MP3流媒體解碼的流程如圖3所示。



3 系統的試驗結果與討論

流式傳輸的實(shí)現需要緩存,在傳輸中實(shí)時(shí)MP3音頻文件被拆分為許多數據包。由于網(wǎng)絡(luò )動(dòng)態(tài)變化,各個(gè)數據包選擇的傳輸路由不盡相同,所以到達客戶(hù)端時(shí)間延遲也就不等,甚至有先發(fā)的包后到及未到的情況。如果直接播放這種數據流會(huì )引起音頻的延遲和抖動(dòng),因此采用緩存系統。緩存大小的設置直接影響播放質(zhì)量。

本系統數據緩沖區采用了循環(huán)隊列的概念,其優(yōu)點(diǎn)為在不斷順序讀取數據的同時(shí)又不斷將數據寫(xiě)入隊列,因此使得緩沖大小相對穩定,從而保證數據的連續性。在數據發(fā)送接收的最初,由于數據量少,聲音可能出現斷續,此時(shí),隊列數據需達到一定的數據量時(shí)才往聲卡寫(xiě)入。此后往隊列不斷寫(xiě)入數據并將隊列的數據不斷地寫(xiě)入聲卡,從而保證了數據流的連續性。因此測試收聽(tīng)音質(zhì)效果好,對于每一幀的數據大小,也就是每次寫(xiě)入緩沖隊列的數據,程序會(huì )根據歌曲文件的大小自動(dòng)對其加以調整以最適合傳輸。

例如3.3MB的文件每一幀數據被發(fā)送時(shí)大小為l254B,而6.1MB的文件每一幀數據大小則為731B。另外,在嵌入式客戶(hù)終端操作時(shí)采用圖形界面方式。由于要照顧到不同的使用者,如老人、小孩,所以就要使操作簡(jiǎn)單方便。本設計中只利用簡(jiǎn)單的幾個(gè)按鍵就能直觀(guān)方便地進(jìn)行操作,從而使應用操作比以往產(chǎn)品的復雜操作更加人性化,應用范圍更加廣泛。

在實(shí)驗測試中。模擬了幾種丟幀情況下的音質(zhì)效果。實(shí)驗中,故意讓接收數據進(jìn)入隊列時(shí)丟幀,做了幾組測試,可以觀(guān)察到丟幀概率不同時(shí)的聲音斷續情況,如表1所示。


從表l可以看出:丟幀率越小,斷續出現的時(shí)間間隔越大,也就是數據越流暢。而在不丟幀的情況下,亦即實(shí)驗中程序運行情況下,播放基本沒(méi)有斷續,聲音流暢、音色較好,達到了系統功能要求。

從系統實(shí)現及實(shí)現結果看,系統達到了工程設計要求。在發(fā)送MP3數據流時(shí),可以同時(shí)發(fā)送多路數據,在接收MP3廣播時(shí),能順利切換各個(gè)頻道,并且音質(zhì)流暢,達到了較好接收MP3數據流的效果。系統操作簡(jiǎn)單,適應于各種層次的用戶(hù)。本系統除了能很好地適用于智能小區外,還可應用于其他一些局域網(wǎng)的場(chǎng)合,如校園、酒店等。系統具有成本低、體積小、對MP3數據流可進(jìn)行實(shí)時(shí)解碼等優(yōu)點(diǎn),將會(huì )被越來(lái)越多地應用于人們的生活中。
本文地址:http://selenalain.com/thread-27179-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页