鄧 娜,田增山,袁正午
(重慶郵電大學(xué) 無線定位與空間測(cè)量研究所,重慶400065)
基于達(dá)芬奇技術(shù)的視頻監(jiān)控系統(tǒng)設(shè)計(jì)*
鄧娜,田增山,袁正午
(重慶郵電大學(xué) 無線定位與空間測(cè)量研究所,重慶400065)
結(jié)合實(shí)際應(yīng)用及多媒體技術(shù)的發(fā)展趨勢(shì),設(shè)計(jì)了一套以TMS320DM6467為核心的硬件平臺(tái),并借助嵌入式Linux為軟件核心的多通道視頻監(jiān)控系統(tǒng)。系統(tǒng)采用TVP5158實(shí)現(xiàn)對(duì)4通道模擬視頻信號(hào)采集,通過達(dá)芬奇技術(shù)實(shí)現(xiàn)基于H.264的4通道實(shí)時(shí)視頻壓縮,利用UDP協(xié)議將采集端的視頻數(shù)據(jù)通過局域網(wǎng)發(fā)送至監(jiān)控中心,用戶可通過監(jiān)控中心控制軟件對(duì)相應(yīng)區(qū)域進(jìn)行實(shí)時(shí)監(jiān)控。系統(tǒng)在單芯片上實(shí)現(xiàn)多通道視頻監(jiān)控系統(tǒng),具有低成本、高性能的特點(diǎn),可應(yīng)用于交通、廠區(qū)防盜、智能家居監(jiān)控、視頻會(huì)議等領(lǐng)域。
達(dá)芬奇;H.264;視頻監(jiān)控;DM6467
隨著互聯(lián)網(wǎng)、多媒體及自動(dòng)控制技術(shù)的飛速發(fā)展,視頻應(yīng)用的需求也越來越大。近幾年來,圖像處理技術(shù)已在智能樓宇、交通監(jiān)控、智能家居、汽車電子以及航空航天等諸多領(lǐng)域得到了廣泛的應(yīng)用。芯片技術(shù)的發(fā)展及嵌入式技術(shù)的日趨成熟,使得視頻監(jiān)控系統(tǒng)越來越小型化、集成化和網(wǎng)絡(luò)化[1]。
目前,視頻監(jiān)控仍存在一些問題。諸如監(jiān)控區(qū)域太窄,一套系統(tǒng)無法完成對(duì)多個(gè)區(qū)域的同時(shí)監(jiān)測(cè);非網(wǎng)絡(luò)化,大多數(shù)監(jiān)控系統(tǒng)仍然采用模擬信號(hào)傳輸,導(dǎo)致系統(tǒng)布線復(fù)雜,無法輕易擴(kuò)容,成本高。諸多問題無法滿足實(shí)際需求[2]。
本文立足于解決實(shí)際問題,設(shè)計(jì)了一套集嵌入式技術(shù)、網(wǎng)絡(luò)技術(shù)及TI達(dá)芬奇技術(shù)為一體的多通道視頻監(jiān)控系統(tǒng)。利用該系統(tǒng),可實(shí)現(xiàn)對(duì)多個(gè)關(guān)鍵區(qū)域的實(shí)時(shí)遠(yuǎn)程視頻監(jiān)控。系統(tǒng)采用單芯片完成了多通道實(shí)時(shí)圖像采集、壓縮處理和網(wǎng)絡(luò)傳輸,節(jié)省成本,管理方便。
系統(tǒng)以DM6467為核心,嵌入式Linux作為操作系統(tǒng)平臺(tái),通過TVP5158采集多路視頻數(shù)據(jù)并進(jìn)行壓縮處理,采用 TCP/IP協(xié)議將壓縮處理后的視頻數(shù)據(jù)發(fā)送至監(jiān)控中心。監(jiān)控中心接收網(wǎng)絡(luò)數(shù)據(jù)并實(shí)時(shí)解析,通過H. 264解碼后實(shí)時(shí)顯示。系統(tǒng)總體方案如圖1所示。
本系統(tǒng)主要由視頻處理前端與監(jiān)控中心構(gòu)成。視頻處理前端由處理器、攝像頭及TVP5158組成。監(jiān)控中心由PC構(gòu)成。系統(tǒng)運(yùn)行后,監(jiān)控中心可實(shí)時(shí)配置視頻處理前端信號(hào)參數(shù),如圖像分辨率、通道數(shù)等。為了滿足系統(tǒng)需求,在不影響視覺觀看下的指標(biāo)設(shè)計(jì)如下:
(1)1-4通道圖像實(shí)時(shí)采集和壓縮處理(基于 H.264協(xié)議),圖像制式包括PAL(720×576)和NTSC(720×480);
(2)實(shí)時(shí)傳輸幀率不小于15幀/s;
(3)系統(tǒng)時(shí)延不大于0.5 s。
圖1 系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)主要分為信號(hào)采集平臺(tái)和監(jiān)控中心兩大部分。監(jiān)控中心在PC上完成。信號(hào)采集平臺(tái)主控芯片采用TI公司達(dá)芬奇處理器TMS320DM6467,同時(shí)還包括SRAM、Nand Flash、TVP5158以及多種外圍接口。Flash中存放有一級(jí)引導(dǎo)文件 ubl、U-boot、Linux內(nèi)核、文件系統(tǒng)、驅(qū)動(dòng)程序以及應(yīng)用程序等。SRAM作為系統(tǒng)運(yùn)行內(nèi)存,TVP5158完成對(duì)多通道模擬信號(hào)的采集。外圍接口中,串口負(fù)責(zé)應(yīng)用程序調(diào)試;以太網(wǎng)接口完成對(duì)視頻信號(hào)和控制信息的傳輸;主控制器通過I2C接口對(duì)TVP5158進(jìn)行參數(shù)配置,同時(shí)通過VPIF接口接收TVP5158傳回的視頻信號(hào)[3]。
信號(hào)采集平臺(tái)主要實(shí)現(xiàn)對(duì)1~4通道視頻圖像的采集、實(shí)時(shí)圖像壓縮、網(wǎng)絡(luò)傳輸、心跳檢測(cè)、參數(shù)接收等功能。采集平臺(tái)硬件結(jié)構(gòu)如圖2所示。
圖2 采集平臺(tái)硬件結(jié)構(gòu)圖
系統(tǒng)軟件主要包括采集端和監(jiān)控中心解碼軟件。系統(tǒng)軟件結(jié)構(gòu)如圖3所示,采集端包括信號(hào)采集子程序、圖像壓縮子程序、網(wǎng)絡(luò)傳輸子程序、心跳探測(cè)及參數(shù)配置子程序。監(jiān)控中心包括網(wǎng)絡(luò)接收子程序、圖像解碼子程序、實(shí)時(shí)顯示子程序、心跳探測(cè)及參數(shù)配置子程序。
圖3 系統(tǒng)軟件結(jié)構(gòu)圖
3.1視頻采集模塊設(shè)計(jì)
采集端基于Montavista公司Linux-2.6.10操作系統(tǒng),采用V4L2進(jìn)行視頻數(shù)據(jù)采集。TVP5158與DM6467間采用VPIF接口無縫傳輸。為了讓數(shù)據(jù)采集更加便捷,對(duì)V4L2驅(qū)動(dòng)與 I2C驅(qū)動(dòng)進(jìn)行二次封裝。同時(shí),為了提高數(shù)據(jù)傳輸效率,減少CPU開銷,將底層EDMA驅(qū)動(dòng)也封裝在其中。面向應(yīng)用層,3個(gè)接口被抽象為一個(gè)MCVIP接口[4-5]。MCVIP驅(qū)動(dòng)框架如圖4所示。
圖4 MCVIP驅(qū)動(dòng)框架
采用MCVIP驅(qū)動(dòng)完成視頻信號(hào)采集流程如圖5所示。其步驟如下:
圖5 視頻采集流程圖
(1)打開設(shè)備。連接各模塊,開啟設(shè)備電源,通過open()函數(shù)依次打開 dev_i2c、video0和 video1 3個(gè)設(shè)備描述符。
(2)參數(shù)初始化。初始化主要包括對(duì) TVP5158、圖像制式、通道數(shù)、內(nèi)存區(qū)域等進(jìn)行設(shè)置。
(3)圖像采集。MCVIP底層采用V4L2獲取圖像數(shù)據(jù)。采用如下方式可完成圖像數(shù)據(jù)的采集。
調(diào)用二次封裝后的V4L2函數(shù)接口 MCVIP_v4l2GetBuf(hndl,&v4l2Buf),抓取一幀圖像,并存放在v4l2Buf起始的內(nèi)存區(qū)域中。
由于 TVP5158將多通道數(shù)據(jù)打包為 BT.656格式,需要MCVIP_demuxRun()函數(shù)對(duì)該格式進(jìn)行解析,獲取各通道數(shù)據(jù)。
抓取處理完成后,通過 MCVIP_v4l2PutBuf()函數(shù)釋放本次讀取數(shù)據(jù)所用的緩沖區(qū),以便循環(huán)利用。
3.2視頻壓縮模塊設(shè)計(jì)
視頻壓縮模塊采用一組壓縮線程來完成。系統(tǒng)為4個(gè)通道分別開辟一個(gè)壓縮線程,并采用達(dá)芬奇技術(shù)提供的DVSDK開發(fā)包完成H.264圖像壓縮。
Codec Engine(CE)是達(dá)芬奇技術(shù)的核心,負(fù)責(zé)完成ARM與DSP之間的通信及管理工作。在各個(gè)壓縮線程中,調(diào)用Engine_open()函數(shù)創(chuàng)建各自的CE。
創(chuàng)建圖像壓縮任務(wù),通過 Venc1_create(hEngine, H264ENC_NAME,¶ms,&dynParams)函數(shù)告知DSP需要執(zhí)行哪一段代碼。其中,params與dynParams結(jié)構(gòu)體分別存儲(chǔ)有圖像的分辨率、圖像數(shù)據(jù)大小等參數(shù)。DSP Server收到指令后,對(duì)參數(shù)進(jìn)行解析,并創(chuàng)建一個(gè)process()實(shí)現(xiàn)壓縮任務(wù)。
在壓縮任務(wù)創(chuàng)建完成后,即可從隊(duì)列中獲取一幀原始圖像數(shù)據(jù),并進(jìn)行色彩轉(zhuǎn)換,最終調(diào)用Venc1_process()函數(shù)完成一幀圖像的壓縮[6]。
壓縮后的圖像數(shù)據(jù)將送到壓縮線程與網(wǎng)絡(luò)發(fā)送線程之間的緩沖隊(duì)列中,供網(wǎng)絡(luò)模塊調(diào)用及數(shù)據(jù)發(fā)送[6]。壓縮線程處理流程如圖6所示。
圖6 壓縮線程處理流程圖
3.3傳輸模塊設(shè)計(jì)
數(shù)據(jù)傳輸主要在局域網(wǎng)中進(jìn)行。為了提高傳輸效率,圖像數(shù)據(jù)采用面向無連接的UDP協(xié)議進(jìn)行傳輸。心跳信息及控制信息采用TCP協(xié)議傳輸,保障了心跳及控制信息傳輸?shù)目煽啃?。傳輸模塊流程圖如圖7所示。
圖7 傳輸模塊工作流程圖
基于 Linux和 Windows的網(wǎng)絡(luò)傳輸主要依靠 socket套接字完成。發(fā)送端通過 sendto()將圖像數(shù)據(jù)發(fā)送到監(jiān)控中心,接收端對(duì)協(xié)商好的端口進(jìn)行監(jiān)聽,并調(diào)用recvfrom()函數(shù)接收網(wǎng)絡(luò)數(shù)據(jù)。
為了讓監(jiān)控中心實(shí)時(shí)掌握采集端運(yùn)行狀態(tài),采集端設(shè)計(jì)心跳包,定時(shí)向監(jiān)控中心報(bào)告呼吸狀態(tài)。若監(jiān)控中心連續(xù)2 min沒有收到心跳信息,則斷定網(wǎng)絡(luò)出現(xiàn)故障或采集端發(fā)生異常,并報(bào)警告知用戶。
由于壓縮線程與傳輸線程之間需要訪問同一個(gè)緩沖隊(duì)列,為了線程安全,采用互斥量對(duì)該臨界區(qū)進(jìn)行控制。壓縮線程需要將數(shù)據(jù)送入到隊(duì)列中時(shí),使用pthread_mutex_lock函數(shù)對(duì)該臨界區(qū)加鎖,訪問完成后調(diào)用 pthread_mutex_unlock函數(shù)釋放該區(qū)域供傳輸模塊訪問[7]。傳輸模塊訪問該區(qū)域時(shí)處理流程同上。通過互斥量,使得同一時(shí)間只有一個(gè)線程在訪問該段內(nèi)存空間,保障了內(nèi)存訪問的安全性。
3.4顯示模塊設(shè)計(jì)
本系統(tǒng)中,顯示模塊采用的集成開發(fā)環(huán)境是Microsoft Visual C++6.0,實(shí)現(xiàn)4路視頻數(shù)據(jù)的接收和實(shí)時(shí)顯示。顯示模塊軟件由兩個(gè)子模塊組成:ActiveX控件模塊和實(shí)時(shí)播放模塊,ActiveX控件模塊作為軟件的核心部分,是集圖像解碼、圖像播放為一體的功能模塊。主程序調(diào)用 ActiveX控件提供的接口函數(shù)將視頻數(shù)據(jù)傳入控件中,控件使用 ffmpeg對(duì)視頻數(shù)據(jù)進(jìn)行解碼,然后顯示。實(shí)時(shí)播放模塊由4個(gè)ActiveX控件和兩個(gè)按鈕組成,兩個(gè)按鈕的功能分別為開啟和停止。點(diǎn)擊開啟按鈕,準(zhǔn)備接收數(shù)據(jù),當(dāng)網(wǎng)絡(luò)中有數(shù)據(jù)時(shí),接收并解碼和顯示。顯示模塊的工作流程如圖8所示。
圖8 顯示模塊工作流程圖
系統(tǒng)測(cè)試環(huán)境包括信號(hào)采集板、監(jiān)控中心PC、4路安防攝像頭、電源、網(wǎng)線等。
將串口線、網(wǎng)線及電源等接口連接好,啟動(dòng)開發(fā)板。運(yùn)行監(jiān)控中心顯示軟件,設(shè)定通道數(shù)、圖像制式等信息。參數(shù)配置完成后,點(diǎn)擊開始后采集端開始采集并傳輸視頻信號(hào)。
圖9 實(shí)時(shí)播放效果圖
圖9是監(jiān)控中心實(shí)時(shí)解碼顯示效果圖。經(jīng)過長(zhǎng)時(shí)間測(cè)試,圖像時(shí)延約為 0.3~0.5秒,監(jiān)控中心可實(shí)時(shí)播放1~4路視頻信號(hào),圖像幀率最差為每通道22幀/s。測(cè)試表明,在多通道同時(shí)工作時(shí),傳輸幀率和系統(tǒng)時(shí)延均滿足預(yù)期設(shè)計(jì)指標(biāo)。
本文設(shè)計(jì)了一種基于達(dá)芬奇技術(shù)的視頻監(jiān)控系統(tǒng),實(shí)現(xiàn)了1~4通道實(shí)時(shí)視頻采集、壓縮、網(wǎng)絡(luò)傳輸及圖像解碼和顯示。經(jīng)長(zhǎng)時(shí)間和多次測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定,能夠連續(xù)對(duì)多個(gè)區(qū)域進(jìn)行監(jiān)控。同時(shí),可針對(duì)不同應(yīng)用領(lǐng)域,稍加改進(jìn)便可投入使用,具有一定的應(yīng)用價(jià)值。
[1]信師國(guó),劉慶磊,劉全賓.網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)現(xiàn)狀和發(fā)展趨勢(shì)[J].信息技術(shù)與信息化,2010(1):23-25.
[2]陳宗成,鄧華秋.基于 ARM11的嵌入式視頻傳輸系統(tǒng)的實(shí)現(xiàn)[J].電視技術(shù),2013,37(9):210-213.
[3]姚春蓮,郭克友,阮秋琦,等.基于 DM6467的視頻處理軟件設(shè)計(jì)與優(yōu)化[J].北京交通大學(xué)學(xué)報(bào):自然科學(xué)版,2013,37(5):162-167.
[4]盧俊.基于 Davinci平臺(tái)的視頻服務(wù)器軟件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2013.
[5]文武,吳勇,張杰.基于 TMS320DM6467的視頻采集系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2011,35(17):39-41.
[6]施現(xiàn)偉.基于 ARM11的遠(yuǎn)程視頻監(jiān)控系統(tǒng)設(shè)計(jì)[D].哈爾濱:哈爾濱理工大學(xué),2013.
[7]陳榮軍,余祥云,譚洪舟.基于S3C6410的遠(yuǎn)程無線環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(5):143-146.
Design of video transmission system based on DaVinci technology
Deng Na,Tian Zengshan,Yuan Zhengwu
(Institute of Wireless Location and Space Measurement,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
Combined with practical application and development trends of multimedia technology,a set of multi-channel video surveillance system is designed with TMS320DM6467 and embedded Linux software.The system adopts TVP5158 to realize the video signal acquisition of 4 channels,through DaVinci technology to realize the 4 channels real-time video compression based on H.264.Then the data is sent to the monitoring center through a local network with UDP protocol.The user can monitor the region by controlling the monitoring center software.System is implemented on a single chip with low-cost and high-performance features, it can be used in transportation,factory security,smart home monitoring,video conferencing and so on.
DaVinci;H.264;video surveillance system;DM6467
TN762;P715.7
A
0258-7998(2015)01-0025-03
10.16157/j.cnki.0258-7998.2014090703263
重慶市基礎(chǔ)與前沿研究計(jì)劃項(xiàng)目(cstc2013jcyjA40041);重慶郵電大學(xué)博士啟動(dòng)基金(A2012-33);重慶郵電大學(xué)青年科學(xué)研究項(xiàng)目(A2012-77)
2014-09-07)
鄧娜(1989-),女,碩士,主要研究方向:無線通信與定位。
田增山(1968-),男,博士,教授,主要研究方向:個(gè)人通信、衛(wèi)星導(dǎo)航、無線定位、信號(hào)檢測(cè)與估計(jì)。
袁正午(1968-),男,博士,教授,主要研究方向:射線跟蹤、GIS系統(tǒng)。