1 引言 在銀行、學校、企事業等公共場所的安全監控中需要大量視頻監控系統。隨著圖像處理技術的發展和計算機網絡的普及,視頻監控系統已經進入數字化、網絡化時代。因此,使用嵌入式技術,開發基于以太網的視頻監控系統具有重要的現實意義。 目前的視頻監控系統普遍采用專用的視頻編解碼芯片,很難適應不斷完善的視頻壓縮算法,不易于升級更新,且成本較高。而且大多數采用MPEG-4 壓縮標準,壓縮率較低,對帶寬的要求高。 本文研制了一種基于以太網的視頻監控系統。采用TI 公司的32 位定點DSPTMS320DM642 為核心處理器,以H.264 為視頻壓縮算法,采用流媒體實時傳輸協議進行視頻傳輸。TMS320DM642(以下簡稱DM642)是一款面向數字多媒體應用的高性能DSP,片內集成了視頻和網絡外設接口,減少了視頻監控終端的成本和開發難度。H.264 是新一代視頻壓縮標準,在同等的圖像質量條件下,H.264 的壓縮率比MPEG-4 高1.5-2 倍,并且引入了面向IP 包的編碼機制,能夠增強網絡適應能力[1]。用軟件實現視頻壓縮算法,比傳統的專用視頻編解碼芯片靈活性強,易于升級更新,且開發周期短。 2 視頻監控系統的設計方案 視頻監控系統是由核心處理器DM642,視頻采集、顯示模塊,網絡接口模塊和本地存儲模塊組成,如圖1所示。 圖1 視頻監控系統框圖 DM642 作為核心處理器,完成圖像的H.264 壓縮、視頻壓縮數據的網絡傳輸、本地存儲和系統流程的控制。DM642 是一款高性能多媒體處理器,在600MHz 的時鐘頻率下,處理速度可達4800MIPS。內部具有256k 字節的二級緩存結構,64 位的外部存儲器接口(EMIF)。可以實時實現多路視頻編碼運算,非常適于開發基于以太網的視頻監控系統[2]。在本系統中,實現了4 通路的視頻輸入接口與1 個通路的視頻輸出接口。攝像頭采集到的模擬視頻信號先送入視頻解碼器(TVP5150),視頻解碼器將采集到的PAL/NTSC 制式的標準模擬視頻信號轉換成BT.656 視頻數據流,傳送給DM642,DM642 對接收的數字信號進行壓縮編碼,將壓縮處理后的數字視頻信號打包,通過以太網將視頻數據傳給遠端服務器,用戶可以通過流媒體服務器遠程監控現場狀況。考慮到視頻預覽和測試的需要,本系統設計了1 路的視頻顯示,將經DM642 壓縮處理的數字視頻流送入視頻編碼器(SAA7121),轉換為標準模擬視頻信號,直接輸出到本地的LCD 顯示器上。 DSP 內部有程序/數據緩存,但容量較小,對于直接處理數據圖像是不夠的, 因此擴展了本地存儲模塊作為外部存儲器空間。大容量的SDRAM 用來暫存原始幀、參考幀和重建幀的數據,FLASH 用來存放應用程序,ATA 硬盤用來錄制視頻圖像。 3 系統的硬件設計 3.1 視頻采集、顯示模塊 視頻采集、顯示模塊主要由攝像頭,視頻解碼芯片TVP5150,視頻編碼芯片SAA7121,LCD 顯示器組成,如圖2 所示。DM642 內部集成了3 個視頻端口VP[2:0],提供了與通用A/D 轉換芯片的無縫接口,因而不需要外加可編程邏輯器件和FIFO 就可以滿足系統設計的要求。每個視頻口被分為上(B)、下(A)2 個通道,可被配置為視頻輸入口或輸出口,所以最多可支持6 路8位BT.656 數字視頻接口。在本系統中,用其中4 路(VP0A、VP1A、VP2A、VP2B)來作為視頻輸入端口,與4 個視頻解碼器TVP5150 相連,采集從TVP5150 輸出的8 位BT.656格式的數字視頻數據。 圖2 視頻采集模塊框圖 TVP5150 是一款高性能視頻解碼器,可將NTSC、PAL 視頻信號轉換成數字色差信號(YUV4:2:2),可以接受2 路復合視頻信號(CVBS)輸入和1 路超級視頻信號(S-Video =Super-Video,Y/C)輸入,輸出格式為 ITU-R BT.656。DM642 通過IIC 總線控制TVP5150的內部寄存器,在本系統中,TVP5150 的IIC 總線數據傳送速率配置為100Kbits/s。來自攝像頭的視頻信號送入視頻解碼器 TVP5150 進行數字化處理,經TVP5150 處理后的數字視頻信號送入DSP 的視頻端口,視頻端口與TVP5150 接口處具有一個大小為2560字節的內部FIFO,其中1280 字節存放亮度數據,剩下的1280 字節存放色度數據。依據視頻端口的內部邏輯,TVP5150 輸出的亮度和色度數據被存儲到相應的FIFO 中。在視頻采集過程中,根據視頻端口內部FIFO 的狀態,使用EDMA 完成視頻數據的讀取,傳入本地存儲器,以供視頻應用程序使用。 系統的 1 路視頻顯示用于本地監控。這1 路視頻輸出與其中1 路視頻輸入復用VP0A通道。視頻編碼器采用Phillips 公司的SAA7121H,將DM642 處理后的8 位BT.656 視頻數據流轉換成標準的模擬視頻信號,輸出給LCD 顯示器。 3.2 網絡接口模塊 網絡接口模塊主要由網絡處理芯片 BCM5221,網絡變壓器BH1102 組成,如圖3 所示。 圖3 網絡接口模塊框圖 由于 DM642 上集成了以太網MAC 接口,所以需要一個物理層網絡處理芯片,本系統采用Broadcom 公司的BCM5221 芯片。BCM5221 是10/100Base-TX 以太網控制器,兼容IEEE802.3 標準,提供MII 接口,可與DM642 的MII 接口對接。BH1102 是Pulse 公司的1:1 隔離變壓器,主要作用是阻抗匹配、波形修復、雜波抑制、信號傳輸以及高電壓隔離。從DM642 傳輸來的數據經BCM5221 轉換為以太網物理層能接收的數據后,經由網絡變壓器,通過RJ-45 接口傳輸到以太網。 4 系統的軟件設計 4.1 系統軟件流程 系統的軟件流程如圖 4 所示。在進入任務調度之前,首先進行以下四個步驟的初始化:(1)DM642 處理器和系統板的初始化:初始化DSP/BIOS 操作系統和芯片支持庫(CSL),設置使用128K 的二級高速緩存,映射到EMIF 的CE0 和CE1 空間,設置DMA 優先級序列長度取最大值,設置二級高速緩存的請求優先級最高。(2)RF-5 模塊的初始化:初始化RF-5 框架中用于內部單元通信和消息傳遞的SCOM 模塊。(3)配置視頻采集驅動并建立一個視頻采集通道。(4)建立一個編碼單元并向RF-5 框架注冊。 圖4 系統軟件流程圖 初始化后,DSP/BIOS 操作系統開始依次對視頻采集任務,圖像壓縮任務和編碼傳輸任務進行調度,這3 個任務的優先級相同,但高于空閑任務的優先級。模塊中各任務之間的消息傳遞是通過RF-5 參考框架中同步通信SCOM 消息來完成的。在視頻采集任務中,主要操作是循環采集一幀圖像,發送消息給圖像壓縮任務并等待傳輸完成消息;在圖像壓縮任務中,主要操作是循環等待視頻采集任務發來的采集完成消息,然后調用H.264 編碼模塊壓縮圖像,當H.264 碼流形成,發送編碼完成消息給碼流傳輸任務;在碼流傳輸任務中進行的操作也是在不斷循環等待編碼任務信號,使用TCP/IP 協議傳輸H.264 碼流,再發送傳輸完成消息給編碼任務。三個任務互相協作,完成圖像的采集、壓縮、傳輸功能。 4.2 H.264 壓縮算法 H.264 壓縮算法的突出特點在于基于宏塊層率失真優化理論,用小尺寸、多模式預測提高空域和時域壓縮率,用整數變換量化提高頻域壓縮率,用增強的熵編碼高效壓縮符號冗余,從而達到在各種開放環境下高壓縮率的設計目標[3]。由于H.264 算法較為復雜,在本設計中,結合DM642 芯片的體系結構,對H.264 編碼程序進行規劃。采用C 語言和匯編語言混合編程,對一些關鍵耗時模塊采用線性匯編語言編寫,以提高代碼效率。 H.264 編碼時需要進行運動估計和運動補償,在數據存儲器中通常保存一幀原始圖像和至少一幀預測圖像,因此編碼時首先要確定輸入的一幀圖像編碼是I 幀還是P 幀,然后采用小幀模式,對圖像進行片組劃分和片劃分,以確定每個宏塊所屬的片。劃分完后,先編碼一個片頭,再對每個宏塊進行編碼,直到編寫完所有的片。宏塊編碼完成后,對重建圖像進行1/4 像素精度插值處理、參考幀緩沖區處理等工作,用于下一幀的高精度的運動估計,至此,編碼一幀的工作完成。 4.3 網絡協議的選擇 由于視頻監控系統對圖像數據的實時性要求較高,同時又允許在性能要求范圍內存在數據錯誤率和丟失率。因此,本系統的傳輸層協議選用UDP 協議。UDP 協議是無連接的傳輸協議,不提供可靠性措施,不必在數據報丟失或出錯時要求服務器再重發,適合于實時性要求高的數據傳輸場合。 但是由于 UDP 存在不可靠性,基于UDP 的應用程序,必須自己解決諸如報文丟失、重復、失序和流量控制等問題。因此,在UDP 協議之上,還必須使用流媒體實時傳輸協議RTP。RTP 協議提供實時的、端到端的數據傳送服務。采用RTP 協議對視頻數據進行封裝,即使在某些包被丟失的情況下也能對其他包進行解碼。RTP 與實時傳輸控制協議RTCP 一起配合使用。RTCP 用于監視網絡的服務質量和數據接收雙方的信息傳遞,提供關于數據傳輸質量的反饋,該功能與其他傳輸協議的流量控制和擁塞控制機制相對應[4]。 由多媒體應用程序生成的視頻數據塊被封裝在 RTP 信息包中,每個RTP 信息包在傳輸層被封裝在UDP 消息段中,然后被封裝在IP 數據包中。在進行軟件設計時,把RTP 執行程序看成是應用程序的一部分。在發送端,應用程序把RTP 信息包發送到UDP 的套接接口(socket interface)。同樣,在接收端,應用程序從套接接口處接收RTP 信息包,并從RTP 信息包中取出視頻數據塊。 5 結束語 對本視頻監控系統在以太網上進行實驗。本監控系統使用C/S 模式,在服務器端主機上安裝一個VC++開發的流媒體播放器,可以同時接收4 路視頻數據流。運行結果表明,本文研制的基于以太網的視頻監控系統可以較好地進行視頻圖像壓縮,并能將壓縮后的視頻數據通過以太網進行實時傳輸。服務器端解碼恢復后的視頻圖像清晰、流暢、沒有抖動現象,效果良好,能夠滿足實時監控的要求。本視頻監控系統可廣泛應用于工業控制、公共場所等視頻監控領域,具有廣泛的應用前景。 |