李萬臣,陳宇賢,張 晉,李 婷
(哈爾濱工程大學(xué)信息與通信工程學(xué)院,哈爾濱150001)
實(shí)時多媒體數(shù)據(jù)的無線傳輸系統(tǒng)對社會生活信息化和工業(yè)自動化有著巨大的作用,如何很好的利用第三方網(wǎng)絡(luò)是無線監(jiān)控發(fā)展的一項(xiàng)重要工作,而且隨著3G網(wǎng)絡(luò)的建成和使用,這方面的應(yīng)用開發(fā)研究的需求量將會蓬勃發(fā)展[1].多媒體數(shù)據(jù)在無線信道中傳輸在實(shí)際應(yīng)用中面臨著巨大的挑戰(zhàn)[2],具體表現(xiàn):1)多媒體數(shù)據(jù)如視頻的播放有嚴(yán)格的實(shí)時性要求需要一定額度的帶寬作為保障;2)由于多徑衰落、同頻干擾、噪聲等影響會引起網(wǎng)絡(luò)的輸無線信道有較大帶寬波動;3)相比有線信道,無線信道因?yàn)槎鄰胶臀锤采w的區(qū)域的影響,信道的誤碼率較高,在3G中應(yīng)是10-3~10-5,這對視頻和圖像的質(zhì)量影響很大;4)用戶具有異構(gòu)性:用戶接收設(shè)備的異構(gòu)性和用戶對服務(wù)質(zhì)量、業(yè)務(wù)內(nèi)容需求的異構(gòu)性.針對多媒體數(shù)據(jù)在無線傳輸中所存在的問題,本文采用多通道技術(shù),通過疊加無線傳輸模塊數(shù)量以提高無線信道帶寬,保證多媒體數(shù)據(jù)的傳輸質(zhì)量.
采用多通道技術(shù)可以成倍的增加信道帶寬,但是多個通道之間如何調(diào)度則是個重要的問題.本文以優(yōu)先級為標(biāo)準(zhǔn)對多個通道進(jìn)行調(diào)度,優(yōu)先級高的通道則能夠率先獲得數(shù)據(jù)傳輸.
將從當(dāng)前時刻t到截止時間di的時間與其剩余的服務(wù)時間ci(t)之間的差記為空閑時間Si,則按照最小空閑時間算法:通過終端設(shè)備的空閑時間動態(tài)地分配優(yōu)先級P,由下式確定:
空閑時間越短,終端設(shè)備的優(yōu)先級就越高,由此具有最小空閑時間的終端設(shè)備則可獲得數(shù)據(jù)的使用權(quán).假設(shè)某個終端設(shè)備M1發(fā)出數(shù)據(jù)請求時,主系統(tǒng)正被具有更高優(yōu)先級的其他終端設(shè)備M2所占用,則忽略M1使用請求.當(dāng)M2數(shù)據(jù)傳輸時,則M1的空閑時間嚴(yán)格單調(diào)遞減,直至小于正占用數(shù)據(jù)傳輸?shù)脑O(shè)備M2的空閑時間時,按照調(diào)度策略,主系統(tǒng)必須切換到設(shè)備M1.
本文采用的算法流程如下(以4個終端模塊為例):
1)初始化主系統(tǒng);
2)初始化每個模塊的優(yōu)先級,設(shè)置PM1>PM2>PM3>PM4;
3)檢測是否有終端模塊發(fā)送數(shù)據(jù)請求,有則將發(fā)送請求的終端加入等待數(shù)據(jù)模塊的隊(duì)列T中;
4)判斷主系統(tǒng)是否正在傳輸數(shù)據(jù),是則等待主系統(tǒng)空閑,否則轉(zhuǎn)5);
5)比較隊(duì)列T中各個模塊的優(yōu)先級,選擇優(yōu)先級最高的終端Mi進(jìn)行數(shù)據(jù)傳輸;
6)修改各終端設(shè)備參數(shù),以及優(yōu)先級P;
7)判斷主系統(tǒng)數(shù)據(jù)是否傳輸完畢,若完畢則轉(zhuǎn)8),否則轉(zhuǎn)3);
8)算法結(jié)束.
無線數(shù)據(jù)傳輸過程中,延遲對視頻傳輸影響很大,并且容易造成視頻信息的丟失.因此,在圖像數(shù)據(jù)進(jìn)行傳輸前必須進(jìn)行一定處理,以便當(dāng)數(shù)據(jù)丟失和時延過大時,能夠及時進(jìn)行差錯控制.在數(shù)據(jù)分別送往各個通道之前,必須對數(shù)據(jù)進(jìn)行分包.分包有很多優(yōu)點(diǎn)[3],使用分包,就不會一直占用兩個系統(tǒng)之間的線路,能提高系統(tǒng)路線利用效率;同時,因?yàn)榭梢匀彳浀剡M(jìn)行路徑的選擇,所以擁有就算一部分出現(xiàn)障礙,也可以用其他的線路來代替.由于存在過多的延遲和干擾,圖像數(shù)據(jù)就容易出現(xiàn)數(shù)據(jù)丟失和誤碼,這將嚴(yán)重降低視頻質(zhì)量.一旦采用了分包機(jī)制,數(shù)據(jù)接收端從分包數(shù)據(jù)中進(jìn)行同步恢復(fù),可大大降低傳輸過程中數(shù)據(jù)丟失和誤碼的情況.同時,分包中所含的標(biāo)識使每個分包可被其他分包預(yù)測出來,因此也提高系統(tǒng)的魯棒性.
圖像數(shù)據(jù)在無線傳輸過程,分包的大小直接影響丟包率[4].將數(shù)據(jù)包拆分為 1 400、1 000、800、400 bytes進(jìn)行分別研究,同樣傳輸1 M數(shù)據(jù),分包大小與丟包率關(guān)系如表1所示.通過表1可以發(fā)現(xiàn),在數(shù)據(jù)包為1 000 bytes時,丟包率最小,所以本文采用的分包也為1 000 bytes.
表1 不同數(shù)據(jù)包大小對傳輸?shù)挠绊?/p>
設(shè)置數(shù)據(jù)包的編號用于惟一標(biāo)識一個數(shù)據(jù)包.本文涉及的數(shù)據(jù)傳輸必須是穩(wěn)定可靠的,可以處理數(shù)據(jù)包丟失、重復(fù),特別是是順序紊亂等情況.因此,在發(fā)送數(shù)據(jù)包之前,將所有數(shù)據(jù)包進(jìn)行序列編號,這樣,在接收端在接收數(shù)據(jù)后可以獨(dú)立分辨數(shù)據(jù)包,由此來保證傳輸?shù)目煽啃?接收端利用序列號來確定數(shù)據(jù)的先后順序,除去重復(fù)的數(shù)據(jù)包.本文所用的序列編號為32位,同時記錄數(shù)據(jù)包所處的幀數(shù)以及在每一幀中的位置,每一個數(shù)據(jù)包都是順序編號的,序列號(SYN)的標(biāo)示位位于每個數(shù)據(jù)包數(shù)據(jù)段的前端.
為了保證數(shù)據(jù)存儲和通信傳輸應(yīng)用中數(shù)據(jù)的準(zhǔn)確性,增加CRC(Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))檢驗(yàn)碼是一項(xiàng)很好的手段.常用的CRC校驗(yàn)形式有 CRC -16,CRC -32 兩種[5],采用 CRC-16校驗(yàn),可以保證出錯率在1‰以下,而采用CRC-32校驗(yàn)的出錯概率更是比 CRC-16低1%.CRC的主要特點(diǎn)就是:檢錯能力極強(qiáng),開銷很小,易于實(shí)現(xiàn).因此,CRC技術(shù)應(yīng)用在很多軟件的加密保護(hù)中.
CRC校驗(yàn)的應(yīng)用關(guān)鍵在于發(fā)送端CRC碼的計(jì)算,以及將CRC碼添加在塊數(shù)據(jù)之后,而采用什么形式的CRC標(biāo)準(zhǔn),則由具體檢錯性能而定.在設(shè)計(jì)中,設(shè)計(jì)高效的代碼是很有必要的,常用的方法有計(jì)算法、查表法、半查表法,關(guān)鍵需要考慮代碼的效率以及存儲空間大小.在接收端,則需要編寫與發(fā)送端相對應(yīng)的CRC檢驗(yàn)函數(shù),用相應(yīng)的CRC標(biāo)準(zhǔn)算法計(jì)算出從接收到的數(shù)據(jù)有效部分的CRC碼,再與接收到數(shù)據(jù)末端夾帶的CRC碼比較,如果相同,則認(rèn)為傳輸過程中誤碼可能較小,認(rèn)為通訊有效.
多媒體無線傳輸系統(tǒng)硬件框圖如圖1所示.
圖1 多媒體無線傳輸系統(tǒng)硬件框圖
本文圖像采集部分采用OV7670攝像頭模組.OV7670圖像傳感器,體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能.通過SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影響數(shù)據(jù).該產(chǎn)品VGA圖像最高達(dá)到30幀/s.用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式.所有圖像處理功能過程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過SCCB接口編程.
數(shù)據(jù)打包及發(fā)送模塊是系統(tǒng)關(guān)鍵,包括對數(shù)據(jù)的存儲及打包處理,這些功能都由EP2C8Q208完成.根據(jù)系統(tǒng)的要求,數(shù)據(jù)處理流程如圖2所示.其中,幀同步信號的提取起著重要的作用.幀同步信號作為一幅圖像開始的標(biāo)志,表示一幀數(shù)據(jù)開始發(fā)送.幀同步信號提取之后,有兩種方法進(jìn)行處理[6]:一是插入特殊的碼組作為每幀開始的標(biāo)記.二是利用數(shù)據(jù)碼組之間特性實(shí)現(xiàn)同步.本文采用第一種方法,即在每個幀同步信號之后,在數(shù)據(jù)流中插入32位標(biāo)記碼組0xfefe,標(biāo)記每一幀的開始.
在獲取完整的一幀圖像數(shù)據(jù)之后,F(xiàn)PGA以1 000 bytes為一個數(shù)據(jù)包,對數(shù)據(jù)進(jìn)行分包.分包后按順序分別在每個包的包頭添加64位標(biāo)記,包括32位幀標(biāo)記以及32位像素標(biāo)記.添加包頭信息后,在每個數(shù)據(jù)包末端添加CRC校驗(yàn)值,CRC校驗(yàn)值由CRC計(jì)算模塊得到.
數(shù)據(jù)經(jīng)過打包及傳送,由無線接收模塊進(jìn)行接收.圖像恢復(fù)模塊是在UP-AR2000平臺上完成的.UP-AR2000平臺以EP2C35為核心,有足夠的資源來處理圖像數(shù)據(jù).根據(jù)系統(tǒng)的要求,圖像恢復(fù)流程如圖3所示.
系統(tǒng)在接收數(shù)據(jù)包后,首先對數(shù)據(jù)包進(jìn)行CRC計(jì)算,并與數(shù)據(jù)包最后的CRC校驗(yàn)碼進(jìn)行比對,如果CRC校驗(yàn)碼錯誤,則可能數(shù)據(jù)傳輸過程中出現(xiàn)誤碼,則將數(shù)據(jù)包丟棄.CRC校驗(yàn)通過的數(shù)據(jù)包通過解包頭信息,得到數(shù)據(jù)包的幀位置以及像素位置.比較相互之間的幀位置以及像素位置,去除重復(fù)的數(shù)據(jù)包,并對數(shù)據(jù)包進(jìn)行排序.
圖2 數(shù)據(jù)打包及發(fā)送模塊數(shù)據(jù)處理流程
圖3 圖像恢復(fù)模塊數(shù)據(jù)恢復(fù)流程
在傳輸過程中,可能有丟包的情況,所以排序之后一幀圖像可能會少幾個數(shù)據(jù)包,本文中為了解決這種情況,在圖像寄存器同時保存三幀圖像,并通過前兩幀圖像的數(shù)值推算出丟失數(shù)據(jù)包的數(shù)據(jù).在一幀數(shù)據(jù)處理完成后,送由顯示模塊顯示.
本文在移動通信基礎(chǔ)上設(shè)計(jì)多通道數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)能夠通過攝像頭模組采集原始圖像數(shù)據(jù),由EP2C8Q208存儲及分包處理,并按照調(diào)度規(guī)則由無線模塊有序的發(fā)送;接收端在博創(chuàng)UPAR2000平臺上對接收到的數(shù)據(jù)進(jìn)行解包等操作,最后在VGA上還原畫面.經(jīng)過試驗(yàn),本文所設(shè)計(jì)的傳輸系統(tǒng)在分辨率為640×480情況下,可以保證5幀/s的畫面顯示.
[1] RAPPARPORT T S.Wireless Communication Principles and Practice[M].US:Addison Wesley,2004.
[2] 沈蘭蓀,卓 力.小波編碼與網(wǎng)絡(luò)視頻傳輸[M].北京:科學(xué)出版社,2005.
[3] LU J.Signal Processing for Internet Video Streaming:A review[C]//Proceedings of SPIE Image and Video Communications and Processing,[S.l.]:[s.n.],2000:1 -14.
[4] 馬留英.基于3G移動通信的視頻監(jiān)控系統(tǒng)研究[D].西安:長安大學(xué),2011.
[5] 伍方輝,方安安.CRC的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J].中國新通信,2008(13):63-64.
[6] 陳惠珍,包天珍.一種基于FPGA的幀同步提取方法的研究[J].電子技術(shù)應(yīng)用,2003(10):70-72.
哈爾濱商業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)2013年1期