陳二陽, 劉 成, 袁姜紅, 雷 霖
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.成都理工大學(xué) 地球物理學(xué)院, 四川 成都 610059; 3.四川文軒職業(yè)學(xué)院 信息工程系, 四川 成都 611330)
嵌入式Linux飛行器視頻采集與處理模塊設(shè)計(jì)
陳二陽1,2, 劉 成1, 袁姜紅3, 雷 霖1
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.成都理工大學(xué) 地球物理學(xué)院, 四川 成都 610059; 3.四川文軒職業(yè)學(xué)院 信息工程系, 四川 成都 611330)
為提高微型飛行器無線視頻的傳輸距離及傳輸質(zhì)量,選用S3C2440微處理器為控制中心、OV9650攝像頭為移動(dòng)端視頻采集設(shè)備,給出了視頻采集與處理模塊的總體設(shè)計(jì)方案和硬件結(jié)構(gòu).模塊開發(fā)基于嵌入式Linux平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了遵循V4L2(Video For Linux 2)驅(qū)動(dòng)標(biāo)準(zhǔn)的移動(dòng)端視頻采集模塊、基于H.264的視頻編解碼模塊以及適用于3G/4G的無線網(wǎng)絡(luò)通信模塊,其中無線通信采用RTP協(xié)議,以滿足視頻無線遠(yuǎn)程傳輸?shù)膶?shí)時(shí)性要求.結(jié)果表明,該系統(tǒng)傳輸?shù)囊曨l滿足清晰、穩(wěn)定與延時(shí)低的要求,具有一定的實(shí)用前景.
微型飛行器;S3C2440;V4L2;H.264;RTP
目前,微型飛行器(Micro Air Vehicle,MAV)已經(jīng)廣泛應(yīng)用于地質(zhì)、氣象、農(nóng)業(yè)、電力、城市管理、搶險(xiǎn)救災(zāi)與視頻拍攝等領(lǐng)域.在各種突發(fā)應(yīng)急事件處理過程中,航拍資料可以為事件的調(diào)查取證、分析處理甚至遠(yuǎn)程指揮提供有力的技術(shù)支持[1].實(shí)時(shí)視頻采集與傳輸是微型飛行器必備功能之一,而視頻采集、解壓縮及傳輸系統(tǒng)是微型飛行器視頻傳輸系統(tǒng)中的關(guān)鍵技術(shù)模塊,模塊性能直接影響到視頻傳輸系統(tǒng)是否穩(wěn)定與流暢[2-4].對(duì)此,本研究以S3C2440微處理器為控制中心,OV9650攝像頭為移動(dòng)端視頻采集設(shè)備,并在3G/4G網(wǎng)絡(luò)視頻傳輸?shù)幕A(chǔ)上,結(jié)合實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol,RTP),實(shí)現(xiàn)了一款嵌入式Linux智能飛行器視頻采集與處理模塊設(shè)計(jì).
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)前端的OV9650攝像頭將采集的視頻數(shù)據(jù)傳送到以S3C2440微處理器為核心的控制中心,通過視頻編碼模塊將視頻流編碼成H.264視頻流,這時(shí)如果客戶端向控制中心發(fā)出實(shí)時(shí)視頻請(qǐng)求命令,則控制中心將編碼后的H.264視頻流通過3G/4G網(wǎng)絡(luò)傳送到客戶端.客戶端接收到視頻流后經(jīng)過解碼模塊對(duì)H.264視頻流進(jìn)行解碼并顯示,系統(tǒng)附帶有視頻回放與視頻截圖等功能.系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖
1.2 系統(tǒng)軟件模塊劃分
根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo),系統(tǒng)軟件可分為5個(gè)獨(dú)立的功能模塊,具體如圖2所示.
圖2 飛行器視頻采集與處理系統(tǒng)軟件結(jié)構(gòu)圖
1)視頻采集模塊.視頻采集選用體積小、價(jià)格低、功耗低的OV9650 CMOS攝像頭進(jìn)行圖像采集.原始視頻采集后,模塊將數(shù)據(jù)流發(fā)送至控制中心進(jìn)行格式轉(zhuǎn)換,以準(zhǔn)備下一步的編碼壓縮.Linux下的視頻采集遵循V4L2驅(qū)動(dòng)標(biāo)準(zhǔn)[5].
2)視頻編碼壓縮模塊.視頻壓縮選用x264參考模型,編碼后生成的每1幀視頻可保存或放入緩沖區(qū),供其他模塊使用.
3)3G/4G網(wǎng)絡(luò)模塊.首先,微控制器與3G/4G模塊之間建立底層的PPP鏈路連接;然后,通過AT命令控制無線模塊撥號(hào)入網(wǎng).數(shù)據(jù)傳輸過程中,底層采用UDP傳輸協(xié)議,應(yīng)用層采用實(shí)時(shí)傳輸協(xié)議RTP.該模塊附帶數(shù)據(jù)的擁塞控制和流量控制功能,以保證視頻傳輸?shù)膶?shí)時(shí)性,同時(shí)提高了視頻傳輸?shù)目煽啃訹6].
4)視頻解碼模塊.視頻解碼采用FFmpeg解碼器對(duì)接收到的數(shù)據(jù)流進(jìn)行解碼,供其他模塊使用.
5)視頻顯示模塊.用以在客戶端顯示由飛行器采集到的視頻數(shù)據(jù).
2.1 視頻采集
2.1.1 V4L2框架.
V4L2是Linux內(nèi)核中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng)框架,為上層訪問底層的視頻設(shè)備提供了統(tǒng)一接口,支持對(duì)大部分音視頻設(shè)備的采集與處理,包含CCD/CMOS圖像傳感器[7].
2.1.2 視頻采集程序.
視頻采集程序的功能主要實(shí)現(xiàn)將實(shí)時(shí)獲取的原始視頻數(shù)據(jù)通過ISP接口傳輸?shù)教幚砥鞔鎯?chǔ)單元,并可以實(shí)現(xiàn)對(duì)視頻采集參數(shù)的查詢與設(shè)置,如設(shè)置采集視頻圖像的分辨率與視頻格式等.視頻采集程序參照V4L2提供的標(biāo)準(zhǔn)接口設(shè)計(jì),對(duì)視頻數(shù)據(jù)的讀寫采用mmap映射方式,以提高可讀性、靈活性及處理速度[8].視頻采集的流程如圖3所示.
圖3 視頻采集程序流程圖
2.2 視頻編碼模塊
H.264視頻編碼器主要包括JM、FFmpeg、T264及x264參考模型.其中,x264是一開源H.264/AVC編碼庫,算法復(fù)雜度適中,與H.264/AVC標(biāo)準(zhǔn)匹配效果好,圖像清晰,且編碼效率較高[9].本研究采用x264參考模型.為了生成x264運(yùn)行庫文件,需首先編譯執(zhí)行l(wèi)ast-x264.tar.bz2及./configure-host=arm-linux,然后將config.mak文件中的gcc及yasm分別修改為arm-linux-gcc、arm-linux-as.視頻的編碼流程如圖4所示.
圖4 x264視頻編碼算法流程圖
2.3 視頻解碼模塊
系統(tǒng)采用FFmpeg解碼器,它提供錄制、轉(zhuǎn)換及流化音視頻的完整解決方案,且包含先進(jìn)的音頻/視頻編解碼庫libavcodec.視頻的解碼流程如圖5所示.
圖5 解碼流程圖
2.4 軟件設(shè)計(jì)
系統(tǒng)的軟件實(shí)現(xiàn)分為采集端部分和接收端部分.系統(tǒng)中,嵌入式Linux軟件實(shí)現(xiàn)包括BootLoader移植、Linux系統(tǒng)移植、x264庫移植、Jrtplib移植、攝像頭驅(qū)動(dòng)編寫、3G/4G網(wǎng)卡驅(qū)動(dòng)編寫及應(yīng)用程序其他功能模塊的編寫.
為了方便操作,本研究將驅(qū)動(dòng)程序編寫成一個(gè)雜項(xiàng)設(shè)備驅(qū)動(dòng).在驅(qū)動(dòng)入口函數(shù)camif-init中設(shè)置GPIO,設(shè)置攝像頭中的寄存器及注冊(cè)雜項(xiàng)設(shè)備.將雜項(xiàng)設(shè)備中的fops初始化如下,
static struct file-operations camif-fops={
.owner=THIS-MODULE,
.open=camif-open,
.release=camif-release,
.read=camif-read,
};
其中,使用open函數(shù)來打開設(shè)備、創(chuàng)建設(shè)備節(jié)點(diǎn)及申請(qǐng)攝像頭數(shù)據(jù)所用的內(nèi)存等,而release的工作與open相反.Read函數(shù)是應(yīng)用程序執(zhí)行過程中不斷被調(diào)用的函數(shù),用來將攝像頭中的數(shù)據(jù)讀取到應(yīng)用程序中.
采集端和接收端結(jié)構(gòu)圖如圖6所示.
圖6 采集端和接收端結(jié)構(gòu)圖
本設(shè)計(jì)通過3G/4G模塊連接成功后,其測(cè)試效果如圖7所示.從PC端應(yīng)用程序中可以看到,幀率為21,時(shí)延為1.07 s.由于3G模塊的通信速率限制,本視頻模塊設(shè)計(jì)采用了幀數(shù)據(jù)量較小的QCIF格式,且使用了較大的壓縮率.后期若要進(jìn)一步提高視頻清晰度,可以通過調(diào)整視頻解碼,同時(shí)使用通信能力更強(qiáng)的4G模塊來匹配通信需求.
圖7 視頻采集效果
嵌入式Linux智能飛行器視頻系統(tǒng)對(duì)于傳輸?shù)膶?shí)時(shí)性和可靠性要求較高,本研究對(duì)該系統(tǒng)的總體功能和硬件模塊進(jìn)行了設(shè)計(jì)和劃分,實(shí)現(xiàn)了系統(tǒng)關(guān)鍵模塊的程序開發(fā).測(cè)試結(jié)果表明,系統(tǒng)傳輸?shù)囊曨l滿足清晰、穩(wěn)定及延時(shí)低的要求,具有一定的實(shí)用前景.隨著4G/5G通信技術(shù)的普及與數(shù)字圖像處理技術(shù)的發(fā)展,系統(tǒng)性能還可做出進(jìn)一步改善和提高.
[1]羅賀,胡小建,付超.基于Agent組織的多UAV協(xié)調(diào)模型[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(11):17-19.
[2]趙滿意,趙利,莫金旺.視頻采集與編碼技術(shù)在視頻監(jiān)控終端中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2011,33(1):122-126.
[3]柳艷茹.淺談流媒體技術(shù)的應(yīng)用與發(fā)展[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2012,28(6):16-17.
[4]李超,柴文磊,劉勁松.高清視頻會(huì)議系統(tǒng)技術(shù)淺析[J].信息安全與技術(shù),2010,8(8):50-51.
[5]劉小康,戴梅萼,王昊,等.多站點(diǎn)遠(yuǎn)程實(shí)時(shí)視頻傳輸與控制系統(tǒng)[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,23(41):1154-1156.
[6]劉合.音視頻編輯庫的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2011.
[7]楊浩.基于嵌入式Linux實(shí)時(shí)控制的四軸飛行器設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2015.
[8]萬長征,何利康,盧慶超,等.基于3G/4G多旋翼飛行器的視頻傳輸系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014,10(10):5-7.
[9]趙曉麗,陳慧,宋占偉.微型四旋翼飛行器的嵌入式視頻監(jiān)控終端[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2016,34(1):122-126.
Design of Video Acquisition and Processing Module of MAV Based on Embedded Linux
CHENEryang1,2,LIUCheng1,YUANJianghong3,LEILin1
(1.School of Information Science and Engineering, Chengdu University, Chengdu 610106, China; 2.College of Geophysics, Chengdu University of Technology, Chengdu 610059, China; 3.Information Technology Department, Sichuan Wenxuan Vocational College, Chengdu 611330, China)
In order to extend the transmission distance and improve the quality of video transmission of the Micro Air Vehicle(MAV),the overall design and the hardware architecture of the system are presented by using the microprocessor S3C2440 as the core processor and OV9650 as the mobile video capture device.Module development is based on embedded Linux operating system.The mobile video capture module based on V4L2(Video For Linux 2),the video encoding and decoding module based on H.264 and the wireless communication module applied to 3G/4G are all designed and realized.Meanwhile,RTP(Real-time Transport Protocol) is used for wireless communication to meet the real-time video transmission requirements.The results show that the system can meet the requirements for video transmission which include clarity,stability and low latency.Therefore,the system has a practical prospect.
MAV;S3C2440;V4L2;H.264;RTP
1004-5422(2017)01-0066-04
2016-10-25.
四川省科技廳科技支撐計(jì)劃(2015FZ0066)、 四川省教育廳自然科學(xué)基金(16ZB0425)資助項(xiàng)目.
陳二陽(1985 — ), 男, 博士, 講師, 從事計(jì)算機(jī)智能控制技術(shù)研究.
V279+.2
A