摘 要:根據(jù)AVC/H.264標(biāo)準(zhǔn)中提出的整數(shù)離散余弦變換(DCT)及其反變換(iDCT)算法,旨在給出一種能夠同時實現(xiàn)4×4,8×8 DCT/IdCT和Hadamard變換的設(shè)計方法。設(shè)計中充分利用DCT和iDCT的相似性和算法對稱性,用高度并行結(jié)構(gòu)來加快處理速度。采用一維DCT/iDCT單元復(fù)用的方式實現(xiàn)二維DCT/iDCT運算,同時提出實現(xiàn)設(shè)計的全定制實現(xiàn)方法,對全定制實現(xiàn)此設(shè)計進行初步布局規(guī)劃。
關(guān)鍵詞:AVC/H.264;離散余弦變換;并行;全定制
中圖分類號:TN43
文獻標(biāo)識碼:B
文章編號:1004—373X(2008)04—121—03
AVC/H.264是ISO/IEC聯(lián)合視頻小組和ITU—T視頻編碼專家組聯(lián)合制定的視頻壓縮編碼國際新標(biāo)準(zhǔn)。AVC/H.264視頻編碼標(biāo)準(zhǔn)提供了比H.263和MPEG一4第2部分標(biāo)準(zhǔn)高出1.5~2倍的壓縮增益。以往在圖像、視頻壓縮領(lǐng)域應(yīng)用的實數(shù)DCT,由于在解碼端的浮點運算精度問題,會造成解碼后的數(shù)據(jù)的失配,進而引起漂移。AVC/H.264比其他圖像編碼使用了更多的預(yù)測過程,甚至內(nèi)部編碼模式也依賴空間預(yù)測,因此對預(yù)測漂移十分敏感。為此AVC/H.264采用整數(shù)DCT技術(shù),有效地減少了計算量,同時不損失圖像的精確度。本文中的架構(gòu)能夠處理AVC/H.264中各種變換,根據(jù)實際需求,可以分別實現(xiàn)整數(shù)DCT和IDCT,也可以將眾多功能統(tǒng)一實現(xiàn),并且層次分明,方便全定制實現(xiàn)。
1 整數(shù)DCT/IDCT快速實現(xiàn)算法
1.1 一維4×4整數(shù)DCT/iDCT變換
直接用乘加法計算矩陣得到結(jié)果要經(jīng)過大量的計算,而采用蝶形變換,簡化了計算過程,只要用加法和移位操作就可以實現(xiàn)矩陣相乘。既節(jié)省計算時間,又減少硬件實現(xiàn)的成本。整數(shù)4×4DCT和IDCT表示如下:

Hadamard正反變換矩陣相同,相似于整數(shù)離散余弦變換,如圖(1)、圖(2)所示,當(dāng)參數(shù)R=1時,即為Hada—mard變換。
1.2 一維8×8整數(shù)DCT/iDCT變換
AVC/H.264標(biāo)準(zhǔn)增加8×8整數(shù)DCT/iDCT變換提高了視頻壓縮編碼率。8×8整數(shù)DCT矩陣如下:

2 AVC/H.264的變換架構(gòu)實現(xiàn)
文中的架構(gòu)可以處理4×4和8×8整數(shù)DCT和iDCT,也能夠處理4×4 Hadamard變換。對于8×8變換,每個時鐘周期處理1行或1列數(shù)據(jù),對于4×4變換,可以并行處理2行或2列數(shù)據(jù)。對于輸入數(shù)據(jù)的選擇,可以通過多路選擇器實現(xiàn)。
2.1 二維整數(shù)DCT/iDCT的實現(xiàn)結(jié)構(gòu)

2.2一維變換的實現(xiàn)
根據(jù)蝶形變換算法,本設(shè)計構(gòu)造3個子模塊,每一個模塊實現(xiàn)蝶形算法中的1步。由3個子模塊不同的組合,實現(xiàn)AVC/H.264中各種變換。模塊如圖4所示。
實現(xiàn)4×4 DCT/iDCT蝶形變換以及Hadamard變換時,僅需要M和N模塊;在實現(xiàn)8×8 DCT/iDCT變換時,還需要加上更加復(fù)雜的0模塊。在本架構(gòu)中,為了能夠處理各種類型的變換,需要2個M模塊、2個N模塊和1個0模塊。各個模塊的輸入數(shù)據(jù)選擇通過多路選擇器實現(xiàn)。多路選擇器根據(jù)模塊端口輸入個數(shù)的而定。數(shù)據(jù)通道模


在AVC/H.264編碼器中,只需要進行正變換,而在解碼器中,只需要進行反變換。運用本文中的架構(gòu),單獨實現(xiàn)變換或反變換時,基本子模塊的使用量相同,主要區(qū)別在于輸入多路選擇器和布線的變化。由于當(dāng)B—B′,C=C′時M和N實現(xiàn)相同的功能。因此在實現(xiàn)Hadamard變換時,圖6中(a)和(b)的數(shù)據(jù)通道實現(xiàn)相同的功能。Hadamard變換和DCT,或者iDCT共用數(shù)據(jù)通道布線,節(jié)省布線資源。
2.3轉(zhuǎn)置矩陣的設(shè)計
轉(zhuǎn)置矩陣用來存儲并轉(zhuǎn)置數(shù)據(jù)。為達到并行存取的功能,本設(shè)計采用寄存器轉(zhuǎn)置矩陣。實現(xiàn)8×8變換時,轉(zhuǎn)置矩陣中共需64個寄存器,而實現(xiàn)2個4×4變換,僅需要32個寄存器,所以在實現(xiàn)4×4變換時,為了減少功耗,可以使用門控時鐘關(guān)閉沒有使用的寄存器。轉(zhuǎn)置矩陣的基本存儲單元和門控時鐘如圖7,8所示:
3 全定制設(shè)計的初步規(guī)劃
視頻信息的信息量大,要使視頻得到有效應(yīng)用,在解決視頻壓縮編碼問題時,既要有高效的壓縮算法,又要有快速的硬件設(shè)備實現(xiàn)。全定制設(shè)計具有高性能、高密度等優(yōu)點,是實現(xiàn)變換模塊設(shè)計很好的選擇。

3.1 子功能的設(shè)計
本設(shè)計中實現(xiàn)數(shù)據(jù)通道子模塊用到的功能包括多路選擇、加減法、移位以及存儲。由于數(shù)據(jù)通道中數(shù)據(jù)所移位數(shù)最多為2位,所以采用直接連線組合實現(xiàn)移位更加便捷。對于加減法,可以統(tǒng)一設(shè)計加法器實現(xiàn)。超前進位加法器具有高效、易于設(shè)計等優(yōu)點,所以應(yīng)是本設(shè)計的首選。圖9給出加減法實現(xiàn)的簡圖。加法器最低進位固定取0(置低電位),實現(xiàn)減法時,將減數(shù)取反,加法器最低進位取1(置低電位)實現(xiàn)。
3.2 總體布局框圖
從上述論述中可以推斷出,因為實現(xiàn)各種變換所用基本子功能模塊的順序不同,而且存在大量的輸入/輸出多路選擇,同時考慮到深亞微米設(shè)計中互連線問題對整體設(shè)計的影響,因此本設(shè)計全定制實現(xiàn)時,難點在于以合理的布局,實現(xiàn)最優(yōu)化布線。對于總體布局,如圖10所示。
其中控制單元用綜合布局布線軟件自動實現(xiàn),其余部分手工優(yōu)化實現(xiàn),以達到數(shù)據(jù)處理的最佳效果。
4 結(jié) 語
本文給出一種能夠?qū)崿F(xiàn)AVC/H.264各種變換的體系結(jié)構(gòu),在不改變結(jié)構(gòu)的前提下,既可以統(tǒng)一實現(xiàn)各種變換,也可以分別實現(xiàn)正變換和反變換。討論并給出電路和版圖設(shè)計的參考簡圖,用圖示方法描述數(shù)據(jù)處理具體流程,并描述全定制模塊設(shè)計的一些解決方法和布局框圖。本設(shè)計無論對全定制或半定制實現(xiàn)本設(shè)計都具有較高的參考價值。