一、引言
隨著多媒體編碼技術(shù)的發(fā)展,視頻壓縮標(biāo)準(zhǔn)在很多領(lǐng)域都得到了成功應(yīng)用,如VCD(MPEG-1)、視頻會議(H.263)、DVD(MPEG-2)、機(jī)頂盒(MPEG-2)等等。
而網(wǎng)絡(luò)帶寬的不斷提升(ADSL接入從以前的512kbit/s提升到現(xiàn)在的1Mbit/s,不久還將升到2Mbit/s,甚至更高)和高效視頻壓縮技術(shù)的發(fā)展使得人們逐漸把關(guān)注的焦點轉(zhuǎn)移到了寬帶網(wǎng)絡(luò)數(shù)字電視(IPTV)、流媒體等基于傳輸?shù)臉I(yè)務(wù)上來。帶寬的增加為流式媒體的發(fā)展鋪平了道路,而高效的視頻壓縮標(biāo)準(zhǔn)的出臺則是流媒體技術(shù)發(fā)展的關(guān)鍵。
H.264是ISO/IEC??MPEG聯(lián)合ITU-T??VCEG成立的聯(lián)合視頻組(JVT)制定的一個全新的標(biāo)準(zhǔn)。相對于H.263+和MPEG-4(Simple??Profile),H.264的碼率平均降低了50%,以700kbit/s的碼流速率提供了接近DVD的畫面質(zhì)量。
H.264能面向各種應(yīng)用場合(從低比特率到高比特率),其算法本身也包含了豐富的基于壓縮和網(wǎng)絡(luò)傳輸?shù)母鞣N編碼選項??删幊烫幚砥鞴逃械撵`活性決定其為H.264的理想實現(xiàn)平臺。眾所周知,H.264的高效性是建立在其實現(xiàn)的高復(fù)雜度基礎(chǔ)上的,就其Baseline而言,解碼器復(fù)雜度將是H.263解碼器的3倍左右,而編碼器的復(fù)雜度更是高達(dá)10多倍。近年來,處理器芯片性能在不斷地提高,其中包括越來越高的處理器主頻,強(qiáng)大的運(yùn)算功能以及豐富的外設(shè)。但是與當(dāng)今日新月異的半導(dǎo)體技術(shù)、工藝相比,由于片上系統(tǒng)(SoC)的需求不斷提高,處理器的體系結(jié)構(gòu)仍具有極大的發(fā)展空間。特別是H.264作為一個前景廣闊而又具有挑戰(zhàn)性的新生“事物”,必將帶動新一輪處理器架構(gòu)的革新。而算法和架構(gòu)的互動將會成為這一輪革新的強(qiáng)有力的驅(qū)動。
二、應(yīng)用:處理器架構(gòu)革新的驅(qū)動力
事實上,處理器架構(gòu)一直是在應(yīng)用的驅(qū)動下發(fā)展、進(jìn)步的。
1.??DSP在數(shù)字信號處理算法驅(qū)動下的產(chǎn)生、發(fā)展
在過去的幾十年中,隨著半導(dǎo)體工藝與集成電路設(shè)計技術(shù)的逐漸發(fā)展,微處理器逐漸在工業(yè)控制等領(lǐng)域得到應(yīng)用,簡單的智能控制與少量計算任務(wù)的實現(xiàn),都是由我們通常所謂的單片機(jī)來完成的。單片機(jī)雖然集成了CPU、RAM、ROM(EPROM或EEPROM)、時鐘、定時/計數(shù)器、多種功能的串行和并行I/O口等部件,但是其面向的應(yīng)用場合主要是工業(yè)控制中各種事件的管理調(diào)度等,運(yùn)算處理能力不足一直是它的缺陷。
特別是隨著信息化的進(jìn)程和信號處理理論與算法等的迅速發(fā)展,需要處理的數(shù)據(jù)量越來越大,對實時性和精度的要求越來越高,單片機(jī)越來越難以滿足不斷上升的要求,DSP應(yīng)運(yùn)而生。
DSP的產(chǎn)生背景決定了其架構(gòu)的重點更多的是對特定的數(shù)字信號處理算法的強(qiáng)化支持。典型的數(shù)字信號處理算法,例如在有限長沖擊響應(yīng)濾波器(FIR)的實現(xiàn)中,需要在系數(shù)和輸入樣本的滑動窗口間作乘法,然后將所有的乘積進(jìn)行累加。類似的運(yùn)算在數(shù)字信號處理過程中大量地重復(fù)發(fā)生,使得為此設(shè)計的器件必須提供專門的支持。通常DSP處理器使用專門的硬件來實現(xiàn)單周期乘法,并且還增加了特殊的累加器寄存器來處理多個乘積的和。為了充分體現(xiàn)專門的乘法累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。另外,為了提高特定算法的實現(xiàn)效率,一些DSP處理器有專門的硬件來實現(xiàn)特殊的尋址模式,例如,模塊(循環(huán))尋址(對實現(xiàn)數(shù)字濾波器延時線很有用)、位倒序?qū)ぶ罚▽FT很有用)。這些特殊的尋址模式如果用軟件來實現(xiàn),則會大大降低系統(tǒng)的性能。
為了提高每個指令周期內(nèi)數(shù)據(jù)(與指令)的吞吐量,大多數(shù)DSP采用了改進(jìn)的哈佛結(jié)構(gòu),并且使用了多個片內(nèi)存儲器和多組總線。此外,DSP處理器幾乎都不具備數(shù)據(jù)高速緩存,這是因為DSP的典型數(shù)據(jù)是數(shù)據(jù)流。也就是說,DSP處理器對每個數(shù)據(jù)樣本做計算后就丟棄了,幾乎不再重復(fù)使用。另外,DSP算法中,通常大多數(shù)的處理時間是在執(zhí)行較小的循環(huán)上,因此,大多數(shù)DSP設(shè)有專門的硬件用于零開銷循環(huán)。所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時,不需要進(jìn)行循環(huán)計數(shù)器的檢查、條件跳轉(zhuǎn)以及修改計數(shù)器值等操作,從而大大增強(qiáng)了DSP的性能。
這些結(jié)構(gòu)上的改進(jìn)極大地提高了DSP在運(yùn)算密集型應(yīng)用中的處理能力。但隨著新的算法與標(biāo)準(zhǔn)的不斷出現(xiàn),對處理器運(yùn)算能力的要求仍在不斷提高。為了達(dá)到實際應(yīng)用的需要,處理器的架構(gòu)仍然在不斷的發(fā)展中。
2.??超標(biāo)量、VLIW處理器架構(gòu)
高性能DSP在應(yīng)用中取得了巨大成功,其成功的基礎(chǔ)在于半導(dǎo)體工藝的不斷進(jìn)步使其性能不斷提高,從而使其應(yīng)用領(lǐng)域越來越廣泛。但其在市場上真正的活力卻是其可編程特性。只要到自己購買商品的廠商網(wǎng)站下載更新軟件就能“免費”升級消費品,還有什么事情比這更讓消費者滿意呢?有了消費者的支持,企業(yè)當(dāng)然能長盛不衰。
因此,人們從來沒有停止過更高性能處理器的架構(gòu)研究。這其中就有多發(fā)射的超標(biāo)量結(jié)構(gòu)(Superscalar)和將若干指令組合在一起的超長指令字結(jié)構(gòu)(VLIW),共同之處都是為了開發(fā)指令級并行性(ILP,Instruction??Level??Parallel)。從提高處理器性能的出發(fā)點來看,其思想的先進(jìn)性不容置疑。但在2004年的消費電子領(lǐng)域,呼聲更高的似乎是另一種架構(gòu):RISC(MCU)/DSP架構(gòu)。典型的是ADI的Blackfin系列處理器,其重要特色就是在結(jié)構(gòu)中充分體現(xiàn)對媒體應(yīng)用(特別是視頻)算法的支持,另外在售價、功耗方面也具有很大優(yōu)勢。筆者認(rèn)為,這些正是超標(biāo)量與VLIW架構(gòu)的處理器所欠缺的。
三、H.264:新一輪媒體處理器架構(gòu)革新
目前,結(jié)合視頻處理算法,多項有效技術(shù)被采用。
1.??SIMD技術(shù):數(shù)據(jù)可并行處理特性
為提高通用DSP的媒體處理能力,各大DSP廠商都在原有架構(gòu)基礎(chǔ)上進(jìn)行了媒體處理指令集擴(kuò)展。其中,SIMD是被人們所熟知,也是最為成功的一項技術(shù)(圖1)?,F(xiàn)已幾乎被所有面向媒體處理相關(guān)領(lǐng)域的處理器所采用。SIMD技術(shù)通常通過內(nèi)核中內(nèi)置多個運(yùn)算單元以及相應(yīng)的控制、數(shù)據(jù)通路來實現(xiàn),反映給用戶的是提供了支持SIMD操作的指令集。
SIMD技術(shù)利用了視頻算法:DCT/IDCT,ME/MC(運(yùn)動估計、運(yùn)動補(bǔ)償)等算法模塊中的可并行特性。
2.??數(shù)據(jù)預(yù)取技術(shù):數(shù)據(jù)準(zhǔn)備、運(yùn)算寫回并行操作
在這里,我們把數(shù)據(jù)處理分如下三個步驟:(1)數(shù)據(jù)準(zhǔn)備;(2)數(shù)據(jù)處理;(3)數(shù)據(jù)寫回。
事實上,在視頻處理中,(1)和(3)有兩層含義。第一層指的是片內(nèi)、片外的數(shù)據(jù)讀寫操作。理想情況是盡量減少數(shù)據(jù)讀寫的時間(往往把這部分看成是額外開銷)。從實踐上看,可以通過DMA機(jī)制實現(xiàn)DSP數(shù)據(jù)處理和片內(nèi)外數(shù)據(jù)調(diào)度的并行處理。第二層指如何取得SIMD處理中的各個子數(shù)據(jù),例如圖中(X3,X2,X1,X0)和(Y3,Y2,Y1,Y0)的獲取以及操作(具體隨OP不同而異)的并行處理。實際上,DSP(區(qū)別于單片機(jī)與RISC)中基于存儲器的尋址方式就是一種節(jié)省數(shù)據(jù)存儲器訪問時間的有效技術(shù)。真正意義上的指令中操作數(shù)裝載和并行運(yùn)算的功能在Blackfin系列處理器中有了很好的體現(xiàn)。
而上述兩層含義的思想?yún)s是相同的,那就是數(shù)據(jù)處理和數(shù)據(jù)存取的并行處理(圖2):處理當(dāng)前數(shù)據(jù)的同時,把下次處理的數(shù)據(jù)預(yù)?。ㄗx)進(jìn)來或把上次計算結(jié)果寫回存儲器。
視頻處理是一個以數(shù)據(jù)處理為主的系統(tǒng),結(jié)合視頻處理算法,實現(xiàn)指令操作數(shù)裝載和并行運(yùn)算將大大提高數(shù)據(jù)處理效率。
3.??基于可編程處理器的H.264實現(xiàn)策略
H.264在復(fù)雜度上大大高于以往標(biāo)準(zhǔn),這就要求處理器在架構(gòu)上必須找到新的突破。筆者認(rèn)為,以下兩點將是基于可編程處理器的H.264算法實現(xiàn)的有效手段。
(1)針對H.264具體算法實現(xiàn)進(jìn)一步進(jìn)行指令擴(kuò)展。
在H.264中由于增加了很多以往標(biāo)準(zhǔn)所有沒有的編碼技術(shù),例如整數(shù)變換(結(jié)合量化),去方塊效應(yīng)濾波器,以及精度更高的運(yùn)動估計和補(bǔ)償?shù)鹊龋@就要求在指令集上必須進(jìn)行擴(kuò)展。
值得一提的是,在H.264中運(yùn)動估計采用了多幀參考技術(shù),這要求處理器設(shè)計人員對處理器的數(shù)據(jù)調(diào)度機(jī)制以及片內(nèi)外存儲器的組織等必須有新的考慮。
(2)雙核、多核架構(gòu)適配H.264編碼器的可并行處理特性。
在H.264當(dāng)中,和以往標(biāo)準(zhǔn)一樣可以進(jìn)行基于圖(picture)、片(slice)和宏塊級的并行處理。而且,在H.264中采用RD算法進(jìn)行模式選擇,所有的模式在計算時都不存在相關(guān)性,即可以并行操作。因此,雙核、多核架構(gòu)在單核處理能力不夠的情況下,也將被人們接受。隨之而來的是軟件工作難度(如編譯器,操作系統(tǒng)任務(wù)調(diào)度等)將會大大增加。
針對以上兩點,值得一提的是ADI??的Blackfin系列處理器。該系列處理器中BF531/533/535均為單核架構(gòu),均進(jìn)行SIMD指令集的擴(kuò)展。而其中的并行指令(運(yùn)算類指令和存儲器操作指令可以并行執(zhí)行)有力地提高了數(shù)據(jù)處理為主的視頻編解碼器系統(tǒng)的性能。目前該款處理器正向多核架構(gòu)發(fā)展(如基于雙核的BF561)以適應(yīng)H.264如此高復(fù)雜度的算法的實現(xiàn),這將是未來幾年內(nèi)提升處理器性能的一個有效途徑,也將為高復(fù)雜度的H.264的實現(xiàn)奠定基礎(chǔ)。而Blackfin系列處理器在功耗、成本等方面的指標(biāo)也是其受到人們關(guān)注的一個原因。
四、MediaSOC3201A:一種非對稱結(jié)構(gòu)的雙核系統(tǒng)芯片
浙江大學(xué)信息與通信工程研究所SoC??R&D小組自2004年4月研發(fā)成功國內(nèi)首款具有自主知識產(chǎn)權(quán)的RISC/DSP混合體系結(jié)構(gòu)處理器MediaDSP3200以來,于2004年底成功研制出基于雙核的音視頻SOC樣片(MediaSOC3201A),如圖3,其樣片如圖4。區(qū)別于BF561的對稱架構(gòu)(SMP),MediaSOC3201A是一種非對稱結(jié)構(gòu)(AMP),主要包括:媒體擴(kuò)展CPU(運(yùn)行操作系統(tǒng),承擔(dān)音頻解碼、系統(tǒng)控制以及部分視頻解碼任務(wù)),多功能處理器MediaDSP3201(數(shù)字信號處理、媒體處理指令擴(kuò)展處理器:浙大數(shù)芯,負(fù)責(zé)視頻處理等數(shù)據(jù)處理任務(wù)),多任務(wù)DMA(負(fù)責(zé)數(shù)據(jù)調(diào)度),各種同步、異步存儲控制器,視頻編碼器(支持NTSC、PAL等制式),IIS音頻播放以及GPIO等外設(shè)接口。
目前,課題組正在研究基于MedisSOC3201A的H.264算法實現(xiàn)。算法、架構(gòu)協(xié)同考慮是我們的目標(biāo)。課題負(fù)責(zé)人劉鵬教授正滿懷信心地帶領(lǐng)整個研發(fā)團(tuán)隊為中國的集成電路、媒體系統(tǒng)芯片事業(yè)添磚加瓦。