用定制DSP設(shè)計(jì)MPEG-4無(wú)線視頻產(chǎn)品
MPEG-4是一種新興的視頻標(biāo)準(zhǔn),其彈性糾錯(cuò)能力和可支持小屏幕的特性使之在移動(dòng)通信市場(chǎng)上受到廣泛關(guān)注,幾乎所有移動(dòng)電話生產(chǎn)商和PDA開(kāi)發(fā)商都對(duì)其表示出極大的興趣。然而這種視頻標(biāo)準(zhǔn)對(duì)處理器的要求卻非常高。在整個(gè)移動(dòng)通信結(jié)構(gòu)中,僅MPEG-4處理器這一部分就會(huì)毫不客氣地吞掉大量的資源。因而要想真正實(shí)現(xiàn)無(wú)線視頻應(yīng)用這一夢(mèng)想,首先就必須解決MPEG-4信號(hào)處理問(wèn)題。
工程師們已經(jīng)嘗試過(guò)采用固定編碼邏輯和通用型DSP來(lái)完成這一龐然大物般的MPEG-4處理,但結(jié)果均不理想。固定編碼邏輯雖然能夠提供較高的性能,但設(shè)計(jì)和實(shí)現(xiàn)所需的時(shí)間太長(zhǎng),而且得到的設(shè)計(jì)結(jié)果不夠靈活,無(wú)法滿足將來(lái)修改的需要。而通用可編程數(shù)字信號(hào)處理器(DSP)盡管很適合有限沖擊響應(yīng)(FIR)濾波和其他一些MAC密集的應(yīng)用,但對(duì)于可變長(zhǎng)度解碼和離散余弦變換等視頻編解碼中固有的算法卻又無(wú)法有效實(shí)現(xiàn)。
那么怎樣才能設(shè)計(jì)出滿足要求的處理器呢?本文給出了一種方案:采用定制DSP。工程師們可以利用數(shù)字DSP IP核并結(jié)合一些新的設(shè)計(jì)方法,設(shè)計(jì)一種用戶化的引擎來(lái)完成所需的MPEG-4功能,從而將無(wú)線視頻應(yīng)用變?yōu)楝F(xiàn)實(shí)。
本方案的第一步,要開(kāi)發(fā)一種應(yīng)用軟件來(lái)執(zhí)行MPEG-4視頻標(biāo)準(zhǔn),然后對(duì)該軟件進(jìn)行優(yōu)化和校驗(yàn),以保證其滿足MPEG-4視頻標(biāo)準(zhǔn)的要求。第二步,在這個(gè)應(yīng)用軟件得到優(yōu)化之后,將其編譯至一個(gè)通用型DSP引擎,仔細(xì)分析它在應(yīng)用中可能出現(xiàn)的性能瓶頸。通過(guò)分析,構(gòu)造一組由設(shè)計(jì)者定義的計(jì)算單元(DDCU),有針對(duì)性地解決應(yīng)用中的計(jì)算瓶頸問(wèn)題。這組DDCU構(gòu)成一個(gè)庫(kù),利用這個(gè)庫(kù),設(shè)計(jì)者可以為不同的產(chǎn)品和產(chǎn)品域創(chuàng)建不同的用戶應(yīng)用DSP引擎。例如,在一個(gè)支持QCIF(四分之一普通接口格式)和CIF幀格式的PDA中,可以通過(guò)簡(jiǎn)單等級(jí)(SP)和高級(jí)簡(jiǎn)單等級(jí)(ASP)創(chuàng)建一個(gè)簡(jiǎn)單的定制 DSP來(lái)實(shí)現(xiàn)低速編解碼。
此外,通過(guò)恰當(dāng)?shù)脑O(shè)計(jì)規(guī)劃,設(shè)計(jì)者還可以使引擎的性能剛好滿足目標(biāo)產(chǎn)品的要求——例如針對(duì)CIF格式設(shè)計(jì)出幀處理速度為每秒15幀的 DSP引擎——這樣就能降低對(duì)時(shí)鐘速率、指令長(zhǎng)度和存儲(chǔ)映像的要求,從而實(shí)現(xiàn)低功率和低成本。但是若想支持更大尺寸的幀并支持高級(jí)分析,就需要?jiǎng)?chuàng)建一種性能更高的DSP引擎。這種DSP引擎內(nèi)部并行度更高,可用資源量更大,因而運(yùn)行速度也更快。
最后一步,將定制DSP融入多處理器內(nèi)核,通過(guò)兩者的共同作用來(lái)達(dá)到進(jìn)一步規(guī)劃高端應(yīng)用性能的目的。在當(dāng)今的通信行業(yè)中,產(chǎn)品推向市場(chǎng)的速度越來(lái)越快,以上談到的方法和工具恰好為快速分析和創(chuàng)建定制DSP從而加快產(chǎn)品設(shè)計(jì)提供了一種較好的方案。
下面讓我們看看定制DSP是如何創(chuàng)建的。
可定制的VLIW(超長(zhǎng)指令字)引擎
引擎指一組資源的集合,通過(guò)對(duì)這種資源編程,可以使之以某種給定的順序?qū)崿F(xiàn)一系列操作。通常,設(shè)計(jì)中最主要的處理工作是由數(shù)據(jù)通道資源-即我們所說(shuō)的計(jì)算單元-來(lái)完成的。
計(jì)算單元可以對(duì)其輸入進(jìn)行一系列操作,并輸出一個(gè)或多個(gè)計(jì)算結(jié)果。RISC(精簡(jiǎn)指令集計(jì)算機(jī))和DSP是兩種由計(jì)算單元組成的處理器。其中,RISC處理器每次(每時(shí)鐘周期)只能執(zhí)行一個(gè)操作,而典型的多媒體和DSP應(yīng)用卻可以在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行多項(xiàng)操作。這是因?yàn)榇蟛糠诌@種高級(jí)DSP 的結(jié)構(gòu)都具有某種形式的指令級(jí)并行處理能力。
本文給出的方案中,針對(duì)MPEG-4應(yīng)用而設(shè)計(jì)的DSP引擎能夠達(dá)到固定編碼邏輯和通用型DSP都無(wú)法達(dá)到的性能。該引擎之所以如此成功,主要原因之一就是采用了VLIW結(jié)構(gòu)。VLIW是一種非常適合多媒體應(yīng)用的結(jié)構(gòu)。它支持指令級(jí)并行性,這就使得采用它的DSP引擎可以在單時(shí)鐘周期內(nèi)執(zhí)行多項(xiàng)操作。不但如此,它還支持應(yīng)用程序編譯過(guò)程中的并行性,這又避免了為龐大的視頻處理耗費(fèi)過(guò)長(zhǎng)的運(yùn)行時(shí)間或增加過(guò)大的晶片體積。與VLIW類似的超標(biāo)量體系結(jié)構(gòu)也具備這一特性。
評(píng)論