新型多媒體無線列調(diào)系統(tǒng)設(shè)計(jì)研究
時(shí)間:2017-11-07 來源:中國集群通信網(wǎng) 作者:姜欣欣 點(diǎn)擊:
次
主頁(http://www.130131.com):新型多媒體無線列調(diào)系統(tǒng)設(shè)計(jì)研究
摘 要:基于WiMAX的多媒體無線列調(diào)系統(tǒng)主要包括SIP模塊、視頻采集模塊、視頻編碼模塊、視頻傳輸模塊、視頻解碼模塊和視頻顯示模塊等部分。通過對(duì)各個(gè)模塊的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)使得該系統(tǒng)完成了視頻通話的功能。在實(shí)際鐵路的應(yīng)用場景中,可在機(jī)車臺(tái)、調(diào)度臺(tái)、車站臺(tái)等不同角色之間進(jìn)行信息的傳遞,有助于監(jiān)控鐵路現(xiàn)場,為了解現(xiàn)場情況做出貢獻(xiàn)。 中國論文網(wǎng) http://www.xzbu.com/2/view-6745174.htm 關(guān)鍵詞:WiMAX;RTP協(xié)議;H.264;視頻傳輸 無線列調(diào)是以鐵路運(yùn)輸調(diào)度為目的,利用無線電波的傳播,完成列車與調(diào)度中心之間或列車與列車之間通信的系統(tǒng)。近年來,由于國家對(duì)重載鐵路的運(yùn)輸量及運(yùn)輸效率的要求不斷加強(qiáng),導(dǎo)致列車數(shù)量明顯增多,易于引起通信阻塞,因此迫切需要能夠提供更多帶寬的無線列調(diào)系統(tǒng)。WiMAX是一項(xiàng)新興的寬帶無線接入技術(shù),它基于IEEE802.16,建立在IP技術(shù)之上。WiMAX技術(shù)的不斷發(fā)展使得VolP技術(shù)應(yīng)用于鐵路無線列車調(diào)度系統(tǒng)成為可能,同時(shí)可實(shí)現(xiàn)基于VolP提供的語音通信和多媒體會(huì)話。在實(shí)際鐵路現(xiàn)場中,需要在各角色之間進(jìn)行視頻通信來傳遞信息、聯(lián)絡(luò)業(yè)務(wù),為此本文提出了基于WiMAX的多媒體無線列調(diào)系統(tǒng)。 首先深入研究了SIP協(xié)議的消息流程,通過SIP注冊信令及呼叫信令實(shí)現(xiàn)底層視頻單呼。然后根據(jù)MPEG.4與H.264之間的比較選取H.264作為本文的視頻編碼標(biāo)準(zhǔn),通過引入目前在多媒體通信系統(tǒng)中廣泛應(yīng)用的實(shí)時(shí)傳輸協(xié)議RTP,設(shè)計(jì)并實(shí)現(xiàn)了基于RTP傳輸H.264視頻流的視頻傳輸方案并將該方案應(yīng)用于多媒體無線列調(diào)系統(tǒng)中。系統(tǒng)在實(shí)現(xiàn)過程中引入了DirectShow技術(shù),基于構(gòu)件的思想,對(duì)視頻編碼、傳輸、解碼及顯示采用了純軟件的實(shí)現(xiàn)方法,而視頻采集則應(yīng)用了?低旸S.4004HC視頻采集卡來完成。 1 系統(tǒng)開發(fā)環(huán)境及相關(guān)技術(shù) (一)硬件設(shè)備:?低旸S.4004HC視頻采集卡。 (二)軟件平臺(tái):本系統(tǒng)在以下軟件平臺(tái)上進(jìn)行開發(fā):(1)列調(diào)服務(wù)器端操作系統(tǒng):ubum;(2)調(diào)度臺(tái)、機(jī)車臺(tái)操作系統(tǒng):Windows XP;(3)軟件開發(fā)平臺(tái): VC++6.0;(4)SIP服務(wù)器:Asterisk開源軟件包。 (三)JRTPLIB庫 本文采用JRTPLIB庫來實(shí)現(xiàn)RTP傳輸。RTP是目前解決流媒體實(shí)時(shí)傳輸問題的最好辦法,JRTPLIB庫是一個(gè)用C++語言實(shí)現(xiàn)的RTP協(xié)議的開源庫。這個(gè)庫使用socket通信機(jī)制實(shí)現(xiàn)網(wǎng)絡(luò)通訊,因此可以運(yùn)行在Windows、Linux、Solaris、FreeBSD、Unix、VxWorks等多種操作系統(tǒng)上。通過使用這套庫文件,我們可以創(chuàng)建端到端的RTP連接,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸。JRTPLIB是一個(gè)面向?qū)ο蟮腞TP庫,它完全遵循RFC 1889設(shè)計(jì),可滿足多種應(yīng)用場景需求。 DirectShow由于采用COM標(biāo)準(zhǔn)所以通過COM接口來完成很多重要的功能,常用接口如下。 (1)IGraphBuilder接口:作用是構(gòu)造過濾器圖表,處理和過濾源媒體流,管理一系列的Filter。 (2)IBaseFilter接口:繼承自IMediaFilter接口,作用是定義一個(gè)具體的過濾器指針,且處理多媒體數(shù)據(jù)。 (3)IMediaControl接口:對(duì)過濾器圖表中的流進(jìn)行控制,比如啟動(dòng)流或停止流。 (4)IPin接口:作用是管理兩個(gè)過濾器之間的Pin,使之可以連接過濾器。 (5)IMediaEvent接口:通知應(yīng)用程序在播放過程中捕獲到的發(fā)生的事件。 (6)IMeadiaSeeking接口:作用是定位流媒體、查詢媒體的接口并控制多媒體數(shù)據(jù)的播放。 (7)ISampleGrabberCB接口:作用是對(duì)通過過濾器的流媒體數(shù)據(jù)進(jìn)行采樣一次獲得幀圖像,是Sample Grabber過濾器的一個(gè)接口。 (四)?低旸S.4004HC板卡介紹 ?低旸S-4004HC是面向數(shù)字監(jiān)控行業(yè)推出的專用板卡,采用了高性能的視頻壓縮技術(shù)標(biāo)準(zhǔn)H.264,完全依靠硬件實(shí)現(xiàn)了視頻的實(shí)時(shí)編碼,實(shí)現(xiàn)了動(dòng)態(tài)碼率、可控幀率、幀模式選擇、動(dòng)態(tài)圖像質(zhì)量控制,音頻預(yù)覽、視頻丟失報(bào)警、能獨(dú)立調(diào)整各通道參數(shù),性能穩(wěn)定且可靠。與之前產(chǎn)品相比,海康威視DS.4004HC板卡不僅保持了同等的圖像質(zhì)量,還能很好地節(jié)省存儲(chǔ)空間并適合網(wǎng)絡(luò)傳輸,對(duì)于數(shù)字監(jiān)控產(chǎn)品而言是一個(gè)很好的選擇。?低旸S.4004HC板卡給軟件開發(fā)者提供動(dòng)態(tài)連接庫形式的SDK接口庫。該SDK接口庫應(yīng)用方便,專為該板卡設(shè)計(jì)接口程序,因此能更易于開發(fā)、縮短開發(fā)時(shí)間。DS.4004HC板卡在編碼的同時(shí)還可以修改碼流、幀結(jié)構(gòu)、分辨率等除了碼流類型外的所有參數(shù)。比如壓縮時(shí)無須啟動(dòng)、停止壓縮就可以改變分辨率、量化系數(shù)、幀結(jié)構(gòu)、幀率、碼流等參數(shù)。播放器可以自動(dòng)識(shí)別以上參數(shù),按當(dāng)前分辨率及壓縮幀率來正常播放聲音圖像。通過動(dòng)態(tài)修改量化系數(shù)(I、B、P)可控制壓縮碼率,當(dāng)碼率太高時(shí),加大量化系數(shù);當(dāng)碼率太低時(shí),減少量化系數(shù)。當(dāng)然,在量化系數(shù)滿足的情況下,不必再降低量化系數(shù)。DS.4004HC板卡不壓縮也是可以進(jìn)行運(yùn)動(dòng)測試的,即壓縮與運(yùn)動(dòng)監(jiān)測是獨(dú)立的。要想節(jié)省硬盤空間,則能夠動(dòng)態(tài)地改變幀率是非常有價(jià)值的,因?yàn)檫@樣可以在運(yùn)動(dòng)時(shí)按高幀率錄像,在無運(yùn)動(dòng)時(shí)按低幀率錄像,再記錄到同一個(gè)文件內(nèi)。DS.4004HC板卡不僅支持4路實(shí)時(shí)編碼壓縮,也同樣支持2路的4CIF實(shí)時(shí)編碼壓縮。應(yīng)用程序可以從DS.4004HC板卡的4個(gè)編碼通道中任選兩個(gè)通道設(shè)置為4CIF分辨率,然后對(duì)設(shè)置好的兩個(gè)通道進(jìn)行錄像,這樣就可以作為2路的4CIF編碼錄像,同時(shí),板卡剩下的兩個(gè)通道可以作為視頻預(yù)覽顯示圖像也可以不予顯示。 2 SIP模塊實(shí)現(xiàn) (1)SIP注冊 SIP注冊的程序?qū)崿F(xiàn)主要使用libeXosip2.3.3.0庫提供的三個(gè)函數(shù)。 (2)單呼 實(shí)現(xiàn)過程中先創(chuàng)建一個(gè)簡單的SIP請(qǐng)求消息,該請(qǐng)求消息中有一些如from,to,cseq,call.id等消息頭,若請(qǐng)求成功則創(chuàng)建SDP消息體并設(shè)置其內(nèi)容,接下來發(fā)送INVITE請(qǐng)求至服務(wù)器端,服務(wù)器端向被呼叫方發(fā)送INVITE請(qǐng)求,被呼叫方收到請(qǐng)求后通過消息體的設(shè)置來解析消息體的內(nèi)容,從而向服務(wù)器端做出應(yīng)答,服務(wù)器端回應(yīng)呼叫方,開始會(huì)話。 (3)掛斷 會(huì)話終止的程序處理通過libeXosip2.3.3.0庫提供的函數(shù):eXosip_call_terminateO發(fā)送中斷信息,完成掛斷的功能實(shí)現(xiàn)。 3 視頻采集模塊實(shí)現(xiàn) (1)創(chuàng)建應(yīng)用程序 用VC++6.0工具創(chuàng)建一個(gè)基于MFC的基本對(duì)話框應(yīng)用程序--視頻采集,把SDK接口庫提供的4個(gè)文件拷貝到應(yīng)用程序所在目錄下。在程序中引入相關(guān)文件,工程文件中加入引入的鏈接庫文件,使得編譯程序在鏈接時(shí)能夠使用。接下來添加要實(shí)現(xiàn)應(yīng)用所需要的控件,使圖像最終可以在程序界面中顯示。 (2)實(shí)現(xiàn)視頻采集 首先初始化板卡并獲取視頻設(shè)備信息,然后設(shè)置視頻預(yù)覽模式并獲取通道信息,接下來利用介紹的相關(guān)函數(shù)對(duì)相關(guān)參數(shù)進(jìn)行設(shè)置,注冊讀取原始圖像數(shù)據(jù)流的回調(diào)函數(shù),啟動(dòng)視頻圖像預(yù)覽,調(diào)用函數(shù)獲取原始圖像數(shù)據(jù)并保存至內(nèi)存,最后若終止視頻采集則關(guān)閉視頻設(shè)備結(jié)束采集任務(wù),若不終止則繼續(xù)采集。 4 視頻編碼模塊實(shí)現(xiàn) (一)編碼方案的選擇 視頻編碼的實(shí)現(xiàn)有硬編碼和軟編碼之分,所謂硬編碼,就是將編碼算法固化在芯片的硬件電路中,本文采集視頻所采用的?低旸S.4004HC視頻采集卡就可以實(shí)現(xiàn)H.264標(biāo)準(zhǔn)的編碼。硬編碼雖然使用方便、效率高,但其具有以下不足: (1)擴(kuò)展性差。隨著H.264編碼算法的進(jìn)一步發(fā)展,必將會(huì)有更高效的算法出現(xiàn),當(dāng)進(jìn)一步改進(jìn)編碼算法時(shí),由于算法已經(jīng)被固化到視頻采集卡中,就無法方便地對(duì)其進(jìn)行升級(jí)或修改。 (2)兼容性差。視頻采集卡的生產(chǎn)商一般都會(huì)對(duì)芯片固化的算法進(jìn)行改進(jìn)和優(yōu)化,這使得硬編碼得到的格式必須與相應(yīng)的解碼器對(duì)應(yīng),所以在解碼端,就只能使用固定的解碼器,因此將導(dǎo)致兼容問題。因此,根據(jù)以上分析本文主要通過軟件來實(shí)現(xiàn)其編解碼,雖然速度上較硬編碼而言較慢,但編解碼靈活度要優(yōu)于硬件編解碼,這樣可以彌補(bǔ)硬件編解碼上的一些不足,便于對(duì)算法本身進(jìn)行研究和改進(jìn)。 (二)視頻編碼流程 實(shí)現(xiàn)過程中先判斷采集的視頻格式是否為ⅥⅣ,若不是則進(jìn)行格式轉(zhuǎn)換。接下來對(duì)編碼器的編碼參數(shù)進(jìn)行設(shè)置,打開編碼器進(jìn)行初始化,獲取幀率、圖像尺寸等信息,通過分配編碼空間開始對(duì)輸入的視頻圖像進(jìn)行編碼,編碼過程中進(jìn)行VCL層編碼和NAL層編碼,VCL可有效地表示視頻內(nèi)容,NAL對(duì)VCL層的視頻內(nèi)容進(jìn)行格式化,并提供頭信息以適合各種媒體的傳輸和存儲(chǔ)。當(dāng)編碼完成后,調(diào)用x264 picture clean()函數(shù)來釋放編碼空間以及x264 encoder close()函數(shù)關(guān)閉編碼器完成編碼。 5 視頻傳輸模塊實(shí)現(xiàn) (一)RTP發(fā)送/接收 經(jīng)過H.264編碼,視頻流的網(wǎng)絡(luò)傳輸由RTP的發(fā)送和接收兩個(gè)模塊負(fù)責(zé)處理。這兩個(gè)模塊分別封裝為H.264 RTP Receiver Filter和H.264 RTP Sender Filter。系統(tǒng)采用RTCP/RTP協(xié)議傳輸H.264視頻流。利用類庫JRTPLIB實(shí)現(xiàn)該協(xié)議,系統(tǒng)視頻傳輸模塊的實(shí)現(xiàn),重點(diǎn)是對(duì)數(shù)據(jù)的RTP封裝和對(duì)接收到的PTCP/RTP數(shù)據(jù)的處理。 (二)Filter實(shí)現(xiàn) (1)RTP發(fā)送過濾器的實(shí)現(xiàn): ①定義RTPSenderSession類,具有自動(dòng)處理反饋消息的功能。OnNewSource(RTPSourceData木dat):得到確認(rèn)則置m bReceiveOK為TRUE, ②CRTPSender中的主要函數(shù):用于檢查接收端是否收到了參數(shù)集,若否則為FALSE。Run(REFERENCE_TIME tStart):該函數(shù)在連接過濾器之后,過濾器進(jìn)行啟動(dòng)的時(shí)候執(zhí)行,重載了CBaseRenderer類中的Run函數(shù)。該函數(shù)能夠?qū)崿F(xiàn)創(chuàng)建RTP會(huì)話,默認(rèn)參數(shù)包括時(shí)戳增量、負(fù)載類型和標(biāo)識(shí)等,并將接收端的地址加入到源列表中。 RTP發(fā)送過濾器還實(shí)現(xiàn)了IRTPSender自定義接口,包括兩個(gè)接口函數(shù):SetDestination(unsigned long,unsigned short):設(shè)置接收端的端口和IP地址。HeaderMethod(BOOL).選擇參數(shù)集的傳輸方式。 (2)RTP接收過濾器的實(shí)現(xiàn): 輸出引腳類CRTPReceiverOutPin實(shí)現(xiàn)了將Sample數(shù)據(jù)"推"向下一級(jí)Filter的功能,CRTPReceiver的函數(shù)沒有這項(xiàng)功能。除此之外,RTP接收過濾器還實(shí)現(xiàn)了自定義接口IRTPReceiver,接口函數(shù)包括用于設(shè)置發(fā)送源的IP地址的SetAddr(unsigned long)函數(shù)以及用于設(shè)置RTP的接收端口的SetPort(unsigned short)函數(shù)。 6 視頻顯示模塊實(shí)現(xiàn) (1)視頻解碼流程 利用DirectShow技術(shù)對(duì)視頻解碼進(jìn)行實(shí)現(xiàn),具體Filter實(shí)現(xiàn)過程在下一節(jié)中詳細(xì)討論。實(shí)現(xiàn)過程中先對(duì)解碼器進(jìn)行初始化然后打開解碼器,分配解碼空間后開始解碼。解碼過程中首先檢查視頻流的序列頭,定位到圖片頭然后解碼一幀圖片,若解碼未結(jié)束則與編碼過程相逆先進(jìn)行NAL層解碼再進(jìn)行VCL層解碼。當(dāng)解碼完成后,調(diào)用相關(guān)函數(shù)回收解碼空間及注銷解碼器來完成解碼。 (2)視頻顯示流程 首先進(jìn)行初始化,建立過濾器圖表后創(chuàng)建過濾器圖表管理器,接下來渲染多媒體文件并構(gòu)建濾波器鏈表,設(shè)置圖像顯示窗口加入一些需要的功能控件。然后將圖像加載入顯示窗口進(jìn)行顯示,在媒體文件播放完畢時(shí)要進(jìn)行判斷,調(diào)入阻塞函數(shù)以防止視頻還未播放完就結(jié)束,實(shí)現(xiàn)從頭至尾順序播放,播放多媒體文件結(jié)束后釋放對(duì)象,銷毀濾波器鏈表圖并結(jié)束播放。 7 結(jié)束語 本文首先介紹了多媒體無線列調(diào)系統(tǒng)的開發(fā)環(huán)境及所用的相關(guān)技術(shù)。接下來分別從SIP模塊、視頻采集模塊、視頻編碼模塊、視頻傳輸模塊、視頻解碼模塊及視頻顯示模塊詳細(xì)闡述了每個(gè)模塊的具體實(shí)現(xiàn)過程,完成了多媒體無線列調(diào)系統(tǒng)的總體實(shí)現(xiàn)。 參考文獻(xiàn): [1]陳婧.無線列調(diào)與鐵路運(yùn)輸[J].內(nèi)蒙古科技與經(jīng)濟(jì),2009(22):74-77. [2]李攀.移動(dòng)Wimax在應(yīng)急通信系統(tǒng)中的應(yīng)用[D].武漢:武漢科技大學(xué),2009. [3]Ahmadi,S.An Overview of Next.Generation Mobile WiMAX Technology[J].IEEECommunication Magazine,2009,47:84-98. [4]謝彬.VoIP信令協(xié)議H.323和SIP的比較[J].科技信息,2009(9). [5]謝剛.WiMAX技術(shù)原理及應(yīng)用[M].北京:北京郵電大學(xué)出版社,2010.
(中國集群通信網(wǎng) | 責(zé)任編輯:李俊勇) |