便攜式多媒體SoC的視頻處理方案
由于消費(fèi)者對(duì)便攜式多媒體設(shè)備的強(qiáng)勁需求及技術(shù)上的進(jìn)步,設(shè)備制造商面對(duì)的挑戰(zhàn)是必須把更多的功能和服務(wù)集成在越來(lái)越小型、價(jià)廉和功能多樣化的產(chǎn)品中。要了解如何針對(duì)這個(gè)市場(chǎng)創(chuàng)建高價(jià)值及與眾不同的多媒體SoC,我們必須先看看目前一般的便攜式多媒體設(shè)備能夠?qū)崿F(xiàn)的技術(shù)范圍。
多媒體―多種標(biāo)準(zhǔn)的視頻、音頻及圖像解碼編碼,如H.264、VC-1、MPEG4、AAC、MP3、JPEG。
無(wú)線―GSM或CDMA、WCDMA、TD-SCDMA、1xEV- DO、WiMAX。
圖形―包括用于游戲及先進(jìn)GUI的2維和3維(立體)圖形。
語(yǔ)音識(shí)別―幾乎是目前市場(chǎng)上各款新手機(jī)的標(biāo)準(zhǔn)配置。
連接和定位技術(shù)―如藍(lán)牙、GPS、WiFi、UWB、WiMAX,包括天線、RF 和基帶處理。
當(dāng)針對(duì)SoC設(shè)計(jì)視頻引擎時(shí),該引擎必須能夠支持多種不同的應(yīng)用和標(biāo)準(zhǔn):
視頻播放/錄制(電影、短片、播客(P odcast) 等)采用H.264、 MPEG4、 VC-1 或MPEG2。
視頻會(huì)議采用H.263 (MPEG4短標(biāo)頭) 或 H.264。
MobileTV采用H.264 或 VC-1。
此外,在當(dāng)今便攜式多媒體設(shè)備的眾多視頻標(biāo)準(zhǔn)中,有著大量的內(nèi)容類型和文件格式:
文件格式:3gp、m4v、mpg、avi 等。
內(nèi)容類型:
以文件為基礎(chǔ)―在播放或錄制存儲(chǔ)在設(shè)備局域存儲(chǔ)器上的短片或電影時(shí)使用。
視頻流―用于播放經(jīng)運(yùn)營(yíng)商網(wǎng)絡(luò)傳送的短片。
廣播―用于MobileTV應(yīng)用。
交互式 ― 允許用戶與多媒體內(nèi)容進(jìn)行交互活動(dòng)。
為了在便攜式多媒體SoC中支持上述所有的視頻標(biāo)準(zhǔn)與內(nèi)容類型,有三種可行的方案。
硬連線加速器-面積小&性能高
硬連線加速器能以最高的效率和很少的門數(shù)執(zhí)行某一特定標(biāo)準(zhǔn) (通常是單一標(biāo)準(zhǔn)) 的單項(xiàng)功能 (解碼或編碼)。開(kāi)發(fā)之后,硬連線加速器便可在不同的SoC上被復(fù)用,但只限于完全相同的功能。舉例說(shuō),在VGA分辨率下支持MPEG4 Simple Profile編碼的加速器需要大約15萬(wàn)個(gè) NAND-2等效門電路,而在D1分辨率下同時(shí)支持MPEG4(Simple Profile)和H.264 (Baseline Profile) 解碼的加速器必須完全進(jìn)行重新設(shè)計(jì),需要大約 350萬(wàn)個(gè)門電路。
圖1所示為常見(jiàn)的SoC架構(gòu),包含了視頻硬連線加速器、用于音頻/語(yǔ)音處理的DSP引擎,以及實(shí)現(xiàn)上述二者間同步并運(yùn)行其它內(nèi)務(wù)和系統(tǒng)任務(wù)的CPU。

采用硬連線加速器有多項(xiàng)優(yōu)點(diǎn):
面積―執(zhí)行固定的操作不涉及任何指令處理 (取指令、解碼),并無(wú)需程序內(nèi)存管理,故門數(shù)相對(duì)較低。
功耗―低門數(shù)和高效的實(shí)現(xiàn)方案能帶來(lái)低功耗。
性能―就執(zhí)行時(shí)間和工作速度而言,這是非常有效的實(shí)現(xiàn)方案。
不過(guò),這種方案也存在某些缺陷:
只限于視頻―使用硬連線加速器時(shí),多媒體處理的音頻和語(yǔ)音部分由SoC中的其他部件處理(通常是CPU 或DSP)。
視頻和音頻間的同步在CPU上完成 ― 在CPU上執(zhí)行同步操作增加了開(kāi)發(fā)工作量、集成度和QA。
功耗―使用硬連線加速器時(shí),CPU一般執(zhí)行算法的熵編碼部分(如CAVLC)和后處理部分 (如去塊效應(yīng)濾波器),故在高比特率下該解決方案極為耗電(在約150MHz的負(fù)載情況下,ARM11內(nèi)核的功耗便高達(dá)120mW。)
軟件更新和Bug修復(fù)―Bug無(wú)法通過(guò)軟件更新來(lái)越過(guò)或修復(fù),很大機(jī)會(huì)需要重新流片。
下一代產(chǎn)品―硬連線加速器在多媒體SoC中執(zhí)行某一特定功能,很可能無(wú)法滿足下一代的產(chǎn)品要求。
存儲(chǔ)器―SoC中的任何其他元件都無(wú)法存取加速器專用的存儲(chǔ)器,因此在成本和芯片尺寸方面的效率很低。
有些硬連線加速器能夠支持多個(gè)標(biāo)準(zhǔn)的解碼操作 (即H.264 Baseline Profile 和 MPEG4 Simple Profile)。盡管這些加速器很有用,但它們已失去低門數(shù)這一主要優(yōu)勢(shì)。
視頻協(xié)處理器-多標(biāo)準(zhǔn)視頻引擎
視頻協(xié)處理器以可編程的方式支持不同的視頻標(biāo)準(zhǔn),并通常執(zhí)行解碼和編碼處理。以視頻協(xié)處理器為基礎(chǔ)的架構(gòu) (40至50萬(wàn)個(gè)門電路) 在面積方面往往比以硬連線加速器的大。但是,視頻協(xié)處理器在支持多種視頻標(biāo)準(zhǔn)方面具有更強(qiáng)的靈活性。
視頻協(xié)處理器有兩種不同的基本類型:
1. 混合型 ― 包含專用的CPU和附加的硬件模塊,共同構(gòu)成“視頻協(xié)處理器”以加速視頻處理。
2. 專用視頻內(nèi)核型 ― 是支持多標(biāo)準(zhǔn)的視頻引擎,和混合模型相比是更為有效的解決方案,它沒(méi)有CPU功能 (與混合型不同),只能進(jìn)行視頻處理。
圖2所示為其常見(jiàn)的SoC架構(gòu),當(dāng)中包含了執(zhí)行視頻編碼解碼功能的視頻 協(xié)處理器、用于音頻/語(yǔ)音處理的DSP引擎,以及實(shí)現(xiàn)音視頻同步并運(yùn)行系統(tǒng)任務(wù)的CPU。
采用視頻協(xié)處理器的主要優(yōu)勢(shì)有:
支持多標(biāo)準(zhǔn)―無(wú)需硬件擴(kuò)展即可支持多種視頻編解碼標(biāo)準(zhǔn)。
可擴(kuò)展性―同一個(gè)平臺(tái)可支持不同的分辨率和幀速率。
面積―該解決方案的面積一般在硬連線加速器和通用處理器之間。
Bug修復(fù)―與硬連線加速器不同,Bug可以通過(guò)軟件更新來(lái)屏蔽 (因此無(wú)需重新流片)。
不過(guò),這類方案也有一些缺點(diǎn)如下:
音頻處理―這種解決方案專為視頻處理而設(shè)計(jì),并不包括音頻處理或視頻/音頻同步所需的硬件支持 (如TDM 端口、面向音頻的操作)。
內(nèi)存―視頻協(xié)處理器使用的存儲(chǔ)器無(wú)法被SoC中非視 頻處理用途的任何其他操作所復(fù)用。 編程―采用混合型的系統(tǒng)包含兩個(gè)CPU (不必是同一 類),這便會(huì)產(chǎn)生對(duì)二者進(jìn)行編程協(xié)作相關(guān)的問(wèn)題 (如集成、數(shù)據(jù)流、通信協(xié)議等)。
僅限于視頻―視頻協(xié)處理器在SoC中不能執(zhí)行任何其他任務(wù)。
未來(lái)視頻標(biāo)準(zhǔn)的支持―視頻協(xié)處理器針對(duì)特定的視頻標(biāo)準(zhǔn)而設(shè)計(jì)。其他新標(biāo)準(zhǔn)的出現(xiàn)需要增加額外的視頻資源。
通用處理器 (DSP/RISC) -真正的多任務(wù)引擎
通用處理器是可編程的解決方案,能夠在相同的硬件平臺(tái)上并行支持多個(gè)應(yīng)用。在選擇通用處理器時(shí),系統(tǒng)集成商有兩個(gè)主要選案:DSP 內(nèi)核和 RISC 內(nèi)核。RISC 內(nèi)核由于缺乏計(jì)算能力、存儲(chǔ)帶寬有限且沒(méi)有視頻主導(dǎo)的指令,因此不太適合于執(zhí)行視頻處理或其他大量的計(jì)算任務(wù)。舉例說(shuō),對(duì)32位RISC 內(nèi)核來(lái)說(shuō),在D1分辨率下對(duì)復(fù)雜的視頻編解碼器 (如H.264) 進(jìn)行解碼所需的處理能力可能是雙MAC DSP (例如CEVA-X1620) 的10倍。
在芯片面積方面,通用處理器的門數(shù)一般比前兩種處理器多。不過(guò),這類處理器可以在系統(tǒng)中復(fù)用來(lái)執(zhí)行任何數(shù)據(jù)流的編碼或解碼,并可同時(shí)執(zhí)行基帶操作、定位 (GPS) 或藍(lán)牙連接。
圖3和圖4所示為常見(jiàn)的SoC架構(gòu),分別以不同的配置方式集成了通用處理器。圖3中有兩個(gè)元件:用于多媒體處理的DSP和用于內(nèi)務(wù)及系統(tǒng)任務(wù)的CPU。圖4只有一個(gè)處理器(帶有RISC功能的DSP),同時(shí)執(zhí)行多媒體處理和CPU的其他任務(wù)。

通用處理器方案的主要優(yōu)點(diǎn)如下:
多標(biāo)準(zhǔn)―這些處理器支持多種視頻標(biāo)準(zhǔn)和各種分辨率及幀速率。所有這些參數(shù)都可通過(guò)軟件定義。相同的硬件平臺(tái)能以15fps 的幀速率支持QVGA分辨率,也能以30fps的幀速率支持D1分辨率。
視頻/音頻同步―DSP能夠運(yùn)行不同的音頻編解碼器,并處理視頻和音頻的同步。當(dāng)在DSP上執(zhí)行同步時(shí), CPU將從所有多媒體任務(wù)中卸載出來(lái),因此系統(tǒng)可能根 本不需要CPU。
可用于非視頻操作―除視頻處理之外,通用處理器還能夠執(zhí)行廣泛的任務(wù)。
但是這種方法也存在某些缺點(diǎn):
面積―可編程性無(wú)可避免地意味著更大的芯片面積。因?yàn)樵谝曨l處理以外還能執(zhí)行其他任務(wù),所以需要用于非視頻處理的功能模塊。不過(guò),通過(guò)去掉系統(tǒng)中的CPU,或是采用更小型的CPU來(lái)處理較低的處理負(fù)荷,有助于減少系統(tǒng)所需的額外的門電路。
性能―與硬連線解決方案相比,在通用處理器上運(yùn)行視頻功能的速度通常較慢。不過(guò),可采用算法解決方案來(lái)加速系統(tǒng)的性能。
加速通用處理器的視頻處理
這里有幾種方法有助于提高通用處理器的效率(性能):
采用專用的DSP視頻指令來(lái)加速多媒體的處理。 把DSP從所有數(shù)據(jù)傳輸操作中解放出來(lái),讓其專注于多媒體處理。
算法加速―利用獨(dú)特的軟件算法來(lái)替代常規(guī)的復(fù)雜計(jì)算。
視頻指令―DSP中的專用多媒體模塊
專用多媒體指令能夠顯著加速純軟件多媒體的性能。下面是可嵌入到通用DSP中的一些指令,專用于加速多媒體處理:
絕對(duì)差分(Absolute differences)―用于運(yùn)動(dòng)評(píng)估和去塊效應(yīng)濾波器。
四重平均值(Quad average)―用于二分一或四分一的像素運(yùn)動(dòng)補(bǔ)償。
分類字節(jié) (Classify bytes)―用于非線性濾波器和預(yù)/后處理。
字節(jié)增加/減少(Byte addition/subtraction)―用 于DCT、運(yùn)動(dòng)重建、四分一像素濾波器、對(duì)稱濾波器、運(yùn)動(dòng)評(píng)估和去塊效應(yīng)濾波器。
內(nèi)嵌數(shù)據(jù)限幅 (Inline data clipping) (到字節(jié)或字動(dòng)態(tài)范圍)―用于環(huán)內(nèi)去塊效應(yīng)濾波器。
以下是H.264 內(nèi)去塊效應(yīng)濾波器的代碼示例,利用特殊的4路SIMD 視頻指令 (CEVA-X1620匯編代碼)。
bkrep lci0
{
m0.min{4b,ss} a6,a10,a6 ;min(TC0mp,Vp)<I>
|| m1.neg{4b} a10,a10 ; TC0mp->-TC0mp<I>
|| s.abssub{4b} a0,a2,a2 ;abs(p2-p0)<II>
|| l.abssub{4b} a1,a2,a1 ;abs(p1-p0)<II>
|| push{dw} a12 ; push p1-q1<II>
…
m0.max{4b,ss} a6,a10,a6 ; max(-TC0mp,Vp)<I>
|| m1.min{4b,ss} a9,a11,a9 ; min(TC0mq,Vq) <I>
|| s.cmpa{4b,lt} a2,a15,a10 ; abs(p2-p0) <II>
|| l.cmpa{4b,lt} a1,a15,a12 ; abs(p1-p0) <II>
|| ld{dw} (r1)+s0,a1 ; load p1 <I>
上面所示的代碼描述了在視頻后處理中把VLIW 與 SIMD結(jié)合起來(lái)。在該示例中,‘4b‘SIMD 指令于4個(gè)不同的字節(jié)數(shù)據(jù)上進(jìn)行處理。代碼中的兩個(gè)指令包都包含了5條并行指令 (VLIW),其中4條是4路SIMD指令,這樣,在單個(gè)周期中就有17個(gè)并發(fā)操作被同時(shí)執(zhí)行。
DSP減負(fù)-數(shù)據(jù)傳輸引擎
在針對(duì)多媒體應(yīng)用的所有 SoC設(shè)計(jì)中多數(shù)存在一個(gè) DMA 引擎。DMA最重要的任務(wù)是執(zhí)行芯片內(nèi)外的大部分?jǐn)?shù)據(jù)傳輸,并可同時(shí)訪問(wèn)任何可用的資源,包括存儲(chǔ)器、I/O、外設(shè)和總線橋。通過(guò)這種方式,DMA 引擎將分擔(dān) DSP 的部分?jǐn)?shù)據(jù)傳輸任務(wù),使后者能專注于媒體處理功能。
二維(2D) 和三維 (3D) 的DMA通道可以收集處于存儲(chǔ)器中不同位置的分散數(shù)據(jù) (從不同的幀),并將其作為單個(gè)數(shù)據(jù)塊來(lái)移動(dòng),以便DSP進(jìn)行處理。
在圖5中,3D DMA通道允許DMA 傳輸宏塊(Macro-block ),而無(wú)需 DSP 的任何干預(yù)。通過(guò)在三個(gè) 不同的 維度上對(duì) DMA 進(jìn)行編程,圖中的傳輸便可完全無(wú)須 DSP的干預(yù)而實(shí)現(xiàn)。
算法加速
可以通過(guò)使用獨(dú)特的算法來(lái)實(shí)現(xiàn)性能的提速,這種算法在視頻處理流程中創(chuàng)建“捷徑 (shortcut)”,從而使所需的DSP性能較小。
CEVA 公司專利的 FST(快速子空間跟蹤) 技術(shù)便是這種加速技術(shù)的一例,以先進(jìn)的圖案識(shí)別算法為基礎(chǔ),可以無(wú)須多媒體編解碼器中的復(fù)雜運(yùn)算,從而實(shí)現(xiàn)更快的編解碼,并降低對(duì)性能的要求。
這種加速算法方案能大幅提升視頻處理的性能,與傳統(tǒng)的編解碼實(shí)現(xiàn)方案相比能提高10倍之多。
CEVA Mobile-Media2000- 全面完整的解決方案
CEVA 的Mobile-Media2000解決方案是以通用處理器為基礎(chǔ)的多媒體平臺(tái),采用了上述的技術(shù),在視頻處理之外還開(kāi)發(fā)了真正的多媒體引擎,能執(zhí)行多項(xiàng)任務(wù)。Mobile-Media2000能達(dá)到370MHz 的運(yùn)行頻率 (TSMC的90nm G工藝以及 在最差條件下) ,只需要150MHz的運(yùn)行頻率即可進(jìn)行30 幀每秒,D1分辨率下的 H.264 BP解碼。這是因?yàn)椴捎昧薈EVA DSP獨(dú)有的視頻指令和CEVA專利的FST算法。
能夠在不同的應(yīng)用中復(fù)用Mobile-Media2000解決方案的特性給客戶帶來(lái)了重大的裨益,客戶可以采用相同的內(nèi)核架構(gòu)開(kāi)發(fā)面向廣泛市場(chǎng)的多種不同產(chǎn)品,例如帶有MobileTV的個(gè)人導(dǎo)航設(shè)備或具有WiMAX互聯(lián)功能的便攜式媒體播放器。這些設(shè)備復(fù)用SoC中相同的CEVA DSP處理器來(lái)實(shí)現(xiàn)多種功能,因而能降低成本并充分利用了研發(fā)投資,從不同的市場(chǎng)和應(yīng)用中獲得更多收益。
Mobile-Media2000以CEVA-X1620 DSP內(nèi)核為基礎(chǔ),并結(jié)合了硬件平臺(tái)、完整優(yōu)化的多媒體軟件編解碼器和應(yīng)用軟件的多媒體平臺(tái)。CEVA-X1620是開(kāi)放式架構(gòu)的DSP,讓客戶只需通過(guò)軟件便能輕易地定制出與眾不同的移動(dòng)多媒體解決方案,無(wú)需進(jìn)行任何硬件升級(jí)或重新流片。
總結(jié)
隨著新標(biāo)準(zhǔn)的出現(xiàn)及不斷發(fā)展,具有多媒體功能SoC的開(kāi)發(fā)人員正面對(duì)著越來(lái)越復(fù)雜的多項(xiàng)挑戰(zhàn)。用于多媒體應(yīng)用的解決方案有多種,可以分為三大類:硬連線加速器、視頻協(xié)處理器和通用處理器。CEVA的Mobile-Media2000是以通用處理器為基礎(chǔ)的方案,具有專用的視頻指令、強(qiáng)大的三維 DMA,并采用了獨(dú)特的軟件加速算法 (FST) ,因而成為目前用于視頻和多任務(wù)處理的最佳解決方案選擇。