基于ARM平臺的遠程視頻監控系統的研究

ARM 232瀏覽

視頻監控系統是安全防范系統的組成部分,它是一種防范能力較強的綜合系統。現今監控系統已經步入了數字化、網絡化時代,即視頻從前端圖像采集設備輸出時即為數字信號,并以網絡為傳輸媒介,基于TCP/IP協議,采用流媒體技術實現視頻在網上的多路復用傳輸。使用嵌入式系統實現遠程視頻監控技術,符合網絡化數字化的特點,對公安、安防等行業有著重要的現實意義。
       視頻監控系統一般采用基于PC機平臺+視頻采集卡的形式,該方案系統體積大、成本高,在遠距離、多點系統中實現困難。本設計采用三星公司的S3C2440[1]硬件平臺(CPU芯片含有視頻采集接口),軟件平臺是Linux-2.4.20操作系統內核,由于Linux操作系統的開放特性、優良的網絡支持性能、模塊化的結構,較好滿足系統的需要。
       1.系統硬件設計
       系統主要由視頻采集和傳輸部分組成。有嵌入式處理器、CMOS圖像傳感器、存儲器、以太網接口、串口、及電源管理電路。嵌入式處理器是韓國三星公司的基于ARM920T內核的16/32位RISC嵌入式微處理器(型號:S3C2440),主要面向高性價比、低功耗的應用。為了處理圖像數據,CPU的工作頻率可達400MHz。S3C2440的資源包括LCD控制器,SDRAM控制器,攝像頭接口,3路串行接口,IICBUS接口,USB接口,觸摸屏接口。在處理器豐富資源的基礎上,還進行了相關的擴展,配置了32M Flash ROM和256MBSDRAM。在嵌入式處理器的控制下,CMOS圖像傳感器(片上)采集到的數據經幀同步信號觸發產生中斷后被拷貝到SDRAM,經過MPEG-4編碼后由網口發送到遠端監控中心顯示,系統框圖如圖一所示。
        1.1視頻采集模塊的設計
       圖像傳感器接口電路是硬件設計的關鍵部分,如何有效的采集數據也是系統的關鍵問題。視頻采集模塊采用OV9640圖像傳感器[3],它是一款高集成度、高分辨率(1280*960)的CMOS傳感芯片,內部集成了時序電路,模擬信號處理電路,數字信號處理電路。該芯片支持RGB(4:2:2),YUV(4:2:2),YCrCb(4:2:2)數據輸出格式,內置138個設備控制寄存器,地址分別從0x00到0x8A,通過SCCB(Serial Camera ControlBus)接口可以方便的設置傳感器視窗大小、增益、白平衡校正、曝光控制、飽和度、色調等。由于S3C2440芯片有一個專用的視頻接口,所以CPU可以直接和CMOS圖像傳感器連接。圖像傳感器輸出的數據及控制信號包括像素時鐘(PCLK)、水平參考(HREF)、幀同步(VSYNC)和數據總線(D0-D7),分別和主處理器的相應信號相連。PCLK與HREF在處理器內部相與后產生有效的像素時鐘信號,在有效時鐘信號的上升沿或下降沿將數據鎖定[4]。模塊和S3C2440接口電路如圖二所示。在OV9640圖像傳感器中,如果輸出YUV格式[5],要用到數據線的Y2-Y9;如果輸出RGB格式,則要用數據線Y0-Y9。本設計中采用了YUV格式。

圖二 視頻采集模塊接口

        1.2網絡接口的設計
       在S3C2440芯片上無網絡接口,為了實現在系統調試時,下載操作系統內核、文件系統映像,及在系統運行中實現視頻數據的網絡傳輸等功能,所以在系統中擴展網絡接口模塊(DM90000)。該芯片為10M/100M以太網物理層芯片,具有通用的處理器接口。模塊與2440接口如圖三所示:其中CMD為命令類型引腳,在高電平時為數據周期,在低電平時為地址周期。可通過CMD與數據總線訪問內部54個控制及狀態寄存器。當AS9-AS8設置成高,SA7設置成低,SA6-4與TXD2-0匹配時,DM90000由AEN引腳唯一控制是否被選中。此外,DM9000工作在正常模式,TEST1-4依次為1、1、0、0。為了保證DM90000收發正常,還要加上25M的晶振。
        2.系統的軟件設計
       軟件平臺由三部分組成:系統引導加載程序、嵌入式Linux內核、文件系統及應用程序。本設計中通過向ARM平臺移植u-boot-1.1.1實現系統的引導加載,uboot除了正常的引導嵌入式Linux外,還可以方便的切換到下載更新模式,利用TFTP功能對內核映像及文件系統實時更新。嵌入式操作系統采用Linux2.4.20,開發模式采用最為普遍的宿主開發模式,即在宿主機上編譯內核及應用程序然后通過網口下載到目標平臺上運行,通過打印終端打印調試信息。文件系統是嵌入式系統軟件平臺占用存儲量最大的一部分,它存儲了系統配置文件、系統程序和系統外設驅動程序。嵌入式Linux內核移植[2]好后,主要工作就變成在操作系統下編寫驅動程序。在這里我們著重介紹OV9640的驅動程序的開發及MPEG-4編碼的實現。

圖三:以太網模塊接口

        2.1 OV9640驅動的開發[6]
        在Linux下編寫OV9640CMOS圖像傳感器驅動,首先要初使化OV9640。通過SCCB總線設置OV9640的工作模式,各種參數,分配連續內存空間,容量與采集圖像的點陣數相匹配。然后用request_irq()函數為OV9640登記中斷,其中斷號為06。當S3C2440捕捉到VSYNC信號時觸發中斷,把一幀圖像數據拷貝到用戶空間。如此反復,視頻數據源源不斷的被采集到SDRAM。軟件流程如圖四所示。

圖四 讀取OV9640數據流程

      我們知道,用戶進程是通過設備文件同硬件打交道,對設備文件的操作就是一些系統調用。要想把系統調用和設備驅動程序關聯起來,必須用到一個非常關鍵的數據結構:struct file_operations{}。因此編寫設備驅動的主要工作就是編寫數據結構中定義的子函數,并填充file_operations的各個域。
       攝像頭file_operations的數據結構如下
static struct file_operations cam_fops =
{  owner  :  THIS_MODULE,
   open   :  cam_open,
    read   :  cam_read,
   ioctl  :  cam_ioctl,
  release : cam_release,
};
        編寫好成員函數后,接下來編寫module_init()和module_exit()。module_init()是驅動程序的入口,當用insmod命令加載模塊時自動運行。
        此函數中包括
        ①初使化CMOS圖像傳感器
        ②分配連續內存地址空間
        ③注冊設備文件
        ④登記中斷。module_exit()函數在rmmod卸載模塊時調用。
        函數功能包括
        ①釋放內存空間
        ②釋放中斷
        ③注銷設備文件。
        至此,驅動模塊編寫好了,編譯加載后,我們就可以像操作普通文件一樣對攝像頭進行讀取數據了
        2.2基于MPEG4的數據壓縮算法的實現
        2.2.1 MPEG-4[7]壓縮標準
       數字視頻流的數據量是巨大的,以QVGA圖像,每秒20幀為例,每秒鐘的數據量為2.92M,假設系統有十路傳感器,如果不經過壓縮,實現數據在網上的多路復用傳輸是相當困難的,為了系統可靠的運行,本設計采用高壓縮率的MPEG-4視頻壓縮編碼。MPEG-4最顯著的特點是基于內容的編碼方法,即把一段視頻序列看成有不同的視頻對象VO組成,編碼器根據實際情況對各個視頻對象面VOP進行編碼,其最大壓縮率可達到100:1。
        2.2.2 MPEG-4的實現與優化
       XVID是一種開源的MPEG-4視頻編碼軟件,是目前所有開源視頻編碼軟件中比較優秀的一個,它嚴格按照GPL發布,圖像質量可以達到DVD的效果,而數據量只有DVD的1/8。XVID最新的版本為xvidcore1.1.0,這里我們選擇xvidcore1.1.0作為進一步優化的基礎。從 www.xvidcore.org下載xvidcore1.1.0源碼,修改MAKEFILE文件,把XVID移植到ARM平臺。具體的實現方法可參照example下的例子,結合項目的實際,寫出自己的應用程序。然后進入xvidcore-1.1.0/build/generic目錄,執行./configure –disable–assembly命令,手工配置platform.inc文件,修改CC=/opt/host/armv41/bin/arm4l-unknown-linux-gcc,再執行makeclean,make。最后把生成的庫拷貝到example目錄下,修改example下的Makefile文件,編譯下載到目標板上運行即可。
        經過測試,XVID的壓縮比是很高的,可達到20:1,最重要的是編碼速度快,壓縮解壓后的圖像質量稍有降低,完全可以達到實用的要求。
        3.結束語
       利用嵌入式系統實現遠程視頻監控符合數字化、網絡化的發展趨勢,具有布線集中,設備簡單,體積小,成本低等特點,與傳統的視頻監控方案比較有不可比擬的優越性。前端采集部分采用S3C2440微處理器,利用其自身提供的視頻接口,圖像采集的速度完全可以達到動態顯示的要求(在400M的時鐘頻率下,QVGA圖像可以達到20幀/秒的顯示速率)。本文作者的創新點:采用圖像壓縮編碼和網絡技術,可實現視頻數據的多路復用傳輸。監控端采用基于MPEG-4的視頻對象分割方法,利用相鄰幀視頻對象的差異,實現智能報警的功能。該系統性價比較高,使用方便,值得推廣使用。

七星彩走势图2元网官网