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