新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > RAM讀寫時序限制解決方案

        RAM讀寫時序限制解決方案

        作者: 時間:2011-10-28 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/150086.htm

          本文將逆掃描、反量化和反變換模塊結合在一起進行設計,在實現了塊內部優化的同時采用了乒乓緩存寄存器組來實現塊之間流水線,提高了速度;采用寄存器組復用技術實現逆塊掃描中寄存器組與反變換中的轉置寄存器組的復用,節省了寄存器資源。

          1 硬件結構

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

          

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

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

          

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

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

          1.2 反變換模塊

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

          下面主要介紹一維變換過程。

          設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個輸出元素展開成以下組合,其中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個中間變量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

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

          反變換模塊的見圖2,第1時鐘周期進行并行讀取數據,2個時鐘周期進行一維反變換,第4個時鐘周期開始向轉置矩陣中存入一維反變換后的數據,第12周期開始讀取轉置矩陣中的數據,第15個時鐘周期開始輸出數據,第22個時鐘周期結果輸出完畢。

        光伏發電相關文章:光伏發電原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 巩义市| 乐平市| 广安市| 勃利县| 天台县| 汉源县| 繁昌县| 瑞丽市| 巨鹿县| 惠安县| 阿巴嘎旗| 凉城县| 奉化市| 溆浦县| 江油市| 富宁县| 乡城县| 浦北县| 淮阳县| 亳州市| 宁城县| 都安| 社旗县| 佳木斯市| 保亭| 合川市| 阿克| 龙山县| 华亭县| 遂平县| 灵台县| 民县| 和政县| 陵川县| 三门峡市| 广东省| 巴青县| 巴中市| 通海县| 合江县| 沐川县|