王中權++王昊++王新蓓
摘要:在日新月異的現代社會,人們對自身以及周邊環境的安全也越來越重視,這時視頻監控以其方便、直觀、豐富的信息內容而被廣泛的應用于各類場所。本文以Linux操作系統和S3C6410開發板為平臺,采用USB視頻攝像頭,并進行bootloader、kernel、根文件系統、H.264視頻編碼庫的配置及移植。實現了在PC機服務器監控終端上進行實時監控和存儲圖片。實驗結果表明,該視頻監控系統穩定,采集圖像清晰。
關鍵詞:視頻監控 Linux H.264
中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2014)12-0005-01
1 硬件系統結構
系統硬件包括了ARM微處理器和外圍硬件設備,在本次設計中我們選擇了三星公司的tiny6410處理器的ARM11系列的S3C6410芯片作為整個視頻監控系統的核心硬件。攝像頭選擇了中星微的301vUSB攝像頭。SDRAM芯片和FLASH芯片是ARM中的主要存儲設備,其中前者為系統運行和臨時數據提供存儲空間,后者中存儲系統運行所需要的代碼、內核以及應用程序等。
2 軟件系統結構
系統軟件采用了先進的B/S軟件架構,按照模塊化的設計方法對整個系統功能進行了設計,不同模塊之間利用接口函數進行數據信息的調用。B/S架構是在C/S架構的基礎上進行設計的。由于系統中視頻信號的壓縮采用了H.264算法,它具備較高的信號編碼效率,對網絡傳輸系統的碼流結構具有較強的適應性,同時增加了數據信息的差錯恢復能力,在視頻信號網絡傳輸中取得了較好的應用效果。視頻數據傳輸采用了RTP/RTCP協議和組播的方式,既保證了數據信息的實時傳送,又保證了視頻數據信息的傳輸質量。在工作過程中,服務端首先對USB攝像頭進行初始化操作,然后由攝像頭完成對視頻信息的采集,通過H.264編碼程序對獲得的視頻信號進行編碼處理,并且將編碼后的視頻數據壓縮成RTP流,通過網絡傳送到客戶端。客戶端接收到RTP流后,先對其進行解碼處理,然后利用相應的播放器對其進行回放操作。
2.1 Bootloader的移植
本次系統開發過程中采用了U-Boot-1.1.6,開發人員將事先編譯好的映像文件由JTAG口存放到Linux系統的開發板中,然后點擊開發板上的復位鍵,就完成了對Linux系統的Bootlaoder移植。
2.2 Linux內核的移植
在Linux系統的源文件common-smdk.c中,找到smdk_default_nand_part語句,對其進行分區操作。然后開發人員可以使用make zImage命令對內核進行相應的編譯,在系統源代碼的根文件目錄下生成相應的映像文件,最后利用串口將生成的映像文件鏈接到S3C6140的FLASH中,即完成了對Linux的移植。
2.3 根文件系統的建立
首先進行BusyBox的編譯處理,它是Linux系統開發過程中常用的一個工具軟件,內存空間較小,主要存放Linux系統中的bin目錄、sbin目錄、usr目錄和相應的Linuxrc文件。在系統開發時,可以在系統的硬件平臺中對其源代碼進行配置,即將busybox-1.13.0進行解壓縮后,將其Makefile文件進行相應的修改。然后對其進行相應的配置,并且將配置好的文件,以.config的名字進行保存。第三進行BusyBox的編譯和安裝,這是系統代碼中就有增加一個_install目錄,將其進行編譯就完成根文件系統的創建。
2.4 H.264優化算法結構
(1)去掉視頻信息中攜帶的冗余程序代碼:系統設計過程中已經完成對H.264編碼算法的設置和優化,所以可將去除視頻信息中攜帶的跟編碼器無關的冗余代碼,如跟多參考幀相關的代碼,降低編碼過程中程序跳轉的次數和需要判斷的條件數量。
(2)正確使用循環和分支操作:本次設計過程中我們將相應代碼進行展開處理,將其分解成內核循環程序和外核循環程序,雖然增加了程序的長度,但是提高了代碼執行速度。
3 應用模塊設計
3.1 USB攝像頭驅動
硬件選型設計中,我們選擇了中星微301v的攝像頭,Linux系統中同樣也包括了該攝像頭的驅動程序,我們只需完成相應參數的配置即可,即將攝像頭驅動程序中的<*> ZC3XX USB Camera Driver語句,修改成301v USB Camera Driver,同時為了能夠使用V4L的要求,還需要對其驅動進行配置,將相關語句修改為V4L USB devices,然后再將驅動程序進行重新編譯,并且將得到的映像文件下載到S3C6140的開發板中。
3.2 視頻采集和編碼模塊的同步
在系統開發過程中設置了兩個緩沖區域,工作過程中輪換進行視頻信號的采集,當采集到的視頻信號填滿一個緩沖區域后,系統就會改變多線程的條件,對當前緩沖區域進行編碼處理,采集的圖像信息轉存到緩沖區域2。同時為了保證監控系統能夠實現對多路視頻信號的壓縮編碼,要將FPGA緩存中的數據通過BT.656的格式進行輸出,然后利用多路視頻解碼芯片將輸出的BT.656格式數據進行YUV656配置,生成相關視頻信號的時序信號,將芯片中緩存的多路視頻數據信息讀出。
4 結語
本文主要對系統驅動程序、采集程序、壓縮程序和傳輸顯示程序進行了測試,給出了相應的測試用例。測試結果表明系統能夠滿足視頻監控系統對實時性的需求,具有較好的界面和功能穩定性。
參考文獻
[1]汪光華.智能安防:視頻監控全面解析與實例分析.北京:機械工業出版社,2012.
[2]王海軍.嵌入式Linux設計與應用教程.上海:上海交通大學出版社,2012.
[3]易慶萍.高校校園視頻監控系統設計與應用.重慶:西南交通大學碩士學位論文,2011.
[4]Quanxi Li,Peiqian Liu,Changyou Li.Research on Embedded Video Monitoring System Based on Linux[C],Computer Engineering and Technology,2009,478-481.
[5]袁毅.基于嵌入式Web服務器的網絡視頻監控.電網技術,2002.
[6]朱秀昌.視頻編碼新標準——H.264.電信科技,2002(12).
[7]陶志強.視頻編碼新標準——H.26L.計算機研究,2003(12).