<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è) > 手機與無(wú)線(xiàn)通信 > 設計應用 > AVS解碼器在DSP平臺上的優(yōu)化

AVS解碼器在DSP平臺上的優(yōu)化

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

(Audio Video Coding STandard)是由我國數字音視頻標準工作組制定的具有自主知識產(chǎn)權的第二代音視頻壓縮準。實(shí)行1 元專(zhuān)利費用的原則,相比其它音視頻編解碼標準具有編碼效率高、專(zhuān)利費用低、授權模式簡(jiǎn)單等優(yōu)勢。的結構復雜、運算量較大,要在嵌入式上實(shí)現實(shí)時(shí)解碼具有較大難度。在對性能的過(guò)程中可以依據使用對其進(jìn)行匯編指令集的或者針對的關(guān)鍵算法模塊進(jìn)行改良,以上方法對解碼器性能的提高均有一定作用,本文提出一種利用嵌入式的L1P Cache高速緩沖功能實(shí)現處理器對程序代碼的高效率訪(fǎng)問(wèn)的方法,從而達到提高AVS解碼器性能的目的。

本文引用地址:http://dyxdggzs.com/article/156309.htm

  1 高速緩存Cache的應用

  目前越來(lái)越多的編解碼算法采用的方式實(shí)現,隨著(zhù)芯片主頻的不斷攀升,存儲器的訪(fǎng)問(wèn)速度日益成為系統性能提升的瓶頸。在現有的制造工藝下,片上存儲單元的增加將導致數據線(xiàn)負載電容的增加,影響到數據線(xiàn)上信號的開(kāi)關(guān)時(shí)間,這意味著(zhù)片上高速存儲單元的增加將是十分有限的。為了解決存儲器速度與CPU內核速度不匹配的問(wèn)題,高性能的CPU普遍采用高速緩存(Cache)機制。

  以TI的C64x 為例,存儲器系統由片內存儲器和片外存儲器兩部分組成。其中,片內存儲器采用兩級緩存結構,第1級L1距離DSP核最近,數據訪(fǎng)問(wèn)速度最快,可以達到每秒600Mbyte,只能作為不能尋址的Cache使用,由相互獨立的L1P和L1D 組成。

  L1P Cache是處理器訪(fǎng)問(wèn)程序代碼的高速緩沖存儲器,大小為16 kbyte,采用直接映射方式,每行大小32byte;L1D Cache是處理器訪(fǎng)問(wèn)數據的高速緩沖存儲器,大小為16 kbyte,采用2路映射,每行大小為64byte。第2級L2是一個(gè)統一的程序/數據空間,可以整體作為SRAM映射到存儲空間,也可以作為Cache和SRAM按比例的一種組合。L2與L1之間的數據交互速率為每秒300 Mbyte,L2與SDRAM之間的數據交換速率為每秒100 Mbyte。片外存儲器是第3級,一般由SDRAM構成。L1、L2和片外SDRAM構成了整個(gè)存儲器系統的層次結構。C64X的兩級緩存結構若能運用恰當,將能極大地提高程序性能。

  根據圖1的三層次的存儲器系統, C64X讀取程序代碼時(shí),先查看1級緩存L1,若L1已緩存了所需代碼,則直接從L1讀取;若L1沒(méi)有該代碼的緩存,則訪(fǎng)問(wèn)2級緩存L2;若L2也沒(méi)有,則通過(guò)EMIF接口訪(fǎng)問(wèn)外部SDRAM,把所需代碼從外部SDRAM拷貝到L2緩存區,再從L2緩存區拷貝到L1,最后由DSP內核取得。

  

  圖1 三層次的存儲器系統(圖中B代表byte)

  研究表明,采用這種多級緩存的架構可以達到采用完全片上存儲器結構的系統約80%的執行效率。本文致力于更深入地研究Cache的機制,對算法的數據結構、處理流程以及程序結構等進(jìn)行,以提高Cache的命中率,更有效地發(fā)揮Cache的作用,從而達到提高解碼器運行效率的目的。

  2 基于Cache的視頻解碼算法實(shí)現

  為了克服上述不足,本文通過(guò)更改視頻解碼算法的實(shí)現架構,充分利用Cache中L1P,減少CPU讀取程序代碼的缺失次數,提高解碼程序的執行效率。

  在具體實(shí)施過(guò)程中,本文根據L1P的容量和程序中各個(gè)功能單元代碼的大小,將圖2中的功能單元分為四個(gè)模塊,每個(gè)模塊代碼大小均小于16 kbyte,各模塊所包含的功能單元為:模塊A,讀入一個(gè)宏塊;模塊B,熵解碼、反掃描、反量化、反變換;模塊C,重建;模塊D,環(huán)路濾波。

  一個(gè)視頻宏塊只有遍歷這四個(gè)模塊之后才算最終完成解碼,各個(gè)模塊之間傳遞的中間數據如果放置在片外SDRAM中,勢必影響下一個(gè)模塊獲取數據的速度,如果數據放置在片內SRAM中,由于片內RAM空間有限不能存儲整幀數據。所以權衡考慮,每個(gè)模塊完成一個(gè)宏塊行(假設一幅圖像包含有M個(gè)宏塊行,每行有N個(gè)宏塊)的解碼后再交給下一個(gè)模塊處理,這樣既可以將中間數據放置在片內又可以充分利用L1P,減少各個(gè)模塊之間的代碼沖刷,直到M 個(gè)宏塊行全部處理完畢,這樣就得到一幀數據的解碼圖像。

  


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

關(guān)鍵詞: 優(yōu)化 平臺 DSP 解碼器 AVS

評論


相關(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>