新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 軟硬件協(xié)同設(shè)計在H.264解碼器設(shè)計中的應(yīng)用

軟硬件協(xié)同設(shè)計在H.264解碼器設(shè)計中的應(yīng)用

作者: 時間:2006-11-06 來源:網(wǎng)絡(luò) 收藏

摘 要:作為SoC設(shè)計的三大關(guān)鍵支撐技術(shù)之一,技術(shù)已經(jīng)得到了越來越廣泛的應(yīng)用。針對H.解碼芯片的設(shè)計,本文提出了一種、仿真以及驗證的系統(tǒng)模型。設(shè)計實踐證明,有效地提高了設(shè)計效率,加快了開發(fā)進(jìn)度。
關(guān)鍵詞:軟硬件協(xié)同設(shè)計;H.;SoC

引言
H./AVC標(biāo)準(zhǔn)是由ISO/IEC的運動圖像專家組(MPEG)和ITU-T的視頻編碼專家組(VCEG)共同制訂的新一代圖像壓縮標(biāo)準(zhǔn),它具有一系列優(yōu)于MPEG4和H.263的新特性,在相同的重建圖像質(zhì)量下,能比H.263節(jié)約50%左右的碼率。但是,在獲得優(yōu)越性能的同時,H.264的計算復(fù)雜度卻大大增加。據(jù)估計,其編碼的計算復(fù)雜度大約相當(dāng)于H.263的3倍,解碼復(fù)雜度大約相當(dāng)于H.263的2倍。在這種情況下,如果用純軟件的方式進(jìn)行實時解碼就會顯得力不從心,因此需要由軟件結(jié)合硬件加速器來完成實時的編解碼任務(wù)。本文提出了一種基于軟硬件協(xié)同設(shè)計技術(shù)的H.264解碼芯片的SoC設(shè)計方案。

軟硬件協(xié)同設(shè)計理論

SoC設(shè)計主要有3個關(guān)鍵的支撐技術(shù):
1. 軟硬件協(xié)同設(shè)計技術(shù):它主要是面向不同目標(biāo)系統(tǒng)的軟件和硬件的功能劃分理論和設(shè)計空間搜索技術(shù)。
2. IP模塊復(fù)用技術(shù)。IP是指那些集成度較高并具有完整功能的單元模塊,如MPU、DSP、DRAM、Flash等模塊。IP模塊的再利用除了可以縮短芯片的設(shè)計時間外,還能大大降低設(shè)計和制造的成本,提高可靠性。
3. 模塊以及模塊界面間的綜合分析和驗證技術(shù)。綜合分析和驗證是難點,要為硬件和軟件的協(xié)同描述、驗證和綜合提供一個自動化的集成開發(fā)環(huán)境。


圖1 軟硬件協(xié)同設(shè)計的基本流程

其中軟硬件協(xié)同設(shè)計技術(shù)往往成為影響開發(fā)周期以及系統(tǒng)性能的關(guān)鍵因素。軟硬件協(xié)同設(shè)計的基本流程如圖1所示。設(shè)計初期需要對設(shè)計進(jìn)行系統(tǒng)級建模。在經(jīng)過分析后對軟硬件進(jìn)行適當(dāng)?shù)膭澐?,于是系統(tǒng)設(shè)計分為軟件設(shè)計和硬件設(shè)計兩條路線。為了保證軟硬件設(shè)計的協(xié)同,在設(shè)計的各個時期還要對軟硬件接口進(jìn)行設(shè)計。當(dāng)軟硬件設(shè)計完成后,就可將設(shè)計中軟件和硬件部分加以集成以完成最后的設(shè)計。如果此時的設(shè)計不能完全滿足設(shè)計目標(biāo),還需要將整個架構(gòu)進(jìn)行重新劃分,進(jìn)行迭代直到設(shè)計滿足要求。


圖2 H.264解碼功能模塊劃分

系統(tǒng)軟硬件劃分
采用軟硬件協(xié)同設(shè)計,在系統(tǒng)模型建立以后,就要對系統(tǒng)的軟硬件進(jìn)行劃分。一部分工作需要交給嵌入式處理器用軟件來完成,而剩余的部分則要用硬件來實現(xiàn)。在劃分時,要考慮目標(biāo)體系結(jié)構(gòu)、軟硬件實現(xiàn)所占用的成本等各種因素。劃分完后,產(chǎn)生軟硬件分割界面,供軟硬件仿真、驗證和測試使用。

H.264的解碼功能模塊如圖2所示,整個解碼的過程由碼流輸入單元、熵解碼單元、反量化及反離散余弦變換單元、幀內(nèi)預(yù)測單元、幀間預(yù)測單元、去塊效應(yīng)單元、內(nèi)存控制單元、顯示輸出單元、圖像信息管理單元、解碼過程控制單元和內(nèi)存等功能單元組成。

對高清碼流進(jìn)行解碼時,的工作頻率一般為200MHz,此時對一個宏塊圖像的信息進(jìn)行處理的時間平均只有900個時鐘,實時性要求很高,因此必須將軟件的工作量減小。設(shè)計中采用嵌入式處理器控制解碼過程能給系統(tǒng)設(shè)計帶來更大的靈活性,而圖像信息管理只涉及針對圖像級別的計算,在對一幀圖像進(jìn)行解碼時只會計算一次,故將這兩部分任務(wù)交給嵌入式處理器完成。為了保證軟硬件負(fù)荷的平衡,還將碼流輸入和熵解碼任務(wù)交給嵌入式處理器處理。圖2中灰色的模塊則需要用專門的硬件加速模塊來完成。


圖3 H.264軟硬件協(xié)同設(shè)計的軟件仿真模型

系統(tǒng)的軟硬件協(xié)同設(shè)計

H.264軟硬件協(xié)同設(shè)計的仿真平臺

當(dāng)系統(tǒng)設(shè)計的軟硬件劃分完成后,設(shè)計就分成軟件設(shè)計和硬件設(shè)計兩條路線,為了保證在軟、硬件設(shè)計過程中能夠隨時進(jìn)行聯(lián)合仿真,本文建立了如圖3所示的仿真模型。由圖中的硬件設(shè)計部分可知,嵌入式處理器將通過片內(nèi)高速總線對掛在總線上的各個硬件加速器進(jìn)行控制。為了使得軟硬件劃分的界面更加清晰,嵌入式處理器解碼時產(chǎn)生的數(shù)據(jù)通過連接在片內(nèi)高速總線上的動態(tài)存儲控制器存入DRAM中,而后各個硬件加速器通過片內(nèi)高速總線將各自需要的數(shù)據(jù)從動態(tài)存儲器中讀出,進(jìn)行相應(yīng)的解碼??紤]到片內(nèi)高速總線的負(fù)擔(dān)比較重,設(shè)計中將總線位寬設(shè)定為64bit,以提高數(shù)據(jù)傳輸?shù)乃俣取?BR>
為了保持軟件與硬件設(shè)計的協(xié)同性,在進(jìn)行硬件加速模塊設(shè)計的同時,軟件設(shè)計也需要作相應(yīng)的改動。如圖3所示,在已經(jīng)劃分好的由嵌入式處理器完成的軟件模型和將由硬件實現(xiàn)的軟件模型之間,加入數(shù)據(jù)打包和數(shù)據(jù)解包單元。數(shù)據(jù)打包單元是為了生成軟件仿真所需要的輸入向量,數(shù)據(jù)解包單元用于將打包后的數(shù)據(jù)還原,作為將由硬件實現(xiàn)的軟件模型的輸入,以便模型能夠生成硬件設(shè)計部分進(jìn)行軟仿真所需要的參照向量。

在軟件仿真時期,軟件與硬件的接口主要通過數(shù)據(jù)打包單元完成。各個硬件加速器解碼所需的數(shù)據(jù)是從動態(tài)存儲器獲取的,而這些數(shù)據(jù)是由嵌入式處理器通過片內(nèi)高速總線事先存入動態(tài)存儲器中的。于是在數(shù)據(jù)打包單元的幫助下,軟件模型就可以用打包單元模擬DRAM輸出數(shù)據(jù),而后硬件設(shè)計中就可以將這些數(shù)據(jù)加載到自己的軟件仿真測試平臺中,供其軟件仿真使用。為了驗證硬件設(shè)計的正確性,在硬件設(shè)計中還加入了測試單元。測試單元將硬件解碼的數(shù)據(jù)暫存到其內(nèi)部緩存中,測試平臺中的解碼數(shù)據(jù)檢測單元就可以通過片內(nèi)總線將解碼后的數(shù)據(jù)讀回,與軟件模型生成的參照向量進(jìn)行比較。于是,通過軟件仿真便可以初步驗證硬件設(shè)計的正確性??紤]到在硬件與軟件協(xié)同仿真完成后,要通過PC對設(shè)計進(jìn)行加速驗證,本文在硬件設(shè)計中加入了PCI總線到片內(nèi)高速總線橋接器。

H.264解碼器軟硬件協(xié)同設(shè)計的加速驗證環(huán)節(jié)
由于解碼器設(shè)計的規(guī)模比較大,硬件設(shè)計進(jìn)行軟件仿真的速度比較慢,而且在前期設(shè)計中軟件和硬件都是通過生成的輸入向量和參照向量的方式進(jìn)行耦合的。為了加快仿真的速度,并為嵌入式處理器和硬件加速器的集成做進(jìn)一步的準(zhǔn)備,設(shè)計中將圖3所示的仿真模型演變成了圖4所示的模型。

在設(shè)計完成并通過軟件仿真后,硬件設(shè)計被綜合成網(wǎng)表文件下載到FPGA中。系統(tǒng)通過PCI 總線到片內(nèi)總線橋接器與PC相連,PC模擬嵌入式處理器的軟件工作,并通過PCI總線將控制信號以及解碼數(shù)據(jù)送到FPGA內(nèi)部的片內(nèi)高速總線上,由硬件模塊完成最終的解碼任務(wù)。

為了驗證設(shè)計的正確性,PC可以通過PCI總線將硬件解碼后的數(shù)據(jù)從測試單元讀出,與圖3模型中生成的參照向量進(jìn)行比較,驗證解碼的正確性。由于在FPGA中硬件仿真的速度遠(yuǎn)高于軟件仿真,因此使驗證的速度得以加快。


圖4 H.264解碼器軟硬件協(xié)同設(shè)計的加速驗證模型

H.264解碼器軟硬件協(xié)同設(shè)計的系統(tǒng)集成
通過如圖4所示的驗證環(huán)節(jié)后,設(shè)計的正確性以及軟硬件設(shè)計的協(xié)同性得到了進(jìn)一步的驗證。為了方便軟、硬件的集成,本文將圖4中的設(shè)計模型進(jìn)一步進(jìn)行了修改。圖5所示的設(shè)計模型為H.264解碼器軟硬件集成后的最終系統(tǒng)評估和設(shè)計驗證模型。可見,在經(jīng)過PC模擬嵌入式處理器行為與硬件聯(lián)合進(jìn)行硬件仿真后,嵌入式處理器通過片內(nèi)高速總線與硬件系統(tǒng)進(jìn)行了連接,最終完成了軟硬件的集成。


圖5 H.264解碼器的最終系統(tǒng)評估和設(shè)計驗證模型

此時系統(tǒng)仍使用PCI接口對碼流進(jìn)行輸入,并將解碼后的數(shù)據(jù)從測試單元讀入PC,與圖3模型中生成的參照向量進(jìn)行比較,對最終設(shè)計的正確性進(jìn)行驗證。當(dāng)驗證完成后測試單元將被移除。

當(dāng)然此時的設(shè)計不一定能完全滿足設(shè)計要求,如果沒有完全達(dá)到設(shè)計的要求,那么整個設(shè)計將從軟硬件劃分步驟重新進(jìn)行,一次次進(jìn)行迭代直到滿足最終的要求。

結(jié)語
由于采用了軟硬件協(xié)同設(shè)計技術(shù),整個SoC系統(tǒng)的軟件設(shè)計和硬件設(shè)計能夠方便地進(jìn)行聯(lián)合仿真以及測試。在整個設(shè)計過程中,軟件設(shè)計和硬件設(shè)計能夠很好地協(xié)同,當(dāng)軟件或硬件的一方需要改動的時候,另一方能夠及時地進(jìn)行相應(yīng)的改動。同時軟件設(shè)計還能在設(shè)計的各個階段為硬件設(shè)計提供必要的驗證數(shù)據(jù),使得軟件與硬件設(shè)計能夠進(jìn)行快速有效的集成,從而減小了系統(tǒng)在開發(fā)過程中的風(fēng)險,提高了系統(tǒng)設(shè)計的正確性,加快了開發(fā)的速度。
  
參考文獻(xiàn):
1 Joint Video Team (JVT) of ISO/IEC MPEG ITU-T VCEG. Proposed Draft Errata List with Revision-Marked Corrections for H.264/AVC[M], 2003.12.
2 畢厚杰. 新一代視頻壓縮編碼標(biāo)準(zhǔn)―H.264/AVC[M]. 北京:人民郵電出版社,2005.5.
3 (美)Rochit Raj Suman. System On Chip:Design and Test. 于敦山,盛世敏,田澤譯. 北京:北京航空航天大學(xué)出版社,2003
4 郭鵬飛. SoC設(shè)計中的軟硬件協(xié)同設(shè)計. 中國電子站,2005.02.11



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉