基于嵌入式linux的視頻監(jiān)控系統(tǒng)的設計_第1頁
已閱讀1頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于嵌入式Linux的視頻監(jiān)控系統(tǒng)的設計</p><p>  摘要:在軟硬件協(xié)同設計的指導思想下,提出了在ARM微處理器平臺上移植嵌入式Linux操作系統(tǒng),并完成視頻采集、壓縮、控制等任務。為降低產品成本,系統(tǒng)采用ARM9微處理器S3C2410X作為主處理器,采用普通30萬像素的USB攝像頭作為圖像采集設備,用軟件對視頻數據進行MPEG-4壓縮??梢酝ㄟ^網絡把數據傳到中心服務器顯示并保存。實

2、現了一種體積小、成本低廉、數字化的監(jiān)控解決方案,具有廣泛的應用價值。</p><p>  關鍵詞:嵌入式, 視頻采集, 視頻監(jiān)控 </p><p>  The design of Video Surveillance System based on Embedded Linux</p><p>  Abstract: Hardware and software

3、 co-design of the guiding ideology, put forward in the ARM microprocessor platform porting embedded Linux operating system, and complete video capture, compression, control and other tasks. In order to reduce produ

4、ct cost, the system uses ARM9 microprocessor S3C2410X as the main processor, the ordinary 30-megapixel USB camera as an image acquisition device, with software for MPEG-4 video data compression. Data can be transmitted t

5、hrough the network to a centr</p><p>  Keyword: Embedded, Video Capture, Video Surveillance</p><p><b>  一、引言</b></p><p>  最近幾年,隨著網絡技術和多媒體技術飛速發(fā)展,各通信領域發(fā)展趨勢必然是全面數字化、網絡化,傳

6、統(tǒng)的模擬閉路電視監(jiān)控系統(tǒng)有很多局限性:傳輸距離有限、無法聯(lián)網,而且模擬視頻信號數據的存儲會耗費大量的存儲介質(如錄像帶),查詢取證時十分煩瑣。利用嵌入式設備進行數字處理傳送成為可能。嵌入式設備具有體積小、功耗低、數字化、安裝方便、價格低廉等優(yōu)點,因此基于嵌入式的視頻采集和監(jiān)控成為了當前嵌入式應用開發(fā)領域的一個熱門課題。</p><p>  由于這種系統(tǒng)的硬件是一個同處理器和操作系統(tǒng)捆綁較為緊密、功能專一、專門設計

7、的獨立的設備,不像插卡系統(tǒng)那樣受通用計算機系統(tǒng)中其它軟件硬件的影響,因此相比較傳統(tǒng)的視頻采集監(jiān)控系統(tǒng),它具有高可靠性、組網方便、可遠程監(jiān)控等優(yōu)點,且便于安裝、維護,易于實現系統(tǒng)的模塊化設計,便于管理、維護。因而更適用于工業(yè)控制、銀行、政府部門的安防系統(tǒng)中。本文所介紹的是基于ARM920T內核的S3C2410X開發(fā)板為基礎的嵌入式視頻監(jiān)控系統(tǒng)的實現,該系統(tǒng)是基于嵌入式硬件平臺和Linux操作系統(tǒng)下進行的,采用USB接口的攝像頭來進行數字圖

8、像采集,利用MPEG-4視頻壓縮編碼方式,可以直接掛到以太網解碼播放。</p><p>  二、系統(tǒng)硬件平臺設計</p><p><b>  1、系統(tǒng)總體結構</b></p><p>  在基于嵌入式系統(tǒng)的監(jiān)控應用結構中,前端采用模擬攝像機,通過網絡視頻編碼器,將模擬視頻經過數字化、壓縮、打包等過程變成基于網絡協(xié)議的視頻流或采用一體化的網絡攝像

9、機,在視頻監(jiān)控的前端完成網絡化、數字化,視頻流通過網絡進行傳輸,發(fā)送到視頻需求者。視頻的使用者可利用軟件進行解碼,在PC機上進行顯示和處理,也可通過硬件解碼,解出模擬視頻信號輸出到監(jiān)視器,利用鍵盤進行控制,利用分布在網絡上的服務器或其他類型的網絡存儲設備根據需要進行錄像,利用網管系統(tǒng)代替視頻矩陣。由于沒有監(jiān)控中心的概念,任何授權的用戶都可根據權限進行視頻監(jiān)控、錄像。</p><p>  在計算機設計中,硬件設計被

10、看作基礎,軟件設計被視為靈魂。由于嵌入式系統(tǒng)軟硬件是可裁減的,因此在嵌入式系統(tǒng)的硬件系統(tǒng)的確定,直接決定了軟件的編寫和運行效率。本設計中硬件總體框架主要包括系統(tǒng)存儲電路,外圍接口電路,電源及復位電路等幾個部分,系統(tǒng)硬件總體結構如圖1所示。</p><p>  2、S3C2410X處理器概括</p><p>  S3C2410X是Samsung公司推出的具有ARM920T內核的16-/32-

11、bit的嵌入式微處理器,它的低功耗、精簡和全靜態(tài)設計特別適合對成本和功耗敏感的應用。S3C2410X提供了豐富的片內資源:獨立的16KB指令和16KB數據的緩存,用于虛擬內存管理的MMU單元,LCD控制器(STN&TFT),非線性(NAND)FLASH的引導單元, 系統(tǒng)管理器( 包括片選邏輯控制和SDRAM控制器),3個通道的異步串口(UART),4個通道的DMA,4個通道的帶脈寬調制(PWM)的定時器,輸入輸出端口,實時時鐘單

12、元(RTC),帶有觸摸屏接口的8個通道的10-bitADC,IIC總線接口,IIS總線接口,USB的主機單元,USB的設備接口,SD卡和MMC(multimedia card)卡接口,2個通道的SPI接口和鎖相環(huán)(PLL) 時鐘發(fā)生單元。MPLL產生主時鐘,能夠使處理器穩(wěn)定工作在200MHz,使其可以輕松運行WinCE,Linux等嵌入式操作系統(tǒng)。S3C2410X支持從NAND Flash啟動,NAND Flash具有容量大,價格低等特

13、點。系統(tǒng)采用NAND Flash與SDROM組合</p><p><b>  3、系統(tǒng)工作過程</b></p><p>  本系統(tǒng)中采用了OV511芯片的網眼300CMOS攝像頭,基于S3C2410X處理器的開發(fā)板上加載USB及V4L驅動,并在此基礎上完成攝像頭的驅動,實現圖像采集與壓縮,借助Mencoder編碼工具可以將多幅JEPG圖片合成AVI視頻流,并實現視頻回

14、放。最后,如果需要系統(tǒng)還可以通過以太網或UART口將保存的圖片和視頻流傳到指定位置,實現網路監(jiān)控。</p><p>  三、嵌入式Linux環(huán)境設計</p><p>  本系統(tǒng)選用開源的Linux操作系統(tǒng),編譯環(huán)境采用交叉編譯調試的方式。嵌入式Linux由內核Kernel采用2.4.18版本,根文件系統(tǒng)使用ramdisk。</p><p>  1、搭建交叉編譯環(huán)境&

15、lt;/p><p>  大多數的Linux 件開發(fā)都是以native方式進行的,即本機開發(fā)、調試,本機運行的方式。這種方式通常不適合于嵌入式系統(tǒng)的軟件開發(fā),因為對于嵌入式系統(tǒng)的開發(fā),沒有足夠的資源在本機(即板上系統(tǒng))運行開發(fā)工具和調試工具。本系統(tǒng)編譯環(huán)境采用交叉編譯調試的方式。交叉編譯調試環(huán)境建立在宿主機(即一臺PC 機)上,我們這里采用的交叉編譯器為arm-linux-gcc,交叉編譯環(huán)境的建立需要許多的軟件模塊協(xié)

16、同工作,具體安裝不再贅述。</p><p>  2、USB攝像頭在Linux下的驅動安裝</p><p>  本系統(tǒng)選用OV511芯片的網眼300CMOS攝像頭,攝像頭想要正常運行必須要有驅動程序的支持,Linux自帶該芯片的驅動,攝像頭的驅動加載采用的是編進內核的方法,具體操作為:</p><p>  (1)在Linux的kernel目錄下執(zhí)行make menuc

17、onfig命令;</p><p>  (2)選擇Multimedia device->下的Video for linux;</p><p> ?。?)在usb support->目錄下選擇support for usb和usb cameraov511 support;</p><p> ?。?)保存配置退出。</p><p>  

18、經過上面的操作就可以將攝像頭驅動加載到內核里了,這樣攝像就可以正常的工作。</p><p>  3、Linux內核的定制與移植</p><p>  嵌入式系統(tǒng)通常是面向特定的硬件平臺和實現特定功能的,對于用不到的功能沒有必要移植進來占用嵌入式系統(tǒng)寶貴的資源,因此對Linux內核進行裁減是一件非常必要的事情。標準的2.4.18 Linux內核還不支持S3C2410X處理器,要想內核支持處理器

19、,需要打補丁,具體操作如下:</p><p>  #tar xfzv linux-2.4.18.tar.gz</p><p>  #gzip -dc patch-2.4.18-rmk6.gz</p><p>  #gzip -dc patch-2.4.18-rmk6-swl.gz</p><p><b>  #cd linux<

20、;/b></p><p>  #patch -pl patch-2.4.18-rmk6</p><p>  #patch -pl patch-2.4.18-rmk6-swl</p><p>  此時內核已經支持處理器了,需要對內核進行配置輸入#make menuconfig,選擇需要的配置的選項,一定要選上為USB視頻采集提供口的V4L模塊。配置完后保存退出,

21、在通過內核編譯,具體如下:</p><p><b>  #make dep</b></p><p>  #make zImage</p><p>  #make modules</p><p>  此時在目錄/arch/arm/boot下的zImage就是我們需要的內核文件。</p><p>  

22、4、根文件系統(tǒng)的建立</p><p>  文件系統(tǒng)是Linux系統(tǒng)必備的一個部分,主要是一些系統(tǒng)文件和應用文件存儲的地方,但是通常使用的PC上的文件系統(tǒng)包括很多功能,但是體積比較大通常有幾百兆之多,但是在嵌入式系統(tǒng)中要使用這樣的文件系統(tǒng)是不可能的,所以,嵌入式系統(tǒng)中的文件系統(tǒng)是一個簡化版,包括必須的幾個目錄和文件,完成需要的功能即可。ramdisk是一個存在于內存中的文件系統(tǒng),由于它非常靈活而且可以壓縮,所以在嵌

23、入式系統(tǒng)中得到廣泛的應用。本系統(tǒng)選擇ramdisk 作為根文件</p><p><b>  系統(tǒng)。</b></p><p>  四、視頻采集監(jiān)控軟件平臺的設計</p><p>  1、基于V4L的視頻采集設計</p><p>  Linux對于視頻采集設備的支持, 是通過Video4Linux實現的,通常可以簡稱為V4L

24、,現在較高版本的Linux內核都已經包含了V4L。Video4Linux是為各種電視卡、以及并口和USB接口的音、視頻采集設備提供同一的編程接口,在Linux下,視頻采集設備的正常使用依賴于對Video4Linux 標準的支持。它為針對視頻設備的應用程序編程提供一系列接口函數。Video4Linux編程中定義的數據結構如下:</p><p>  typedef struct v4l_struct{</p&g

25、t;<p><b>  int fd;</b></p><p>  struct video_capability capability;</p><p>  struct video_channel channel[4];</p><p>  struct video_picture picture;</p>&l

26、t;p>  struct video_window window;</p><p>  struct video_capture capture;</p><p>  struct video_buffer buffer;</p><p>  struct video_mmap mmap;</p><p>  struct video_

27、mbuf mbuf;</p><p>  unsigned char *map;</p><p>  int frame;</p><p>  int framestar[2];</p><p>  }v4l_device;</p><p>  從上面的數據結構看,想要完成USB的視頻數據采集,先要獲得相關視頻采集設備

28、的信息和圖像信息,同時需要對采集窗口、顏色模式、幀的狀態(tài)初始化,然后才能進行視頻圖像的采集?;赩4L的視頻采集流程如圖2 所示。在Video4Linux編程中使用的函數簡單的介紹</p><p> ?。?)int v4l_open(char*dev,v4l_device*vd);</p><p>  打開視頻設備,該函數調用成功返回的文件描述符就代表了捕獲設備硬件。</p>

29、<p>  (2)int v4l_get_capability(v4l_device *vd); </p><p>  讀取設備基本信息,利用ioct1()函數讀取structvideo_capability 中有關攝像頭信息。該函數成功返回后,將起存放vd->capability 中。調用程序如下:</p><p>  i f ( i o c t 1 ( v d - &

30、gt; f d, VIDIOCGCAP, &(vd-</p><p>  >capability))<0)</p><p><b>  {</b></p><p>  perror(“camera_get_capability:”);</p><p>  return -1;</p>&

31、lt;p><b>  }</b></p><p> ?。?)int v4l_get_picture(v4l_device*vd);</p><p>  通過ioctl(vd_fd, VIDIOCGPIT,&(vd_picture))讀取攝像頭緩沖區(qū)中圖像屬性。調用程序如下:</p><p>  if(ioct1(vd->fd

32、,VIDIOCGCAP,&(vd->picture))<0)</p><p><b>  {</b></p><p>  perror(“camera_get_picture:”);</p><p>  return -1;</p><p><b>  }</b></p&g

33、t;<p> ?。?)v4l_grab_image(video_device *vd); </p><p>  獲取視頻圖像函數。本系統(tǒng)采用內存映射法, 可以通過操作名為VIDIOCGCAPTURE和VIDIOCSYNC的ioct1()函數調用啟動捕獲過程,這樣就可以完成一幀完整圖像的捕獲并且保存到內存映射區(qū)。</p><p><b>  調用程序如下:</b

34、></p><p>  vd->vmmap.frame=frame;</p><p>  if(ioct1(vd->fd, VIDIOCGCAPTURE, &(vd-</p><p>  >mmap))<0){</p><p>  perror(“camera_get_picture:”);</p&

35、gt;<p>  return -1;</p><p><b>  }</b></p><p>  vd->frame_rsing[frame]=TRUE;</p><p>  vd->frame_current=frame;</p><p>  i f ( i o c t 1 ( v d -

36、> f d, VIDIOCSYNC, &(vd-</p><p>  >frame_current))<0){</p><p>  perror(“v4l_grab_sync”);</p><p><b>  }</b></p><p>  vd->frame_using[vd->f

37、rame_current]=FALSE;</p><p> ?。?)int v4l_close(v4l_device *vd);關閉設備。</p><p>  int v4l_close(v4l_device *vd){</p><p>  close(vd->fd);</p><p><b>  return 0;</

38、b></p><p><b>  }</b></p><p><b>  2、視頻數據的壓縮</b></p><p>  視頻壓縮技術被稱為新一代網絡視頻監(jiān)控系統(tǒng)的核心技術。我們都知道未壓縮的捕獲來的原始圖像數據較大,本系統(tǒng)采集的圖像很多,因此必須對原始圖像數據進行壓縮。新一代基于對象的編碼標準MIPEG-4 以高壓

39、縮率、高質量成為目前網路多媒體傳輸的主要格式和標準</p><p>  MPEG-4是MPEG于1998年制定的第二階段解碼方案,其開放的編碼系統(tǒng),可隨時擴展豐富的基于內容的編碼算法,采用了包括小波變換等多種變換,可獲得更小的硬盤空間,更高的清晰度。特別是其對象分離的控制,交互性、重用性更強,基于內容的分級擴展,保證了同時在低高帶寬下的最佳畫面質量。</p><p>  MPEG-4在64

40、Kbit/s以下的低速率視音頻編碼十分有效,因此基于MPEG-4的實時傳輸技術對于實現流媒體傳輸技術是必要和有意義的。所以本系統(tǒng)選用MPEG-4視頻壓縮編碼方式。其圖像壓縮編碼的過程概括如下:首先對視頻序列進行分析,從原始圖像中分割出各個視頻對象。其中包括利用中值濾波對原始視頻/圖像進行簡化、對視頻/圖像進行特征提取、確定分割決策等。然后針對不用的視頻對象VO采用不同的編碼策略,利用VOP視頻編碼技術對視頻對象進行編碼。最后各個視頻對象

41、的碼流進行復合后輸出。</p><p>  MPEG-4視頻壓縮編碼環(huán)境建立的具體步驟如下:</p><p> ?。?)解壓xvidcore軟件的源代碼:</p><p>  #tar-jxvf xvidcore-1.1.0-beta2.tar.bz2;</p><p> ?。?)執(zhí)行配置命令生成makefile文件并修改安裝路徑:</

42、p><p>  #CC=arm-linux-gcc./configure-disable-assemblyprefix=/</p><p>  home/myproject;</p><p> ?。?)通過#make,#make install安裝動態(tài)連接庫,安裝目錄為/home/myproject/lib;</p><p>  (4)將生成的庫

43、文件拷貝到交叉編譯器的工作目錄下。</p><p>  3、視頻數據傳輸和播放</p><p>  基于Linux系統(tǒng)的USB攝像頭視頻采集系統(tǒng)編程完成以后。系統(tǒng)就可以實現每秒規(guī)定幀的圖像的采集了,可以直接連續(xù)顯示到屏幕上構成實時監(jiān)控系統(tǒng)了,也可以借助Mencoder編碼工具可以將多幅JEPG圖片合成AVI視頻流,并實現視頻回放。用播放器播放出去。如果需要系統(tǒng)還可以通過以太網或UART口將

44、保存的圖片和視頻流傳到指定位置,實現遠程的網路監(jiān)控具體的操作我們這里就不詳細介紹了。</p><p><b>  4、控制系統(tǒng)</b></p><p>  目前很多監(jiān)控系統(tǒng)采用 Windows操作系統(tǒng),因為Windows提供大量的圖形界面,有各種外部設備及應用程序,所以系統(tǒng)的開發(fā)就容易很多。但Windows系統(tǒng)龐大復雜,占用CPU資源大,外圍硬件較為復雜,穩(wěn)定性、可靠

45、性不如 RTOS系統(tǒng)。為監(jiān)控專門設計的嵌入式實時操作系統(tǒng)的特點在于系統(tǒng)簡單,去掉了與監(jiān)控無關的功能,減少了出問題的幾率。由于開發(fā)者掌握源代碼,可隨時解決硬件沖突及優(yōu)化系統(tǒng)??刂葡到y(tǒng)實現了用戶對前端設備如鏡頭、云臺和畫面切換的控制。服務器在接收到由客戶中心監(jiān)控終端發(fā)送過來的控制信息幀后,對其進行判斷解析,并送入各個相應的控制部件接口,以實現相應的控制。</p><p><b>  五、結束語</b&

46、gt;</p><p>  本文提出了一種基于ARMLinux嵌入式S3C2410X微處理器的實時視頻監(jiān)控系統(tǒng), 該系統(tǒng)通過利用Video4Linux完成了圖像采集的功能,采集完的圖像經過MPEG-4的編碼壓縮,得到了較高的壓縮比。Web服務器直接連入網絡,通過網絡實時傳輸,沒有線纜長度和信號衰減的限制,同時網絡是沒有距離概念的,徹底拋棄了地域的概念,擴展了布控區(qū)域??蛻舳耸盏骄W絡傳輸過來的數據包,在本地對數據包

47、進行實時解碼和播放,也可以將數據包掛到網絡上面去實現實時解碼和播放。整個系統(tǒng)具有體積小、功耗低、穩(wěn)定可靠、安裝簡便、成本低廉等特點,無需專人管理,非常適合于無人值守的環(huán)境。隨著計算機技術、網絡技術的迅速發(fā)展,人們對視頻監(jiān)控系統(tǒng)的要求會越來越高。相信該系統(tǒng)在工業(yè)控制、可視電話、遠程監(jiān)控系統(tǒng)等諸多領域有廣闊的應用前景。</p><p><b>  參考文獻:</b></p><

48、;p>  [1] 于明,范書瑞,曾祥燁.ARM9嵌入式系統(tǒng)設計與開發(fā)教程.北京:電子工業(yè)出版社.2006:15-75.</p><p>  [2] 張崳.32位嵌入式系統(tǒng)硬件設計與調試.北京:機械工業(yè)出版社,2005:2-80.</p><p>  [3] Richardsonieg. H.264 和MPEG24視頻壓縮:新一代多媒體的視頻編碼技術.長沙:國防科技大學出版社,2004

49、:30-87.</p><p>  [4] 王田苗.嵌入式系統(tǒng)設計與實例開發(fā).北京:清華大學出版社,2002:50-100.</p><p>  [5] Daniel P Bovet,Marco Cesati.Understanding the Linux kernel.2nd Ed.O'Reilly,2002.</p><p>  [6] 張曉東,李秀娟,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論