<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > AVS解碼器在DSP平臺上的優(yōu)化

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/156309.htm

            1 高速緩存Cache的應(yīng)用

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

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

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

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

            

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

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

            2 基于Cache的視頻解碼算法實現(xiàn)

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

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

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

            


          上一頁 1 2 3 下一頁

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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();