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