陳琳英,凡德剛
嵌入式微處理器環(huán)境下視頻流的采集與傳輸
陳琳英,凡德剛
(太原科技大學(xué) 應(yīng)用科學(xué)學(xué)院,太原 030024)
提出了一種基于嵌入式技術(shù)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)方案。系統(tǒng)以嵌入式Linux操作系統(tǒng)和嵌入式S3C2440微處理器為核心平臺(tái),建立基于TCP/IP協(xié)議的視頻服務(wù)器,將攝像頭采集來(lái)的圖像數(shù)據(jù)壓縮為MPEG-4視頻流后,經(jīng)過(guò)網(wǎng)絡(luò)傳輸,完成對(duì)監(jiān)控現(xiàn)場(chǎng)的網(wǎng)絡(luò)視頻監(jiān)控任務(wù)。
Linux操作系統(tǒng);S3C2440微處理器;視頻監(jiān)控;嵌入式
伴隨著計(jì)算機(jī)技術(shù)、圖像處理技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,出現(xiàn)了新型的基于嵌入式技術(shù)的有線網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)。嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,具有高可靠性、低成本、嚴(yán)要求、綜合性強(qiáng)的專用計(jì)算機(jī)系統(tǒng)。它主要由嵌入式微處理器、相關(guān)支撐硬件、嵌入式操作系統(tǒng)及應(yīng)用軟件系統(tǒng)等組成。系統(tǒng)可以提供友好的用戶接口,采用多級(jí)權(quán)限控制,定制用戶組,授權(quán)用戶再進(jìn)行相應(yīng)操作。用戶還可以通過(guò)瀏覽器訪問(wèn),實(shí)時(shí)監(jiān)控音/視頻信號(hào)、查看視頻設(shè)備狀態(tài)等[1-3]。
嵌入式網(wǎng)絡(luò)視頻監(jiān)控設(shè)備可以直接接入網(wǎng)絡(luò),沒(méi)有線纜長(zhǎng)度和信號(hào)衰減的限制,避免了地域的限制,擴(kuò)展了布控區(qū)域。所有設(shè)備都以IP地址進(jìn)行標(biāo)識(shí),增加設(shè)備只是意味著擴(kuò)充IP地址,所以說(shuō),嵌入式網(wǎng)絡(luò)視頻系統(tǒng)具有無(wú)限的無(wú)縫擴(kuò)展能力和遠(yuǎn)程視頻傳輸能力。因此,基于嵌入式技術(shù)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)有著良好的應(yīng)用發(fā)展前景,它代替當(dāng)前普遍應(yīng)用的基于PC的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)將成為必然趨勢(shì)。
結(jié)合網(wǎng)絡(luò)通信技術(shù)和視頻處理技術(shù),開發(fā)一套基于ARM的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[4-5]。系統(tǒng)由前端數(shù)碼攝像頭、視頻服務(wù)器和遠(yuǎn)程監(jiān)控端構(gòu)成。視頻監(jiān)控系統(tǒng)采用基于ARM9的S3C2440微處理器,通過(guò)在處理器上運(yùn)行Linux操作系統(tǒng),構(gòu)建嵌入式服務(wù)器,接受來(lái)自攝像頭的視頻流,進(jìn)行壓縮編碼,再傳送實(shí)現(xiàn)監(jiān)控圖像到目標(biāo)用戶。用戶即可獲得服務(wù)器發(fā)來(lái)的音、視頻文件,并可根據(jù)權(quán)限實(shí)現(xiàn)播放及錄制功能等。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
硬件的主體采用友善之臂公司的MINI2440開發(fā)板,該板采用了三星公司的S3C2440處理器,并采用穩(wěn)定的CPU內(nèi)核電源芯片和復(fù)位芯片來(lái)保證系統(tǒng)運(yùn)行時(shí)的穩(wěn)定性。處理器內(nèi)部集成了arm920t處理器核,采用0.18μrn制造工藝的32位微控制器,五級(jí)流水線和哈佛結(jié)構(gòu),提供1.1 MIPS/MHz的性能,主頻高、功耗低、集成度高,技術(shù)成熟,廣泛應(yīng)用于很多嵌入式產(chǎn)品,領(lǐng)域資源豐富。帶獨(dú)立的16 KB的指令cache和16 KB的數(shù)據(jù)cache、LCD控制器、RAM控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的timer、并行I/O口、8路10位ADC、Touch Screen接口、I2C接口、I2S接口、2個(gè)USB接口控制器、2路SPI,主頻最高可達(dá)533 MHz。在此基礎(chǔ)上,開發(fā)板還配備了64 MB SDRAM、64 MB NandFlash、2 MB Nor Flash、1個(gè)100 MB以太網(wǎng)RJ-45接口、1個(gè)USB Host、1個(gè)USB Slave B型接口、1個(gè)2.0mm間距10針JTAG接口。通過(guò)USB接口外接一個(gè)網(wǎng)眼攝像頭,將采集到的圖像數(shù)據(jù)輸入緩沖區(qū),通過(guò)視頻采集程序?qū)彌_區(qū)的視頻數(shù)據(jù)進(jìn)行JPEG壓縮后進(jìn)行網(wǎng)絡(luò)傳輸至客戶端。系統(tǒng)硬件框圖如圖2所示。
圖2 系統(tǒng)硬件框圖
本嵌入式視頻監(jiān)控系統(tǒng)軟件主要由通信協(xié)議、服務(wù)器程序和客戶端程序構(gòu)成,如圖3所示。
圖3 視頻監(jiān)控采集軟件結(jié)構(gòu)框圖
1)通信協(xié)議。主要用于負(fù)責(zé)向客戶端傳輸來(lái)自服務(wù)器的音、視頻數(shù)據(jù)。能夠?qū)z像頭獲取的圖像屬性,如對(duì)比度、分辨率等信息傳遞給客戶端。通過(guò)協(xié)議客戶端能夠控制服務(wù)器攝像頭改變采集的圖像屬性。
2)服務(wù)器程序。主要包括視頻采集模塊、視頻傳輸模塊及攝像頭驅(qū)動(dòng)程序,實(shí)現(xiàn)基于多線程的循環(huán)服務(wù)器。整個(gè)視頻采集服務(wù)流程如圖4所示。
系統(tǒng)中,數(shù)據(jù)采集層通過(guò)嵌入式Linux操作系統(tǒng)調(diào)用Video4Linux(V4L)和底層設(shè)備驅(qū)動(dòng)程序來(lái)完成視頻捕獲,對(duì)于獲取到的視頻圖像,通過(guò)視頻壓縮模塊壓縮成MPEG-4視頻流,再通過(guò)視頻傳輸模塊把數(shù)據(jù)發(fā)送到以太網(wǎng)進(jìn)行傳輸。V4L是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng)。它為L(zhǎng)inux下的各種視頻設(shè)備提供了統(tǒng)一的編程接口,應(yīng)用程序通過(guò)這些接口函數(shù)就可以操縱各種不同的設(shè)備。視頻數(shù)據(jù)采集模塊工作原理如圖5所示。
圖4 視頻采集服務(wù)流程圖
圖5 數(shù)據(jù)采集模塊工作原理
(1)打開視頻設(shè)備。Linux下的視頻設(shè)備文件一般為“/dev/video0”,通過(guò)調(diào)用函數(shù)v4l-open(),利用vd->fd=open(“/dev/video0”,O-RDWR)打開設(shè)備并獲得設(shè)備文件描述符vd->fd。
(2)獲取設(shè)備和圖像信息。通過(guò)void queryvideo-device(void)函數(shù)獲取設(shè)備信息。
(3)內(nèi)存映射。獲取圖像的方式有兩種:read()直接讀取和mmap()內(nèi)存映射。直接讀取方式通過(guò)內(nèi)核緩沖區(qū)來(lái)讀取圖像數(shù)據(jù);而本文使用內(nèi)存映射方式mmap(),可以直接把設(shè)備文件映射到內(nèi)存中,進(jìn)程可以像訪問(wèn)普通內(nèi)存一樣對(duì)文件進(jìn)行訪問(wèn),讀取效率更高。初始化內(nèi)存映射時(shí),需在內(nèi)存中開辟一塊空間,利用ioctl(vd->fd,VIDIOCGMBUF,&(vd->mbuf))操作取得需要映射的內(nèi)存空間大小vd->mbuf.size,利用mmap()函數(shù),即vd->map=(unsigned char*)mmap(0,vd->mbuf.size,PROT-READ|PROT-WRITE,MAP-SHARED,vd->fd,0)操作,把設(shè)備文件的內(nèi)容映射到內(nèi)存,vd->map指針?biāo)赶虻膬?nèi)存區(qū)即為采集的圖像數(shù)據(jù),且此內(nèi)存區(qū)具有可讀寫和共享屬性。
(4)初始化采集參數(shù)。設(shè)置采集視頻圖像的寬度、高度、格式等信息。
(5)采集視頻數(shù)據(jù)。利用ioctl(vd->fd,VIDIOCMCAPTURE,&(vd->mmap))操作采集一幀圖像并存放到內(nèi)存映射區(qū),采集一幀圖像后要進(jìn)行同步操作,利用ioctl(vd->fd,VIDIOCSYNC,&(vd->frame-current))操作判斷該幀圖像是否獲取完畢。對(duì)于獲取到的視頻圖像,通過(guò)視頻壓縮模塊壓縮成MPEG-4視頻流,再通過(guò)視頻傳輸模塊把數(shù)據(jù)發(fā)送到以太網(wǎng)進(jìn)行傳輸。
圖像傳輸層是基于TCP/IP協(xié)議下的數(shù)據(jù)通信。應(yīng)用層通過(guò)自定義通信協(xié)議與客戶端進(jìn)行通信,根據(jù)命令行參數(shù)初始化攝像頭圖像屬性。
3)客戶端程序。其傳輸層也是在TCP/IP協(xié)議下進(jìn)行通信;應(yīng)用層通過(guò)自定義通信協(xié)議與服務(wù)器進(jìn)行通信。用戶界面是基于Gnome桌面環(huán)境,利用QT進(jìn)行開發(fā)的。
使系統(tǒng)各硬件連接完好,啟動(dòng)電源,加載驅(qū)動(dòng),確保USB驅(qū)動(dòng)和攝像頭驅(qū)動(dòng)正常工作,測(cè)試分析結(jié)果如表1所示。監(jiān)控系統(tǒng)啟動(dòng)后,即可在主機(jī)端看到獲取的視頻圖像。結(jié)果表明,基于ARM9 S3C2440的數(shù)字視頻監(jiān)控系統(tǒng)對(duì)捕獲的視頻幀編碼效果良好,滿足監(jiān)控系統(tǒng)要求。
表1 視頻監(jiān)控系統(tǒng)測(cè)試分析表
文本提出的基于ARM9的數(shù)字視頻監(jiān)控系統(tǒng)以嵌入式Linux和嵌入式微處理器S3C2440為核心平臺(tái),利用V4L2底層進(jìn)行視頻采集,經(jīng)過(guò)jpeglib圖像壓縮編碼后進(jìn)行流傳輸,客戶端通過(guò)QT開發(fā)的界面進(jìn)行顯示,同時(shí)用于控制攝像頭。
實(shí)驗(yàn)測(cè)試結(jié)果表明,該系統(tǒng)對(duì)捕獲的視頻幀編碼效果良好,且具有成本低、功耗小、可擴(kuò)展性強(qiáng)、操作簡(jiǎn)單等特點(diǎn),適于住宅小區(qū)、商場(chǎng)、銀行、電梯等公共場(chǎng)合的使用與推廣。
[1]田俊.基于ARM的移動(dòng)視頻監(jiān)控系統(tǒng)的實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2006.
[2]劉宇.基于ARM9的嵌入式可視電話終端的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2006.
[3]張先翔.基于ARM的嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[D].武漢:武漢理工大學(xué),2010.
[4]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)[M].北京:清華大學(xué)出版社,2002.
[5]甘泉,楊健,陳永泰.ARM處理器啟動(dòng)代碼的分析與設(shè)計(jì)[J].電子產(chǎn)品世界,2004(10):118~120.
Acquisition and Transm ission of Video Streams on Embedded M icroprocessor
CHEN Linying,F(xiàn)AN Degang
(College of Applied Science,Taiyuan University of Science and Technology,Taiyuan 030024,China)
This paper proposes an implementation scheme of network video surveillance system based on embedded technology.System is based on embedded Linux and embedded microprocessor S3C2440 as the core platform,the video server is based on TCP/IP protocol established by the embedded platform,and the image data are collected by the USB camera to compression.Through the network transmission,the network videomonitoring control task has been completed.
Linux operation system;S3C2440 microprocessor;videomonitoring;embedded
TP368.1;TP273
A
10.3969/j.issn.1672-4550.2014.05.007
2013-12-04
山西省基礎(chǔ)研究基金資助項(xiàng)目(2012021014-3)。
陳琳英(1976-),女,博士,副教授,研究方向:光纖通信、光纖傳感技術(shù)。