楊曉姣,黃云霞
(1.成都電子科技大學 光電信息學院,四川 成都 610054;2.成都電子科技大學 抗干擾實驗室,四川 成都 611731)
視頻監(jiān)控系統(tǒng)以其數(shù)字化、網(wǎng)絡(luò)化和智能化等方面的特征廣泛應(yīng)用于各種場合。隨著通信技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,通過網(wǎng)絡(luò)進行重要場所的監(jiān)控越來越引起人們的關(guān)注和重視。傳統(tǒng)的視頻監(jiān)控系統(tǒng)圖像的壓縮解壓都是基于PC機,在穩(wěn)定性,可靠性方面都受到限制。近年來,隨著嵌入式技術(shù)的發(fā)展,嵌入式設(shè)備體積小、集成度高、高效可靠、可移植、功耗低等一系列優(yōu)點使得基于嵌入式的視頻監(jiān)控系統(tǒng)逐漸取代了傳統(tǒng)的視頻監(jiān)控系統(tǒng)。筆者所介紹的嵌入式視頻服務(wù)器是建立在嵌入式WEB服務(wù)器的基礎(chǔ)上,基于AT91RM9200[1]微處理器,采用Linux實時操作系統(tǒng),由專門的視頻芯片接收數(shù)字視頻數(shù)據(jù)完成壓縮編碼,生成MPEG-4碼流,通過內(nèi)部總線傳送到WEB服務(wù)器上,遠程授權(quán)用戶可以通過網(wǎng)絡(luò)瀏覽器觀看WEB上的圖像信息,控制圖像獲取方式。該系統(tǒng)保證了圖像質(zhì)量,客戶端零維護,開發(fā)便捷,成本低廉。
整個系統(tǒng)分為硬件和軟件2個部分。硬件部分分為4個模塊:視頻采集模塊,視頻壓縮編碼模塊,網(wǎng)絡(luò)傳輸模塊和其他輔助功能模塊。系統(tǒng)采用B/S模式。軟件部分分為視頻圖像采集的驅(qū)動程序,WEB服務(wù)器程序,CGI和用戶瀏覽器的網(wǎng)頁設(shè)計4部分。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)Fig.1 Bulk structure of the system
本系統(tǒng)采用Atmel公司的AT91RM9200[2]微處理器。該處理器是高性能,低功耗的32位RISC微處理器,最高主頻為180 MHz,32位外部數(shù)據(jù)總線支持8/16/32位數(shù)據(jù)寬度,可對64 MB空間尋址。內(nèi)部集成豐富的外設(shè)資源,MMU管理單元,16 kB SRAM和128 kB ROM,各種外圍接口,適用本系統(tǒng)的開發(fā)。AT91RM9200微處理器的作用是在系統(tǒng)上電時配置芯片的相關(guān)功能寄存器,正常運行時進行總體控制,如接受視頻數(shù)據(jù)流,配置網(wǎng)絡(luò)接口,實現(xiàn)本地存儲等功能。
本模塊的作用是把模擬視頻轉(zhuǎn)換成數(shù)字視頻,產(chǎn)生符合編碼芯片接口標準的數(shù)字視頻信號。采用的是TI公司的TVP5150低功耗視頻A/D轉(zhuǎn)換芯片。TVP5150支持NTSC/PAL/SECAM 3種格式,可以輸出ITU-R BT.656和ITU-R BT.601兩種信號,考慮到編碼芯片的標準,本系統(tǒng)采用ITU-R BT.656格式8為數(shù)據(jù)串行傳輸。TVP5150的AIPIA為模擬信號輸入端,接收攝像頭的模擬視頻信號輸入。行同步脈沖和場同步脈沖分別對應(yīng)HSYNC和VSYNC,分別連接編碼芯片的HSYNIN和VSYNIN2個引腳,實現(xiàn)圖像的行同步和場同步操作。YOUT[7:0]為數(shù)據(jù)輸出引腳,將數(shù)字視頻信號送到編碼芯片的數(shù)據(jù)接收端。SCL和SDA分別為I2C接口的串行時鐘和數(shù)據(jù)引腳,AT91RM9200對TVP5150的內(nèi)部寄存器的訪問是通過I2C總線實現(xiàn)的。
動態(tài)圖像被數(shù)字化處理成YUV格式,數(shù)據(jù)量非常大。未經(jīng)壓縮的CIF格式的RGB數(shù)據(jù)至少需要58.01 Mb/s[3],因此視頻數(shù)據(jù)在傳輸和處理的過程中必須經(jīng)過壓縮。視頻編碼標準有 MPEG-1,MPEG-2,MPEG-4,M-JPEG 和 H.26x 系列。本系統(tǒng)采用的是MPEG-4[4-5]標準。MPEG(Moving Pictures Experts Group),該專家組成立于1988年,致力于運動圖像的編碼標準化工作。MPEG-4是該專家組研制出來的于1999年正式成為ISO和IEC聯(lián)合制定的國際編碼標準。MPEG-4與其他編碼標準相比,相同比特率下,具有更高的視覺質(zhì)量,可以在低帶寬的信道上傳輸。本系統(tǒng)采用韓國Pentamicro公司的壓縮/解壓芯片 AT2042,AT2042接收經(jīng)過 TVP5150進行 A/D轉(zhuǎn)換的數(shù)字視頻數(shù)據(jù)。AT2042支持視頻壓縮和音頻壓縮標準,支持CBR和VBR兩種碼率。采用ITU-R 656接口標準。工作原理:在AT91RM9200的控制下,要進行壓縮編碼的數(shù)據(jù)經(jīng)AT2042的FIFO口輸入。AT2042的解壓是壓縮的逆過程。本系統(tǒng)中,AT2042的數(shù)據(jù)接收端 VIN[7:0]接收 TVP5150的YOUT[7:0]端輸出的數(shù)據(jù),同時AT2042的HSYNIN和VSYNIN信號分別和TVP5150的HSYN和VSYN相連,實現(xiàn)圖像的行同步和場同步操作。接收來的數(shù)據(jù)送到AT2042的壓縮編碼處理單元,壓縮編碼后送到芯片外部的SDRAM中存儲,通過片內(nèi)的SDRAM控制器可以實現(xiàn)對外部SDRAM的訪問,并通過HPI與AT91RM9200微處理器進行通信,以便遠程監(jiān)控端的實時監(jiān)控。視頻壓縮編碼框圖如圖2所示。
圖2 視頻壓縮編碼框圖Fig.2 Video comperssion coding module
本模塊是采用LAN91C11[6]構(gòu)建嵌入式以太網(wǎng),實現(xiàn)視頻數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)耐?。LAN91C11是SMSC公司推出的快速以太網(wǎng)控制器。芯片上集成MAC和PHY,符合IEEE802.3/802.U-100Base-Tx/10Base-T規(guī)范。AT91RM9200微處理器通過地址、數(shù)據(jù)、控制線和片選信號線對LAN91C11進行通信和控制。網(wǎng)絡(luò)傳輸硬件連接原理圖如圖3所示。AT91RM9200發(fā)送數(shù)據(jù)時,首先置發(fā)送使能信號ETXEN有效。數(shù)據(jù)發(fā)送端ETX[1:0]與 LAN91C11 的 TXD[1:0] 引 腳 相 連 接 。 以AT91RM9200的時鐘信號EXTCK發(fā)送視頻數(shù)據(jù)。數(shù)據(jù)的接收端 ERX[1:0]與 LAN91C11 的 RXD[1:0]引腳相 連 接 ,接收 視頻數(shù)據(jù)。EMDI0和EMDC分別控制芯片的讀寫。數(shù)據(jù)從DMA通道發(fā)送。在發(fā)送數(shù)據(jù)時,首先設(shè)置好傳輸控制寄存器和傳輸傳輸?shù)刂芳拇嫫?,從指定的存儲區(qū)取數(shù)據(jù),并且記錄發(fā)送完的字節(jié)數(shù),數(shù)據(jù)發(fā)送完之后,LAN19C11產(chǎn)生中斷信號,請求DMA中斷,由AT91RM9200處理。
圖3 傳輸網(wǎng)絡(luò)硬件連接圖Fig.3 Hardware connection diagram in the transmission network
該模塊包括Flafh、SDRAM、以太網(wǎng)接口、串口和USB接口。用來實現(xiàn)操作系統(tǒng)內(nèi)核和應(yīng)用程序的存儲,網(wǎng)絡(luò)傳輸,本地存儲和遠程控制。
嵌入式Linux實時操作系統(tǒng),穩(wěn)定、高效、易定制、易剪裁、開源代碼,因此本系統(tǒng)采用Linux操作系統(tǒng)。軟件部分分為Bootloader文件,Linux內(nèi)核文件Linux驅(qū)動和應(yīng)用程序,用戶應(yīng)用程序。這里主要介紹MPEG-4和CGI技術(shù)的程序設(shè)計。
本系統(tǒng)采用MPEG-4標準對視頻圖像進行壓縮編碼。在實現(xiàn)MPEG-4編碼的方式上,有硬件壓縮和軟件壓縮兩種。硬件壓縮就是利用專門的壓縮芯片對視頻信號進行MPEG-4編碼,軟件壓縮就是使用壓縮軟件對視頻信號進行編碼。AT2042支持MPEG-4壓縮標準。實現(xiàn)方法方面就是對其相關(guān)寄存器的配置,包括編碼模式、編碼像素點、編碼幀率和設(shè)置編碼流格式等方面。具體過程:系統(tǒng)上電啟動后,先配置AT2042的相關(guān)寄存器,完成初始化工作后,通過I2C總線對A/D轉(zhuǎn)換芯片TVP5150進行初始化配置。所有的寄存器配置工作完成之后,開始編碼過程。其中MPEG-4數(shù)據(jù)流接收存儲程序有AT2042的數(shù)據(jù)流緩沖器標志信號來控制。緩沖器接收數(shù)據(jù)滿之后置低RISC_INT0,AT91RM9200主控制器通過DMA通道把AT2042發(fā)送過來的碼流通過網(wǎng)絡(luò)通道傳輸?shù)秸埱蟊O(jiān)控視頻圖像的監(jiān)控端。壓縮編碼的流程圖如圖4所示。
在嵌入式Linux環(huán)境下,主要有3種Web服務(wù)器,分別是 httpd、thttpd和 Boa。Httpd功能最弱,不支持 CGI、SSL和認證。本系統(tǒng)需要交互操作,必須使用動態(tài)Web技術(shù),采用Boa。Boa功能強大,支持CGI,支持SSL,支持認證。使用時只需交叉編譯,修改一下配置文件即可。CGI[7]即通用網(wǎng)關(guān)接口,是外部擴展應(yīng)用程序與Web服務(wù)器交互的標準??蛻舳耸褂脼g覽器向服務(wù)器發(fā)送HTTP請求,服務(wù)器響應(yīng)客戶端的請求后,引導(dǎo)腳本程序,對命令解析,將信息提交給后臺——CGI處理。具體到本系統(tǒng),就是PC機端通過瀏覽器輸入服務(wù)器的IP地址,Web服務(wù)器根據(jù)請求進行分析,如果沒有傳來參數(shù),則調(diào)用get-status()函數(shù)取得設(shè)備當前狀態(tài)顯示給瀏覽器。用戶根據(jù)操作界面提示完成相應(yīng)的操作,填寫好表單設(shè)置設(shè)備參數(shù)并提交。CGI解析信息后通過get-status()函數(shù)設(shè)置新狀態(tài),實現(xiàn)交互功能。例如調(diào)節(jié)編碼屬性,對相機控制等。
圖4 壓縮編碼流程圖Fig.4 Compression coding flow chart
CGI的輸入輸出基本語法:
M ETHOD屬性指定將數(shù)據(jù)傳送到Web服務(wù)器的方法,輸入方法有兩種。
1)GET方法。 此方法,表單數(shù)據(jù)會附加在所指向CGI腳本的URL后一起發(fā)送給Web服務(wù)器,Web服務(wù)器將接收到的表單數(shù)據(jù)賦予環(huán)境變量QU ERY-STR NG。
2)POST方法。 POST方法通過使用標準輸入(STDN)將表單數(shù)據(jù)傳送給Web服務(wù)器,Web服務(wù)器啟動指定的腳本,并將用戶提供的數(shù)據(jù)傳入該腳本。
ACTON屬性定義要對表單數(shù)據(jù)進行處理的CGI腳本URL。
CGI輸出:CGI輸出方式是將執(zhí)行結(jié)果送給標準輸出(STDOUT)進行輸出,執(zhí)行結(jié)果必須是瀏覽器能夠顯示的HTML標準格式。流程圖如圖5所示。
CGI可以用shell腳本語言、Fottran、C語言等多種語言編寫。本系統(tǒng)中采用C語言實現(xiàn)CGI的編寫,執(zhí)行速度快,安全性高。
圖5 Web服務(wù)器CGI程序流程圖Fig.5 Web server CGI program flow chart
筆者介紹了基于AT91RM9200微處理器的嵌入式監(jiān)控系統(tǒng)的視頻服務(wù)器設(shè)計,采用A/D轉(zhuǎn)換芯片TVP5150對模擬視頻數(shù)據(jù)進行數(shù)字化處理,生成符合壓縮編碼芯片AT2042接口標準的視頻數(shù)據(jù)流。在AT91RM9100的控制和調(diào)度下,將視頻數(shù)據(jù)發(fā)送到PC端。系統(tǒng)采用低編碼率的MPEG-4編碼標準,CGI技術(shù),實現(xiàn)可靠的圖像質(zhì)量的交互功能。
[1]鄒思軼.嵌入式Linux設(shè)計與應(yīng)用[M].北京:清華大學出版社,2002.
[2]田澤.ARM9嵌入式開發(fā)實驗與實踐[M].北京:北京航空航天大學出版社,2006.
[3]段軍棋,蔣丹.遠程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].電子科技大學學報,2002,31(5):525.DUAN Jun-qi,JIANG Dan.Remote digital monitoring system[J].Journal of UEST of China, 2002,31(5):525.
[4]李鋒垚.基于ARM9的MPEG-4視頻解碼播放系統(tǒng)設(shè)計[M].西安:西北工業(yè)大學出版,2005.
[5]李雙陽.MPEG-4視頻傳輸關(guān)鍵技術(shù)研究[D].西安:西安電子科技大學,2009:5-15.
[6]張石,趙百超,王飛,等.具有遠程監(jiān)控功能的視頻服務(wù)器設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2009,1(9):55-61.ZHANG Shi,ZHAO Bai-chao,WANG Fei,et al.Design of video server with remote monitoring[J].Microcontrollers&Embedded System, 2009,1(9):55-61.
[7]張曦煌,柴志雷.嵌入式Web服務(wù)器中CGI的特點及實現(xiàn)[J].小型微型計算機系統(tǒng),2003,24(11):2046-2048.ZHANG Xi-huang,CHAI Zhi-lei.Characteristic and implementation of CGI in the embedded Web server[J].Journal of Chinese Computer System, 2003,24 (11):2046-2048.