在TM1300上實現(xiàn)H.26L的4×4點整數(shù)變換
關(guān)鍵詞:H.26L UVLC 4×4點整數(shù)變換 TM1300
引言
H.26L是下一代視頻編碼標(biāo)準(zhǔn)。最初,H.26L由ITU-T的VCEG小組開始著手制訂。2001年11月,MPEG和VCEG聯(lián)合成立JVT小組共同參與制訂H.26L。也正因為MPEG的加入,H.26L將被納入MPEG-4的第十部分。由于H.26L標(biāo)準(zhǔn)還在制訂過程中,本文暫時以JVT提供的測試模型TML8為參考。
H.26L信源編碼的基本編碼框架類似于當(dāng)前流行的視頻編碼標(biāo)準(zhǔn),采用結(jié)合變換編碼和預(yù)測編碼的混合編碼技術(shù)。它出色的性能主要來源于引入的新編碼特性:4×4點整數(shù)變換、使用UVLC進行熵編碼、1/4~1/8像素精度的運行矢量、有多種塊大小進行運動估計等等。這些新的編碼技術(shù)從不同側(cè)面提高了壓縮性能和容錯性能。尤其是4×4點整數(shù)變換,是所有視頻壓縮協(xié)議中獨一無二的。
雖然H.26L標(biāo)準(zhǔn)還在制訂中,但是在初步的測試中,它的編碼性能超越了現(xiàn)存所有標(biāo)準(zhǔn),包括H.263+和MPEG-4(Simple profile)。這些試驗結(jié)果表明,在取得相同的客觀視頻質(zhì)量下,H.26L比H.263+能夠節(jié)省20%~50%的碼率,比MPEG-4(SP)節(jié)省多達50%的碼率。作為下一代視頻編碼標(biāo)準(zhǔn),H.26L展示了其巨大的發(fā)展前景。
1 H.26L的4×4點整數(shù)變換
1.1 變換簡介
在H.26L編碼技術(shù)中,4×4點整數(shù)變換可以看作是DCT變換的整數(shù)版本,主要完成去除圖像的空間相關(guān)性,與4×4點DCT變換有著相同的性質(zhì)。先考慮一維的整數(shù)變換:設(shè)a,b,c,d是4個待變換的點,A,B,C,D是對應(yīng)的4個變換系數(shù),則可以用以下公式表示a,b,c,d點的正變換:
A=13a+13b+13c+13d
B=17a+7b-7c-17d
C=13a-13b-13c+13d
D=7a-17b+17c-7d
反變換公式如下:
a'=13A+17B+13C+7D
b'=13A+7B-13C-17D
c'=13A-7B-13C+17D
d'=13A-17B+13C-7D
其中a和a'的關(guān)系是a'=676a。也就是說,經(jīng)過反變換后,還需要進行歸一化操作,使得正變換和變換尺度一致。
同樣二維的4×4整數(shù)變換的變換核是可分離的。分離的變換將計算復(fù)雜度從O(N4)降到O(N3)。
1.2 與8×8點DCT變換的比較
與傳統(tǒng)的DCT變換相比,H.26L采用4×4點整數(shù)變換為視頻編碼帶來了以下優(yōu)點:
①有助于減少塊斑和環(huán)形斑,提高了圖像質(zhì)量。由于對變換系數(shù)進行了量化,造成了高頻系數(shù)丟失,所以恢復(fù)的圖像中會有塊班和環(huán)形班。在H.26L中,采用了更小的4×4點變換,可以有效抑制塊斑和環(huán)形斑。
②整數(shù)變換減小了積累誤差。傳統(tǒng)的積累誤差來自兩個方面:正變換和反變換不匹配造成的誤與量化造成的誤差。為了達到壓縮的目的,第二種誤差不可避免。但是,由于H.26L采用了精確的整數(shù)變換,所以正變換和反變換不會產(chǎn)生誤差,這樣有效地減少了積累誤差。
③運算速度快。因為H.26L采用的變換公式是一個簡單的整數(shù)方程,也就是說計算都是基于整數(shù)的,而不是浮點數(shù),所以它減少了單個變換的計算量,也有利于采用定點的DSP實現(xiàn)。
2 在TM1300中的實現(xiàn)
TM1300是一款32位超高性能的多媒體處理器。它的核心處理器采用的是VLIW超長指令字結(jié)構(gòu),可以在每一個時鐘周期內(nèi)同時進行5個操作;支持高度并行的定制操作,能大大加快數(shù)字信號處理和多媒體應(yīng)用中常見的特殊運行的性能,而定制操作在使用上類似于C語言函數(shù)調(diào)用,方便了程序的設(shè)計。
本文針對4×4點整數(shù)變換的特點和TM1300的定制運算指令的特點,對整數(shù)變換作了以下調(diào)整:先做行變換,再做列變換。由于行變換的結(jié)果不會超過16位的表示范圍,故在作列變換之前,重新合并數(shù)據(jù),再作列變換,這樣作是基于以下兩點考慮。
第一,由于視頻輸入數(shù)據(jù)為無符號的字節(jié)型,而TM1300是32位的處理器,以字為單位訪問內(nèi)存,能提高訪問的效率。當(dāng)前4×4數(shù)據(jù)塊(指針為P1)和參考幀4×4數(shù)據(jù)塊(指針為P2)的數(shù)據(jù)組織如下。待變換的點為當(dāng)前數(shù)據(jù)塊的值與參考幀數(shù)據(jù)塊對應(yīng)的值之差。
P1:cal,cb1,cc1,cd1 P2:ra1,rb1,rc1,rd1
ca2,cb2,cc2,cd2 ra2,rb2,rc2,rd2
ca3,cb3,cc3,cd3 ra3,rb3,rc3,rd3
ca4,cb4,cc4,cd4 ra4,rb4,rc4,rd4
第二,可以利用8位乘/累加的定制操作,一個操作能完成4個8位乘/累加,一個機器周期(CLK)最多能執(zhí)行5個操作。與非定制的乘/累加相比,減少了運算的次數(shù),提高了程序運行的并行度。
圖1為ifir8ui定制操作功能示意圖。
3 實驗結(jié)果
本文提出的基于TM1300的4×4整數(shù)變換的快速算法,使用了并行算是技術(shù)大大減少了計算量。實驗表明,進行1個4×4點整數(shù)變換,直接用乘法和加法運算需要80個機器周期,改進后的算法只需28個機器周期;而利用TM1300進行1個8×8點定點DCT變換需要180個機器周期,也明顯大于4個4×4點整數(shù)變換時間。在變換方面H.264的變換編碼運算復(fù)雜度小于其它編碼方法。