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

基于DSP的視頻監(jiān)控平臺的設(shè)計

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

摘  要: 隨著視頻監(jiān)控的不斷發(fā)展和DSP技術(shù)的進步,基于DSP的視頻監(jiān)控受到越來越廣泛的關(guān)注和應(yīng)用?;赥I公司的TMS320DM6437設(shè)計了實時的網(wǎng)絡(luò)視頻監(jiān)控平臺。介紹了整個系統(tǒng)的框架,并對基于DSP/BIOS的軟件設(shè)計進行了詳細分析,如視頻驅(qū)動、Codec Engine軟件框架和網(wǎng)絡(luò)傳輸。該平臺具有視頻信號采集、視頻處理和視頻傳輸?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ù)之一是實現(xiàn)終端運動目標的識別和跟蹤。目前的視頻監(jiān)控實現(xiàn)方案主要有以下幾種:
    (1)基于PC的監(jiān)控系統(tǒng)。該系統(tǒng)結(jié)構(gòu)簡單、成本低,可實現(xiàn)簡單的視頻監(jiān)控。但該系統(tǒng)不適合將其嵌入到遠程區(qū)域進行監(jiān)控,無法滿足現(xiàn)在的安防需求[1]。
    (2)基于DSP+FPGA雙處理器的視頻監(jiān)控。其中FPGA完成圖像預(yù)處理的運算工作,DSP主要完成復(fù)雜的圖像后處理工作并輸出信號控制監(jiān)控平臺。該系統(tǒng)能夠有效利用DSP和FPGA在功能上互補的特點,但是進行數(shù)據(jù)交換時易出現(xiàn)延遲問題,而且系統(tǒng)的性價比低,體積和功耗相對單處理器較高[2]。
    (3)基于雙DSP的視頻監(jiān)控系統(tǒng)。該系統(tǒng)采用兩片集成度高、運算速度快的DSP芯片,一片用于視頻監(jiān)控的算法運算,另一片主要完成視頻的壓縮編碼。該系統(tǒng)傳輸速度快、實時性好,但也存在資源利用不充分的不足,而且系統(tǒng)相對復(fù)雜[3]。
    (4)基于單核DSP的視頻監(jiān)控系統(tǒng)。該方案滿足了視頻監(jiān)控的需求,同時實現(xiàn)資源的充分利用[4]。
    為此,本文提出了基于TMS320DM6437的視頻監(jiān)控的設(shè)計。
1 系統(tǒng)整體介紹
    該系統(tǒng)通過CMOS 攝像頭采集實時圖像,通過TVP5146解碼器對視頻信息解碼后將數(shù)據(jù)交給DM6437,然后視頻處理子系統(tǒng)調(diào)用算法處理,并把處理結(jié)果通過網(wǎng)絡(luò)傳輸交給終端PC。整個系統(tǒng)依托于DSP/BIOS操作系統(tǒng)來實現(xiàn)多任務(wù)調(diào)度和存儲器管理等。系統(tǒng)的整體主要硬件框架如圖1所示。

 

 

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

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

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

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

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

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

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