胡 慶, 杜小丹, 陳 輝
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.成都大學(xué) 信息網(wǎng)絡(luò)中心, 四川 成都 610106;3.西南民族大學(xué) 電氣信息工程學(xué)院, 四川 成都 610041)
?
基于ARM9的嵌入式圖像采集與顯示系統(tǒng)設(shè)計
胡 慶1, 杜小丹2, 陳 輝3
(1.成都大學(xué) 信息科學(xué)與工程學(xué)院, 四川 成都 610106; 2.成都大學(xué) 信息網(wǎng)絡(luò)中心, 四川 成都 610106;3.西南民族大學(xué) 電氣信息工程學(xué)院, 四川 成都 610041)
以嵌入式ARM9處理器S3C2440作為控制芯片,通過USB攝像頭對圖像進行采集,利用Video4Linux的編程接口編寫QT圖像顯示程序,通過視頻服務(wù)器MJPG-streamer對網(wǎng)絡(luò)進行訪問,實現(xiàn)了圖像的采集和實時顯示.所設(shè)計的系統(tǒng)實時性好、分辨率高、成本低、易擴展且升級快,可用于遠程監(jiān)控等領(lǐng)域.
嵌入式;圖像采集與顯示系統(tǒng);S3C2440;MJPG-streamer
隨著嵌入式系統(tǒng)、半導(dǎo)體和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展, 基于Internet的嵌入式遠程圖像顯示系統(tǒng)已成為新的研究熱點[1].傳統(tǒng)的圖像采集設(shè)備雖然功能較全, 能滿足一般的應(yīng)用, 但由于價格高且體積大, 越來越不適用于某些特殊的領(lǐng)域的應(yīng)用[2].而對以應(yīng)用為中心, 以計算機技術(shù)為基礎(chǔ), 系統(tǒng)的軟、硬件可裁剪, 并且對系統(tǒng)的可靠性、功能、功耗、體積和成本有嚴格要求的嵌入式系統(tǒng)[3], 具有體積小、性能高、穩(wěn)定性強及功耗小等諸多優(yōu)點[4].本研究以ARM9處理器S3C2440作為控制芯片, 通過USB攝像頭采集環(huán)境圖像, 利用Video4Linux(簡稱V4L)的編程接口編寫QT圖像顯示程序, 利用視頻服務(wù)器MJPG-streamer對網(wǎng)絡(luò)進行訪問, 實現(xiàn)了遠程圖像的采集和實時顯示.本系統(tǒng)實時性好、分辨率高且成本低, 可用于遠程監(jiān)控、智能家居及可視電話等領(lǐng)域.
1.1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)通過高清USB攝像頭進行圖像采集,然后將圖像信息傳送到嵌入式ARM9處理器S3C2440芯片中進行處理,最終通過基于QT/Embedded編寫的圖形顯示程序在LCD上實時顯示圖像,同時,結(jié)合Boa嵌入式網(wǎng)絡(luò)服務(wù)器與MJPG-sreamer實現(xiàn)遠程視頻監(jiān)控.系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示.
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
1.2 系統(tǒng)設(shè)計
1.2.1 視頻圖像采集設(shè)計.
本系統(tǒng)采用真1 080P谷客HD80高清USB攝像頭,其是一款16∶9畫幅比例的1 080P全高清攝像頭,支持高清視頻拍攝功能,最大能夠達到1 080P 30幀/s的拍攝速度.同時,鏡頭旁邊設(shè)計有手動對焦旋鈕和觸控式的夜視補光燈,以方便調(diào)焦距以及夜間拍攝.
視頻圖像的采集由攝像頭將目標圖像生成光學(xué)圖像,并經(jīng)攝像頭的圖像傳感器表面轉(zhuǎn)化為模擬電信號,再由A/D轉(zhuǎn)換變成數(shù)字圖像信號,最后送到DSP芯片中處理后再通過S3C2440的USB接口傳輸?shù)介_發(fā)板芯片中待采集處理.
Linux kernel中有USB攝像頭萬能驅(qū)動GSPCAbased webcams,當(dāng)插上USB攝像頭時能夠自動適配,并同時配置好V4L視頻接口,方便后續(xù)視頻應(yīng)用程序調(diào)用處理視頻信息.
V4L是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù),這些視頻設(shè)備包括TV卡、視頻捕捉卡和USB攝像頭等[5].V4L分為2層:底層是音頻和視頻設(shè)備驅(qū)動程序的內(nèi)核;上層為系統(tǒng)提供一些API接口信息[6].
圖像視頻采集流程為:利用系統(tǒng)調(diào)用函數(shù)-fd=open(),打開視頻設(shè)備;通過ioctl()獲取設(shè)備的基本信息,讀取video-picture中信息獲取設(shè)備采集圖像的各種屬性;使用Mmap()進行單幀圖像采集,處理視頻信息;調(diào)用函數(shù)ioctl(),激活設(shè)備并開始1幀圖像的截??;完成采集以后,關(guān)閉視頻設(shè)備.其流程設(shè)計如圖2所示.
圖2 圖像視頻采集流程
1.2.2 視頻圖像顯示設(shè)計.
QT Embedded是NOKIA公司的圖形化界面開發(fā)工具QT的嵌入式版本,其繼承了QT支持跨平臺開發(fā)的優(yōu)點,通過QTAPI與Linux I/O以及Framebuffer直接交互,擁有較高的運行效率,而且整體采用面向?qū)ο缶幊?,擁有良好的體系架構(gòu)和編程模式[7].
通常,由于高清圖像的數(shù)據(jù)量較大,這在數(shù)據(jù)傳輸上帶來較大困難,如會在目標板上出現(xiàn)顯示閃爍等問題[8].本研究利用QT為圖像處理提供的類QPixmap,采用雙緩沖技術(shù)來解決此類問題.基于QT/Embedded的圖像視頻顯示設(shè)計是通過定時器實現(xiàn)視頻圖像的連續(xù)采集和顯示的.首先,通過QTimer類設(shè)置定時啟動觸發(fā)周期,每隔一個定時器時間就觸發(fā)調(diào)用采集函數(shù),從而實現(xiàn)視頻圖像的連續(xù)采集;然后,將采集到的數(shù)據(jù)經(jīng)由QPixmap類繪制到屏幕,實現(xiàn)視頻圖像的實時顯示.其流程設(shè)計如圖3所示.
圖3 基于QT/Embedded的圖像視頻顯示設(shè)計流程
1.2.3 移植MJPG-streamer視頻服務(wù)器.
MJPG-streamer是一種免費的視頻流服務(wù)器軟件,其使用基于V4L2框架的視頻服務(wù)器軟件設(shè)計,能夠把JPEG格式圖像通過TCP/IP網(wǎng)絡(luò)傳輸?shù)綖g覽器端進行瀏覽顯示[9],并利用了某些webcams的硬件壓縮功能來降低服務(wù)器CPU的開銷,無需為視頻幀壓縮浪費大量的計算效率,為嵌入式設(shè)備和一些常規(guī)服務(wù)器提供了一個輕量且更少CPU消耗的方案[10].
本研究使用MJPG-streamer的輸入組件input-uvc獲取攝像頭拍攝的圖像,并將其壓縮編碼為JPEG格式的圖像數(shù)據(jù),使用輸出組件output-http實現(xiàn)瀏覽器訪問服務(wù)器并監(jiān)控和顯示視頻圖像,且使用文件存儲組件Output-file將接收到的壓縮圖像保存到指定目錄中,實現(xiàn)視頻圖像的存儲.MJPG-streamer工作流程如圖4所示.
啟動mini24440開發(fā)板, 并連接好路由器, 接上USB攝像頭(見圖5).然后, 系統(tǒng)自動安裝USB驅(qū)動程序, 打開本地攝像頭QT預(yù)覽程序, 圖像采集與顯示系統(tǒng)界面如圖6所示.最后, 關(guān)掉本地預(yù)覽程序, 啟動監(jiān)控服務(wù)器, 利用局域網(wǎng)還可通過PC或智能手機等設(shè)備訪問實時監(jiān)控圖像.同時, 通過配置路由器將系統(tǒng)的服務(wù)器映射到外網(wǎng)所在IP地址(如202.101.59.32)的8080端口(端口在MJPG-streamer已經(jīng)默認配置).打開智能設(shè)備的瀏覽器,輸入地址202.101.59.32:8080即可訪問服務(wù)器,網(wǎng)頁工作主頁如圖7所示,效果如同在局域網(wǎng)內(nèi)訪問.
圖4 MJPG-streamer工作流程
圖5 USB接插設(shè)備
圖6 圖像采集與顯示系統(tǒng)界面
圖7 網(wǎng)頁工作主頁
本研究以嵌入式ARM9架構(gòu)的S3C2440為硬件平臺,通過USB攝像頭采集視頻圖像,利用V4L的編程接口編寫QT圖像顯示程序,由MJPG-streamer視頻服務(wù)器實現(xiàn)了遠程視頻監(jiān)控,使用Yaffs根文件系統(tǒng),對圖像數(shù)據(jù)進行保存,實現(xiàn)了視頻圖像的采集和遠程實時顯示.本研究所設(shè)計的系統(tǒng)完全可擴展用于防盜監(jiān)控、智能家居及視頻電話等領(lǐng)域,具有功耗低、實用性強及實時性好等優(yōu)點.
[1]孟超.基于嵌入式系統(tǒng)圖像采集與傳輸設(shè)計[D].無錫:江南大學(xué),2009.
[2]李歡.嵌入式Linux圖像采集與顯示系統(tǒng)設(shè)計[D].武漢:武漢科技大學(xué),2011.
[3]林曉煥,楊方彪.基于ARM9的視頻采集,壓縮及傳輸[J].通信技術(shù),2012,45(7):114-116.
[4]黃建剛,周墨霖,羅正華.基于ARM11的嵌入式Web服務(wù)器設(shè)計與應(yīng)用[J].成都大學(xué)學(xué)報(自然科學(xué)版),2016,35(4):368-370.
[5]段智文,陳惠.基于Video for Linux內(nèi)核的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)的設(shè)計[J].電子設(shè)計工程,2015,23(7):159-161.
[8]張建偉,陳二陽,趙永鑫.基于網(wǎng)絡(luò)攝像機的圖像處理平臺設(shè)計與研究[J].成都大學(xué)學(xué)報(自然科學(xué)版),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)網(wǎng)技術(shù)研究.
TP391.41;TP274.2
A