鄭更生,方 勇,肖 婧
(武漢工程大學計算機科學與工程學院,湖北 武漢 430074)
視頻信息具有直觀、可靠的特點,視頻監控系統目前在智能交通、家庭安防、可視會議等領域有著越來越廣泛的應用.在視頻監控系統中,實時采集和視頻傳輸是一項關鍵的技術.傳統的視頻監控系統主要以采集卡和有線傳輸為主,此方案體積大,移動性差.隨著嵌入式技術,視頻處理技術和無線網絡傳輸技術的發展,基于嵌入式平臺和無線網絡傳輸的新型視頻監控系統已經在多個領域有著廣泛的應用.本文介紹了一種基于S3C2440微處理器、在嵌入式Linux操作系統上實現的實時視頻采集和無線傳輸的監控系統.該系統以體積小巧、可移動性高等特點,克服了傳統視頻監控系統的不足.本系統為今后嵌入式Linux在智能監控系統中提供了一個可行的方案.具有一定的實際應用價值.
本系統主要由前端采集模塊、圖像處理模塊、無線傳輸模塊3部分組成.前端采集模塊由開發板提供的130萬像素的CMOS(Complementary Metal Oxide Semiconductor 互補金屬氧化物場效應管)圖像傳感器OV9650及其接口電路組成.該傳感器具有高靈敏度、低功耗等優點,低電壓供電,適用于嵌入式便攜產品的應用,且支持標準的SCCB(Serial Camera Control Bus)接口,微處理器通過SCCB接口可以方便的進行圖像質量控制.主控模塊主要由廣嵌的GEC2440開發板構成,其核心處理器S3C2440是Samsung公司ARM9系列的ARM920T嵌入式處理器.主頻400 MHz,對Linux操作系統能很好的支持,有強大的計算處理能力,該芯片集成了通用的串口控制器、USB(通用串行總線)控制器、A/D(模數轉換)轉換器和GPIO(通用輸入輸出)等功能,能很好的實現視頻圖像的編解碼.無線傳輸模塊采用騰達W311U+無線網卡,該網卡采用雷凌公司的RT3070芯片,無線傳輸速率150 Mbps,配備4.2dBi全向天線,采用信號增強放大先進技術,有效的提升網卡的無線接收能力,且支持Linux操作系統,驅動移植方便,縮短了開發周期,能很好滿足視頻監控的需求.
本系統軟件由設備驅動模塊、圖像采集模塊、H.264圖像壓縮模塊、無線視頻傳輸模塊組成.設備驅動模塊實現攝像頭、WIFI無線網卡在Linux操作系統下正常工作[1],并為應用程序提供接口.圖像采集模塊實現獲取攝像頭的圖像并進行暫存.H.264圖像壓縮模塊實現原始圖像的編碼處理.無線視頻傳輸模塊實現視頻圖像的網絡傳輸.
嵌入式工作平臺的搭建主要是對Linux操作系統進行必要的修改和裁剪,使其能在選定的硬件平臺上穩定高效的工作.ARM-Linux移植到本系統慨括起來主要有以下步驟[2-3].
(1)建立ARM-Linux交叉編譯環境.
(2)Bootloader的移植.移植、配置和編譯u-boot,將可執行文件燒寫到開發板NAND Flash中.
(3)Linux內核的移植.
(4)嵌入式文件系統的移植.
圖像采集模塊主要負責視頻數據的采集,并將采集到的數據存放在緩存區中,供其它模塊使用.視頻采集在Linux下是基于V4L(Video4Linux)提供的函數接口來實現的[4].V4L是Linux內核中關于視頻設備的API接口,它為視頻設備的應用程序編程提供了一套接口規范.開發完攝像頭的驅動程序后,就可以通過V4L提供的系統API來控制攝像頭實現視頻采集.Linux下通過V4L提供的編程接口,編寫視頻采集程序的流程如圖1所示.

圖1 視頻采集流程Fig.1 Video capturing flow chart
新一代視頻壓縮編碼標準[5]是IYU-T視頻編碼專家組和ISO/IEC動態圖像專家組聯合組成的視頻組提出的高度壓縮數字視頻編碼器標準.它編碼效率高、能以較低的數據速率傳送基于IP(網際協議)的視頻流,在視頻質量、壓縮效率和數據包恢復丟失等方面有較大的優勢,能很好適應IP和無線網絡,是目前監控系統最為理想的信源壓縮編碼標準.T264是中國視頻編碼自由組織聯合開發的開源的264編解碼器,吸收了X264、XVID等開源編碼庫的優點.系統采用最新版本avc-src-0.14.下載此源碼,進行編譯會生成一些*.obj文件,應用程序可以直接使用這些目標文件提供的功能函數對YUV格式視頻進行編碼.流程圖如圖2所示.

圖2 新一代視頻壓縮編碼標準視頻編碼流程Fig.2 Video decoding of H.264 flow chart
視頻采集編碼完成后,需要通過無線網絡傳輸,目前網絡傳輸協議主要有TCP(傳輸控制協議)和UDP(用戶數據報協議)兩種,而流媒體的實時傳輸對帶寬和延時比較敏感,它要求一定的服務質量且可以容忍一定程度的丟包.TCP每次都有通過3次握手建立連接,在等待亂序及重傳丟失數據時產生了較大時延,不適合實時數據傳輸.UDP協議時面向無鏈接、不可靠的傳輸協議,具有消耗資源小、傳輸速度快等特點,在視頻傳輸過程中偶爾丟包不會對監控畫面產生較大影響.但UDP無法提供差錯控制,也不適合.在這種情況下,運行于UDP之上的RTP[6](實時傳輸協議)則有很大優勢.RTP提供了為數據包編號,加載時間信息等功能,能有效的反饋和最小的開銷使傳輸效率最佳化,RTCP周期性的向會話的所以者進行通信,來監視服務質量.視頻數據首先封裝在RTP信息包中,每個信息包又封裝在UDP消息段中,最后封裝在IP數據包中進行傳輸.基于RTP/UDP/IP協議的傳輸視頻流封裝格式如圖3所示.

圖3 視頻封裝格式Fig.3 Format of video package
服務器端利用UDP的網絡socket編程實現視頻的傳輸.實現流程如圖4所示.

圖4 視頻發送流程Fig.4 Video transmission flow chart
測試環境:GEC2440開發板,采用Linux 2.6.12操作系統.攝像頭:130萬像素CMOS圖像傳感器OV9650.網絡環境:無線局域網.遠程監控端:Windows個人電腦.
圖5為監控客戶端實時運行情況,監控圖像清晰流暢,無明顯失真.監控終端視頻延遲2秒左右,無明顯延遲,達到了實時監控的效果.

圖5 遠程監控端視頻Fig.5 Video taken by the monitoring client
以上介紹的基于ARM的嵌入式終端通過WIFI技術實現無線實時視頻監控系統的設計與實現.包括視頻采集、H.264編碼和無線傳輸三個核心模塊.經測試,系統運行穩定,監控視頻在局域網環境下無明顯失真和延遲.基本可以滿足普通視頻監控要求.本文特色:將嵌入式視頻監控和無線傳輸技術結合,體積小,成本低,并結合了較新的H.264編碼標準, 在具有高壓縮比的同時還擁有高質量流暢的圖像,另采用RTP/RTCP協議傳輸視頻流,以有效的反饋和較小的開銷達到較高的傳輸效率.有廣泛的市場前景和應用價值.
參考文獻:
[1] 盛李立, 王忠, 王春麗, 等. 基于SPI接口的無線網卡設備驅動設計[J]. 武漢工程大學學報, 2011, 33(6):89-93.
[2] 韋東山. 嵌入式Linux應用開發完全手冊[M]. 北京:人民郵電出版社,2009:241-360.
[3] 彭鐵鋼, 劉國繁, 曹少坤, 等. 基于ARM的嵌入式視頻監控系統設計[J]. 計算機工程與設計, 2010, 31(6):1191-1194.
[4] Alan Cox. Video4Linux Programming[EB/OL]. http://kernelbook.sourceforge.net/videobook.pdf, 2010-07-25.
[5] 畢厚杰. 新一代視頻壓縮編碼標準——H.264/AVC[M].北京:人民郵電出版社,2005.
[6] 周鵬, 湯銀煥, 黃秋元, 等. 基于RTP/RTCP的音視頻WiFi傳輸系統的設計[J]. 武漢理工大學學報, 2011, 35(4):802-804.