<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è) > 嵌入式系統 > 設計應用 > RAM讀寫(xiě)時(shí)序限制解決方案

RAM讀寫(xiě)時(shí)序限制解決方案

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

本文為了提高AVS解碼器的處理速度,綜合了國內外學(xué)者的設計思想提出了一種逆掃描、反量化與反變換模塊結構,在消耗邏輯資源允許的情況下提高了處理速度,做到速度和面積的平衡。

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

  本文將逆掃描、反量化和反變換模塊結合在一起進(jìn)行設計,在實(shí)現了塊內部?jì)?yōu)化的同時(shí)采用了乒乓緩存寄存器組來(lái)實(shí)現塊之間流水線(xiàn),提高了速度;采用寄存器組復用技術(shù)實(shí)現逆塊掃描中寄存器組與反變換中的轉置寄存器組的復用,節省了寄存器資源。

  1 硬件結構

  根據AVS解碼標準,本文提出了一種高效簡(jiǎn)潔的逆掃描、反量化與反變換系統結構,該結構主要由四部分組成。反量化模塊完成量化系數向變換系數的轉變;逆掃描與寄存器組選擇模塊根據逆掃描表完成變換系數的存儲;寄存器組用來(lái)存儲變換系數及反變換中的轉置數據;反變換模塊將變換系數轉換成殘差樣值,為后續的重構做好準備。硬件結構及數據流程如圖1所示。

  

  其中輸入為VLD模塊解析出的(run,level)對、塊結束標志及一些模式判別的信息。反量化模塊對Level數據進(jìn)行反量化,逆掃描與寄存器組選擇模塊采用依據輪流使用的規則產(chǎn)生寄存器組選擇信號,同時(shí)對Run進(jìn)行累加,并根據累加結果查表得到需要存儲的寄存器,等所有量化后的Level值存儲完畢后,由It_start信號連續讀取8次寄存器進(jìn)入反變換模塊,反變換模塊采用內部流水線(xiàn)結構經(jīng)過(guò)22個(gè)時(shí)鐘周期處理完一個(gè)塊。反變換模塊中的轉置寄存器復用了前端的寄存器組。

  本設計通過(guò)乒乓結構實(shí)現了塊與塊之間的流水。圖2是本設計的總體安排,圖中考慮到變換編碼后一個(gè)塊內的有效系數一般小于25。其中以一個(gè)塊數據輸入反量化模塊作為起始時(shí)刻,當反變化模塊讀取一個(gè)寄存器組并將其作為轉置寄存器使用時(shí),另一個(gè)寄存器組用于存儲下一個(gè)塊的反量化結果。如圖2,寄存器組1用來(lái)存儲當前塊反量化后的變換系數值,而寄存器2被用于上一個(gè)塊的反變換中。另外,讀取轉置后的數據時(shí),通過(guò)對移位最初的寄存器賦零對寄存器2清零,從而用于下一個(gè)塊的變換系數的存儲。

  

  1.1 逆掃描與寄存器組選擇模塊

  該模塊先對Run值進(jìn)行累加,并根據掃描方式查表,得到當前Level值所對應的寄存器號,控制將反量化后的變換系數存入相應寄存器中,重復以上工作直到讀到塊結束標志。當前塊不為零的所有變換系數均根據逆掃描表存儲在相應的位置,因為每次從寄存器中讀取轉置數據時(shí)都會(huì )對寄存器清零,為下次使用做好準備,所以對于變換系數為零的情況就不用單獨存儲,從而提高了設計的處理速度。

  1.2 反變換模塊

  反變換模塊是將當前塊的變換系數矩陣轉換為殘差樣值矩陣的一個(gè)過(guò)程,為了節約硬件成本,此設計采用一維變換和轉置矩陣實(shí)現二維變換,參考文獻[2]中提出了一種快速有效的方法,本文對其方法進(jìn)行了優(yōu)化,節約了不必要的硬件資源和時(shí)鐘。

  下面主要介紹一維變換過(guò)程。

  設AVS的一維反變換的輸入輸出變量分別為:

  X=[X0,X1,X2,X3,X4,X5,X6,X7]T

  Y=[Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7]T

  根據Y=T8×X,把8個(gè)輸出元素展開(kāi)成以下組合,其中T8為8×8的反變換矩陣。

  M0=8X0+8X4;M1=8X0-8X4

  M2=4X1+4X5;M3=9X1-10X5

  M4=6X1+2X5;M5=2X1+9X5

  M6=10X2+4X6;M7=4X2-10X6

  M8=9X3+2X7;M9=2X3+6X7

  M10=10X3-9X7;M11=4X3+4X7

  其中所有的乘法均可化為移位操作,再定義8個(gè)中間變量N0~N7:

  N0=M0+M6;N1=M2+M8+M4

  N2=M1+M7;N3=M3-M9

  N4=M1-M7;N5=M4-M10

  N6=M0-M6;N7=M5-M11-M9

  重新整理后得到的輸出:

  Y0=N0+N1;Y1=N2+N3;Y2=N4+N5;Y3=N6+N7

  Y4=N6-N7;Y5=N4-N5;Y6=N2-N3;Y7=N0-N1

  由以上算法可以看出,一維反變換模塊只需要移位和加法操作,既方便硬件實(shí)現還節省了硬件資源。經(jīng)計算此一維反變化模塊共需要40個(gè)加法器。

  反變換模塊的見(jiàn)圖2,第1時(shí)鐘周期進(jìn)行并行讀取數據,2個(gè)時(shí)鐘周期進(jìn)行一維反變換,第4個(gè)時(shí)鐘周期開(kāi)始向轉置矩陣中存入一維反變換后的數據,第12周期開(kāi)始讀取轉置矩陣中的數據,第15個(gè)時(shí)鐘周期開(kāi)始輸出數據,第22個(gè)時(shí)鐘周期結果輸出完畢。

光伏發(fā)電相關(guān)文章:光伏發(fā)電原理

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

評論


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