基於ARM平台的遠程視頻監控系統的研究

來源:互聯網
上載者:User
基於ARM平台的遠程視頻監控系統的研究 The Research Of Remote Video Monitor System Based On The ARM 王憲  劉井權  戴旻 來源:微電腦資訊                  (江南大學通訊與控制工程學院 江蘇 無錫 214122) 摘要 介紹了一種基於S3C2440[1]硬體平台和嵌入式Linux作業系統[2]的遠程視頻監控系統的總體設計方案,詳細闡述了系統的總體結構和各部分功能特點,對系統視頻採集,MPEG-4壓縮的實現進行了詳細分析,並給出關鍵功能的軟體實現方法,與傳統的視頻監控系統比較,該方案具有體積小,成本低,穩定可靠等優點。 關鍵詞 視頻採集;MPEG-4編碼;嵌入式Linux;驅動程式; Abstract  A scheme of the long-distance monitor and control system based on S3C2440 hardware platform and embedded linux is introduced, And the framework and each functions is detailedly expatiated, Also the video data collection and MPEG-4 data coding is detailedly analysed, Besides the software of key functions is givened, The scheme features small volume、low cost and stabilization by comparing with the traditional video system. Key Words video collection; MPEG-4 coding;embedded linux;drviers中圖分類號:TP393 文獻標識碼:B 引言視頻監控系統是安全防範系統的組成部分,它是一種防範能力較強的綜合系統。現今監控系統已經步入了數字化、網路化時代,即視頻從前端映像採集裝置輸出時即為數字訊號,並以網路為傳輸媒介,基於TCP/IP協議,採用流媒體技術實現視頻在網上的多工傳輸。使用嵌入式系統實現遠程視頻監控技術,符合網路化數字化的特點,對公安、安防等行業有著重要的現實意義。視頻監控系統一般採用基於PC機平台+視頻採集卡的形式,該方案系統體積大、成本高,在遠距離、多點系統中實現困難。本設計採用三星公司的S3C2440[1]硬體平台(CPU晶片含有視頻採集介面),軟體平台是Linux-2.4.20作業系統核心,由於Linux作業系統的開放特性、優良的網路支援效能、模組化的結構,較好滿足系統的需要。 1. 系統硬體設計   系統主要由視頻採集和傳輸部分組成。有嵌入式處理器、CMOS映像感應器、儲存空間、乙太網路介面、串口、及電源管理電路。嵌入式處理器是韓國三星公司的基於ARM920T核心的16/32 位RISC嵌入式微處理器(型號:S3C2440),主要面向高性價比、低功耗的應用。為了處理映像資料,CPU的工作頻率可達400MHz。S3C2440的資源套件括LCD控制器,SDRAM控制器,網路攝影機介面,3路串列介面,IIC BUS介面,USB介面,觸控螢幕介面。在處理器豐富資源的基礎上,還進行了相關的擴充,配置了32M Flash ROM和256MB SDRAM。在嵌入式處理器的控制下,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 Control Bus)介面可以方便的設定感應器視窗大小、增益、白平衡校正、曝光控制、飽和度、色調等。由於S3C2440晶片有一個專用的視頻介面,所以CPU可以直接和CMOS映像感應器串連。映像感應器輸出的資料及控制訊號包括

像素時鐘(PCLK)、水平參考(HREF)、幀同步(VSYNC)和資料匯流排(D0-D7),分別和主處理器的相應訊號相連。PCLK與HREF在處理器內部相與後產生有效像素時鐘訊號,在有效時鐘訊號的上升沿或下降沿將資料鎖定[4]。模組和S3C2440介面電路二所示。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下編寫OV9640 CMOS映像感應器驅動,首先要初使化OV9640。通過SCCB匯流排設定OV9640的工作模式,各種參數,分配連續記憶體空間,容量與採集映像的點陣數相匹配。然後用request_irq()函數為OV9640登記中斷,其中斷號為06。當S3C2440捕捉到VSYNC訊號時觸發中斷,把一幀映像資料拷貝到使用者空間。如此反覆,視頻資料來源源不斷的被採集到SDRAM。

我們知道,使用者進程是通過裝置檔案同硬體打交道,對裝置檔案的操作就是一些系統調用。要想把系統調用和裝置驅動程式關聯起來,必須用到一個非常關鍵的資料結構: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,再執行make clean,make。最後把產生的庫拷貝到example目錄下,修改example下的Makefile檔案,編譯下載到目標板上運行即可。

經過測試,XVID的壓縮比是很高的,可達到20:1,最重要的是編碼速度快,壓縮解壓後的映像品質稍有降低,完全可以達到實用的要求。

3. 結束語

利用嵌入式系統實現遠程視頻監控符合數字化、網路化的發展趨勢,具有布線集中,裝置簡單,體積小,成本低等特點,與傳統的視頻監控方案比較有不可比擬的優越性。前端採集部分採用S3C2440微處理器,利用其自身提供的視頻介面,映像採集的速度完全可以達到動態顯示的要求(在400M的時鐘頻率下,QVGA映像可以達到20幀/秒的顯示速率)。本文作者的創新點:採用映像壓縮編碼和網路技術,可實現視頻資料的多工傳輸。監控端採用基於MPEG-4的視頻對象分割方法,利用相鄰幀視頻對象的差異,實現智能警示的功能。該系

統性價比較高,使用方便,值得推廣使用。 4. 參考文獻[1]S3C2440X RISC MICROPROCESSOR date sheet.samsung electronics.2003[2]張積紅,吳強.嵌入式linux研究及其在ARM上的移植.電腦知識與技術,2005,(8)[3]OV9640 version1.0.Omnivision Technologies.2003[4]王曉明,一種MPEG-4視頻採集與傳輸系統的研究與實現,電腦測量與控制,2005,(8)[5]陳福,馬莉等.基於嵌入式系統的視頻映像捕獲研究與實現.微電腦資訊,2005,(12)[6]李駒光,鄭耿.基於嵌入式linux的裝置驅動程式開發(二).電腦編程技巧與維護,2005,(12)[7]ISO/IEC JTC1/SC29/WG11 Document N4668,Overview of the MPEG-4 Standard.March 2002

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.