多媒體處理器DM642及其在視頻監(jiān)控中的應用
視頻監(jiān)控系統(tǒng)的設計方案有很多種,但是市場產(chǎn)品的主流一般選擇兩種方案:一是基于CPU和專用的視頻編解碼ASIC芯片。該方案選擇以ARM為核心的CPU和專用媒體處理芯片搭建。優(yōu)點是開發(fā)時間相對較短,但由于采用ASIC,靈活性較差,產(chǎn)品一旦定型,很難更改。二是采用面向媒體處理的專用DSP。其開發(fā)時間不長,優(yōu)點是由于算法是軟件代碼,所以可以不斷對產(chǎn)品性能進行升級,重復開發(fā)成本較低。由全球最大的DSP制造商德州儀器(TI)推出的TMS320DM642(以下簡稱DM642)作為一款高性價比、專用于多媒體應用的DSP,已被國內(nèi)外視頻應用從業(yè)者廣泛接受和采用。本文較詳細地介紹DM642的主要特性和系統(tǒng)應用開發(fā)技術,并給出基于DM642的視頻監(jiān)控應用實例。
DM642多媒體處理器
DM642是TI 公司專門為多媒體應用而開發(fā)的DSP,采用TI 的第二代高級超長指令字結(jié)構(gòu)(VelociTI),使得在一個指令周期能夠并行處理多條指令。它可在600MHz時鐘頻率下工作,每個指令周期可并行8條32bit指令,因此,可達到4800MIPS的峰值計算速度。DM642采用兩級緩存結(jié)構(gòu):第一級包括相互獨立的LIP(16kB)和LID (16kB),只能作為高速緩存使用;第二級L2(256kB)是一個統(tǒng)一的程序/數(shù)據(jù)空間,可整體作為SRAM映射到存儲空間,也可整體作為第二級Cache,或是二者按比例的一種組合來使用。DM642具有64個獨立通道的EDMA(擴展的直接存儲器訪問)控制器,負責片內(nèi)L2與其他外設之間的數(shù)據(jù)傳輸。容量較大的兩級緩存和EDMA 通道是DM642高性能的體現(xiàn)之一,若能合理使用和管理,將能大幅度提高程序的運行性能。其結(jié)構(gòu)如圖1所示。
此外DM642具有豐富的外圍設備接口,包括3個可配置的雙通道視頻端口video port,其中每個videoport又分成A和B兩個通道,A/B通道可分別處理一路視頻采集,因此DM642最多可以處理6路視頻采集數(shù)據(jù)(不帶音頻)。如果將video port配置成用于視頻輸出,則只能在A通道輸出,B通道不可以,因此DM642最多可支持3路視頻輸出(不帶音頻)。如果同時處理音頻,每一個video port可以處理兩路立體聲。另外還包括64bit的外部存儲器接口(EMIF)、10/100Mbit/s以太網(wǎng)MAC和多通道音頻串行端口(McASP)以及66MHz32bit的PCI接口。
DM642的基本系統(tǒng)由DM642和外擴的存儲器以及外設組成,而外擴的存儲器和外設均通過DM642的外部存儲器接口(EMIF)進行擴展。DM642基本系統(tǒng)所必須的外擴資源包括:
(1)SDRAM(4M64bit),用于存放程序和緩存數(shù)字視頻/ 音頻數(shù)據(jù);
(2)FLASH(4M8bit),用于存放固化程序,以便進行ROM引導;
(3)UART(288bit),擴展2個異步串口(RS232/RS422/RS485);
(4)板上寄存器(n×8bit),由若干個8位狀態(tài)/控制寄存器組成;
(5)硬盤接口(2816bit),用于本地大容量存儲接口。
由此可見,DM642是一個功能強大的多媒體處理器,可用來實現(xiàn)高速完成大數(shù)據(jù)量的數(shù)字視頻/音頻編解碼處理,特別適合于開發(fā)多媒體通信設備。是目前構(gòu)造數(shù)字多媒體應用的理想平臺。
DM642的應用開發(fā)技術
軟件開發(fā)工具
由TI 公司發(fā)布的DSP集成開發(fā)環(huán)境CCS(CodeComposer Studio),是一個基于Windows的DSP開發(fā)平臺,是目前最優(yōu)秀、最流行的DSP開發(fā)軟件之一。CCS集成可視化的編輯界面可直接編寫C、匯編語言,除了擴展了基本的代碼產(chǎn)生工具,CCS還集成了C編譯器,C優(yōu)化器、匯編器、匯編優(yōu)化器和連接器等。并支持RTDX(Real Time Data Exchange)技術,可在不中斷目標系統(tǒng)運行的情況下,實現(xiàn)DSP與其他應用程序(OLE)的數(shù)據(jù)交換。此外,CCS的斷點工具、探針工具和分析工具使得開發(fā)者的一切開發(fā)過程都是在CCS這個集成環(huán)境下進行,包括項目的建立、源程序的編輯以及程序的編譯和調(diào)試。
CCS內(nèi)部還包含了實時操作系統(tǒng)(RTOS)DSP/BIOS,主要是為多任務實時調(diào)度和同步以及主機/目標系統(tǒng)通信和實時監(jiān)測的應用而設計的。DSP/BIOS具有實時操作系統(tǒng)的很多功能,如任務的調(diào)度管理、任務間的同步和通信、內(nèi)存管理、實時時鐘管理、中斷服務管理、外設驅(qū)動管理等。使用DSP/BIOS工具可以幫助開發(fā)人員更加容易地控制DSP的硬件資源,更加靈活地協(xié)調(diào)各個軟件模塊的執(zhí)行,加快軟件開發(fā)和調(diào)試速度。
DM642的片內(nèi)內(nèi)存
DM642有256kbit/s的片內(nèi)內(nèi)存,對于直接處理圖像數(shù)據(jù)還是很有限的。如MPEG-4算法一般至少要存儲當前待編碼幀數(shù)據(jù)和上一幀的重建幀數(shù)據(jù),一幀YUV4∶2∶0格式CIF圖像的數(shù)據(jù)約有150kB,256kB,內(nèi)存對于CIF 圖像就不夠了。對于DM642,數(shù)據(jù)如果放在板卡上的片外內(nèi)存中, 數(shù)據(jù)的處理速度會大大降低,這是因為DSP對于片外數(shù)據(jù)的運算要慢得多。我們一般采取的方案是對圖像以宏塊為單位處理,只將運算時該宏塊需要的數(shù)據(jù)導入片內(nèi), 其他數(shù)據(jù)留在片外,這樣的數(shù)據(jù)量就足夠放在片內(nèi)了。
充分利用DM642的DMA通道
DSP直接訪問內(nèi)存會造成等待, 浪費大量不必要的時鐘周期。幸好DM642有強大的DMA能力,因此我們可以在處理當前宏塊數(shù)據(jù)時, 將下一個宏塊的數(shù)據(jù)通過DMA倒入片內(nèi),當處理完當前宏塊的時候,下一個宏塊的數(shù)據(jù)就已經(jīng)準備好了,這樣可以極大提高DSP的利用率。但具體實現(xiàn)的時候需要對DMA啟動的時機進行仔細的考慮,在數(shù)據(jù)訪問不沖突的情況下盡量提前。
DM642的兩級Cache
L1和L2組成了DM642的兩級緩存。L1距離DSP核最近,數(shù)據(jù)訪問速度最快,只能作為不能尋址的Cache使用,由相互獨立的LIP和LID組成;LIPCache大小為16kB,直接映射,每行大小為32B;LID Cache大小16kB,2路映射,每行大小為64B。L2是L1和外存儲器的中間層,容量較大,有256kbit/s,是統(tǒng)一的存儲空間,即可同時存儲程序和數(shù)據(jù)。L2可作為SRAM映射到存儲空間使用,也可整體作為第二級Cache,或是作為二者按比例的一種組合混合使用。L2作為SRAM使用時,即是DM642的片內(nèi)內(nèi)存,從整個系統(tǒng)地址空間的起始地址0x00000000開始編址,當作為Cache使用時,4路映射,每行大小為128B,容量在32-56kB 之間。在實際開發(fā)過程中要充分利用Cache,總的原則是將盡量多的關鍵數(shù)據(jù)分配在片內(nèi),Cache越大越好,對于不同的應用需要用不同的配置。最優(yōu)配置需要在開發(fā)中根據(jù)經(jīng)驗和實際的測試結(jié)果進行選擇。
視頻監(jiān)控實例
下面介紹一個基于DM642的網(wǎng)絡視頻監(jiān)控系統(tǒng),如圖2所示。需要以下硬件:DM642、射像頭、Philips公司的視頻解碼芯片SA A 7115、Intel公司的LXT971ALC芯片(PHY)以及外圍的RJ45接口、SDRAM和Flash存儲器。由攝像頭采集的模擬視頻信號經(jīng)SAA7115模數(shù)轉(zhuǎn)換后,形成YUV4∶2∶0格式的數(shù)字視頻信號,從DM642視頻端口輸入;由基于DM642的軟件編碼器編碼壓縮處理(軟件編碼器可采用H.263,H.264,MPEG-2,MPEG-4和M-JPEG等各種現(xiàn)有的或?qū)淼囊曨l編碼標準),編碼壓縮生成的視頻碼流數(shù)據(jù),打包后通過RJ45口經(jīng)以太網(wǎng)傳送到遠端目的地,完成網(wǎng)絡視頻通信和監(jiān)控。經(jīng)DM642的MAC接口,在網(wǎng)絡傳輸?shù)耐瑫r,視頻信號可由視頻端口2經(jīng)視頻編碼芯片數(shù)模轉(zhuǎn)換后輸出模擬視頻信號到監(jiān)視器進行本地回顯。
通過DM642的EMIF接口,可連接SDRAM和Flash存儲器(SDRAM擴展了系統(tǒng)的可用存儲空間,系統(tǒng)的初始化代碼和配置信息則存儲到Flash中)。此外DM642的視頻端口通過視頻解碼芯片SAA7115能很方便地實現(xiàn)和攝像頭的無縫連接,視頻端口0和1可分別獲取兩路視頻輸入,根據(jù)應用需要,可靈活地設置單路或多路視頻輸入。
結(jié)束語
由上述介紹可以看到,DM642是一個強大的多媒體處理器,是構(gòu)成多媒體通信系統(tǒng)的良好的平臺。它的豐富的外圍接口使得它近乎是一個多媒體嵌入式系統(tǒng)的單芯片硬件平臺;它的完全可編程性, 又可以使得它能夠兼容正在發(fā)展的各種多媒體信號處理標準, 構(gòu)成通用的軟件平臺。這些特性必將使得它得到廣泛的應用。