馬永軍,郭 磊
(天津科技大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,天津 300222)
嵌入式數(shù)字家庭安防視頻采集系統(tǒng)設(shè)計(jì)
馬永軍,郭 磊
(天津科技大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院,天津 300222)
針對安防監(jiān)控系統(tǒng)中視頻采集的需求,設(shè)計(jì)了嵌入式視頻采集系統(tǒng).采用ARM/DSP雙核協(xié)同工作方式,其中ARM采用三星的ARM微處理器S3C2440,主要實(shí)現(xiàn)網(wǎng)絡(luò)傳輸和控制功能;DSP采用專用于視頻處理的芯片TMS320DM 6437,對視頻流進(jìn)行壓縮處理,兩者通過DSP的主機(jī)接口進(jìn)行通信.網(wǎng)絡(luò)傳輸基于RTP協(xié)議,根據(jù)網(wǎng)絡(luò)狀態(tài)調(diào)節(jié)編碼傳輸速率自適應(yīng)網(wǎng)絡(luò)帶寬,實(shí)現(xiàn)面向服務(wù)的QoS控制.實(shí)驗(yàn)表明,系統(tǒng)具有成本低、穩(wěn)定性和實(shí)時(shí)性好、易于擴(kuò)展等優(yōu)點(diǎn),可用于數(shù)字家庭等場所.
安防監(jiān)控;DSP;RTP;QoS控制;數(shù)字家庭
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
隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的發(fā)展,數(shù)字家庭開始走進(jìn)人們的視線.?dāng)?shù)字家庭利用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和微電子技術(shù)把與家庭生活相關(guān)的電器結(jié)合成為一個(gè)有機(jī)整體,可有效與外界進(jìn)行信息交換,優(yōu)化人們的生活方式,節(jié)約時(shí)間,增強(qiáng)家居生活的安全性.家庭安防監(jiān)控系統(tǒng)是數(shù)字家庭的重要組成部分[1].
為了滿足市場日益多樣化的需求,安防監(jiān)控系統(tǒng)正在向數(shù)字化、集成化、網(wǎng)絡(luò)化發(fā)展.在電信網(wǎng)、有線電視網(wǎng)和互聯(lián)網(wǎng)三網(wǎng)融合的趨勢下,視頻傳輸不僅僅局限于互聯(lián)網(wǎng),視頻的終端也不僅局限于PC.未來用戶可以通過移動(dòng)終端隨時(shí)隨地獲得家中的視頻信息[2].因此,視頻采集系統(tǒng)應(yīng)當(dāng)是數(shù)字化的,視頻傳輸應(yīng)當(dāng)基于開放的協(xié)議,能夠?yàn)榧彝ビ脩籼峁┎煌W(wǎng)絡(luò)環(huán)境下的視頻服務(wù).針對用戶網(wǎng)絡(luò)環(huán)境的多樣性,視頻傳輸應(yīng)當(dāng)能夠自動(dòng)適應(yīng)網(wǎng)絡(luò),達(dá)到既保障視頻的流暢性又不會(huì)造成網(wǎng)絡(luò)阻塞.因此,系統(tǒng)應(yīng)當(dāng)實(shí)現(xiàn)QoS(quality of service)控制來保證視頻服務(wù)質(zhì)量.
現(xiàn)有針對個(gè)體家庭的監(jiān)控系統(tǒng)較少,更多是針對工業(yè)、社區(qū)等環(huán)境的安防產(chǎn)品.系統(tǒng)體積大、成本高、穩(wěn)定性差、噪聲大、耗能高,很難通過裁減應(yīng)用到家庭環(huán)境.針對家庭環(huán)境的特點(diǎn),采用嵌入式技術(shù)是更好的選擇.
目前,市場上已有的嵌入式視頻采集方案主要有基于專用視頻圖像芯片的系統(tǒng)和基于TI達(dá)芬奇雙核芯片的系統(tǒng).采用專用處理芯片的系統(tǒng)實(shí)時(shí)性好,但可選芯片少且算法不夠靈活.采用基于TI雙核芯片的系統(tǒng)開發(fā)周期短,但成本偏高,適用于高端市場.本文選用嵌入式處理器芯片加DSP芯片的方案來實(shí)現(xiàn)嵌入式視頻采集系統(tǒng),性價(jià)比較高.DSP端可以利用達(dá)芬奇技術(shù)縮短開發(fā)周期,在嵌入式處理器端可以引出較多接口,外接硬件模塊,方便擴(kuò)展功能.
系統(tǒng)分為通用控制模塊和視頻處理模塊兩部分,結(jié)構(gòu)如圖1所示.
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 System block diagram
通用控制模塊負(fù)責(zé)整個(gè)系統(tǒng)的控制,包括控制擴(kuò)展接口對外通信、網(wǎng)絡(luò)傳輸、啟動(dòng)視頻模塊以及對視頻數(shù)據(jù)的讀取等.通用控制模塊可以通過擴(kuò)展接口完成擴(kuò)展功能,如通過串口控制警報(bào)聲響.網(wǎng)絡(luò)傳輸模塊將視頻流按照通用網(wǎng)絡(luò)協(xié)議格式打包傳輸.人機(jī)交互模塊負(fù)責(zé)鍵盤操作和狀態(tài)信息顯示.
視頻處理模塊接收控制模塊的命令,采集視頻并進(jìn)行相應(yīng)編碼.
用于控制模塊的芯片要求有豐富的接口,以方便功能擴(kuò)展;要有較好的性能,以完成實(shí)時(shí)視頻的傳輸;芯片內(nèi)有充分的資源能夠運(yùn)行嵌入式操作系統(tǒng);有豐富的資料可以縮短開發(fā)周期,減少開發(fā)難度.控制芯片選用S3C2440,其為一款低成本、低功耗、小體積的微控制器.處理器內(nèi)部資源豐富,帶獨(dú)立的16,kB的指令Cache和16,kB數(shù)據(jù)Cache、LCD控制器、RAM控制器、3路URAT、4路DMA、并行I/O口、2路SPI等,節(jié)省了系統(tǒng)成本,消除了系統(tǒng)配置額外器件的需要,為嵌入式系統(tǒng)提供了高效的硬件平臺(tái)[1].
傳輸高質(zhì)量的視頻要求DSP有較好的性能.美國德克薩斯儀器公司(Texas Instruments,簡稱TI)推出的TMS320DM 6437是專門為高性能、低成本視頻應(yīng)用開發(fā)的32位定點(diǎn)處理器.
TMS320DM 6437主頻可達(dá)600,MHz,峰值處理能力高達(dá)4,800,M IPS;采用2級Cache存儲(chǔ)器體系結(jié)構(gòu);擁有功能豐富的視頻處理子系統(tǒng).可支持D1解析度的H.264視頻編碼,而成本則比TI前代DSP數(shù)字媒體處理器下降了50%.其出色的性價(jià)比可以滿足市場對低價(jià)格高質(zhì)量視頻的需求.
TMS320DM 6437的HPI接口是DSP與主機(jī)相連接的一個(gè)并行通信接口,主機(jī)通過HPI可以訪問DSP內(nèi)全部的存儲(chǔ)空間及地址空間映射的外設(shè),進(jìn)而控制DSP實(shí)現(xiàn)數(shù)據(jù)交換.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位數(shù)據(jù)線D[15:0]和9條控制線連接.HR/是HPI接口的讀/寫使能信號(hào),、是片選信號(hào),三者在DSP的內(nèi)部,經(jīng)過一個(gè)邏輯門作為數(shù)據(jù)的讀/寫控制邏輯;是就緒信號(hào),通過控制可以實(shí)現(xiàn)主機(jī)與DSP的握手通信;為DSP對主機(jī)的中斷請求輸出;HHWL用于識(shí)別高低半字;是地址選通信號(hào);HCNTL0/1是HPI接口的功能選擇位[3].
S3C2440與TMS320DM 6437通信時(shí)將TMS320 DM 6437看作外部設(shè)備,通過設(shè)置TMS320DM 6437上的HPI接口寄存器來訪問TMS320DM 6437的內(nèi)部存儲(chǔ)空間.由于S3C2440上運(yùn)行Linux操作系統(tǒng),所以需要編寫字符型驅(qū)動(dòng)來完成對HPI的讀寫.
通過HPI開始讀寫之前要先完成對其三個(gè)寄存器HPIC、HPIA和HPID的設(shè)置.設(shè)置HPIC中的HWOB位,明確MSB16與LSB16的傳輸次序,保證16位的HPI接口和32位的S3C2440數(shù)據(jù)傳輸?shù)恼_性.HPIA里面存放的是主機(jī)要訪問的DSP內(nèi)存空間的地址,HPID是HPIA對應(yīng)地址內(nèi)的數(shù)據(jù).圖3是驅(qū)動(dòng)程序中的數(shù)據(jù)讀取流程.
圖3 HPI驅(qū)動(dòng)讀數(shù)據(jù)的流程圖Fig.3 HPI driver read data program flow
TMS320DM 6437是系統(tǒng)視頻處理模塊采用的中心處理器件,是基于TI第三代高性能VLIW(超長指令字)的面向數(shù)字多媒體應(yīng)用的DSP.TI提供TMS320DM 6437數(shù)字視頻開發(fā)平臺(tái)(DVDP),為開發(fā)人員提供了在設(shè)計(jì)全過程中可使用的完整平臺(tái),使開發(fā)人員能夠全面利用達(dá)芬奇軟件與開發(fā)基礎(chǔ)局端,簡化視頻、影像、話音與音頻應(yīng)用的設(shè)計(jì)工作,從而加速了各種應(yīng)用的數(shù)字視頻開發(fā)工作,進(jìn)一步推動(dòng)了DSP 技術(shù)在新一代數(shù)字視頻領(lǐng)域的應(yīng)用.
系統(tǒng)采用H.264作為編碼器算法.H.264是一種高性能的編解碼技術(shù).它吸收了以往標(biāo)準(zhǔn)的優(yōu)點(diǎn),在此基礎(chǔ)上引入了如幀內(nèi)預(yù)測、多參考幀、多塊類型、整數(shù)變換等新的壓縮技術(shù),使用了高精度的亞像素運(yùn)動(dòng)矢量(1/4、1/8)和新一代的環(huán)路濾波器,使壓縮性能大大提高.視頻的編譯碼采用分層結(jié)構(gòu)設(shè)計(jì):視頻編碼層(VCL)負(fù)責(zé)高效的編碼壓縮;網(wǎng)絡(luò)適配層(NAL)負(fù)責(zé)數(shù)據(jù)的打包傳輸.H.264這種結(jié)構(gòu)使得其具有高壓縮、高質(zhì)量的圖像同時(shí)還具有良好的網(wǎng)絡(luò)親和性[4].
本系統(tǒng)通過調(diào)用Codec Engine(編解碼引擎)來實(shí)現(xiàn)視頻數(shù)據(jù)的編碼.只需要對Codec Engine提供的API加以應(yīng)用就可以控制和使用H.264編碼器.
TI在達(dá)芬奇技術(shù)體系中引入了Codec Engine.從應(yīng)用的角度看,Codec Engine就是一系列API函數(shù)的集合.這些函數(shù)遵從統(tǒng)一的算法結(jié)構(gòu)框架,保證了算法的通用性和可移植性.在視頻應(yīng)用中,一般使用多媒體算法標(biāo)準(zhǔn)xDM.xDM把多媒體編碼算法分為4類:視頻、圖像、語音和音頻,每種編碼類都有一組API函數(shù).利用Codec Engine實(shí)現(xiàn)視頻編碼,只需調(diào)用相應(yīng)算法API,改變算法只需修改配置,不用更改應(yīng)用程序[5].利用Codec Engine實(shí)現(xiàn)H.264視頻壓縮編碼的程序流程如圖4所示.
圖4 H.264壓縮編碼的程序流程圖Fig.4 H.264 com pression program flow
視頻的傳輸基于實(shí)時(shí)傳輸協(xié)議(RTP),該協(xié)議包括RTP和RTCP兩種報(bào)文:其中RTP負(fù)責(zé)傳輸實(shí)時(shí)數(shù)據(jù);RTCP提供網(wǎng)絡(luò)狀態(tài)和服務(wù)質(zhì)量的反饋.
在S3C2440上運(yùn)行嵌入式Linux操作系統(tǒng),移植了開源的RTP庫JRTPLIB,實(shí)現(xiàn)視頻流的RTP打包和傳輸.JRTPLIB是用C++編寫的面向?qū)ο蟮母叨确庋b的庫,它完全遵循RFC1889設(shè)計(jì).JRTPLIB自動(dòng)對到達(dá)的RTCP數(shù)據(jù)報(bào)進(jìn)行處理,并且會(huì)在需要的時(shí)候發(fā)送RTCP數(shù)據(jù)報(bào),從而能夠確保整個(gè)會(huì)話過程的正確性.使用JRTPLIB實(shí)現(xiàn)視頻傳輸前,首先需要生成RTPSession類的實(shí)例表示此次會(huì)話,然后設(shè)置會(huì)話和傳輸參數(shù),包括時(shí)間戳、最大包長度、本地端口等,接著指定接收端的IP和端口.發(fā)送和接收流程見圖5.
圖5 RTP包發(fā)送和接收流程圖Fig.5 Send and receive RTP packets flow
在發(fā)送數(shù)據(jù)包時(shí)要先分包再發(fā)包.這是因?yàn)橐曨l數(shù)據(jù)包通常比較大,而以太網(wǎng)的MTU(最大傳輸單元)是1,500字節(jié),當(dāng)數(shù)據(jù)包大于1,500字節(jié)時(shí)會(huì)在IP層對其拆分,形成IP碎片包,不利于接收重組.故需要主動(dòng)分包,并在包頭中設(shè)置標(biāo)志確定所分的包屬于同一幀.在接收端根據(jù)這個(gè)標(biāo)志重組.考慮到RTP的包頭和IP包的包頭需要占用一定字節(jié)數(shù),預(yù)留100字節(jié),當(dāng)數(shù)據(jù)包大于1,400字節(jié)時(shí)主動(dòng)分包.
在Internet這種無法保證QoS的網(wǎng)絡(luò)環(huán)境中,視頻傳輸需要解決以下問題:如何適應(yīng)網(wǎng)絡(luò)帶寬的變化;如何避免擁塞發(fā)生;發(fā)生擁塞后,如何迅速恢復(fù).這些問題需要通過在傳輸過程中實(shí)現(xiàn)QoS控制來解決.
本系統(tǒng)的QoS控制是基于發(fā)送端的.根據(jù)網(wǎng)絡(luò)狀態(tài)的不同,調(diào)節(jié)發(fā)送端編碼器的輸出碼率,達(dá)到傳輸控制的目的[6].
采用基于丟包率的評價(jià)方法評價(jià)網(wǎng)絡(luò)狀態(tài).以丟包率作為網(wǎng)絡(luò)狀態(tài)標(biāo)志,是目前多數(shù)算法采用的方式,此方法較成熟,運(yùn)算復(fù)雜度小,易于實(shí)現(xiàn).RTCP報(bào)文中含有最近時(shí)間包丟失率等統(tǒng)計(jì)資料,但不能直接用來判斷網(wǎng)絡(luò)狀態(tài).因?yàn)镽TCP報(bào)文會(huì)由于網(wǎng)絡(luò)擁塞而產(chǎn)生延遲,其中包含的丟失率具有滯后性,不能準(zhǔn)確反映目前網(wǎng)絡(luò)狀態(tài).并且,網(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定性會(huì)使RTCP報(bào)文中的丟包率產(chǎn)生較大波動(dòng).
為了解決以上問題,采用式(1),根據(jù)RTCP報(bào)文中的丟包率來預(yù)測下一時(shí)刻的丟包率,以便在擁塞前采取措施使編碼模塊調(diào)整傳輸速率,防止服務(wù)質(zhì)量突然大幅下降.計(jì)算丟包率公式如下:
根據(jù)丟包率判斷網(wǎng)絡(luò)狀態(tài):當(dāng)預(yù)測丟包率大于上限時(shí),認(rèn)為網(wǎng)絡(luò)阻塞,迅速降低編碼速率;預(yù)測丟包率在上限和下限之間時(shí),認(rèn)為網(wǎng)絡(luò)滿載,這時(shí)無需改變;預(yù)測丟包率小于下限時(shí),認(rèn)為網(wǎng)絡(luò)輕載.可適當(dāng)增加編碼速率.計(jì)算編碼傳輸速率的公式如下[7]:
式中:λ是速率的線性增量;ω是速率的乘性減小因子;Bitmax和Bitmin是編碼速率的上限和下限;hP和lP是丟包率的上限和下限.當(dāng)預(yù)測丟包率大于上限時(shí),認(rèn)為網(wǎng)絡(luò)擁塞,迅速降低編碼傳輸速率.當(dāng)預(yù)測丟包率小于下限時(shí),認(rèn)為網(wǎng)絡(luò)輕載,逐步增高傳輸速率.以上參數(shù)根據(jù)具體網(wǎng)絡(luò)環(huán)境設(shè)置.試驗(yàn)中取λ=5,kb/s,ω=0.8,Bitmax=1,Mb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.
式(2)體現(xiàn)的反饋擁塞控制策略,能使整個(gè)傳輸系統(tǒng)根據(jù)帶寬動(dòng)態(tài)地改變碼率,充分利用當(dāng)前帶寬.當(dāng)網(wǎng)絡(luò)擁塞時(shí),發(fā)送速率乘性減小,迅速降低對帶寬的要求,同時(shí)設(shè)置Bitmin,保證發(fā)送端所需的最小帶寬;當(dāng)網(wǎng)絡(luò)輕載時(shí),線性增加發(fā)送碼率.與乘性增加碼率的方法相比,這種保守的比特率增加方法,可避免引起較大的波動(dòng),從而避免網(wǎng)絡(luò)阻塞.同時(shí)設(shè)置最大發(fā)送碼率Bitmax,保證不會(huì)過度占用帶寬.這種類似TCP擁塞控制中的AIMD策略(addictive increase multiplicative decrease)縮短了實(shí)時(shí)傳輸系統(tǒng)處于擁塞狀態(tài)下的時(shí)間,進(jìn)一步降低丟包率和延時(shí),為用戶提供良好的服務(wù)質(zhì)量.
在ARM端計(jì)算出編碼傳輸速率后通過HPI接口傳遞給DSP,DSP接收到后重新初始化編碼器,改變編碼輸出速率.系統(tǒng)的視頻傳輸控制模型見圖6.
圖6 視頻傳輸控制模型Fig.6 Video transm ission control model
實(shí)驗(yàn)采用局域網(wǎng)作為測試環(huán)境.利用工具在系統(tǒng)運(yùn)行時(shí)不停發(fā)送TCP包模擬網(wǎng)絡(luò)負(fù)載.在實(shí)驗(yàn)中采用25幀/s傳輸,網(wǎng)絡(luò)擁塞時(shí)通過設(shè)置編碼器的輸出速率來改變編碼器的量化值從而降低視頻質(zhì)量以保證視頻的連續(xù)性.實(shí)驗(yàn)中取λ=5,kb/s,ω=0.8,Bitmax=1 000 kb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.視頻的分辨率為320像素×240像素.編碼速率和丟包率實(shí)驗(yàn)結(jié)果見表1.
表1 編碼速率和包丟失率的實(shí)驗(yàn)數(shù)據(jù)Tab.1 Code rate and packet loss rate
可以看出,在編碼速率較低時(shí)丟包率低,隨著編碼速率的升高,網(wǎng)絡(luò)帶寬減小,負(fù)載增加,丟包率隨之增加,并有加速惡化的趨勢;系統(tǒng)采用自適應(yīng)算法,初始速率為100,kb/s,并且逐步增加.當(dāng)速率大于800,kb/s時(shí),網(wǎng)絡(luò)阻塞,畫面出現(xiàn)停頓,丟包率大于設(shè)定的上限值,算法可以有效地調(diào)節(jié)編碼速率回至800,kb/s及其以下.不同編碼速率下的視頻圖像效果見圖7.
圖7 視頻傳輸圖像對比Fig.7 Video transm ission im age com pare
結(jié)合家庭安防環(huán)境的特點(diǎn),結(jié)合嵌入式技術(shù)的優(yōu)勢,采用ARM和DSP雙CPU構(gòu)建的嵌入式視頻采集平臺(tái),將二者的長處有機(jī)結(jié)合起來,具有功耗低、擴(kuò)展性強(qiáng)、視頻畫面清晰流暢等優(yōu)點(diǎn).網(wǎng)絡(luò)傳輸采用的QoS控制機(jī)制有效地保證了視頻傳輸?shù)姆?wù)質(zhì)量.在未來三網(wǎng)融合的趨勢下,網(wǎng)絡(luò)接入方式多樣化,能夠根據(jù)不同的網(wǎng)絡(luò)實(shí)現(xiàn)自適應(yīng)傳輸來保證服務(wù)質(zhì)量顯得尤為重要.
[1] 馮承文,徐斌,徐靜. 數(shù)字家庭概述[J]. 家電科技,2007(1):8–9.
[2] 郭炎生. 從近年來廣播電視的發(fā)展看三網(wǎng)融合[C]//中國衛(wèi)星應(yīng)用大會(huì)會(huì)議文集. 北京:中國通信學(xué)會(huì),2009:147–153.
[3] 何劍鋒,何月順,葉志翔. 嵌入式Linux下ARM/DSP通信接口設(shè)計(jì)及驅(qū)動(dòng)開發(fā)[J]. 儀表技術(shù)與傳感器,2009(5):47–49.
[4] 張旭東. TI DSP 在視頻傳輸和處理中的應(yīng)用[M]. 北京:電子工業(yè)出版社,2009:151–158.
[5] 郭波,樊丁,彭凱. 基于DaVinci技術(shù)的嵌入式視頻監(jiān)控系統(tǒng)[J]. 測控技術(shù),2009,28(10):82–84.
[6] 潘峰. Internet上基于兩端的流媒體QoS控制[J]. 計(jì)算機(jī)應(yīng)用及軟件,2009,26(4):212–214.
[7] 朱利,周俊輝,鄭守淇,等. 基于RTT的自適應(yīng)擁塞控制研究[J]. 計(jì)算機(jī)學(xué)報(bào),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
天津市科技支撐計(jì)劃重點(diǎn)項(xiàng)目(08ZCKFGX00600);天津市高等學(xué)??萍及l(fā)展基金項(xiàng)目(20061011)
馬永軍(1970—),男,吉林長春人,教授,yjma@tust.edu.cn.