基于SOPC的MPEG4視頻播放器
運(yùn)動(dòng)補(bǔ)償
運(yùn)動(dòng)補(bǔ)償是一種大量、單調(diào)的運(yùn)算。為了能實(shí)現(xiàn)運(yùn)動(dòng)補(bǔ)償,采用了多級(jí)、多個(gè)運(yùn)算單元并行流水運(yùn)算的方式,如圖5 所示。
運(yùn)動(dòng)補(bǔ)償模塊的控制很復(fù)雜。實(shí)際設(shè)計(jì)時(shí)將它分成幾個(gè)子模塊:補(bǔ)償控制、補(bǔ)償?shù)刂樊a(chǎn)生、差分?jǐn)?shù)據(jù)提供以及補(bǔ)償運(yùn)算。這幾個(gè)子模塊直接采用硬件邏輯設(shè)計(jì),運(yùn)行時(shí)無(wú)需NiosII 處理器干預(yù)。其中補(bǔ)償控制是完成整個(gè)運(yùn)動(dòng)補(bǔ)償?shù)目刂?提供輸入控制信號(hào)、輸出控制信號(hào)、緩存控制信號(hào)、預(yù)測(cè)數(shù)據(jù)和差分?jǐn)?shù)據(jù)等;補(bǔ)償?shù)刂樊a(chǎn)生用于生成預(yù)測(cè)數(shù)據(jù)在幀緩存中的地址及補(bǔ)償結(jié)果的寫地址;差分?jǐn)?shù)據(jù)負(fù)責(zé)接收IDCT 的結(jié)果,通過(guò)緩存在適當(dāng)時(shí)機(jī)提供補(bǔ)償使
用;補(bǔ)償運(yùn)算則完成最終預(yù)測(cè)數(shù)據(jù)的計(jì)算。
YUV-RGB 轉(zhuǎn)換
根據(jù)YUV 到RGB 色彩空間的轉(zhuǎn)換關(guān)系,對(duì)每個(gè)乘積項(xiàng)都預(yù)先做出結(jié)果, 存放在ROM 當(dāng)中。對(duì)每一個(gè)YUV 分量的輸入,由硬件邏輯產(chǎn)生存取地址,并進(jìn)行加法運(yùn)算,從而得到對(duì)應(yīng)的結(jié)果。其實(shí)現(xiàn)結(jié)構(gòu)如圖6 所示。
系統(tǒng)軟件工作流程
本系統(tǒng)的軟件工作流程如圖7 所示。
結(jié) 語(yǔ)
該系統(tǒng)采用基于Altera FPGA 嵌入式軟核的SOPC平臺(tái)實(shí)現(xiàn),具有較低的硬件成本, IP 核的大量使用,良好的系統(tǒng)擴(kuò)展性的特點(diǎn)。
評(píng)論