新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于視頻處理的DSP系統(tǒng)通用設(shè)計(jì)模式及其實(shí)現(xiàn)

基于視頻處理的DSP系統(tǒng)通用設(shè)計(jì)模式及其實(shí)現(xiàn)

作者:電子科技大學(xué) 通信與信息工程學(xué)院 周鄂林 管慶 時(shí)間:2008-04-16 來(lái)源:電子產(chǎn)品世界 收藏

  引言

本文引用地址:http://m.butianyuan.cn/article/81627.htm

  目前,隨著領(lǐng)域的不斷深入發(fā)展,作為其實(shí)現(xiàn)的主要平臺(tái)——的設(shè)計(jì)成為了決定算法是否能高速實(shí)時(shí)運(yùn)行的首要因素。一個(gè)優(yōu)秀的框架應(yīng)該至少具有功能的高效實(shí)施性和良好的軟硬件擴(kuò)展性。本文介紹的這種基于的框架正是以傳統(tǒng)的數(shù)字信號(hào)處理方式為基礎(chǔ),以高效性和擴(kuò)展性為目標(biāo),并且能夠適應(yīng)大多數(shù)的器件而提出的在硬件上和在軟件上的解決方案。

  可通用設(shè)計(jì)模式的思路

  硬件結(jié)構(gòu)

  傳統(tǒng)的數(shù)字信號(hào)處理過(guò)程是由“ADC + DSP + DAC”這種模式構(gòu)成的,其中并未具體的明確指出存儲(chǔ)器的如何使用以及ADC、DSP和DAC之間的數(shù)字邏輯電路關(guān)系如何,而這兩點(diǎn)正是實(shí)現(xiàn)高效實(shí)時(shí)系統(tǒng)的關(guān)鍵所在。

  以視頻處理為背景,基于可通用設(shè)計(jì)模式的思路從硬件功能上將DSP系統(tǒng)按圖1中所示的模塊框圖設(shè)計(jì)。從圖中可以看到整個(gè)DSP系統(tǒng)被分為六大模塊:DSP模塊、ADC模塊、DAC模塊、存儲(chǔ)器模塊、數(shù)字邏輯電路模塊和其它模塊。其中,數(shù)字邏輯電路模塊起到了模塊間相互通信的中間“橋”作用,通常選用具有足夠的可編程引腳和內(nèi)部邏輯單元的CPLD或FPGA加上適當(dāng)數(shù)目的開(kāi)關(guān)器件來(lái)實(shí)現(xiàn);而存儲(chǔ)器模塊則由針對(duì)DSP模塊、ADC模塊和DAC模塊的三個(gè)獨(dú)立且結(jié)構(gòu)相同的子模塊組成。

  由于各存儲(chǔ)器子模塊間的地址總線、數(shù)據(jù)總線和控制總線的相互獨(dú)立,通過(guò)數(shù)字邏輯電路模塊可以使ADC、DSP和DAC三個(gè)模塊在同一時(shí)刻擁有各自獨(dú)立的存儲(chǔ)空間從而為三者的并行無(wú)阻礙運(yùn)行提供了有效的硬件保證。如圖2中所示,三個(gè)存儲(chǔ)器子模塊處于循環(huán)式的流水線工作狀態(tài),它們?cè)谙到y(tǒng)中的地位等價(jià);其中每個(gè)存儲(chǔ)器子模塊一般都以整幀圖像為存儲(chǔ)單位,故可簡(jiǎn)稱為幀存。整個(gè)系統(tǒng)處于ADC、DSP和DAC三個(gè)模塊同步并行的工作方式,即DSP處理當(dāng)前幀圖像的同時(shí)ADC正采集下一幀圖像而DAC正傳送上一幀圖像給顯示設(shè)備,這樣DSP只負(fù)責(zé)圖像的處理過(guò)程而不涉及圖像在存儲(chǔ)空間中的簡(jiǎn)單搬移。

  相應(yīng)的數(shù)字邏輯電路模塊按圖3中所示的互相關(guān)聯(lián)的各子模塊來(lái)設(shè)計(jì)。其中,操作控制子模塊用于實(shí)現(xiàn)DSP對(duì)ADC及DAC的控制(復(fù)位或下電ADC及DAC、選擇標(biāo)準(zhǔn)I2C或模擬I2C進(jìn)行配置、同步三者的并行等)與DSP外部中斷的使能,并控制圖3中其它的子模塊;狀態(tài)計(jì)數(shù)子模塊用于產(chǎn)生四類狀態(tài):上電初始態(tài)和三類工作態(tài);ADC或DAC譯址及控制轉(zhuǎn)化子模塊用于產(chǎn)生ADC或DAC控制相應(yīng)存儲(chǔ)空間的邏輯;狀態(tài)切換控制子模塊則通過(guò)接收?qǐng)D3中其它子模塊的信息來(lái)最終實(shí)現(xiàn)存儲(chǔ)空間與ADC、DSP及DAC的相互對(duì)應(yīng)。

  當(dāng)系統(tǒng)設(shè)計(jì)中不要求使用DAC或ADC時(shí),圖4中示出了圖1中模塊互連部分與圖2的簡(jiǎn)化;由此可以看出以上基于可通用設(shè)計(jì)模式的DSP系統(tǒng)框架簡(jiǎn)化為了具有以乒乓式存取的雙存儲(chǔ)器子模塊的情況,故基于乒乓式存取的數(shù)據(jù)系統(tǒng)是其特例。此外,該框架可以實(shí)現(xiàn)多路ADC及多路DAC的并行工作,通常選用相應(yīng)數(shù)目的SDRAM作為存儲(chǔ)器子模塊來(lái)配合使用。

  圖5中示出了一種使用雙乒乓式存儲(chǔ)器模塊的DSP系統(tǒng)主要部分,與圖1中模塊互連部分相比,此硬件結(jié)構(gòu)顯得冗余,實(shí)現(xiàn)上會(huì)使用較多的器件并使制板連線更為復(fù)雜,但性能上不會(huì)有所提升。圖6中示出了一種使用FPGA以實(shí)現(xiàn)FIFO功能為主的DSP系統(tǒng)主要部分,與圖1中模塊互連部分相比,此硬件結(jié)構(gòu)較為簡(jiǎn)單,但圖像的采集和顯示要配合軟件上的協(xié)作予以實(shí)現(xiàn)從而增加了軟件開(kāi)發(fā)的復(fù)雜性,此外由于該存儲(chǔ)器模塊的總線結(jié)構(gòu)單一至使總線復(fù)用從而在某些情況下降低了系統(tǒng)性能。

  軟件構(gòu)架

  TI推薦的RF5(Reference Framework Level 5)是基于DSP/BIOS和TMS320 DSP算法標(biāo)準(zhǔn)的一般性DSP軟件構(gòu)架要素的源代碼,用戶可以根據(jù)具體應(yīng)用在其基礎(chǔ)上搭建適合需求的自定義OS?;赗F5的軟件構(gòu)架設(shè)計(jì)大體分為三步:

  1) 針對(duì)具體的硬件電路開(kāi)發(fā)相應(yīng)的底層驅(qū)動(dòng),對(duì)于ADC和DAC來(lái)說(shuō)主要是通過(guò)I2C總線對(duì)其進(jìn)行配置;

  2) 借助RF5來(lái)構(gòu)建不拘于底層電路的OS層代碼,并嵌入相應(yīng)的硬件驅(qū)動(dòng)及標(biāo)準(zhǔn)的算法接口;

  3) 按TMS320 DSP算法標(biāo)準(zhǔn)編制具體的視頻處理算法,并通過(guò)標(biāo)準(zhǔn)的接口定義將其集成到OS層代碼中。

  其中,每一步的設(shè)計(jì)相對(duì)獨(dú)立,這樣在更改具體電路的情況下只需修改1),在變化算法功能的情況下只需修改3),而在擴(kuò)充軟件整體應(yīng)用范圍的情況下只需修改2)。

  RF5具有良好的擴(kuò)展性及高集成度特性,支持動(dòng)態(tài)對(duì)象的創(chuàng)建和基于任務(wù)的多線程,提供了可以自定義擴(kuò)充的代碼要素和有效的跟蹤調(diào)試工具,通過(guò)其可實(shí)現(xiàn)下列三方面的結(jié)構(gòu)化設(shè)計(jì)從而明了OS層的數(shù)據(jù)流通路徑:

  1) 數(shù)據(jù)處理方面。RF5提供了四種關(guān)于數(shù)據(jù)處理方面的要素:任務(wù)、通道、外包單元和算法接口。OS層由不同的多個(gè)任務(wù)組成,每個(gè)任務(wù)可以包含一系列的通道,而每個(gè)通道又可以包含一系列的外包單元,其中一個(gè)外包單元對(duì)應(yīng)一個(gè)算法接口的封裝;每個(gè)算法代碼都可以重復(fù)使用,通過(guò)調(diào)用不同的對(duì)象來(lái)實(shí)現(xiàn)一個(gè)算法的多個(gè)例程在不同通道中的使用。

  2) 數(shù)據(jù)傳遞方面:

  A. 任務(wù)級(jí)的數(shù)據(jù)傳遞,是基于旗語(yǔ)同步的。在任務(wù)與驅(qū)動(dòng)之間通常采用DSP/BIOS中的SIO對(duì)象(針對(duì)音頻系統(tǒng))或GIO對(duì)象(針對(duì)視頻系統(tǒng))指明數(shù)據(jù)的位置來(lái)進(jìn)行交互,而在多個(gè)任務(wù)之間則采用RF5提供的SCOM消息隊(duì)列機(jī)制通過(guò)識(shí)別不同的隊(duì)列名和指明相應(yīng)的數(shù)據(jù)位置來(lái)互傳信息。

  B. 外包單元級(jí)的數(shù)據(jù)傳遞。每個(gè)外包單元都有其輸入列表和輸出列表,這些列表里存放了由RF5提供的ICC對(duì)象用于指明數(shù)據(jù)的位置,通過(guò)各列表中包含相同的ICC對(duì)象來(lái)實(shí)現(xiàn)各外包單元間的交互。此外,通過(guò)ICC對(duì)象可以完成任務(wù)級(jí)數(shù)據(jù)和外包單元級(jí)數(shù)據(jù)之間的交互。

  3) 消息控制。對(duì)于信息少的控制消息可以采用DSP/BIOS中的郵箱機(jī)制通過(guò)搬移指令的內(nèi)容單向的在任務(wù)間傳遞指令,而對(duì)于信息多的控制消息則可以使用SCOM消息隊(duì)列機(jī)制通過(guò)識(shí)別不同的隊(duì)列名和指明相應(yīng)的數(shù)據(jù)位置在任務(wù)間傳遞指令。

  圖7中示出了基于視頻處理與RF5的一般OS層構(gòu)架示意圖,可以通過(guò)增加任務(wù)來(lái)擴(kuò)充其它如網(wǎng)絡(luò)傳輸、音頻處理等功能(需要相應(yīng)的硬件和底層驅(qū)動(dòng)支持)。從圖中可以看到,以雙通道及每通道內(nèi)兩外包單元的情況為例,圖像數(shù)據(jù)從ADC出來(lái)后經(jīng)過(guò)輸入設(shè)備驅(qū)動(dòng)存放在GIO對(duì)象所指的數(shù)據(jù)位置,任務(wù)tskCapture通過(guò)調(diào)用GIO對(duì)象對(duì)其所指的數(shù)據(jù)進(jìn)行格式及大小等的簡(jiǎn)單變換,再將結(jié)果數(shù)據(jù)存入SCOM消息指定的位置并通過(guò)SCOM隊(duì)列向任務(wù)tskProcess發(fā)送該消息;當(dāng)任務(wù)tskProcess接收到該消息后,對(duì)其所指的數(shù)據(jù)按具體要求的算法進(jìn)行處理,其中一個(gè)外包單元實(shí)現(xiàn)一個(gè)算法例程,一個(gè)通道則實(shí)現(xiàn)一路功能上已獨(dú)立且算法間先后關(guān)聯(lián)的算法組;當(dāng)任務(wù)tskProcess處理數(shù)據(jù)完成后,將結(jié)果再次存入SCOM消息指定的位置并向任務(wù)tskDisplay發(fā)送消息;任務(wù)tskDisplay收到消息后會(huì)對(duì)所指數(shù)據(jù)做格式及大小等的簡(jiǎn)單變換,以便通過(guò)GIO對(duì)象發(fā)送給輸出設(shè)備驅(qū)動(dòng)從而在DAC后端顯示;任務(wù)tskControl通過(guò)接收主機(jī)端的控制消息來(lái)對(duì)任務(wù)tskProcess的處理過(guò)程進(jìn)行控制。

  基于本文上述討論的系統(tǒng)框架模型可通過(guò)圖7定制適合其硬件結(jié)構(gòu)的如圖8中所示的簡(jiǎn)化的OS層構(gòu)架。與圖7中相比,圖8中只有算法的處理和控制兩個(gè)任務(wù)從而提高了DSP在算法處理上的效率,而ADC和DAC的配置則在系統(tǒng)上電后的初始化中完成,此后ADC和DAC不需要DSP的介入而通過(guò)CPLD/FPGA中的邏輯實(shí)現(xiàn)了圖像數(shù)據(jù)按要求的格式和大小在存儲(chǔ)器子模塊中的存放從而在某種程度上減輕了DSP的負(fù)擔(dān)。

  設(shè)計(jì)思路的具體應(yīng)用

  依照以上的思路實(shí)現(xiàn)整個(gè)系統(tǒng)的設(shè)計(jì)主要通過(guò)下列四步的完成:

  1) 根據(jù)實(shí)際需要選擇適當(dāng)?shù)钠骷?,完成整個(gè)系統(tǒng)硬件層次上的連接;

  2) 針對(duì)具體情況定制系統(tǒng)中使用的可編程邏輯器件的內(nèi)部邏輯;

  3) 編寫適合具體電路的程序代碼,實(shí)現(xiàn)整個(gè)系統(tǒng)軟件層次上的構(gòu)架;

  4) 將指定的視頻處理算法嵌入在該構(gòu)架中。

  按上述四步,選用TVP5150A(ADC)、SAA7105(DAC)、XC95288XL(CPLD)各一片和三片IS61LV2568L(SRAM)為主要器件,在數(shù)字信號(hào)處理仿真/教學(xué)實(shí)驗(yàn)系統(tǒng)DES3200的二次開(kāi)發(fā)接口上完成了基于可通用模式的DES3200圖像處理子卡II的設(shè)計(jì),如圖9中左所示;并配合TMS320C6713B(DSP)子卡得到了CIF格式的視頻預(yù)處理的顯示結(jié)果,如圖9中右所示。進(jìn)而,證明該通用設(shè)計(jì)模式是可行的。

  參考文獻(xiàn):

  1.  Reference Frameworks for eXpressDSP software: RF5, An Extensive, High-Density System, SPRA795A. Texas Instruments, April 2003.

  2.  TMS320 DSP/BIOS User's Guide, SPRU423E. Texas Instruments, March 2004.

  3.  TMS320C6713B Floating-Point Digital Signal Processor, SPRS294B. Texas Instruments, June 2006.

  4.  TVP5150APBS Ultralow Power NTSC/PAL/SECAM Video Decoder with Robust Sync Detector, SLES087. Texas Instruments, September 2003.

  5.  SAA7104H; SAA7105H Digital Video Encoder. Philips Semiconductors, March 2004.



關(guān)鍵詞: DSP系統(tǒng) 視頻處理

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉