【摘要】 本文主要研究嵌入式與無線圖像傳輸?shù)幕A(chǔ)上,設(shè)計(jì)一種應(yīng)用嵌入式平臺(tái)來實(shí)現(xiàn)無線圖像傳輸?shù)南到y(tǒng),方案以ARM為核心,用USB 高清攝像頭和無線網(wǎng)卡模塊為硬件平臺(tái),輔以Linux系統(tǒng)為軟件平臺(tái),完成圖像的采集與無線傳輸。
【關(guān)鍵詞】 圖像采集 無線傳輸 研究
本文首先介紹系統(tǒng)的組成和功能要求,重點(diǎn)論述了系統(tǒng)總體思路和硬件平臺(tái)的搭建。其次闡述了系統(tǒng)軟件平臺(tái)程序的設(shè)計(jì),在Linux系統(tǒng)下V4L2技術(shù)圖像采集和程序分析。然后敘述了圖像壓縮與Linux下的數(shù)據(jù)壓縮算法,并對(duì)比壓縮前后圖像,運(yùn)用無線數(shù)據(jù)和圖像傳輸方式及Linux下的網(wǎng)絡(luò)編程,并完成無線傳輸?shù)某绦颍罱K在不同條件下的試驗(yàn)數(shù)據(jù)得到相應(yīng)的結(jié)論。
一個(gè)完整的嵌入式無線圖像傳輸系統(tǒng)包括發(fā)射與接收兩部分。在發(fā)射部分,用圖像采集模塊作為信號(hào)輸入端,把采集到的圖像數(shù)據(jù)保存到嵌入式處理單元存儲(chǔ),并通過壓縮模塊進(jìn)行壓縮,然后經(jīng)過壓縮的圖像作為輸出信號(hào),通過無線發(fā)射模塊和網(wǎng)絡(luò)傳輸協(xié)議,將信息發(fā)送到接收部分。接收部分首先將發(fā)送來的信息保存到控制中心,經(jīng)過圖像解壓縮模塊,將接收的圖像進(jìn)行解壓處理,并通過數(shù)據(jù)處理模塊對(duì)圖像進(jìn)行處理,實(shí)現(xiàn)系統(tǒng)的整體功能。
1.嵌入式處理模塊是整個(gè)系統(tǒng)的關(guān)鍵和核心,它接收攝像模塊傳來的圖像信息,經(jīng)過不同的接口函數(shù)與控制指令協(xié)同各個(gè)外設(shè),完成對(duì)硬件設(shè)備的控制與數(shù)據(jù)傳輸;
2.攝像模塊主要完成圖像采集工作;
3.無線收發(fā)模塊完成網(wǎng)絡(luò)傳輸協(xié)議,它承載了傳輸信道的建立與數(shù)據(jù)通信;
4. PC 機(jī)作為控制中心,它主要將接收的信息進(jìn)行處理,實(shí)現(xiàn)實(shí)時(shí)監(jiān)控和完成系統(tǒng)功能。
研究中采用的是基于通用性免費(fèi)開源的Linux系統(tǒng),在起始階段,需要進(jìn)行交叉編譯,以生成系統(tǒng)需要的Bootloader以及內(nèi)核,我們用的開發(fā)板是MINI2440。系統(tǒng)的總體設(shè)計(jì)流程:
1.完成攝像設(shè)備的接口驅(qū)動(dòng)工作和圖像采集應(yīng)用程序;
2.采集圖像信息與編寫圖像壓縮應(yīng)用程序;
3.完成網(wǎng)絡(luò)傳輸設(shè)備的驅(qū)動(dòng)接口工作,編寫傳輸應(yīng)用程序;
4.圖像接收成功后編寫圖像解壓縮應(yīng)用程序。
本系統(tǒng)所用的是USB接口的數(shù)字?jǐn)z像頭,Linux中描述USB設(shè)備的結(jié)構(gòu)體為usb_driver,成員變量是id_table,這個(gè)變量指向structusb_device_id,主要描述了USB產(chǎn)品設(shè)備的版本、ID、產(chǎn)品接口類、設(shè)備類等信息。在設(shè)計(jì)中,需要重新配置USB驅(qū)動(dòng),編譯內(nèi)核,重新加載才能使用。在Linux進(jìn)行視頻圖像采集的接口函數(shù)是V4L2,它提供數(shù)據(jù)結(jié)構(gòu)和編程接口,是Linux中采集設(shè)備的內(nèi)核驅(qū)動(dòng)。本系統(tǒng)編寫的是通過編程接口來控制采集設(shè)備完成相應(yīng)的操作和圖像采集功能應(yīng)用程序。
通過前面的應(yīng)用程序設(shè)計(jì),采集到圖像并保存到指定文件中,但是采集來的是信息量較大的初始圖像,為了更好的傳輸,而質(zhì)量又不至于下降,就需要圖像數(shù)據(jù)的壓縮。我們用最少的數(shù)碼來表示信號(hào),數(shù)據(jù)壓縮技術(shù)包括無損和有損壓縮格式,比較兩種壓縮方式和系統(tǒng)所采用的ARM9內(nèi)核的CPU,本系統(tǒng)用軟件方法實(shí)現(xiàn)數(shù)據(jù)的壓縮,主要的工作是對(duì)靜態(tài)圖像的數(shù)據(jù)壓縮,即空間信息進(jìn)行壓縮,目的是滿足一定圖像質(zhì)量的條件下,縮小圖像所占用的存儲(chǔ)空間,以減小存儲(chǔ)和占用盡量小的網(wǎng)絡(luò)帶寬。
在系統(tǒng)中,采用IJG JPEG Library來進(jìn)行JPEG圖像壓縮,重點(diǎn)是Linux系統(tǒng)中設(shè)置壓縮參數(shù),然后在壓縮過程中,通過掃描的方式一行行的進(jìn)行壓縮,最后通過采集到的圖像壓縮前后對(duì)比與解壓縮之后的對(duì)比,并根據(jù)圖像大小的變化得出結(jié)論。
無線傳輸是整個(gè)系統(tǒng)中重要的另一部分,它的傳輸性能直接影響傳輸?shù)馁|(zhì)量,本系統(tǒng)選擇的是基于IEEE802.11b無線局域網(wǎng)方式,選擇的無線是WIFI通信,所使用的網(wǎng)卡是TP-LINKWN 422G+。WN 422G+配置了快速USB2.0接口,數(shù)據(jù)通信速度很快,它還支持WIFI保護(hù)訪問機(jī)制,為重要信息的保密提供了方便。
無線網(wǎng)卡要在Linux系統(tǒng)里需要特定的驅(qū)動(dòng)包,把WN 422G+連接到ARM開發(fā)板上,執(zhí)行命令,可以掃描到當(dāng)前可以用的無線網(wǎng)絡(luò)。
在Linux中,使用的網(wǎng)絡(luò)編程接口是API套接字,網(wǎng)絡(luò)傳輸方式是具有傳輸可靠遠(yuǎn)程連接的TCP無線傳輸,進(jìn)行網(wǎng)絡(luò)文件的傳輸(服務(wù)器端和客戶端),這樣就完成了從客戶端發(fā)送圖像到服務(wù)器端的全過程,到此,已經(jīng)基本上完成了整個(gè)系統(tǒng)所要求的功能。
本文選擇的無線設(shè)備是無線網(wǎng)卡,通過測(cè)試,在圖像傳輸過程中要考慮圖像格式大小距離等因素,得到結(jié)論:
1在靜止或者固定低速的情況下,隨著圖像大小的逐漸增加,傳輸時(shí)延逐漸增大,在低速情況下,單位時(shí)間內(nèi)的傳輸速率基本恒定,但在高速情況下,隨著圖像大小的逐漸增加,傳輸速率呈降低的趨勢(shì);
2在圖像大小固定的情況下,隨著移動(dòng)速率的逐漸增加,傳輸時(shí)延和掉包率逐漸增大;
3通常圖像大小與傳輸時(shí)延是一對(duì)矛盾,圖像越大,占用的帶寬也就越寬,在傳輸過程中的傳輸時(shí)延也就越長(zhǎng)。
因此需要根據(jù)不同的應(yīng)用場(chǎng)景,選擇不同的優(yōu)先策略。