亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        任克強,劉 蘇,謝 斌

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

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

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

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

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

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

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

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

        2 硬件設計

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

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

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

        3 軟件設計

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

        圖3 服務器軟件結(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)中,不需要再編寫相應的驅(qū)動代碼,只需要在編譯內(nèi)核時進行選擇和配置即可。

        1)BootLoader移植

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

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

        GNU/Linux操作系統(tǒng)分為用戶空間和內(nèi)核空間兩部分。用戶空間主要包括應用程序和庫函數(shù)。Linux內(nèi)核位于內(nèi)核空間中,包括了系統(tǒng)調(diào)用接口、進程管理、內(nèi)存管理、虛擬文件系統(tǒng)和設備驅(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視頻設備。因此,不需要另外安裝相應的驅(qū)動程序,降低了系統(tǒng)設計的復雜度。為了能夠驅(qū)動USB攝像頭,配置內(nèi)核的時候,在Device Drivers選單里面選擇 Multimedia devices,進入 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)點,為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API[7]。使用Busybox軟件構(gòu)建Yaffs2文件目錄,并且將一些基本的庫函數(shù)和連接文件拷貝到相應的文件目錄中。

        3.2 MJPG-streamer移植

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

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

        1)jpeg庫的移植

        MJPG-streamer應用程序采用jpeg庫進行視頻圖像的編碼,所以需要進行jpeg庫的移植。

        (1)將 jpeg庫源碼 jpegsrc.v8b.tar.gz拷貝到宿主機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處理器中。視頻設備在Linux中作為普通文件對其進行操作,USB攝像頭的設備文件標識符為/dev/videoN(N為一個非負整數(shù))。在根文件系統(tǒng)/sbin目錄下編寫一個開機自啟動腳本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表示使用的視頻設備節(jié)點為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表示守護進程模式。

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

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

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

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

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

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

        5 總結(jié)

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

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

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

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

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

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

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

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

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

        猜你喜歡
        內(nèi)核嵌入式攝像頭
        浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
        萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
        攝像頭連接器可提供360°視角圖像
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于嵌入式Linux內(nèi)核的自恢復設計
        Linux內(nèi)核mmap保護機制研究
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        奔馳360°攝像頭系統(tǒng)介紹
        Altera加入嵌入式視覺聯(lián)盟
        少妇人妻精品久久888| 国内老熟妇对白xxxxhd| 久久99国产乱子伦精品免费| 国产成人精品无码一区二区老年人 | 国产成人a在线观看视频免费| 亚洲国产精品嫩草影院久久| 国产精品美女黄色av| 一级一片内射在线播放| 日韩精品中文字幕一区二区| 色偷偷888欧美精品久久久| 无码ol丝袜高跟秘书在线观看| 国产成人啪精品午夜网站| 日本一区二区三区在线播放| 亚洲av午夜福利精品一区不卡| 国产精品情侣呻吟对白视频| 国产精品亚洲一区二区在线观看| 亚洲另类欧美综合久久图片区| 日韩精品有码中文字幕在线| 蜜桃网站免费在线观看视频| 夜夜爽日日澡人人添| 18成人片黄网站www| 国产高潮流白浆免费观看不卡| 亚洲一区二区三区av无| 日韩av一区二区网址| 国产日产综合| 国产免费一级高清淫日本片| 永久免费在线观看蜜桃视频| 亚洲精品中文字幕导航| 99久久婷婷国产综合亚洲| 海角国精产品一区一区三区糖心| 国产高潮流白浆免费观看不卡| 粉色蜜桃视频完整版免费观看在线| 国产精品国产高清国产专区| 国产尤物av尤物在线观看| 久久久久欧洲AV成人无码国产| av网站可以直接看的| 国产精品亚洲一级av第二区| 欧美精品videosex极品| 欧美午夜一区二区福利视频| 亚洲国产精一区二区三区性色| 国产女同舌吻1区2区|