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