<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于 TMS320DM6446 的 H.264 編碼器的設計與優(yōu)化

基于 TMS320DM6446 的 H.264 編碼器的設計與優(yōu)化

作者: 時(shí)間:2011-01-02 來(lái)源:網(wǎng)絡(luò ) 收藏


2 對DSP數據搬移的優(yōu)化
視頻編碼需要處理較大的數據量,如一幀CIF格式的YUV數據約有150KB,而H.264除了要存儲當前幀的信息外還必須存儲重建幀和參考幀的信息,為此必須使用DM6446的片外存儲器,也即DDR。但是DSP的CPU對不同的存儲器的訪(fǎng)問(wèn)速度是不一樣的,訪(fǎng)問(wèn)速度最快的是離DSP核最近的L1P和L1D,其次是二級緩存L2,訪(fǎng)問(wèn)速度最慢的是DSP的片外存儲器。DSP對不同的存儲器的訪(fǎng)問(wèn)速度相差數倍。為了提高編碼器的運行效率,節省DSP核對各個(gè)模塊訪(fǎng)問(wèn)所消耗的時(shí)鐘周期,需要啟用DSP的DMA作為數據在兩個(gè)存儲器之間的傳輸通路。DMA的的特點(diǎn)是可以在不需要CPU干預的情況下,在后臺執行數據的高速傳輸,能夠有效減輕CPU的負荷。


C64x+在外部存儲器與內部存儲器之間的數據傳遞可以通過(guò)增強型DMA(EDMA)實(shí)現。EDMA傳輸的發(fā)起方式有三種,包括手動(dòng)觸發(fā)方式、外設事件發(fā)起方式及QDMA模式。在編碼算法中,每處理完一組宏塊就要向CPU提出DMA傳輸申請,因此采用QDMA模式的傳輸發(fā)起方式更適用于編碼算法。


DSP核對兩級內部存儲器L1和L2的訪(fǎng)問(wèn)速度也不同,如果將外部存儲器的數據直接通過(guò)EDMA傳入L1D和L1P,這樣的傳輸方式雖然較快,但需要分配比較大的L1 SRAM,這意味著(zhù)L1的Cache就會(huì )變小,過(guò)小的L1 Cache會(huì )影響L2和外部?jì)却嬷械拇a和數據的效率。出于上述考慮可以將L2作為L(cháng)1與外部存儲器之間的數據過(guò)渡區。L1和L2之間的數據傳遞采用C64x+新引入的IDMA,其原理跟EDMA相似,實(shí)現兩個(gè)內部存儲器的高速數據傳遞。


為了使EDMA可以不間斷的實(shí)現數據的搬移,本文采用了二級乒乓傳輸的方式,首先在L1 SRAM和L2 SRAM中開(kāi)辟兩個(gè)緩沖區,CPU在處理一個(gè)當前宏塊組數據之前先處理EDMA和IDMA的傳輸申請,當CPU編碼完一個(gè)宏塊組時(shí)IDMA已將數據搬移至離核最近的L1緩沖區,當CPU繼續處理下一個(gè)宏塊組前再次處理EDMA和IDMA的傳輸申請。如此以乒乓傳遞的方式搬移數據可以保證CPU處理數據時(shí)最短的等待時(shí)間。圖4為L(cháng)1、L2及外部存儲器DDR2之間的數據傳入示意圖。

圖4 存儲器數據傳遞流程圖


3 優(yōu)化結果及分析
表2為優(yōu)化前后的H.264編碼器對三個(gè)測試序列在DM6446上編碼后的結果比較。在表2中,優(yōu)化后的幀頻率比優(yōu)化前有了較大幅度的提高,這是由于對編碼器的運動(dòng)估計模塊進(jìn)行優(yōu)化后,有效減少了這一模塊所消耗的時(shí)鐘周期。而對DSP數據搬移方式的優(yōu)化,減少了DSP核等待數據搬入所消耗的時(shí)鐘周期。表中PSNR的值在優(yōu)化前后并沒(méi)有明顯變化,說(shuō)明優(yōu)化后編碼質(zhì)量未受大的影響。

結束語(yǔ)
本文結合DM6446的硬件結構特點(diǎn),將H.264編碼器在DM6446中成功實(shí)現,并對編碼器運動(dòng)估計模塊及DSP在編碼時(shí)的數據搬移進(jìn)行了優(yōu)化,取得了初步的效果,基本可達到CIF格式序列的實(shí)時(shí)編碼要求。由于DM6446具有DSP和ARM9的雙核構架,ARM端負責對整個(gè)視頻解決方案的控制和對編碼算法的調用,因此,下一步的工作重點(diǎn)為實(shí)現在A(yíng)RM端對優(yōu)化后的編碼算法進(jìn)行合理的調用和控制。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 編解碼器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>