當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]RAM讀寫時序限制解決方案

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

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

  1 硬件結(jié)構(gòu)
 

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

  

 

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

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

  

 

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

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

  1.2 反變換模塊

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

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

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

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

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

  根據(jù)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

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

  反變換模塊的時序見圖2,第1時鐘周期進行并行讀取數(shù)據(jù),2個時鐘周期進行一維反變換,第4個時鐘周期開始向轉(zhuǎn)置矩陣中存入一維反變換后的數(shù)據(jù),第12周期開始讀取轉(zhuǎn)置矩陣中的數(shù)據(jù),第15個時鐘周期開始輸出數(shù)據(jù),第22個時鐘周期結(jié)果輸出完畢。[!--empirenews.page--]1.3 寄存器組復用

 

  在逆塊掃描順序中,一些后續(xù)的系數(shù)可能需要在一開始時就準備好,而一些在前面次序的系數(shù)則可能在后續(xù)的時間使用,所以只有一個塊的所有數(shù)據(jù)都存儲完成后,才能進行后續(xù)的反變換,故至少要對一個塊的變換系數(shù)進行存儲。為了提高處理速度,后續(xù)的反變換模塊中將采用并行流水線輸入,因此存儲模塊此時不能采用有時序限制的RAM,本文采用了寄存器組實現(xiàn)。同時為了消除塊數(shù)據(jù)的準備延時,還采用了乒乓結(jié)構(gòu),即在設計中用了兩個寄存器組,這樣就可在處理當前一個塊系數(shù)的同時,用另一個寄存器組來存儲下一個塊反量化后的數(shù)據(jù)。

  在反變換中也需要用到轉(zhuǎn)置存儲。為了節(jié)省資源,本設計采用了寄存器復用技術,即反變換中用到的轉(zhuǎn)置矩陣與逆掃描后用于存儲變換系數(shù)的矩陣復用,具體復用方法如圖3所示。

  

 

  以上為一個寄存器組,包含64個13 bit的寄存器。最后一列為反變換模塊輸入,即當一個塊變換系數(shù)根據(jù)逆掃描順序存儲完后,連續(xù)8個時鐘周期讀取寄存器組最后一列,在每個時鐘周期向反變換模塊并行輸入8個13 bit的數(shù)據(jù)。第一列為轉(zhuǎn)置數(shù)據(jù)輸入端??紤]到反變換流水線及復用的問題,在連續(xù)2個時鐘周期讀取寄存器組最后一列輸入到反變換模塊后,轉(zhuǎn)置數(shù)據(jù)開始從第一列輸入,這樣可以滿足反變換內(nèi)部的流水線問題,也可以達到寄存器復用的目的。第一行為轉(zhuǎn)置數(shù)據(jù)的輸出,最后一行在轉(zhuǎn)置數(shù)據(jù)輸出時賦值為零,這樣可以使轉(zhuǎn)置輸出和寄存器賦零同時進行,從而可以減少不必要的時鐘周期和資源。

  2 仿真結(jié)果及分析

  根據(jù)上述思想,采用Verilog HDL語言對算法進行了RTL級電路描述,并采用Altera公司的軟件Quartus II 8.0 對此算法進行了實現(xiàn)和仿真驗證,并將仿真結(jié)果與rm52j軟件的輸出結(jié)果進行了比較。Quartus II仿真結(jié)果如圖4所示,波形圖給出了一個塊的反量化和反變換輸出結(jié)果。rm52j的輸出結(jié)果如圖5所示,比較可見輸出結(jié)果相同。

  

 

  

 

  本設計采用的是自頂向下和自下而上的混合設計方法,逆掃描、反量化和反變換過程是AVS系統(tǒng)中的一個模塊,局部的測試很難判斷出該模塊是否可以應用到整個解碼系統(tǒng)中去,所以此模塊亦在自己搭建的基于SoPC的AVS驗證平臺上進行了驗證。加入此模塊前,軟件處理一幀碼流時間與用此硬件模塊代替軟件模塊后的解碼時間如圖6所示,通過計算可知解碼速度提高約15%。

  

[!--empirenews.page--]變換編碼后一個塊內(nèi)的有效系數(shù)一般小于25,所以逆掃描、反量化的時鐘一般小于25個時鐘周期,而反變換的時鐘周期為22個,所以處理一個塊的時鐘周期大約為25個,大大提高了速度。由于寄存器的復用及設計的優(yōu)化,節(jié)省了硬件資源,本設計采用的FPGA為EP2C35F672C6,資源使用情況如圖7所示,可見使用的總的LE為3 059個。

 

  

 

  本設計為了解決RAM讀寫時序限制的影響,采用了兩組寄存器陣列代替RAM實現(xiàn)乒乓操作,同時為了減少硬件資源,采用寄存器組復用技術,即反變換中的轉(zhuǎn)置矩陣與逆掃描后存儲寄存器組復用。最后給出了波形仿真結(jié)果,并與rm52j的輸出結(jié)果比較,驗證了結(jié)果的正確性。通過在基于Nios II的SoPC系統(tǒng)上進行測試,證明該設計能夠正確快速實現(xiàn)逆掃描、反量化及反變換功能。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉