文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2013)01-0040-03
音視頻編碼標(biāo)準(zhǔn)(AVS)是我國具有知識產(chǎn)權(quán)的第二代信源編碼標(biāo)準(zhǔn)[1]。近年來,AVS解碼器發(fā)展較為成熟,已有較多的國內(nèi)外企業(yè)生產(chǎn)解碼芯片。但是,AVS編碼器還未發(fā)展到令人滿意的程度,在一定程度上限制了AVS的推廣。運(yùn)動估計(jì)在AVS編碼器中主要用于消除時間冗余,以使視頻編碼達(dá)到更高的壓縮率。然而,其運(yùn)算量巨大,占整個視頻編碼的60%左右。所以,在面積和功耗限制下設(shè)計(jì)專門的運(yùn)動估計(jì)硬件結(jié)構(gòu)成為當(dāng)前研究熱點(diǎn)。
AVS整像素運(yùn)動估計(jì)的搜索算法很多,其中全搜索塊匹配算法因數(shù)據(jù)流規(guī)則匹配率高并且沒有復(fù)雜的動態(tài)反饋和決策邏輯,最適合可變塊大小運(yùn)動估計(jì),故本文選擇全搜索塊匹配算法?,F(xiàn)有的全搜索塊匹配算法運(yùn)動估計(jì)硬件結(jié)構(gòu)在面積及處理速度上已做了很多努力,如參考文獻(xiàn)[2-5]提出的實(shí)現(xiàn)方案:參考文獻(xiàn)[2]利用像素截?cái)嗟姆椒?,將像素低位截?cái)啵诒WC圖像信噪比降低不多的情況下大大減少了運(yùn)算量;參考文獻(xiàn)[3]提出了二維intra-Level SAD計(jì)算陣列的運(yùn)動估計(jì)結(jié)構(gòu),在列方向上數(shù)據(jù)重用率可達(dá)到100%;參考文獻(xiàn)[4]和[5]提出的結(jié)構(gòu)能夠?qū)崿F(xiàn)100%的硬件處理器利用率,但是均存在I/O帶寬大的缺點(diǎn)。本文根據(jù)AVS整像素運(yùn)動估計(jì)的特點(diǎn),采用二維內(nèi)置SAD加法樹計(jì)算陣列,通過合理安排片上存儲,極大地降低了I/O帶寬;運(yùn)用了加1電路選擇進(jìn)位加法器,進(jìn)一步縮小了結(jié)構(gòu)面積,提高了處理速度,實(shí)現(xiàn)了適用于AVS的高性能整像素運(yùn)動估計(jì)硬件設(shè)計(jì)。
1 AVS運(yùn)動估計(jì)算法
1.1 可變塊運(yùn)動估計(jì)
基于塊的運(yùn)動估計(jì),即找到當(dāng)前幀的塊在參考幀中一定范圍內(nèi)最匹配的塊所在的相對位置,這個相對位置稱為運(yùn)動矢量。AVS標(biāo)準(zhǔn)中規(guī)定將16×16的宏塊進(jìn)一步劃分為8×16、16×8、8×8的子塊,如圖1所示,這樣能夠提供更加精確的運(yùn)動矢量預(yù)測??勺儔K運(yùn)動估計(jì)需要對每個宏塊的所有子塊進(jìn)行塊匹配,即進(jìn)行9次計(jì)算。本文采用如圖2所示的加法樹結(jié)構(gòu),所有的大塊由小塊簡單相加即可,大大減少了計(jì)算量[4]。
2 AVS整像素運(yùn)動估計(jì)硬件設(shè)計(jì)
2.1 像素截?cái)?/strong>
由參考文獻(xiàn)[2]可知,適當(dāng)?shù)貙ο袼氐牡臀粩?shù)據(jù)進(jìn)行截?cái)?,并不影響整個運(yùn)動估計(jì)的結(jié)果。本文采用的方法并不是真正截?cái)鄶?shù)據(jù),而是利用“與門”將輸入像素的低3位變?yōu)?,以減少運(yùn)算量,降低功耗。
2.2 內(nèi)置SAD加法樹計(jì)算陣列
要實(shí)現(xiàn)高性能全搜索可變塊運(yùn)動估計(jì)的硬件結(jié)構(gòu),需要滿足資源利用率高、PE個數(shù)少、I/O帶寬低等條件。本文采用參考文獻(xiàn)[3]提出的在計(jì)算陣列中內(nèi)置加法樹的方法。計(jì)算陣列由8×8個處理單元(PE)及二維加法樹組成,如圖3所示。采用二維陣列結(jié)構(gòu)提高了硬件資源的利用率;將當(dāng)前像素儲存在陣列寄存器中,不需要反復(fù)讀入當(dāng)前像素,PE個數(shù)由宏塊大小決定,不隨著搜索窗大小變化而變化;參考像素存儲在移位寄存器組中,每個移位寄存器存儲9個像素值,配合蛇形移動的數(shù)據(jù)傳輸方式,如圖4所示,參考塊數(shù)據(jù)輸入經(jīng)過初始的8個移動周期后,寄存器組中正好存放著一個參考塊的像素值,之后的每次移動,寄存器組中的數(shù)據(jù)只需更新一行新的數(shù)據(jù),而有7行數(shù)據(jù)是與上一個參考塊共享的, 這樣能實(shí)現(xiàn)列方向100%的數(shù)據(jù)重用率,有效地減少了I/O帶寬。整個設(shè)計(jì)結(jié)構(gòu)有4個這樣的計(jì)算陣列,只需在開始計(jì)算時等待25個周期,以后的每個周期計(jì)算陣列都將輸出整個8×8塊的SAD值,保證了數(shù)據(jù)讀入過程中的時鐘不被浪費(fèi)。
2.3 進(jìn)位選擇加法器
通過上文介紹的結(jié)構(gòu)可知,每個計(jì)算陣列需要使用大量的加法器。當(dāng)計(jì)算小塊SAD值時,不僅需要得到當(dāng)前像素和一個參考像素的差的絕對值,而且需要累加整個塊的絕對差值;當(dāng)計(jì)算大塊SAD值時,又需要將小塊SAD值進(jìn)行累加。大量的加法器嚴(yán)重影響計(jì)算陣列的面積和處理速度,故本設(shè)計(jì)對加法器進(jìn)行了改進(jìn)。目前已有設(shè)計(jì)選擇使用超前進(jìn)位流水線加法器,其處理速度雖然提高了很多,但是大量并行處理占用了比普通加法器更多的資源。由于進(jìn)位選擇加法器比普通加法器處理速度快,占用的資源比超前進(jìn)位加法器少,所以本設(shè)計(jì)選擇進(jìn)位選擇加法器。
傳統(tǒng)的進(jìn)位選擇加法器使用兩個相同的行波法加法器計(jì)算高位的值,兩個行波法加法器分別假設(shè)進(jìn)位為0和1并同時進(jìn)行計(jì)算,等待正確的進(jìn)位到來時,再選擇正確的結(jié)果輸出。這樣雖然可以縮短等待時間,但是占用面積較大。本文采用加1電路的選擇進(jìn)位加法器,如圖5所示。高位加法器以固定進(jìn)位為0進(jìn)行計(jì)算。若正確進(jìn)位為0,則加1電路不必進(jìn)行計(jì)算,直接輸出結(jié)果;若正確的進(jìn)位為1,則將此結(jié)果加1,得到進(jìn)位為1的結(jié)果。加1電路如圖6所示,其中CS表示低位進(jìn)位。如此,計(jì)算陣列的面積和功耗將會降低很多,處理速度也較快。
2.4 存儲器設(shè)計(jì)
由于當(dāng)前像素直接存放在陣列寄存器中,所以不需要設(shè)計(jì)緩沖器??紤]到參考塊一共有47×47個像素,且每個周期需要配合計(jì)算陣列蛇形輸入數(shù)據(jù),因此采用片上RAM來緩存參考數(shù)據(jù)。將參考塊分為6個區(qū)域,每個區(qū)域大小為8×47個像素,用RAM0~RAM5來標(biāo)識,如圖7所示。設(shè)計(jì)使用雙端口RAM,利用奇偶地址,讓32 bit雙端口RAM相當(dāng)于64 bit單端口RAM。由于相鄰宏塊的搜索區(qū)域重疊部分占整個搜索塊的三分之二,按照本文的存儲器設(shè)計(jì),當(dāng)進(jìn)行下一個宏塊的運(yùn)動估計(jì)時,不需要更新整個參考塊的數(shù)據(jù),只需更新其中兩個區(qū)域的數(shù)據(jù)即可,進(jìn)一步減少了存儲帶寬,提高了數(shù)據(jù)的重用率。
3 仿真和結(jié)構(gòu)分析
本文提出了一種適用于AVS的高性能整像素運(yùn)動估計(jì)硬件設(shè)計(jì),使用了Verilog HDL語言進(jìn)行RTL級描述,用AVS軟件RM52j的C程序產(chǎn)生測試碼流,應(yīng)用了Modelsim 6.5c仿真平臺進(jìn)行了邏輯功能的仿真驗(yàn)證。采用Synopsys的Design Compiler在SMIC 0.18 ?滋m CMOS工藝庫下綜合,在最大頻率為250 MHz時,門數(shù)為102 K(未包括存儲器面積)。表1給出了運(yùn)動估計(jì)硬件設(shè)計(jì)性能分析,這表明本文所設(shè)計(jì)的結(jié)構(gòu)具有高性能、低帶寬的優(yōu)勢。表2將本文提出的結(jié)構(gòu)與其他幾種運(yùn)動估計(jì)結(jié)構(gòu)進(jìn)行了比較,其中引用了效率E作為一個重要的比較參數(shù),E為結(jié)構(gòu)每秒處理的搜索點(diǎn)數(shù)和實(shí)際面積的比值,具體公式見參考文獻(xiàn)[5]。通過比較可以看出,本設(shè)計(jì)與參考文獻(xiàn)[5]的設(shè)計(jì)均可實(shí)現(xiàn)對高清圖像的實(shí)時處理,但本設(shè)計(jì)的最快時鐘頻率提升了25%,面積減小了36.2%,效率提高了98%。
本文針對AVS視頻標(biāo)準(zhǔn),提出了一種適用于AVS的高性能整像素運(yùn)動估計(jì)硬件設(shè)計(jì)。采用二維內(nèi)置SAD加法樹計(jì)算陣列,通過合理的安排片上存儲,優(yōu)化了加法器設(shè)計(jì),大大提高了結(jié)構(gòu)的性能。實(shí)驗(yàn)結(jié)果表明,本設(shè)計(jì)電路規(guī)模為102 K門,處理一個宏塊只需要1 051個時鐘周期,能夠以2 388.0搜索點(diǎn)數(shù)/秒門的效率對高清圖像進(jìn)行運(yùn)動估計(jì)。與同類設(shè)計(jì)相比,本設(shè)計(jì)具有電路規(guī)模小、處理速度快、I/O帶寬低等優(yōu)勢。另外,本設(shè)計(jì)還可以作為IP核嵌入到特定的處理器中,對AVS高清視頻進(jìn)行實(shí)時處理。
參考文獻(xiàn)
[1] GB/T20090.2-2006.信息技術(shù)先進(jìn)音視頻編碼第二部分:視頻[S].2006.
[2] He Zhongli,LIOU M I.Reducing hardware complexity of motion estimation algorithms using truncated pixels[C]. Proceedings of IEEE International Symposium on Circuits and Systems,1997,4:2809-2812.
[3] CHEN C Y,CHIEN S Y,HUANG Y W,et al.Analysis and architecture design of variable block-size motion estimation for H.264/AVC[J].IEEE Transactions on Circuits and Systems,2006,53(3):578-593.
[4] Deng Lei,Xie Xiaodong,Gao Wen.A real-time full architecture for AVS motion estimation[J].IEEE Transactions on Consumer Electronics,2007,53(4):1744-1751.
[5] Cao Wei,Hou Hui,Tong Jiarong,et al.A high-performance reconfigurable VLSI architecture for VBSME in H.264[J]. IEEE Transactions on Consumer Electronics,2008,53(4):1338-1345.