




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯一種基于SoC的MPEG-4視頻解碼加速器-設(shè)計(jì)應(yīng)用摘要:本設(shè)計(jì)實(shí)現(xiàn)了一種應(yīng)用于系統(tǒng)芯片(SoC)的MPEG-4視頻解碼加速器。該解碼器可完成MPEG-4解碼中計(jì)算量的離散余弦變換(IDCT)、反量化(inversequantization)和運(yùn)動(dòng)補(bǔ)償疊加(reconstruction)。本文通過(guò)算法、總線接口、存儲(chǔ)器結(jié)構(gòu)以及硬件開(kāi)銷方面的優(yōu)化,使得在滿足MPEG-4實(shí)時(shí)解碼的基礎(chǔ)上,加速器占用SoC系統(tǒng)芯片的總線帶寬和硬件面積盡量的小,并有利于存儲(chǔ)器的復(fù)用。經(jīng)實(shí)驗(yàn)驗(yàn)證,本設(shè)計(jì)可以對(duì)MPEG-4簡(jiǎn)單層(simpleprofile)實(shí)時(shí)解碼。關(guān)鍵詞:MEPG-4;DCT/IDCT;視頻解碼引言隨著MPEG-4應(yīng)用的普及,符合MPEG-4標(biāo)準(zhǔn)的視頻在手持設(shè)備上的應(yīng)用越來(lái)越廣泛,SoC技術(shù)可以在完成其它功能的同時(shí),在手持設(shè)備上低成本低功耗的實(shí)現(xiàn)MPEG-4視頻解碼。而基于SoC的解碼方案可以有多種,例如采用CPU內(nèi)核軟件解碼,也可引入DSP核,或者設(shè)計(jì)專用的硬件加速電路。但是,軟件解碼在系統(tǒng)繁忙時(shí)難以滿足實(shí)時(shí)性要求,引入DSP核會(huì)使SoC的芯片成本大為增加,所以本文將MPEG-4的解碼電路作為SoC芯片中的一個(gè)硬件加速模塊來(lái)實(shí)現(xiàn)。在手持設(shè)備應(yīng)用中,MPEG-4視頻簡(jiǎn)單層(SimpleProfile)為常用,而其中計(jì)算量的部分是反離散余弦變換(InverseDiscreteCosineTransform),所以反離散余弦變換的實(shí)現(xiàn)是加速M(fèi)PEG-4解碼的關(guān)鍵。有很多的設(shè)計(jì)專門以處理IDCT為目標(biāo).本文描述的MPEG-4解碼加速器基于AMBA總線,作為高速總線(AHB)上的一個(gè)主設(shè)備,對(duì)四個(gè)亮度塊(block)和兩個(gè)色差塊組成的宏塊(macroblock)一起做IDCT運(yùn)算,并根據(jù)配置完成IDCT前的反量化和IDCT后運(yùn)動(dòng)補(bǔ)償?shù)膱D像疊加,終將結(jié)果寫回顯存。整個(gè)過(guò)程高度并行處理。本文第1部分主要介紹IDCT快速算法的選擇和優(yōu)化,第2部分討論硬件結(jié)構(gòu)和設(shè)計(jì)技巧,第3部分介紹仿真驗(yàn)證和綜合結(jié)果。1二維DCT?IDCT算法描述及快速算法的選擇和優(yōu)化1.1算法描述對(duì)于輸入矩陣f(x,y){0≤i,jN},它的離散余弦變換式如下:反變換式如下:直接計(jì)算IDCT,每個(gè)象素點(diǎn)f(i,j)都需要計(jì)算N2次乘法,一個(gè)塊有N2個(gè)象素點(diǎn),總共需要N4次乘法計(jì)算,因此計(jì)算量相當(dāng)大。1.2快速算法的選擇二維IDCT可以寫成:上式括號(hào)內(nèi)是對(duì)F(u,v)的一行作一維IDCT變換,括號(hào)外是對(duì)行IDCT的結(jié)果做一維列IDCT變換。如不考慮系數(shù)2/N,二維的IDCT就分解為對(duì)矩陣F(u,v)先做行IDCT再做列IDCT的2N次一維IDCT變換。(本文中取N=8)。對(duì)于一維IDCT有許多的快速算法。其中一種是將IDCT原始的變換矩陣分解成幾個(gè)利于計(jì)算的變換矩陣,然后逐步計(jì)算。還有一種是利用了IDCT的奇偶對(duì)稱性以及余弦函數(shù)的和差化積性質(zhì)的共用乘法器。雖然后一種的乘法次數(shù)為12次,少于前一種的16次,但由于前一種的乘法集中在輸入附近,也就是說(shuō)絕大部分乘法的其中一個(gè)乘數(shù)是輸入F(k),因而可以通過(guò)提前判斷輸入F(k)中是否有較多的0元素從而直接跳過(guò)一部分的乘加運(yùn)算,達(dá)到加速的目的。MPEG-4解碼的IDCT輸入中,有大量的0,所以前一種的算法更有利于MPEG-4解碼。其算法流程如圖1。圖1chen算法流程Ci=cos(iπ/16)1.3算法的優(yōu)化1.3.1長(zhǎng)乘法的處理在圖1的虛線中,前乘加運(yùn)算的結(jié)果要與C4相乘,如果輸入數(shù)據(jù)F(k)和系數(shù)Ci都是16位數(shù)據(jù),為了保證精度就要使用32位乘16位的乘法器,這必然成為整個(gè)電路中的關(guān)鍵路徑,影響其性能。若用下面的式(4)對(duì)虛線內(nèi)的條路徑做變換,雖然增加了乘法數(shù)目,但是不僅去除掉32位乘16位的乘法器,而且有利于下文將要提及的OnlyDC和Halfzero情況的加速。變換后的虛線內(nèi)的算法流程如圖2所示。圖2chen算法變換Ci=cos(iπ/16)1.31.OnlyDC和Halfzero本文將F(k)分為三種情況:(1)F(k)只有F(0)為非零數(shù)據(jù),我們稱這種情況為OnlyDC;(2)F(k)中F(0),F(1),F(2)和F(3)為非零數(shù)據(jù),其他四個(gè)數(shù)據(jù)都為零,這種情況稱為Halfzero;(3)其它情況都?xì)w入普通情況。我們用軟件直接解碼的方法對(duì)典型素材作了統(tǒng)計(jì)(見(jiàn)表1),發(fā)現(xiàn)OnlyDC和Halfzero的情況占了很大比例,加速這兩種情況的計(jì)算對(duì)加速整個(gè)視頻解碼的IDCT運(yùn)算有重要意義。由一維IDCT式(5)可以看出,對(duì)于OnlyDC情況,f(i)就是F(0)/1.414。其中c(0)=1/1.414,c(i)=1,i=1,2N-1。如果我們把每次行和列的一維IDCT結(jié)果放大2倍得到f′(i),對(duì)于OnlyDC,F(0)就是f′(i),不需任何計(jì)算。這樣兩次一維IDCT運(yùn)算后得到的結(jié)果f′(x,y)將為f(x,y)的2倍,故只要將f′(x,y)右移一位就可以得到正確的f(x,y)。由圖1和圖2可以看出,在所有的F(k)到f(i)的計(jì)算路徑上,都出現(xiàn)了且僅出現(xiàn)F(k)乘Ci,這樣我們對(duì)常數(shù)Ci取值時(shí)直接取2cos(iπ/16),就達(dá)到了將一維IDCT結(jié)果放大1.414倍的目的。對(duì)于Halfzero的情況,可簡(jiǎn)化圖1和圖2中的F(4)、F(5)、F(6)、F(7)的相關(guān)路徑,得到Halfzero的算法流程(如圖3)。此時(shí)時(shí)乘法總數(shù)為10次。圖3Halfzero的算法流程其中Ci=2cos(iπ/16)對(duì)于一般的情況,根據(jù)圖1和圖2的流程計(jì)算,取Ci=2cos(iπ/16)。乘法總數(shù)22次。2硬件結(jié)構(gòu)和設(shè)計(jì)技巧2.1整體結(jié)構(gòu)的選擇MPEG-4加速器的的整體框圖如圖4所示。其中slave模塊負(fù)責(zé)模式配置,接收數(shù)據(jù),反量化并判斷OnlyDC和Halfzero。寫向slave的數(shù)據(jù)經(jīng)過(guò)反量化操作后進(jìn)入Xmem。MPEG-4加速器的Control模塊控制整個(gè)解碼流程。Idct8x1從Xmem中讀出原數(shù)據(jù)做一維IDCT并寫回Xmem。由于Xmem的帶寬限制IDCT8x1只使用兩個(gè)乘法器,把乘法排列緊湊后,普通情況一維IDCT需要20個(gè)周期,Halfzero需要14個(gè)周期。Master負(fù)責(zé)取運(yùn)動(dòng)補(bǔ)償圖像數(shù)據(jù),并在完成IDCT變換和疊加后將結(jié)果放回顯存。每次數(shù)據(jù)寫回顯存后,Control模塊會(huì)將Xmem清零,這樣下次解碼操作只需將非零數(shù)據(jù)寫入Xmem,減少了數(shù)據(jù)的寫入時(shí)間。雙端口片上存儲(chǔ)器Xmem負(fù)責(zé)存放IDCT的中間數(shù)據(jù)和計(jì)算結(jié)果,其中數(shù)據(jù)通過(guò)A端口進(jìn)行IDCT變換,IDCT結(jié)果通過(guò)B端口進(jìn)行疊加,IDCT計(jì)算和運(yùn)動(dòng)補(bǔ)償疊加可以通過(guò)A、B兩個(gè)端口并行處理。單端口Ymem負(fù)責(zé)存放MASTER取回的運(yùn)動(dòng)補(bǔ)償數(shù)據(jù)。Xmem和Ymem是零等待的片上存儲(chǔ)器,而且在外部總線上是可見(jiàn)的,所以在MPEG-4加速器不使用時(shí),它們還可以作為整個(gè)芯片高速的緩沖區(qū)使用。圖4MPEG-4加速器的整體框圖2.2OnlyDC情況的處理在進(jìn)行二維IDCT的行變換時(shí),一般情況和Halfzero情況都會(huì)向Xmem寫回8個(gè)計(jì)算結(jié)果;如果是OnlyDC則不對(duì)Xmem做任何讀寫,所以在做列IDCT時(shí)必須對(duì)idct8x1發(fā)出的地址進(jìn)行重新映射,使其指向這一行的個(gè)數(shù)據(jù)。如圖5所示,IDCT發(fā)出的地址指向當(dāng)前要進(jìn)行IDCT變換的列中的數(shù)據(jù),Control模塊中的AddressRemap邏輯會(huì)根據(jù)OnlyDC狀態(tài)將地址轉(zhuǎn)換為指向列的有效數(shù)據(jù)。對(duì)于列IDCT我們直接按照一般情況計(jì)算。圖5地址重映射3仿真驗(yàn)證和性能分析本文的設(shè)計(jì)流程是首先確定IDCT算法,并用其C語(yǔ)言描述作為設(shè)計(jì)規(guī)范。然后根據(jù)設(shè)計(jì)規(guī)范用verilogRTL描述硬件,用verisity公司(已被Cadence公司收購(gòu))的E語(yǔ)言搭建驗(yàn)證環(huán)境,并將C語(yǔ)言的設(shè)計(jì)規(guī)范嵌入E驗(yàn)證環(huán)境中,通過(guò)E語(yǔ)言產(chǎn)生隨機(jī)激勵(lì),同時(shí)發(fā)給verilogRTL和C設(shè)計(jì)規(guī)范,并將兩者的結(jié)果作比較。這樣既保證了硬件實(shí)現(xiàn)和C設(shè)計(jì)規(guī)范完全一致,又通過(guò)C設(shè)范的重用縮短了驗(yàn)證周期。我們使用SYNOPSYS的DesignCompiler對(duì)本設(shè)計(jì)進(jìn)行了綜合,綜合采用SMIC的0.8um的標(biāo)準(zhǔn)單元庫(kù)。結(jié)果顯示本設(shè)計(jì)的關(guān)鍵路徑在反量化處,因?yàn)榇颂幹苯邮褂昧顺思硬僮?。?給出了本設(shè)計(jì)的特性。本設(shè)計(jì)完成更多解碼功能,主頻更高,乘法器更少,而且引入了可與系統(tǒng)復(fù)用的片上內(nèi)存。我們分I幀和非I幀兩種情況分析本設(shè)計(jì)的處理時(shí)間。在處理I幀時(shí)要進(jìn)行反量化,不需要運(yùn)動(dòng)補(bǔ)償疊加。由于反量化是在數(shù)據(jù)輸入的同時(shí)進(jìn)行的,所以處理時(shí)間由非零值的寫入時(shí)間Tinput,IDCT計(jì)算間Tidct和寫回顯存的時(shí)間Toutput三部分組成。這三部分如圖6(a)所示的并行處理。在處理非I幀時(shí),IDCT的結(jié)果需要與運(yùn)動(dòng)補(bǔ)償?shù)慕Y(jié)果疊加,所以處理時(shí)間時(shí)由非零值的寫入時(shí)間Tinput,IDCT計(jì)算時(shí)間Tidct,取運(yùn)動(dòng)補(bǔ)償數(shù)據(jù)時(shí)間Tfetch,疊加并寫回顯存的時(shí)間Toutput四部分組成。如圖6(b)所示的并行處理。(a)I幀處理時(shí)間(b)非I幀處理時(shí)間圖6處理時(shí)間其中取運(yùn)動(dòng)補(bǔ)償?shù)慕Y(jié)果和寫回現(xiàn)存都要占用總線接口,所以要依次進(jìn)行。從這兩幅圖可以看出,并行處理使得這兩種情況總的處理時(shí)間是相同的。以行IDCT一般情況15%,OnlyDC情況70%,Halfzero情況10%計(jì)算,一個(gè)block的IDCT所需的周期Tidct為:Tidct=(0×70%+14×10%+20×20%)×8+20×8=203.2(個(gè)周期)如不考慮回寫時(shí)由顯存造成的延時(shí),MPEG24加速器處理的處理時(shí)間T為:T=Tinput+6×Tidct+Toutput=6×64×15%+6×203+64=1340.8(周期/宏塊)4結(jié)論本文給出了一種應(yīng)用于嵌入式系統(tǒng)芯片的MPEG-4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)球課題申報(bào)書范文
- 合同范本 國(guó)家
- 合肥拆遷合同范本
- 書編撰出版合同范本
- 2025跨界安全云架構(gòu)技術(shù)標(biāo)準(zhǔn)
- 內(nèi)衣設(shè)備采購(gòu)合同范本
- 華凌合同范本
- 出租紅酒庫(kù)房合同范例
- 品牌家具特許經(jīng)營(yíng)合同范本
- 佛山家政用工合同范本
- GJB 國(guó)軍標(biāo)標(biāo)準(zhǔn)對(duì)應(yīng)名稱解析
- 220kV輸電線路工程質(zhì)量通病防治措施
- 2019版人教版新課標(biāo)高中英語(yǔ)必修1第一冊(cè)單詞表
- 【EHS流程圖】建設(shè)項(xiàng)目職業(yè)衛(wèi)生“三同時(shí)”工作流程圖(9頁(yè))
- [考研英語(yǔ)]商志英語(yǔ)作文模板
- 小學(xué)交通安全主題班會(huì):《一盔一帶 安全出行》
- 上海住房租賃企業(yè)信息記載表
- 模擬追溯演練報(bào)告(成品到原料)
- 常用一線降壓藥一覽表
- IATF16949-2016內(nèi)部審核方案
- 醫(yī)用耗材分類目錄 (低值 ╱ 高值)
評(píng)論
0/150
提交評(píng)論