用于便攜式多媒體SoC的視頻處理方案
通用處理器方案的主要優(yōu)點(diǎn)如下:
1. 支持多標(biāo)準(zhǔn)。這些處理器支持各種視頻標(biāo)準(zhǔn),以及各種分辨率和幀率。所有的參數(shù)可以通過(guò)軟件來(lái)定義。同一硬件平臺(tái)可以運(yùn)行幀率為15fps的QVGA分辨率,也能運(yùn)行幀率為30fps的D1分辨率;
2. 音視頻同步。DSP能夠處理不同種類(lèi)的音頻編碼,并能處理音視頻間的同步。當(dāng)同步在DSP上進(jìn)行時(shí),多媒體任務(wù)就可以從CPU上卸載,或者系統(tǒng)中可以根本不用;
3. 非視頻操作的復(fù)用。除了視頻處理之外,通用處理器還能夠執(zhí)行很多其它工作;
4. 支持下一代產(chǎn)品。采用同一平臺(tái)可以支持未來(lái)的各代產(chǎn)品,這就使得SoC設(shè)計(jì)師能夠很容易地支持其消費(fèi)產(chǎn)品路線(xiàn)圖。
該方案同樣也具有以下缺點(diǎn):硅片面積大-可編程性將不可避免地需要較大的裸片面積。由于能夠在視頻處理之外執(zhí)行多種其它任務(wù),從而導(dǎo)致了一些并不用于視頻處理的功能模塊。不過(guò),由于使用通用處理器而增加的面積可以通過(guò)從系統(tǒng)中去掉CPU來(lái)彌補(bǔ),或者可以采用只能帶低處理載荷的小規(guī)模CPU。
對(duì)用于視頻處理的通用處理器進(jìn)行加速
有以下幾種方法可以幫助提高通用處理器的效率(性能):
1. 采用專(zhuān)用指令來(lái)更好地利用DSP引擎;
2. 從DSP上卸載所有的數(shù)據(jù)傳輸操作,使其專(zhuān)門(mén)用于視頻處理;
3. 算法加速。利用獨(dú)特的軟件算法來(lái)旁路掉常規(guī)的詳細(xì)運(yùn)算。
視頻指令——DSP中的多媒體建構(gòu)模塊
專(zhuān)用的多媒體指令能夠大大加速純軟件多媒體實(shí)現(xiàn)。下面給出了一部分指令和程序結(jié)構(gòu),他們可以被嵌入到通用DSP中,專(zhuān)用于加速多媒體功能:
1. 絕對(duì)差分。用于運(yùn)動(dòng)估計(jì)和解鎖濾波器;
2. 四分平均。用于1/2或1/4像素運(yùn)動(dòng)補(bǔ)償;
3. 分類(lèi)字節(jié)。用于非線(xiàn)性濾波器和預(yù)/后處理;
4. 字節(jié)加/減。用于DCT、運(yùn)動(dòng)重建、1/4像素濾波器、對(duì)稱(chēng)濾波器、運(yùn)動(dòng)估計(jì)和解鎖濾波器;
5. 排列數(shù)據(jù)剪輯(對(duì)字節(jié)或字的動(dòng)態(tài)范圍)。用于環(huán)內(nèi)解鎖濾波器。
下面是用于H.264環(huán)內(nèi)解鎖濾波器的代碼例子,采用了專(zhuān)用的4路SIMD視頻指令(CEVA-X1620匯編代碼):
上面的樣本代碼描述了在視頻后處理中將VLIW與SIMD結(jié)合在一起的用法。該例中,'4b' SIMD指令用于操作4個(gè)不同且相互獨(dú)立的字節(jié)數(shù)據(jù)。在上面的樣本代碼中有兩個(gè)指令數(shù)據(jù)包都包括有5個(gè)并行指令(VLIW),其中4個(gè)是4向SIMD指令,可在一個(gè)單周期中實(shí)現(xiàn)17個(gè)并發(fā)操作。
DSP卸載——數(shù)據(jù)管理引擎
幾乎在所有多媒體應(yīng)用的SoC設(shè)計(jì)中都有一個(gè)DMA引擎,它最重要的任務(wù)是執(zhí)行片內(nèi)外絕大多數(shù)數(shù)據(jù)的傳遞,同時(shí)訪(fǎng)問(wèn)所有可用的資源,包括存儲(chǔ)器、I/O口、外設(shè)和總線(xiàn)橋。這樣,DMA引擎就能從DSP上卸載部分?jǐn)?shù)據(jù)管理任務(wù),從而使得DSP能集中于多媒體處理功能。
二維和三維DMA通道能夠收集存在存儲(chǔ)器不同位置上的分散數(shù)據(jù)(來(lái)自不同的幀),并將其作為一個(gè)單數(shù)據(jù)塊送入DSP進(jìn)行處理。
在圖5中,三維DMA通道在無(wú)需DSP任何干預(yù)的條件下,可以允許DMA收集宏數(shù)據(jù)塊。
圖5:數(shù)據(jù)管理引擎實(shí)例。
通過(guò)編程DMA在3個(gè)分離維度上的不同步幅和不同單元數(shù)量,下面的數(shù)據(jù)傳送可以完全獨(dú)立于DSP實(shí)現(xiàn)。
算法加速
可以通過(guò)純算法來(lái)實(shí)現(xiàn)額外的加速,這樣做可以在視頻處理流水線(xiàn)中產(chǎn)生一條“捷徑”,并且DSP功耗也較低。這種加速算法的一個(gè)例子是來(lái)自CEVA公司基于先進(jìn)圖形識(shí)別算法的FST專(zhuān)利技術(shù)。利用該技術(shù)可以避免多媒體編解碼構(gòu)件模塊的“強(qiáng)力(brute-force)”軟件實(shí)現(xiàn),從而獲得更快的編解碼實(shí)現(xiàn),而且功耗也較低。
該加速算法能夠使視頻處理性能大大加速,相對(duì)于傳統(tǒng)的編解碼實(shí)現(xiàn)方案來(lái)說(shuō),性能最大可以提高到十倍。
CEVA Mobile-Media2000——將上述所有優(yōu)點(diǎn)集于一身
CEVA Mobile-Media2000的方案是一個(gè)基于通用處理器的多媒體平臺(tái)。它利用上述各項(xiàng)技術(shù)開(kāi)發(fā)出了一個(gè)真正的多媒體引擎,能夠在視頻處理以外處理多種任務(wù)。運(yùn)行頻率為370MHz(在TSMC 90nm G上,最壞的工作和處理?xiàng)l件),Mobile-Media2000能夠以低于150MHz的頻率解碼30幀、D1分辨率的H.264 BP。這是依靠專(zhuān)用的視頻指令和CEVA的專(zhuān)利技術(shù)——軟件加速算法(FST)來(lái)實(shí)現(xiàn)的。
SoC中其它任務(wù)可以復(fù)用Mobile-Media2000的能力對(duì)用戶(hù)來(lái)說(shuō)也是極其有益的。相同的內(nèi)核架構(gòu)可以被用來(lái)研發(fā)各類(lèi)市場(chǎng)上的不同產(chǎn)品,例如具有移動(dòng)電視功能的個(gè)人導(dǎo)航設(shè)備,或具有WiMAX連接能力的便攜式多媒體播放設(shè)備。這些設(shè)備都可以在SoC中復(fù)用相同的CEVA DSP處理器,來(lái)實(shí)現(xiàn)多種不同的功能,從而降低成本并平衡研發(fā)投資,在不同的市場(chǎng)和應(yīng)用中獲取增量收入。
Mobile-Media2000基于CEVA-X1620 DSP核,并整合了硬件平臺(tái),即一整套優(yōu)化的編解碼和應(yīng)用框架層。CEVA-X1620是一個(gè)開(kāi)放架構(gòu)DSP,用戶(hù)只需通過(guò)軟件就可以方便地差異化或定制他們的移動(dòng)多媒體方案,不需要任何的硬件升級(jí)或重新流片。
本文小結(jié)
隨著新的和更多標(biāo)準(zhǔn)的引入,在研發(fā)帶有多媒體功能的SoC時(shí)所遇到的挑戰(zhàn)正變得更加復(fù)雜。有許多方案可以用來(lái)處理多媒體。而所有這些方案可以被劃分為三大類(lèi):硬件加速器類(lèi),視頻協(xié)處理類(lèi)和通用處理器類(lèi)。CEVA公司推出的基于通用處理器的Mobile-Media2000方案,具有專(zhuān)用的視頻指令和一個(gè)功能強(qiáng)大的三維DMA,并利用專(zhuān)用的FST,因而使得這一方案成為能夠適應(yīng)當(dāng)今視頻處理多樣性和多任務(wù)環(huán)境的最佳選擇。
評(píng)論