胡 慶, 杜小丹, 陳 輝
(1.成都大學 信息科學與工程學院, 四川 成都 610106; 2.成都大學 信息網絡中心, 四川 成都 610106;3.西南民族大學 電氣信息工程學院, 四川 成都 610041)
?
基于ARM9的嵌入式圖像采集與顯示系統(tǒng)設計
胡 慶1, 杜小丹2, 陳 輝3
(1.成都大學 信息科學與工程學院, 四川 成都 610106; 2.成都大學 信息網絡中心, 四川 成都 610106;3.西南民族大學 電氣信息工程學院, 四川 成都 610041)
以嵌入式ARM9處理器S3C2440作為控制芯片,通過USB攝像頭對圖像進行采集,利用Video4Linux的編程接口編寫QT圖像顯示程序,通過視頻服務器MJPG-streamer對網絡進行訪問,實現(xiàn)了圖像的采集和實時顯示.所設計的系統(tǒng)實時性好、分辨率高、成本低、易擴展且升級快,可用于遠程監(jiān)控等領域.
嵌入式;圖像采集與顯示系統(tǒng);S3C2440;MJPG-streamer
隨著嵌入式系統(tǒng)、半導體和互聯(lián)網技術的飛速發(fā)展, 基于Internet的嵌入式遠程圖像顯示系統(tǒng)已成為新的研究熱點[1].傳統(tǒng)的圖像采集設備雖然功能較全, 能滿足一般的應用, 但由于價格高且體積大, 越來越不適用于某些特殊的領域的應用[2].而對以應用為中心, 以計算機技術為基礎, 系統(tǒng)的軟、硬件可裁剪, 并且對系統(tǒng)的可靠性、功能、功耗、體積和成本有嚴格要求的嵌入式系統(tǒng)[3], 具有體積小、性能高、穩(wěn)定性強及功耗小等諸多優(yōu)點[4].本研究以ARM9處理器S3C2440作為控制芯片, 通過USB攝像頭采集環(huán)境圖像, 利用Video4Linux(簡稱V4L)的編程接口編寫QT圖像顯示程序, 利用視頻服務器MJPG-streamer對網絡進行訪問, 實現(xiàn)了遠程圖像的采集和實時顯示.本系統(tǒng)實時性好、分辨率高且成本低, 可用于遠程監(jiān)控、智能家居及可視電話等領域.
1.1 系統(tǒng)結構
本系統(tǒng)通過高清USB攝像頭進行圖像采集,然后將圖像信息傳送到嵌入式ARM9處理器S3C2440芯片中進行處理,最終通過基于QT/Embedded編寫的圖形顯示程序在LCD上實時顯示圖像,同時,結合Boa嵌入式網絡服務器與MJPG-sreamer實現(xiàn)遠程視頻監(jiān)控.系統(tǒng)的整體結構框圖如圖1所示.

圖1 系統(tǒng)整體結構框圖
1.2 系統(tǒng)設計
1.2.1 視頻圖像采集設計.
本系統(tǒng)采用真1 080P谷客HD80高清USB攝像頭,其是一款16∶9畫幅比例的1 080P全高清攝像頭,支持高清視頻拍攝功能,最大能夠達到1 080P 30幀/s的拍攝速度.同時,鏡頭旁邊設計有手動對焦旋鈕和觸控式的夜視補光燈,以方便調焦距以及夜間拍攝.
視頻圖像的采集由攝像頭將目標圖像生成光學圖像,并經攝像頭的圖像傳感器表面轉化為模擬電信號,再由A/D轉換變成數(shù)字圖像信號,最后送到DSP芯片中處理后再通過S3C2440的USB接口傳輸?shù)介_發(fā)板芯片中待采集處理.
Linux kernel中有USB攝像頭萬能驅動GSPCAbased webcams,當插上USB攝像頭時能夠自動適配,并同時配置好V4L視頻接口,方便后續(xù)視頻應用程序調用處理視頻信息.
V4L是Linux中關于視頻設備的內核驅動,為針對視頻設備的應用程序編程提供一系列接口函數(shù),這些視頻設備包括TV卡、視頻捕捉卡和USB攝像頭等[5].V4L分為2層:底層是音頻和視頻設備驅動程序的內核;上層為系統(tǒng)提供一些API接口信息[6].
圖像視頻采集流程為:利用系統(tǒng)調用函數(shù)-fd=open(),打開視頻設備;通過ioctl()獲取設備的基本信息,讀取video-picture中信息獲取設備采集圖像的各種屬性;使用Mmap()進行單幀圖像采集,處理視頻信息;調用函數(shù)ioctl(),激活設備并開始1幀圖像的截取;完成采集以后,關閉視頻設備.其流程設計如圖2所示.

圖2 圖像視頻采集流程
1.2.2 視頻圖像顯示設計.
QT Embedded是NOKIA公司的圖形化界面開發(fā)工具QT的嵌入式版本,其繼承了QT支持跨平臺開發(fā)的優(yōu)點,通過QTAPI與Linux I/O以及Framebuffer直接交互,擁有較高的運行效率,而且整體采用面向對象編程,擁有良好的體系架構和編程模式[7].
通常,由于高清圖像的數(shù)據量較大,這在數(shù)據傳輸上帶來較大困難,如會在目標板上出現(xiàn)顯示閃爍等問題[8].本研究利用QT為圖像處理提供的類QPixmap,采用雙緩沖技術來解決此類問題.基于QT/Embedded的圖像視頻顯示設計是通過定時器實現(xiàn)視頻圖像的連續(xù)采集和顯示的.首先,通過QTimer類設置定時啟動觸發(fā)周期,每隔一個定時器時間就觸發(fā)調用采集函數(shù),從而實現(xiàn)視頻圖像的連續(xù)采集;然后,將采集到的數(shù)據經由QPixmap類繪制到屏幕,實現(xiàn)視頻圖像的實時顯示.其流程設計如圖3所示.

圖3 基于QT/Embedded的圖像視頻顯示設計流程
1.2.3 移植MJPG-streamer視頻服務器.
MJPG-streamer是一種免費的視頻流服務器軟件,其使用基于V4L2框架的視頻服務器軟件設計,能夠把JPEG格式圖像通過TCP/IP網絡傳輸?shù)綖g覽器端進行瀏覽顯示[9],并利用了某些webcams的硬件壓縮功能來降低服務器CPU的開銷,無需為視頻幀壓縮浪費大量的計算效率,為嵌入式設備和一些常規(guī)服務器提供了一個輕量且更少CPU消耗的方案[10].
本研究使用MJPG-streamer的輸入組件input-uvc獲取攝像頭拍攝的圖像,并將其壓縮編碼為JPEG格式的圖像數(shù)據,使用輸出組件output-http實現(xiàn)瀏覽器訪問服務器并監(jiān)控和顯示視頻圖像,且使用文件存儲組件Output-file將接收到的壓縮圖像保存到指定目錄中,實現(xiàn)視頻圖像的存儲.MJPG-streamer工作流程如圖4所示.
啟動mini24440開發(fā)板, 并連接好路由器, 接上USB攝像頭(見圖5).然后, 系統(tǒng)自動安裝USB驅動程序, 打開本地攝像頭QT預覽程序, 圖像采集與顯示系統(tǒng)界面如圖6所示.最后, 關掉本地預覽程序, 啟動監(jiān)控服務器, 利用局域網還可通過PC或智能手機等設備訪問實時監(jiān)控圖像.同時, 通過配置路由器將系統(tǒng)的服務器映射到外網所在IP地址(如202.101.59.32)的8080端口(端口在MJPG-streamer已經默認配置).打開智能設備的瀏覽器,輸入地址202.101.59.32:8080即可訪問服務器,網頁工作主頁如圖7所示,效果如同在局域網內訪問.

圖4 MJPG-streamer工作流程

圖5 USB接插設備
圖6 圖像采集與顯示系統(tǒng)界面

圖7 網頁工作主頁
本研究以嵌入式ARM9架構的S3C2440為硬件平臺,通過USB攝像頭采集視頻圖像,利用V4L的編程接口編寫QT圖像顯示程序,由MJPG-streamer視頻服務器實現(xiàn)了遠程視頻監(jiān)控,使用Yaffs根文件系統(tǒng),對圖像數(shù)據進行保存,實現(xiàn)了視頻圖像的采集和遠程實時顯示.本研究所設計的系統(tǒng)完全可擴展用于防盜監(jiān)控、智能家居及視頻電話等領域,具有功耗低、實用性強及實時性好等優(yōu)點.
[1]孟超.基于嵌入式系統(tǒng)圖像采集與傳輸設計[D].無錫:江南大學,2009.
[2]李歡.嵌入式Linux圖像采集與顯示系統(tǒng)設計[D].武漢:武漢科技大學,2011.
[3]林曉煥,楊方彪.基于ARM9的視頻采集,壓縮及傳輸[J].通信技術,2012,45(7):114-116.
[4]黃建剛,周墨霖,羅正華.基于ARM11的嵌入式Web服務器設計與應用[J].成都大學學報(自然科學版),2016,35(4):368-370.
[5]段智文,陳惠.基于Video for Linux內核的USB攝像頭視頻信號采集實現(xiàn)[J].價值工程,2011,30(5):152-153.
[6]吳健.基于ARM的嵌入式USB圖像采集與顯示[J].現(xiàn)代顯示,2011,127(8):39-42.
[7]王統(tǒng),秦會斌,胡永才.基于QT/Embedded的智能家居控制系統(tǒng)的設計[J].電子設計工程,2015,23(7):159-161.
[8]張建偉,陳二陽,趙永鑫.基于網絡攝像機的圖像處理平臺設計與研究[J].成都大學學報(自然科學版),2014,33(2):138-140.
[9]劉魏,唐健,袁芳.基于MJPG-streamer的視頻監(jiān)控研究[J].輕工科技,2016,208(3):68-69.
[10]MJPG-streamer.攝像頭采集圖像:MJPG-streamer[EB/OL].[2014-03-27].http://www.open-open.com/lib/view/open1395837461493.html.
Design of Embedded Image Acquisition and Display System Based on ARM9
HUQing1,DUXiaodan2,CHENHui3
(1.School of Information Science and Engineering, Chengdu University, Chengdu 610106, China;2.Information Network Center, Chengdu University, Chengdu 610106, China;3.College of Electric and Information Engineering, Southwest University of Nationalities, Chengdu 610041, China)
The embedded ARM9 processor S3C2440 is used as the control chip.The images are captured by USB camera.The QT image display program is written by using the Video4Linux programming interface.The video server MJPG-streamer is used to access network.The system realizes real-time acquisition and display for video image and has practical value with good real-time property,high resolution,low cost,easy extension and upgrade.It can also be used in remote monitoring and some other fields too.
embedded technology;image acquisition and display system;S3C2440;MJPG-streamer
1004-5422(2017)02-0176-04
2017-05-06.
四川省科技廳科技支撐計劃(2015GZ0275)資助項目.
胡 慶(1977 — ), 女, 碩士, 副教授, 從事通信電路與物聯(lián)網技術研究.
TP391.41;TP274.2
A