《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于DSP的視頻監(jiān)控平臺(tái)的設(shè)計(jì)

基于DSP的視頻監(jiān)控平臺(tái)的設(shè)計(jì)

2013-05-08
作者:張震震,李臨生,田啟川
來(lái)源:來(lái)源:微型機(jī)與應(yīng)用2013年第6期
關(guān)鍵詞: DSP 視頻監(jiān)控 DSP/BIOS

摘  要: 隨著視頻監(jiān)控的不斷發(fā)展和DSP技術(shù)的進(jìn)步,基于DSP的視頻監(jiān)控受到越來(lái)越廣泛的關(guān)注和應(yīng)用?;赥I公司的TMS320DM6437設(shè)計(jì)了實(shí)時(shí)的網(wǎng)絡(luò)視頻監(jiān)控平臺(tái)。介紹了整個(gè)系統(tǒng)的框架,并對(duì)基于DSP/BIOS的軟件設(shè)計(jì)進(jìn)行了詳細(xì)分析,如視頻驅(qū)動(dòng)、Codec Engine軟件框架和網(wǎng)絡(luò)傳輸。該平臺(tái)具有視頻信號(hào)采集、視頻處理和視頻傳輸?shù)墓δ?,可?yīng)用于不同的領(lǐng)域。
關(guān)鍵詞: 視頻監(jiān)控;DSP;DSP/BIOS

    視頻監(jiān)控作為當(dāng)今安防工作的重要組成部分,目前正朝著數(shù)字化、智能化和網(wǎng)絡(luò)化的方向快速發(fā)展,廣泛應(yīng)用于智能家居和交通安全等領(lǐng)域。解決視頻監(jiān)控的關(guān)鍵技術(shù)之一是實(shí)現(xiàn)終端運(yùn)動(dòng)目標(biāo)的識(shí)別和跟蹤。目前的視頻監(jiān)控實(shí)現(xiàn)方案主要有以下幾種:
    (1)基于PC的監(jiān)控系統(tǒng)。該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成本低,可實(shí)現(xiàn)簡(jiǎn)單的視頻監(jiān)控。但該系統(tǒng)不適合將其嵌入到遠(yuǎn)程區(qū)域進(jìn)行監(jiān)控,無(wú)法滿足現(xiàn)在的安防需求[1]。
    (2)基于DSP+FPGA雙處理器的視頻監(jiān)控。其中FPGA完成圖像預(yù)處理的運(yùn)算工作,DSP主要完成復(fù)雜的圖像后處理工作并輸出信號(hào)控制監(jiān)控平臺(tái)。該系統(tǒng)能夠有效利用DSP和FPGA在功能上互補(bǔ)的特點(diǎn),但是進(jìn)行數(shù)據(jù)交換時(shí)易出現(xiàn)延遲問(wèn)題,而且系統(tǒng)的性價(jià)比低,體積和功耗相對(duì)單處理器較高[2]。
    (3)基于雙DSP的視頻監(jiān)控系統(tǒng)。該系統(tǒng)采用兩片集成度高、運(yùn)算速度快的DSP芯片,一片用于視頻監(jiān)控的算法運(yùn)算,另一片主要完成視頻的壓縮編碼。該系統(tǒng)傳輸速度快、實(shí)時(shí)性好,但也存在資源利用不充分的不足,而且系統(tǒng)相對(duì)復(fù)雜[3]。
    (4)基于單核DSP的視頻監(jiān)控系統(tǒng)。該方案滿足了視頻監(jiān)控的需求,同時(shí)實(shí)現(xiàn)資源的充分利用[4]。
    為此,本文提出了基于TMS320DM6437的視頻監(jiān)控的設(shè)計(jì)。
1 系統(tǒng)整體介紹
    該系統(tǒng)通過(guò)CMOS 攝像頭采集實(shí)時(shí)圖像,通過(guò)TVP5146解碼器對(duì)視頻信息解碼后將數(shù)據(jù)交給DM6437,然后視頻處理子系統(tǒng)調(diào)用算法處理,并把處理結(jié)果通過(guò)網(wǎng)絡(luò)傳輸交給終端PC。整個(gè)系統(tǒng)依托于DSP/BIOS操作系統(tǒng)來(lái)實(shí)現(xiàn)多任務(wù)調(diào)度和存儲(chǔ)器管理等。系統(tǒng)的整體主要硬件框架如圖1所示。

 

 

2 系統(tǒng)主要硬件介紹
2.1 核心處理器

    系統(tǒng)選用TMS320DM6437數(shù)字媒體處理器作為核心處理器,它是首批支持達(dá)芬奇技術(shù)的純DSP 器件,其強(qiáng)大的功能可支持H.264視頻編碼。它有8個(gè)并行處理單元,其體系采用甚長(zhǎng)指令字(CLIW)結(jié)構(gòu),具有強(qiáng)大的處理能力。DM6437還集成了很多外設(shè)接口,主要包括意識(shí)視頻處理子系統(tǒng)(VPSS)、以太網(wǎng)接口、I2C接口、EMIF接口和DDR2接口等。
    其中VPSS提供了一個(gè)VPFE輸入接口(連接外部設(shè)備,如圖像傳感器、視頻解碼器等)以及一個(gè)VPBE輸出接口(連接顯示設(shè)備,如analog SDTV顯示器、數(shù)字LCD面板、HDTV視頻編碼器等)。VPFE由5部分組成:CCDC、IPIPE、H3A、resizer和histogram,這5部分組合構(gòu)成了強(qiáng)大、靈活的前端接口;VPBE包含On-Screen Display(OSD)模塊、帶數(shù)字LCD和模擬DAC接口的Video Encoder(VENC)。VENC生成模擬式視頻輸出。DLCD控制器產(chǎn)生數(shù)字RGB/YCBCR,輸出數(shù)據(jù)及時(shí)間信號(hào)。
2.2 存儲(chǔ)器模塊
    系統(tǒng)主要的存儲(chǔ)設(shè)備有DDR2,它與上一代DDR內(nèi)存技術(shù)標(biāo)準(zhǔn)最大的不同就是,雖然同是采用了在時(shí)鐘的上升/下降沿同時(shí)進(jìn)行數(shù)據(jù)傳輸?shù)幕痉绞?,但DDR2內(nèi)存卻擁有兩倍于上一代DDR內(nèi)存預(yù)讀取能力(即4 bit數(shù)據(jù)預(yù)讀取)。換句話說(shuō),DDR2內(nèi)存每個(gè)時(shí)鐘能夠以4倍外部總線的速度讀/寫數(shù)據(jù),并且能夠以內(nèi)部控制總線4倍的速度運(yùn)行。
    開發(fā)板通過(guò)專用的DDR2存儲(chǔ)控制器接口擴(kuò)展了64 MB的DDR2 SDRAM,為視頻應(yīng)用帶來(lái)了高吞吐、高容量存儲(chǔ)帶寬,并最大可以擴(kuò)展到256 MB;此外,256 MB的Nor Flash為視頻應(yīng)用程序脫機(jī)運(yùn)行提供了有力的容量保證。
2.3 網(wǎng)絡(luò)模塊
    網(wǎng)絡(luò)接口工作在7層OSI參考模型的物理層和數(shù)據(jù)鏈路層,在以太網(wǎng)卡中,數(shù)據(jù)鏈路層的芯片被稱作MAC控制器,物理層的芯片被稱作PHY。在本系統(tǒng)中,考慮到DM6437片上帶有EMAC()/MDIO()接口,即提供數(shù)據(jù)鏈路層控制,所以選擇網(wǎng)卡芯片時(shí)只需要有PHY功能即可。
3 系統(tǒng)軟件設(shè)計(jì)
    本系統(tǒng)中,DSP端的軟件主要包括:視頻驅(qū)動(dòng)程序開發(fā)、Codec  Engine的使用以及網(wǎng)絡(luò)模塊的程序開發(fā)(即NDK的使用),應(yīng)用程序的總體框架如圖2所示。

    在DSP/BIOS實(shí)時(shí)操作系統(tǒng)下,系統(tǒng)上電或是reset后,從程序入口點(diǎn)到main函數(shù)前,要執(zhí)行系統(tǒng)的初始化,從而對(duì)相關(guān)DSP的寄存器進(jìn)行配置,包括復(fù)用引腳和外設(shè)接口等的配置。main函數(shù)使外設(shè)芯片正常工作,然后啟動(dòng)任務(wù)線程。main函數(shù)返回后,將CPU的使用權(quán)交給DSP/BIOS,由DSP/BIOS 進(jìn)行程序運(yùn)行中的控制調(diào)度,包括內(nèi)存管理、中斷處理和任務(wù)管理等。本系統(tǒng)中,DSP/BIOS啟動(dòng)兩個(gè)靜態(tài)配置的任務(wù)線程,包括previewTask和tskNdkStackTest。前者是整個(gè)系統(tǒng)的主線程,主要負(fù)責(zé)視頻驅(qū)動(dòng)模塊和Codec Engine框架的初始化、視頻圖像的實(shí)時(shí)獲取、視頻處理算法的執(zhí)行以及處理結(jié)果的輸出等;后者則專門負(fù)責(zé)網(wǎng)絡(luò)模塊的所有功能。
3.1 視頻驅(qū)動(dòng)軟件
    該系統(tǒng)的軟件設(shè)計(jì)中,視頻驅(qū)動(dòng)是應(yīng)用程序與底層硬件之間的重要橋梁,是軟件設(shè)計(jì)中非常重要的一部分。視頻驅(qū)動(dòng)程序主要用于前端的視頻接收端,而后端直接將算法處理結(jié)果通過(guò)網(wǎng)絡(luò)傳送到PC。TI公司提供了專門的視頻處理的驅(qū)動(dòng)接口函數(shù),接口函數(shù)名均以“FVID”開頭,它是將GIO的APIs根據(jù)需要再次進(jìn)行封裝得到的,如表1所示。

    系統(tǒng)上電后進(jìn)行一系列的初始化操作,main函數(shù)返回的同時(shí),把對(duì)CPU和存儲(chǔ)器的使用和控制權(quán)交給DSP/BIOS,然后DSP/BIOS啟動(dòng)視頻處理的主線程,主線程便會(huì)用FVID的API函數(shù)獲取sensor發(fā)來(lái)的圖像。首先用FVID_creat()創(chuàng)建通道,函數(shù)返回的句柄作為下一步FVID_control()的參數(shù),根據(jù)不同的命令字符串對(duì)視頻接口進(jìn)行配置。接著FVID_alloc和FVID_queue兩個(gè)函數(shù)負(fù)責(zé)向驅(qū)動(dòng)申請(qǐng)3個(gè)數(shù)據(jù)幀buffer,并編入buffer隊(duì)列。然后,用FVID_dequeue函數(shù)將隊(duì)列中的首個(gè)buffer釋放出來(lái),作為FVID_exchange函數(shù)的起始參數(shù),表示當(dāng)前正在使用的buffer。之后進(jìn)入無(wú)限的while循環(huán)體,利用FVID_exchange函數(shù)來(lái)實(shí)現(xiàn)圖像數(shù)據(jù)的實(shí)時(shí)更新,從而進(jìn)行后續(xù)的算法處理。
3.2 Codec Engine軟件
    Codec Engine軟件是TI 公司專門為達(dá)芬奇系列DSP設(shè)計(jì)推出的一個(gè)標(biāo)準(zhǔn)軟件框架,大大簡(jiǎn)化了軟件開發(fā)人員的工作。使用Codec Engine,首先需要在main函數(shù)里初始化,用到的初始化函數(shù)為CERuntime_init()。另外,Core Engine APIs用于創(chuàng)建Engine對(duì)象,以及獲得一些系統(tǒng)調(diào)試信息。應(yīng)用程序創(chuàng)建Engine對(duì)象后,通過(guò)VISA接口創(chuàng)建算法對(duì)象,VISA對(duì)應(yīng)4種數(shù)據(jù)模式,每種模式又對(duì)應(yīng)了MOD_create、MOD_control、MOD_process、MOD_delete 4個(gè)接口函數(shù),通過(guò)這些函數(shù)可以調(diào)用任何符合XDM標(biāo)準(zhǔn)的編解碼算法庫(kù)。系統(tǒng)Codec Engine 的實(shí)現(xiàn)流程圖如圖3所示。

3.3 網(wǎng)絡(luò)傳輸軟件
    NDK是TI 公司專門針對(duì)C6000系列DSP推出的一款網(wǎng)絡(luò)開發(fā)套件,它基于TCP/IP協(xié)議,為開發(fā)人員提供了豐富的網(wǎng)絡(luò)接口,使用方便靈活。
    NDK共由5個(gè)模塊組成,如圖4所示。OS適配層是DSP/BIOS操作系統(tǒng)的一個(gè)抽象,把操作系統(tǒng)與NDK隔離,同時(shí)為NDK提供接口,實(shí)現(xiàn)內(nèi)存空間管理和任務(wù)管理。TCP/IP協(xié)議棧是一個(gè)網(wǎng)絡(luò)功能LIB,所有常用的網(wǎng)絡(luò)協(xié)議的功能可以通過(guò)它來(lái)實(shí)現(xiàn)。網(wǎng)絡(luò)工具模塊提供了局域上層套接字的所有網(wǎng)絡(luò)功能,如數(shù)據(jù)收發(fā)、Web服務(wù)器的配置。硬件抽象層是底層硬件的一個(gè)抽象,為網(wǎng)絡(luò)控制模塊提供接口。網(wǎng)絡(luò)控制模塊則用來(lái)進(jìn)行一系列的初始化工作,協(xié)調(diào)底層驅(qū)動(dòng)與TCP/IP協(xié)議棧配合工作。

    NDK各種網(wǎng)絡(luò)功能的實(shí)現(xiàn)都利用了socket接口。本系統(tǒng)中,DSP端就是socket服務(wù)器端,PC端軟件為客戶端。本系統(tǒng)創(chuàng)建多個(gè)socket對(duì)象來(lái)分別負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)的收發(fā)操作,確保需要同步執(zhí)行的操作之間互不影響。
    具體實(shí)現(xiàn)時(shí),網(wǎng)絡(luò)模塊的程序利用NDK為系統(tǒng)設(shè)置IP地址,系統(tǒng)模塊實(shí)現(xiàn)了HTTP server,用戶端在網(wǎng)頁(yè)輸入DSP的網(wǎng)口IP地址,即可訪問(wèn)DSP端的HTTP服務(wù)器,實(shí)現(xiàn)在網(wǎng)頁(yè)上的實(shí)時(shí)遠(yuǎn)程監(jiān)控。另外,利用socket編程,可以實(shí)現(xiàn)與PC端自主編寫的軟件進(jìn)行通信,從而用戶可以通過(guò)PC端的軟件給DSP發(fā)送控制指令來(lái)實(shí)現(xiàn)不同的功能。本模塊包含一個(gè)主線程和3個(gè)子線程,其中主線程tskNdkStackTest已經(jīng)在DSP/BIOS的.tcf配置文件中做了靜態(tài)配置。3個(gè)子線程分別是sendTsk、receiveTsk和cmdparseTsk,分別用于發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和解析PC端軟件的控制命令。其中在每個(gè)子線程內(nèi)創(chuàng)建了一個(gè)socket。
    本文研究了基于TMS320DM6437的網(wǎng)絡(luò)視頻監(jiān)控的實(shí)現(xiàn)方法。系統(tǒng)以TMS320DM6437作為核心,對(duì)主要硬件器件作了介紹,并針對(duì)主要的軟件框架進(jìn)行了詳細(xì)分析,對(duì)于視頻監(jiān)控平臺(tái)的設(shè)計(jì)有著重要的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 李德駿.智能小區(qū)安防實(shí)時(shí)視頻圖像跟蹤系統(tǒng)的研究[J].武漢科技學(xué)院學(xué)報(bào),2005,18(9):32-35.
[2] 田茜,何鑫.基于DSP/FPGA的嵌入式實(shí)時(shí)目標(biāo)跟蹤系統(tǒng)[J].計(jì)算機(jī)工程,2005,31(15):219-221.
[3] 梁昂,王耀南.基于雙DSP的運(yùn)動(dòng)目標(biāo)智能跟蹤系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].電子設(shè)計(jì)應(yīng)用,2004(9):111-113.
[4] 李位星,范瑞霞.基于DSP的運(yùn)動(dòng)目標(biāo)跟蹤系統(tǒng)[J].自動(dòng)化技術(shù)與應(yīng)用,2004,23(4):46-49.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。