• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ARM 11和Linux的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)

    2014-11-20 08:18:54任克強(qiáng)
    電視技術(shù) 2014年5期
    關(guān)鍵詞:內(nèi)核嵌入式攝像頭

    任克強(qiáng),劉 蘇,謝 斌

    (江西理工大學(xué)信息工程學(xué)院,江西贛州341000)

    隨著計算機(jī)網(wǎng)絡(luò)技術(shù)和視頻處理技術(shù)的發(fā)展,網(wǎng)絡(luò)視頻監(jiān)控已經(jīng)成為網(wǎng)絡(luò)視頻應(yīng)用中的一個重要領(lǐng)域[1-2]。嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)是集成了微處理器、網(wǎng)絡(luò)技術(shù)、自動控制以及人工智能為一體的新型視頻監(jiān)控系統(tǒng),以其成本低、體積小、性能穩(wěn)定及通信便利等特點(diǎn)獲得了越來越廣泛的應(yīng)用[3]。

    ARM系列處理器具有較好的數(shù)據(jù)處理能力和低廉的價格,被廣泛應(yīng)用到嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計中。目前,以ARM9處理器為核心的視頻監(jiān)控系統(tǒng)需要依靠專門的編解碼芯片來彌補(bǔ)ARM9處理器視頻信號處理能力的不足,增加了系統(tǒng)成本[4]。嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)可采用 C/S(Client/Server,客戶機(jī)/服務(wù)器)和 B/S(Browser/Server,瀏覽器/服務(wù)器)兩種模式,C/S模式具有專用性、交互性強(qiáng)等優(yōu)點(diǎn),但客戶端和服務(wù)器端都需要特定軟件的支持,系統(tǒng)升級和維護(hù)較為麻煩[5]。因此,本文在Linux平臺上,設(shè)計并實(shí)現(xiàn)了一種網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。該系統(tǒng)以高性能的ARM11處理器S3C6410作為嵌入式視頻Web服務(wù)器,克服了ARM9處理器在視頻信號處理方面的不足;采用B/S模式,統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)集中到視頻監(jiān)控系統(tǒng)的服務(wù)器上,與C/S模式相比,降低了成本,系統(tǒng)升級和維護(hù)更加方便,有利于系統(tǒng)的推廣使用。

    1 系統(tǒng)總體架構(gòu)

    網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的總體架構(gòu)如圖1所示,主要由視頻Web服務(wù)器和視頻監(jiān)控終端兩部分組成。

    圖1 系統(tǒng)總體架構(gòu)

    視頻Web服務(wù)器中固化了Linux系統(tǒng)和MJPG-streamer應(yīng)用程序,采用多線程模式,支持多監(jiān)控終端同時進(jìn)行監(jiān)控。視頻監(jiān)控終端可以是手機(jī)和平板PC等移動終端,也可以是PC等固定終端,采用有線或者無線的方式進(jìn)行視頻監(jiān)控。

    USB攝像頭將采集到的原始視頻數(shù)據(jù)傳遞給ARM11處理器進(jìn)行壓縮編碼,服務(wù)器端啟動服務(wù),監(jiān)聽監(jiān)控終端的請求;當(dāng)監(jiān)控終端通過Web瀏覽器向服務(wù)器發(fā)送視頻請求時,服務(wù)器開啟一個線程,通過TCP/IP協(xié)議將視頻流傳輸給監(jiān)控終端,監(jiān)控終端即可實(shí)現(xiàn)實(shí)時視頻監(jiān)控;服務(wù)結(jié)束后,監(jiān)控終端向服務(wù)器發(fā)送請求結(jié)束會話,服務(wù)器關(guān)閉線程,釋放資源。

    2 硬件設(shè)計

    視頻Web服務(wù)器由ARM11處理器S3C6410、NAND Flash、SDRAM、RTC 電路、復(fù)位電路、USB 攝像頭和DM9000等構(gòu)成,其硬件結(jié)構(gòu)如圖2所示。

    圖2 服務(wù)器硬件結(jié)構(gòu)

    S3C6410是基于ARM11內(nèi)核(ARM1176JZF-S)的高性能低功耗多媒體應(yīng)用處理器,具有強(qiáng)大的硬件MFC(Multi-Format Video Codec,多格式視頻編解碼器),完善的功能模塊以及高達(dá)667 MHz的運(yùn)行頻率,可滿足實(shí)時視頻信號處理的要求。USB攝像頭采集原始視頻數(shù)據(jù)并傳遞給S3C6410處理器,S3C6410處理器對原始視頻進(jìn)行壓縮編碼;通過DM9000接入Internet,采用TCP/IP協(xié)議傳輸視頻流。NAND Flash采用4 Gbyte的K9LBG08U0D芯片,主要用于存放Linux內(nèi)核、文件系統(tǒng)以及應(yīng)用程序等。SDRAM采用256 Mbyte的DDR存儲器,傳輸速率可達(dá)266MHz。RTC電路配置了一個CR1220型號的紐扣電池,掉電時為系統(tǒng)的實(shí)時時鐘供電。

    3 軟件設(shè)計

    視頻Web服務(wù)器軟件主要包括Linux系統(tǒng)和MJPG-streamer應(yīng)用程序兩大部分,其結(jié)構(gòu)如圖3所示。

    圖3 服務(wù)器軟件結(jié)構(gòu)

    3.1 Linux移植

    Linux系統(tǒng)主要包括BootLoader、Linux內(nèi)核、硬件驅(qū)動和根文件系統(tǒng)4個部分。采用交叉編譯方式,系統(tǒng)軟件平臺采用Linux發(fā)行版 ubuntu12.04,交叉編譯器使用arm-linux-gcc4.3.2版本。本系統(tǒng)所用的網(wǎng)卡和 USB 攝像頭等硬件驅(qū)動已集成在Linux系統(tǒng)中,不需要再編寫相應(yīng)的驅(qū)動代碼,只需要在編譯內(nèi)核時進(jìn)行選擇和配置即可。

    1)BootLoader移植

    BootLoader在嵌入式Linux內(nèi)核執(zhí)行之前初始化硬件設(shè)備,通過系統(tǒng)庫函數(shù)mmap()將用戶空間的內(nèi)存區(qū)域映射到內(nèi)核空間,為運(yùn)行Linux內(nèi)核做準(zhǔn)備。U-Boot(Universal Boot Loader,通用引導(dǎo)裝載程序)遵循GPL公約,支持ARM處理器和Linux,具有較高的可靠性和穩(wěn)定性[6];此外還支持NFS掛載,使產(chǎn)品設(shè)計調(diào)試更加方便。本系統(tǒng)選用uboot1.1.6,將源碼拷貝到ubuntu的工作目錄下進(jìn)行解壓、配置和編譯,編譯成功后,將在uboot1.1.6目錄下產(chǎn)生名為u-boot.bin的二進(jìn)制映像文件。

    2)Linux內(nèi)核移植

    GNU/Linux操作系統(tǒng)分為用戶空間和內(nèi)核空間兩部分。用戶空間主要包括應(yīng)用程序和庫函數(shù)。Linux內(nèi)核位于內(nèi)核空間中,包括了系統(tǒng)調(diào)用接口、進(jìn)程管理、內(nèi)存管理、虛擬文件系統(tǒng)和設(shè)備驅(qū)動等組件,在內(nèi)存和CPU使用方面具有較高的效率。本系統(tǒng)選用Linux3.0.1版本的內(nèi)核,該版本內(nèi)核較穩(wěn)定。編譯內(nèi)核采用圖形化方式配置,首先需要安裝libncurses5-dev軟件包,命令為:#sudo aptget install libncurses5-dev。Linux系統(tǒng)自2.4 版本以后的內(nèi)核都支持UVC視頻設(shè)備。因此,不需要另外安裝相應(yīng)的驅(qū)動程序,降低了系統(tǒng)設(shè)計的復(fù)雜度。為了能夠驅(qū)動USB攝像頭,配置內(nèi)核的時候,在Device Drivers選單里面選擇 Multimedia devices,進(jìn)入 Video capture adapters,將[*]V4L USB devices下的<* >USB Video Class(UVC)[*]UVC input events device support選中,保存退出。執(zhí)行#make zImage 命令,最后在內(nèi)核源碼目錄/linux-3.0.1/arch/arm/boot中得到Linux內(nèi)核映像文件zImage。

    3)根文件系統(tǒng)移植

    Yaffs2是一種適用于NAND Flash的嵌入式文件系統(tǒng),具有速度快、掛載時間短和對內(nèi)存占用較小等優(yōu)點(diǎn),為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API[7]。使用Busybox軟件構(gòu)建Yaffs2文件目錄,并且將一些基本的庫函數(shù)和連接文件拷貝到相應(yīng)的文件目錄中。

    3.2 MJPG-streamer移植

    MJPG-streamer是一個視頻流應(yīng)用軟件,使用V4L(Video for Linux)第二版本的接口,通過文件或者HTTP方式訪問linux-UVC兼容攝像頭[8]。本系統(tǒng)使用羅技C270網(wǎng)絡(luò)攝像頭進(jìn)行視頻數(shù)據(jù)采集,該攝像頭屬于UVC類型的視頻設(shè)備,采用CMOS成像元件來捕獲畫面,支持720p視頻拍攝,最高速度可達(dá)30 f/s(幀/秒),采集圖像的最大分辨率為1 024×768,支持USB2.0接口。視頻采集功能通過調(diào)用mmap()函數(shù)將視頻采集設(shè)備映射到系統(tǒng)內(nèi)存中來實(shí)現(xiàn),取代了傳統(tǒng)的直接讀取用戶空間設(shè)備的方式,繞過了內(nèi)核緩沖區(qū),加快了視頻數(shù)據(jù)的處理速度,提高了實(shí)時性。

    S3C6410處理器將攝像頭采集到的圖像存入globalbuffer中,當(dāng)視頻監(jiān)控終端向視頻Web服務(wù)器發(fā)出訪問申請時,服務(wù)器會將globalbuffer緩沖中的圖像數(shù)據(jù)連續(xù)發(fā)送給視頻監(jiān)控終端,形成視頻流。MJPG-streamer利用網(wǎng)絡(luò)攝像頭自帶的硬件壓縮功能處理圖像,減少了CPU的負(fù)荷,特別適用于嵌入式設(shè)備。

    1)jpeg庫的移植

    MJPG-streamer應(yīng)用程序采用jpeg庫進(jìn)行視頻圖像的編碼,所以需要進(jìn)行jpeg庫的移植。

    (1)將 jpeg庫源碼 jpegsrc.v8b.tar.gz拷貝到宿主機(jī)ubuntu12.04的工作目錄/test下并解壓;

    (2)創(chuàng)建用來存放jpeg源碼編譯后生成的動態(tài)庫文件目錄:#mkdir-p/home/6410/jpeg;

    (3)參數(shù)配置:#./configure--prefix=/home/6410/jpeg- -h(huán)ost=arm-none-linux-gnueabi;

    (4)編譯并安裝,在/home/6410/jpeg目錄下生成MJPG-streamer需要的動態(tài) jpeg庫文件 libjpeg.so.8,將該庫文件拷貝到根文件系統(tǒng)中。

    2)MJPG-streamer的移植

    (1)將MJPG-streamer源碼MJPG-streamer-r63.tar.gz拷貝到工作目錄/test下并解壓;

    (2)修改input_uvc文件夾下的Makefile文件使程序能夠調(diào)用上一步中編譯好的jpeg的庫文件和頭文件。將CFLAGS+= -O2-DLINUX -D_GNU_SOURCE -Wall-shared-fPIC修改為CFLAGS+= -O2-DLINUX -D_GNU_SOURCE -Wall-shared -fPIC -I/home/6410/jpeg/include;將MYM(CC)MYM(CFLAGS)-ljpeg - o MYM@input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo修改為MYM(CC)MYM(CFLAGS)-ljpeg -L/home/6410/jpeg/lib - o MYM@input_uvc.cv4l2uvc.lo jpeg_utils.lo dynctrl.lo;

    (3)編譯:#make CC=arm-linux-gcc。編譯完成后將生成動態(tài)庫文件,將動態(tài)庫文件input_uvc.so、output_http.so、output_file.so 和 www 文件夾拷貝到根文件系統(tǒng)中。

    input_uvc.so組件用于系統(tǒng)從UVC攝像頭中獲取視頻數(shù)據(jù),并將視頻數(shù)據(jù)輸出到output_http.so和output_file.so這2個組件中。輸出到output_file.so組件中的是jpg格式圖片,客戶端可通過瀏覽器以HTTP的方式訪問視頻和圖像數(shù)據(jù),也可以通過文件的方式訪問圖像數(shù)據(jù)。

    4 系統(tǒng)測試

    利用USB燒寫方法,將編譯好的u-boot、zImage和rootfs.yaffs2燒寫到 S3C6410處理器中。視頻設(shè)備在Linux中作為普通文件對其進(jìn)行操作,USB攝像頭的設(shè)備文件標(biāo)識符為/dev/videoN(N為一個非負(fù)整數(shù))。在根文件系統(tǒng)/sbin目錄下編寫一個開機(jī)自啟動腳本start_mjpg,修改Linux啟動配置文件/etc/init.d/rcS,加入/sbin/start_mjpg。腳本內(nèi)容如下:mjpg_streamer–i“input_uvc.so–d/dev/video2–f30–r640x480”–o“output_http.so–w/www– c abc:123– p 8080”– o“output_file.so– d 60000–f/tmp”–b。其中:-d/dev/video2表示使用的視頻設(shè)備節(jié)點(diǎn)為video2;-f 30表示幀率為30 f/s;-r 640×480表示圖像分辨率為640×480;-w/www表示幀圖像輸出文件目錄為/www;-c abc:123表示用戶訪問的用戶名和密碼;-p 8080表示端口號為8080;-d 60000表示保存圖片間隔,單位為ms;-f/tmp表示保存jpg格式圖片的文件夾;-b表示守護(hù)進(jìn)程模式。

    在minicom通信軟件中,使用top命令查看內(nèi)存和CPU使用情況,該視頻監(jiān)控系統(tǒng)的進(jìn)程占用30%左右的內(nèi)存,CPU的占用率為5%左右。

    圖4為PC機(jī)的測試結(jié)果,主要測試PC機(jī)作為固定終端,通過瀏覽器和VLC流媒體播放器進(jìn)行實(shí)時視頻監(jiān)控的效果。PC機(jī)的參數(shù)為:AMD Liano APU A4-3300M 1.9 GHz CPU,2 Gbyte內(nèi)存,Windows XP SP3。圖4a是視頻Web服務(wù)器采集的實(shí)時圖像。在PC機(jī)的瀏覽器中輸入視頻 Web 服務(wù)器的 IP 地址(http://192.168.1.102:8080/?action=stream),即可進(jìn)行實(shí)時視頻監(jiān)控,如圖4b所示。此外,也可以通過VLC流媒體播放器進(jìn)行實(shí)時視頻監(jiān)控,如圖4c所示。

    圖5為平板PC和手機(jī)的測試結(jié)果,主要測試采用移動終端進(jìn)行實(shí)時視頻監(jiān)控的效果。手機(jī)參數(shù)為:A9雙核1.4 GHz處理器,Android 4.1.1 操作系統(tǒng)。平板 PC 參數(shù)為:A5X雙核1 GHz處理器,iOS5.1操作系統(tǒng)。移動終端通過TP-LINK無線路由器接入Internet,在平板PC和手機(jī)的瀏覽器中輸入視頻Web服務(wù)器的IP地址,移動終端監(jiān)控的實(shí)時視頻圖像分別如圖5b和圖5c所示。

    圖4 PC機(jī)的測試結(jié)果(截圖)

    圖5 平板PC和手機(jī)的測試結(jié)果(截圖)

    圖4和圖5的測試結(jié)果表明,固定終端和移動終端獲取的實(shí)時視頻圖像清晰流暢、無失真和抖動現(xiàn)象,取得了較好的實(shí)時視頻監(jiān)控效果。

    5 總結(jié)

    本文設(shè)計并實(shí)現(xiàn)了一種網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),系統(tǒng)以高性能的S3C6410處理器為核心構(gòu)建視頻Web服務(wù)器,利用開源的Linux和MJPG-streamer構(gòu)建系統(tǒng)控制軟件,采用B/S模式統(tǒng)一客戶端,視頻監(jiān)控終端只要有瀏覽器就可進(jìn)行實(shí)時視頻監(jiān)控,并且支持多個/多種監(jiān)控終端同時進(jìn)行實(shí)時視頻監(jiān)控。該系統(tǒng)具有成本低、體積小、功耗低、升級維護(hù)方便以及運(yùn)行穩(wěn)定可靠等特點(diǎn),可用于校園監(jiān)控、交通監(jiān)控、家居安防以及遠(yuǎn)程教育等眾多領(lǐng)域,具有較好的應(yīng)用前景。

    [1]吳金策,杜勁松.B/S架構(gòu)嵌入式視頻監(jiān)控系統(tǒng)客戶端設(shè)計[J].電視技術(shù),2013,37(3):188-192.

    [2]張躍進(jìn),謝昕.嵌入式網(wǎng)絡(luò)數(shù)字視頻監(jiān)控系統(tǒng)的設(shè)計[J].計算機(jī)工程與設(shè)計,2009,30(4):805-807.

    [3]馬資道,張正炳.基于ARM-Linux的網(wǎng)絡(luò)視頻監(jiān)控終端的軟件實(shí)現(xiàn)[J].計算機(jī)測量與控制,2011,19(2):456-458.

    [4]徐繼富,張秋林.基于ARM11的IP網(wǎng)視頻監(jiān)控系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].電視技術(shù),2012,36(13):125-127.

    [5]劉媛,張偉,王知學(xué).基于B/S和C/S架構(gòu)的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,2008(10):39-41.

    [6] 鄭國玲,李輝,武維.基于S3C2410的U-Boot的移植方法研究[J].計算機(jī)工程與設(shè)計,2009,30(24):5643-5645.

    [7]熊胤琪,嚴(yán)華.YAFFS在嵌入式Linux系統(tǒng)中的構(gòu)建與改進(jìn)[J].電子技術(shù)應(yīng)用,2012,38(3):33-36.

    [8]張哲銘,巍衡華.基于NetLinx架構(gòu)的遠(yuǎn)程控制系統(tǒng)設(shè)計及應(yīng)用[J].自動化與儀表,2010(9):1-4.

    猜你喜歡
    內(nèi)核嵌入式攝像頭
    浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
    萬物皆可IP的時代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    攝像頭連接器可提供360°視角圖像
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    搭建基于Qt的嵌入式開發(fā)平臺
    嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
    奔馳360°攝像頭系統(tǒng)介紹
    Altera加入嵌入式視覺聯(lián)盟
    霍邱县| 郴州市| 新余市| 安康市| 绍兴市| 平山县| 长葛市| 固安县| 井陉县| 都昌县| 方正县| 屏南县| 罗山县| 察雅县| 青海省| 法库县| 徐州市| 阳泉市| 云和县| 沈丘县| 梁山县| 昂仁县| 抚远县| 普洱| 周口市| 昭觉县| 固始县| 抚州市| 安仁县| 惠水县| 新营市| 加查县| 长岛县| 巩义市| 深泽县| 葫芦岛市| 揭西县| 西丰县| 大埔区| 大同市| 湄潭县|