沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 吳 凱
基于無人機(jī)平臺的H.264視頻傳輸系統(tǒng)的設(shè)計(jì)
沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 吳 凱
視頻傳輸系統(tǒng)是無人機(jī)執(zhí)行任務(wù)的重要組成部分,本文設(shè)計(jì)一套嵌入式視頻采集傳輸系統(tǒng)。該系統(tǒng)以Hi3520D為硬件核心平臺,采用linux實(shí)時(shí)操作系統(tǒng),圖像采集使用高清網(wǎng)絡(luò)攝像頭。將攝像頭采集的圖像數(shù)據(jù)進(jìn)行H.264壓縮,通過UDP組播協(xié)議方式,將H.264碼流經(jīng)數(shù)據(jù)鏈傳輸?shù)降孛娼邮照?,?shí)現(xiàn)解碼并實(shí)時(shí)顯示。本系統(tǒng)可以完成小型無人機(jī)偵察功能。具有廣泛的應(yīng)用前景。
Hi3520D;linux;圖像采集;H.264;UDP
近年來,各地區(qū)、各部門在綜合規(guī)劃、國土整治監(jiān)控等方面,無不需要最新、最完整的地形地物資料。以無人機(jī)為空中遙感平臺的技術(shù),正是適應(yīng)這一需要而發(fā)展起來的一項(xiàng)新型應(yīng)用性技術(shù)。隨著視頻采集處理以及無線傳輸技術(shù)的高速發(fā)展,無人機(jī)視頻采集與傳輸系統(tǒng)正在向高清化和網(wǎng)絡(luò)化發(fā)展。H.264視頻壓縮技術(shù)因具有低碼率和網(wǎng)絡(luò)適應(yīng)性強(qiáng)等特點(diǎn)被廣泛推廣[1]。本文搭建了一套基于Hi3520D芯片的圖像采集、壓縮以及傳輸系統(tǒng),將嵌入式技術(shù)與圖像處理技術(shù)相結(jié)合,通過網(wǎng)絡(luò)把采集到的視頻圖像信息通過數(shù)據(jù)鏈無線傳輸?shù)竭h(yuǎn)程計(jì)算機(jī)并實(shí)時(shí)顯示。
視頻傳輸系統(tǒng)系統(tǒng)主要分三個(gè)部分:視頻圖像的采集、圖像的編碼、編碼圖像的傳輸[2]。
系統(tǒng)工作流程:高清攝像頭將采集的圖像數(shù)據(jù)傳輸?shù)紿i3520D處理器,進(jìn)行壓縮處理并傳輸?shù)桨l(fā)送數(shù)據(jù)鏈,接收端數(shù)據(jù)鏈接收到圖像數(shù)據(jù)經(jīng)手持控制器或VLC播放端解碼播放。
本系統(tǒng)采用的是華為公司的基于ARM11內(nèi)核的Hi3520D高性能通信媒體處理芯片,其主頻可以達(dá)到660MHZ,支持8路多協(xié)議編解碼能力,集成優(yōu)異的視頻引擎和編解碼算法,具有豐富的外圍接口。攝像頭采用??蹈咔逦炇盗袛z像頭,具有豐富的接口設(shè)計(jì),畫面清晰,體積小等特點(diǎn)。無線通信模塊采用BOYUAV 601無線通信模塊,標(biāo)稱無線傳輸最大速率為4Mbps,具有重量輕,防靜電設(shè)計(jì),超強(qiáng)散熱設(shè)計(jì)等特點(diǎn),適用于小型無人機(jī)平臺。
該系統(tǒng)的軟件設(shè)計(jì)主要包括操作系統(tǒng)、H.264視頻編碼和傳輸。操作系統(tǒng)選擇linux操作系統(tǒng),提供了豐富的網(wǎng)絡(luò)功能,具有良好的可移植性。H.264編碼庫選用HiMPP庫。網(wǎng)絡(luò)傳輸協(xié)議選用UDP組播協(xié)議[3]。
應(yīng)用程序使用模塊化程序設(shè)計(jì),包括3個(gè)模塊:①圖像采集;②圖像壓縮;③圖像傳輸。
V4L2是針對免驅(qū)usb設(shè)備的編程框架,提供了一套API接口用以采集音頻和視頻數(shù)據(jù)。Linux對于USB攝像頭驅(qū)動(dòng)的支持及V4L2的支持需要在內(nèi)核中進(jìn)行配置[4]。V4L2的視頻采集主要是通過ioctl函數(shù)傳遞不同的控制命令來設(shè)置采集圖像的參數(shù)。其中ioctl函數(shù)的原型為:int ioctl(int fd,int request)。第一個(gè)參數(shù)是用open函數(shù)打開視頻通道后返回的的設(shè)備描述符;第二個(gè)參數(shù)是具體的命令標(biāo)志符。采集流程如圖1所示。
圖1 圖像采集流程
圖2 視頻編碼流程
H.264是一種高性能的視頻編解碼技術(shù)。H.264采用統(tǒng)一的VLC符號編碼[5],以及基于4塊的整數(shù)變換、分層編碼設(shè)計(jì),這些措施使得H.264得算法具有很高的編碼效率、網(wǎng)絡(luò)適應(yīng)性,能夠更好的適應(yīng)IP和無線網(wǎng)絡(luò)的應(yīng)用。視頻編碼流程如圖2所示。
1)HI_S32 HI_MPI_VENC_CreateGroup(VENC_GRP VeGroup);創(chuàng)建編碼通道組。
2)HI_S32 HI_MPI_VENC_CreateChn(VENC_CHN VeChn,const VENC_CHN_ATTR_S*pstAttr);創(chuàng)建編碼通道。
3)HI_S32 HI_MPI_VENC_RegisterChn(VENC_GRP VeGroup,VENC_CHN VeChn);注冊編碼通道到通道組,將編碼通道與編碼組綁定。
4)HI_S32 HI_MPI_VENC_StartRecvPic(VENC_CHN VeChn)。開啟編碼通道接收輸入圖像,采集的圖像數(shù)據(jù)輸入,編碼器開始接收圖像編碼。圖像壓縮處理完成并傳輸?shù)桨l(fā)送數(shù)據(jù)鏈。
組播是一種一對多的網(wǎng)絡(luò)數(shù)據(jù)傳輸方式,發(fā)送端將數(shù)據(jù)向一個(gè)組播組內(nèi)發(fā)送,網(wǎng)絡(luò)中的路由器通過底層的IGMP協(xié)議自動(dòng)將數(shù)據(jù)發(fā)送到所有監(jiān)聽這個(gè)組的終端。
組播傳輸實(shí)現(xiàn)步驟如下:
1)sockfd=socket(AF_INET,SOCK_DGRAM,0);創(chuàng)建socket用于UDP通訊2)groupSock.sin_addr.s_addr = inet_addr(quot;224.0.1.2quot;);設(shè)置組播地址。
groupSock.sin_port=htons(7980);設(shè)置端口。
3)sendto(sd, databuf,datalen,0,(struct sockaddr*)amp;groupSock,sizeof(groupSock));通過sendto將H.264碼流發(fā)送到組播組。
4)關(guān)閉socket。
在Windows平臺下,將接收數(shù)據(jù)鏈與計(jì)算機(jī)連接,例如組播地址為224.0.1.2,端口為7980。在VLC的地址欄輸入U(xiǎn)DP://224.0.1.2:7980,可以播放從無人機(jī)實(shí)時(shí)傳輸?shù)囊曨l圖像。當(dāng)將手持設(shè)備加入組播組,可以實(shí)現(xiàn)在手持端實(shí)時(shí)顯示視頻。
為了測試數(shù)據(jù)傳輸是否正確,在無人機(jī)飛行過程中,通過數(shù)據(jù)鏈將無人機(jī)平臺與地面控制站連接,可實(shí)時(shí)查看畫面。采集的圖像如圖3所示。
圖3 采集的圖像
通過測試,發(fā)現(xiàn)基于H.264壓縮的視頻傳輸系統(tǒng)可以在帶寬受限的情況下,保證視頻圖像的實(shí)時(shí)流暢的傳輸。相比MPEG-4壓縮方式,H.264具有更高的壓縮比,提高了編碼效率,在低碼流下可達(dá)到優(yōu)質(zhì)圖像質(zhì)量。相比傳統(tǒng)的單播傳輸方式,本文所采用的UDP組播可以同時(shí)滿足多個(gè)接收終端同時(shí)顯示,提高了系統(tǒng)的可操作性。
本文設(shè)計(jì)搭建了一套基于海思Hi3520D的無人機(jī)視頻傳輸系統(tǒng),實(shí)現(xiàn)了視頻從無人機(jī)采集傳輸?shù)降孛鎸?shí)時(shí)顯示的功能,該系統(tǒng)可以實(shí)現(xiàn)在地面站多個(gè)設(shè)備的同時(shí)接收顯示。
本文創(chuàng)新點(diǎn):設(shè)計(jì)提出結(jié)合嵌入式技術(shù)、視頻壓縮編碼技術(shù)、無線通信技術(shù)、網(wǎng)絡(luò)技術(shù)等,多項(xiàng)技術(shù)的無線視頻傳輸系統(tǒng),采用linux實(shí)時(shí)多任務(wù)操作系統(tǒng)、H.264視頻壓縮、UDP組播傳輸?shù)燃夹g(shù),使視頻傳輸實(shí)時(shí)性和清晰度得到很大提升,可以滿足無人執(zhí)行偵察任務(wù)要求,在以后具有很大的應(yīng)用前景。
[1]畢厚杰,王建.新一代視頻壓縮編碼標(biāo)準(zhǔn)— —H.264/AVC(第2版)[M].北京:人民郵電出版社,2013.
[2]邵春暉.基于Linux的智能家居網(wǎng)關(guān)研究與實(shí)現(xiàn)[D].長安大學(xué),2013.
[3]李校林,劉利權(quán),張杰.基于RTP的H.264視頻流實(shí)時(shí)打包傳輸?shù)难芯縖J].計(jì)算機(jī)科學(xué)與工程,2012,34(5):168-171.
[4]季宇.基于流媒體技術(shù)的移動(dòng)視頻監(jiān)控服務(wù)系統(tǒng)[D].天津:天津大學(xué),2011.
[5]張海軍,吳克捷,張建軍 等.RTP傳輸控制的研究及實(shí)時(shí)視頻監(jiān)視系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息化縱橫,2009(5):55-56.
遼寧省教育廳科學(xué)研究項(xiàng)目資助(LG201610)。