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