馬永軍,郭 磊
(天津科技大學計算機科學與信息工程學院,天津 300222)
嵌入式數字家庭安防視頻采集系統設計
馬永軍,郭 磊
(天津科技大學計算機科學與信息工程學院,天津 300222)
針對安防監控系統中視頻采集的需求,設計了嵌入式視頻采集系統.采用ARM/DSP雙核協同工作方式,其中ARM采用三星的ARM微處理器S3C2440,主要實現網絡傳輸和控制功能;DSP采用專用于視頻處理的芯片TMS320DM 6437,對視頻流進行壓縮處理,兩者通過DSP的主機接口進行通信.網絡傳輸基于RTP協議,根據網絡狀態調節編碼傳輸速率自適應網絡帶寬,實現面向服務的QoS控制.實驗表明,系統具有成本低、穩定性和實時性好、易于擴展等優點,可用于數字家庭等場所.
安防監控;DSP;RTP;QoS控制;數字家庭
Abstract:For the requirements of video capture in security monitoring system,an embedded video capture system was proposed. ARM/DSP dual-core collaborative work was adopted,in which Samsung's ARM processor S3C2440 was used for network transmission and control,DSP processing chip TMS320DM 6437 was used for video processing,the two cores communicate through the HPI. RTP based network transm ission adjust coding transm ission rate according to network state for adaptive network bandw idth,which realize service-oriented QoS. Experiments show the system has the advantage of low cost,good stability and real-time,scalability and so on and can be used for digital home and other place.
Keywords:security monitoring;DSP;RTP;QoS control;digital home
隨著網絡技術和信息技術的發展,數字家庭開始走進人們的視線.數字家庭利用計算機技術、網絡技術和微電子技術把與家庭生活相關的電器結合成為一個有機整體,可有效與外界進行信息交換,優化人們的生活方式,節約時間,增強家居生活的安全性.家庭安防監控系統是數字家庭的重要組成部分[1].
為了滿足市場日益多樣化的需求,安防監控系統正在向數字化、集成化、網絡化發展.在電信網、有線電視網和互聯網三網融合的趨勢下,視頻傳輸不僅僅局限于互聯網,視頻的終端也不僅局限于PC.未來用戶可以通過移動終端隨時隨地獲得家中的視頻信息[2].因此,視頻采集系統應當是數字化的,視頻傳輸應當基于開放的協議,能夠為家庭用戶提供不同網絡環境下的視頻服務.針對用戶網絡環境的多樣性,視頻傳輸應當能夠自動適應網絡,達到既保障視頻的流暢性又不會造成網絡阻塞.因此,系統應當實現QoS(quality of service)控制來保證視頻服務質量.
現有針對個體家庭的監控系統較少,更多是針對工業、社區等環境的安防產品.系統體積大、成本高、穩定性差、噪聲大、耗能高,很難通過裁減應用到家庭環境.針對家庭環境的特點,采用嵌入式技術是更好的選擇.
目前,市場上已有的嵌入式視頻采集方案主要有基于專用視頻圖像芯片的系統和基于TI達芬奇雙核芯片的系統.采用專用處理芯片的系統實時性好,但可選芯片少且算法不夠靈活.采用基于TI雙核芯片的系統開發周期短,但成本偏高,適用于高端市場.本文選用嵌入式處理器芯片加DSP芯片的方案來實現嵌入式視頻采集系統,性價比較高.DSP端可以利用達芬奇技術縮短開發周期,在嵌入式處理器端可以引出較多接口,外接硬件模塊,方便擴展功能.
系統分為通用控制模塊和視頻處理模塊兩部分,結構如圖1所示.

圖1 系統結構框圖Fig.1 System block diagram
通用控制模塊負責整個系統的控制,包括控制擴展接口對外通信、網絡傳輸、啟動視頻模塊以及對視頻數據的讀取等.通用控制模塊可以通過擴展接口完成擴展功能,如通過串口控制警報聲響.網絡傳輸模塊將視頻流按照通用網絡協議格式打包傳輸.人機交互模塊負責鍵盤操作和狀態信息顯示.
視頻處理模塊接收控制模塊的命令,采集視頻并進行相應編碼.
用于控制模塊的芯片要求有豐富的接口,以方便功能擴展;要有較好的性能,以完成實時視頻的傳輸;芯片內有充分的資源能夠運行嵌入式操作系統;有豐富的資料可以縮短開發周期,減少開發難度.控制芯片選用S3C2440,其為一款低成本、低功耗、小體積的微控制器.處理器內部資源豐富,帶獨立的16,kB的指令Cache和16,kB數據Cache、LCD控制器、RAM控制器、3路URAT、4路DMA、并行I/O口、2路SPI等,節省了系統成本,消除了系統配置額外器件的需要,為嵌入式系統提供了高效的硬件平臺[1].
傳輸高質量的視頻要求DSP有較好的性能.美國德克薩斯儀器公司(Texas Instruments,簡稱TI)推出的TMS320DM 6437是專門為高性能、低成本視頻應用開發的32位定點處理器.
TMS320DM 6437主頻可達600,MHz,峰值處理能力高達4,800,M IPS;采用2級Cache存儲器體系結構;擁有功能豐富的視頻處理子系統.可支持D1解析度的H.264視頻編碼,而成本則比TI前代DSP數字媒體處理器下降了50%.其出色的性價比可以滿足市場對低價格高質量視頻的需求.
TMS320DM 6437的HPI接口是DSP與主機相連接的一個并行通信接口,主機通過HPI可以訪問DSP內全部的存儲空間及地址空間映射的外設,進而控制DSP實現數據交換.TMS320DM 6437與S3C2440的接口如圖2所示.

圖2 S3C2440和DSPTMS320DM 6437硬件接口Fig.2 Hardware connection between S3C2440 and Fig.2工 TMS 320DM 6437
TMS320DM 6437的HPI接口是16位的,與ARM,S3C2440通過16位數據線D[15:0]和9條控制線連接.HR/是HPI接口的讀/寫使能信號,、是片選信號,三者在DSP的內部,經過一個邏輯門作為數據的讀/寫控制邏輯;是就緒信號,通過控制可以實現主機與DSP的握手通信;為DSP對主機的中斷請求輸出;HHWL用于識別高低半字;是地址選通信號;HCNTL0/1是HPI接口的功能選擇位[3].
S3C2440與TMS320DM 6437通信時將TMS320 DM 6437看作外部設備,通過設置TMS320DM 6437上的HPI接口寄存器來訪問TMS320DM 6437的內部存儲空間.由于S3C2440上運行Linux操作系統,所以需要編寫字符型驅動來完成對HPI的讀寫.
通過HPI開始讀寫之前要先完成對其三個寄存器HPIC、HPIA和HPID的設置.設置HPIC中的HWOB位,明確MSB16與LSB16的傳輸次序,保證16位的HPI接口和32位的S3C2440數據傳輸的正確性.HPIA里面存放的是主機要訪問的DSP內存空間的地址,HPID是HPIA對應地址內的數據.圖3是驅動程序中的數據讀取流程.

圖3 HPI驅動讀數據的流程圖Fig.3 HPI driver read data program flow
TMS320DM 6437是系統視頻處理模塊采用的中心處理器件,是基于TI第三代高性能VLIW(超長指令字)的面向數字多媒體應用的DSP.TI提供TMS320DM 6437數字視頻開發平臺(DVDP),為開發人員提供了在設計全過程中可使用的完整平臺,使開發人員能夠全面利用達芬奇軟件與開發基礎局端,簡化視頻、影像、話音與音頻應用的設計工作,從而加速了各種應用的數字視頻開發工作,進一步推動了DSP 技術在新一代數字視頻領域的應用.
系統采用H.264作為編碼器算法.H.264是一種高性能的編解碼技術.它吸收了以往標準的優點,在此基礎上引入了如幀內預測、多參考幀、多塊類型、整數變換等新的壓縮技術,使用了高精度的亞像素運動矢量(1/4、1/8)和新一代的環路濾波器,使壓縮性能大大提高.視頻的編譯碼采用分層結構設計:視頻編碼層(VCL)負責高效的編碼壓縮;網絡適配層(NAL)負責數據的打包傳輸.H.264這種結構使得其具有高壓縮、高質量的圖像同時還具有良好的網絡親和性[4].
本系統通過調用Codec Engine(編解碼引擎)來實現視頻數據的編碼.只需要對Codec Engine提供的API加以應用就可以控制和使用H.264編碼器.
TI在達芬奇技術體系中引入了Codec Engine.從應用的角度看,Codec Engine就是一系列API函數的集合.這些函數遵從統一的算法結構框架,保證了算法的通用性和可移植性.在視頻應用中,一般使用多媒體算法標準xDM.xDM把多媒體編碼算法分為4類:視頻、圖像、語音和音頻,每種編碼類都有一組API函數.利用Codec Engine實現視頻編碼,只需調用相應算法API,改變算法只需修改配置,不用更改應用程序[5].利用Codec Engine實現H.264視頻壓縮編碼的程序流程如圖4所示.

圖4 H.264壓縮編碼的程序流程圖Fig.4 H.264 com pression program flow
視頻的傳輸基于實時傳輸協議(RTP),該協議包括RTP和RTCP兩種報文:其中RTP負責傳輸實時數據;RTCP提供網絡狀態和服務質量的反饋.
在S3C2440上運行嵌入式Linux操作系統,移植了開源的RTP庫JRTPLIB,實現視頻流的RTP打包和傳輸.JRTPLIB是用C++編寫的面向對象的高度封裝的庫,它完全遵循RFC1889設計.JRTPLIB自動對到達的RTCP數據報進行處理,并且會在需要的時候發送RTCP數據報,從而能夠確保整個會話過程的正確性.使用JRTPLIB實現視頻傳輸前,首先需要生成RTPSession類的實例表示此次會話,然后設置會話和傳輸參數,包括時間戳、最大包長度、本地端口等,接著指定接收端的IP和端口.發送和接收流程見圖5.

圖5 RTP包發送和接收流程圖Fig.5 Send and receive RTP packets flow
在發送數據包時要先分包再發包.這是因為視頻數據包通常比較大,而以太網的MTU(最大傳輸單元)是1,500字節,當數據包大于1,500字節時會在IP層對其拆分,形成IP碎片包,不利于接收重組.故需要主動分包,并在包頭中設置標志確定所分的包屬于同一幀.在接收端根據這個標志重組.考慮到RTP的包頭和IP包的包頭需要占用一定字節數,預留100字節,當數據包大于1,400字節時主動分包.
在Internet這種無法保證QoS的網絡環境中,視頻傳輸需要解決以下問題:如何適應網絡帶寬的變化;如何避免擁塞發生;發生擁塞后,如何迅速恢復.這些問題需要通過在傳輸過程中實現QoS控制來解決.
本系統的QoS控制是基于發送端的.根據網絡狀態的不同,調節發送端編碼器的輸出碼率,達到傳輸控制的目的[6].
采用基于丟包率的評價方法評價網絡狀態.以丟包率作為網絡狀態標志,是目前多數算法采用的方式,此方法較成熟,運算復雜度小,易于實現.RTCP報文中含有最近時間包丟失率等統計資料,但不能直接用來判斷網絡狀態.因為RTCP報文會由于網絡擁塞而產生延遲,其中包含的丟失率具有滯后性,不能準確反映目前網絡狀態.并且,網絡傳輸的不穩定性會使RTCP報文中的丟包率產生較大波動.
為了解決以上問題,采用式(1),根據RTCP報文中的丟包率來預測下一時刻的丟包率,以便在擁塞前采取措施使編碼模塊調整傳輸速率,防止服務質量突然大幅下降.計算丟包率公式如下:

根據丟包率判斷網絡狀態:當預測丟包率大于上限時,認為網絡阻塞,迅速降低編碼速率;預測丟包率在上限和下限之間時,認為網絡滿載,這時無需改變;預測丟包率小于下限時,認為網絡輕載.可適當增加編碼速率.計算編碼傳輸速率的公式如下[7]:

式中:λ是速率的線性增量;ω是速率的乘性減小因子;Bitmax和Bitmin是編碼速率的上限和下限;hP和lP是丟包率的上限和下限.當預測丟包率大于上限時,認為網絡擁塞,迅速降低編碼傳輸速率.當預測丟包率小于下限時,認為網絡輕載,逐步增高傳輸速率.以上參數根據具體網絡環境設置.試驗中取λ=5,kb/s,ω=0.8,Bitmax=1,Mb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.
式(2)體現的反饋擁塞控制策略,能使整個傳輸系統根據帶寬動態地改變碼率,充分利用當前帶寬.當網絡擁塞時,發送速率乘性減小,迅速降低對帶寬的要求,同時設置Bitmin,保證發送端所需的最小帶寬;當網絡輕載時,線性增加發送碼率.與乘性增加碼率的方法相比,這種保守的比特率增加方法,可避免引起較大的波動,從而避免網絡阻塞.同時設置最大發送碼率Bitmax,保證不會過度占用帶寬.這種類似TCP擁塞控制中的AIMD策略(addictive increase multiplicative decrease)縮短了實時傳輸系統處于擁塞狀態下的時間,進一步降低丟包率和延時,為用戶提供良好的服務質量.
在ARM端計算出編碼傳輸速率后通過HPI接口傳遞給DSP,DSP接收到后重新初始化編碼器,改變編碼輸出速率.系統的視頻傳輸控制模型見圖6.

圖6 視頻傳輸控制模型Fig.6 Video transm ission control model
實驗采用局域網作為測試環境.利用工具在系統運行時不停發送TCP包模擬網絡負載.在實驗中采用25幀/s傳輸,網絡擁塞時通過設置編碼器的輸出速率來改變編碼器的量化值從而降低視頻質量以保證視頻的連續性.實驗中取λ=5,kb/s,ω=0.8,Bitmax=1 000 kb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.視頻的分辨率為320像素×240像素.編碼速率和丟包率實驗結果見表1.

表1 編碼速率和包丟失率的實驗數據Tab.1 Code rate and packet loss rate
可以看出,在編碼速率較低時丟包率低,隨著編碼速率的升高,網絡帶寬減小,負載增加,丟包率隨之增加,并有加速惡化的趨勢;系統采用自適應算法,初始速率為100,kb/s,并且逐步增加.當速率大于800,kb/s時,網絡阻塞,畫面出現停頓,丟包率大于設定的上限值,算法可以有效地調節編碼速率回至800,kb/s及其以下.不同編碼速率下的視頻圖像效果見圖7.

圖7 視頻傳輸圖像對比Fig.7 Video transm ission im age com pare
結合家庭安防環境的特點,結合嵌入式技術的優勢,采用ARM和DSP雙CPU構建的嵌入式視頻采集平臺,將二者的長處有機結合起來,具有功耗低、擴展性強、視頻畫面清晰流暢等優點.網絡傳輸采用的QoS控制機制有效地保證了視頻傳輸的服務質量.在未來三網融合的趨勢下,網絡接入方式多樣化,能夠根據不同的網絡實現自適應傳輸來保證服務質量顯得尤為重要.
[1] 馮承文,徐斌,徐靜. 數字家庭概述[J]. 家電科技,2007(1):8–9.
[2] 郭炎生. 從近年來廣播電視的發展看三網融合[C]//中國衛星應用大會會議文集. 北京:中國通信學會,2009:147–153.
[3] 何劍鋒,何月順,葉志翔. 嵌入式Linux下ARM/DSP通信接口設計及驅動開發[J]. 儀表技術與傳感器,2009(5):47–49.
[4] 張旭東. TI DSP 在視頻傳輸和處理中的應用[M]. 北京:電子工業出版社,2009:151–158.
[5] 郭波,樊丁,彭凱. 基于DaVinci技術的嵌入式視頻監控系統[J]. 測控技術,2009,28(10):82–84.
[6] 潘峰. Internet上基于兩端的流媒體QoS控制[J]. 計算機應用及軟件,2009,26(4):212–214.
[7] 朱利,周俊輝,鄭守淇,等. 基于RTT的自適應擁塞控制研究[J]. 計算機學報,2000,23(7):705–710.
Design of Embedded Digital Home Security Video Capture System
MA Yong-jun,GUO Lei
(College of Computer Science and Information Engineering,Tianjin University of Science & Technology,Tianjin 300222,China)
TP368
A
1672-6510(2011)02-0065-05
2010–10–21;
2010–12–20
天津市科技支撐計劃重點項目(08ZCKFGX00600);天津市高等學校科技發展基金項目(20061011)
馬永軍(1970—),男,吉林長春人,教授,yjma@tust.edu.cn.