專利名稱:適用于多種視頻標(biāo)準(zhǔn)、多尺寸二維整數(shù)余弦變換的通用方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字視頻信號(hào)編碼技術(shù)領(lǐng)域,具體涉及一種適用于多種視頻標(biāo)準(zhǔn)、可支持變換尺寸為4x4、8x8、16x16和32x32的二維整數(shù)離散余弦變換的通用方法。
背景技術(shù):
隨著視頻編碼技術(shù)的發(fā)展,越來越多的視頻編碼標(biāo)準(zhǔn)進(jìn)入了應(yīng)用領(lǐng)域VCD/DVD 視頻光盤中普通采用MPEG-1/MPEG-2視頻標(biāo)準(zhǔn),藍(lán)光光盤中采用H. 264標(biāo)準(zhǔn)或VC-I標(biāo)準(zhǔn), 網(wǎng)絡(luò)視頻中普遍采用RealVideo或MPEG-4標(biāo)準(zhǔn),而AVS視頻標(biāo)準(zhǔn)已經(jīng)成為中國的國家標(biāo)準(zhǔn)。很多新的標(biāo)準(zhǔn)如H. 265/HEVC(High Efficiency Video Coding)等也在制定當(dāng)中。由于離散余弦變換能夠?qū)︻l域上的能量進(jìn)行有效地集中,便于進(jìn)一步壓縮處理, 所以現(xiàn)有的視頻編碼標(biāo)準(zhǔn)絕大多數(shù)都采用了離散余弦變換對視頻信號(hào)進(jìn)行處理。傳統(tǒng)的 MPEG-U MPEG-2視頻標(biāo)準(zhǔn)中采用的是浮點(diǎn)離散余弦變換,由于數(shù)字信號(hào)處理時(shí)需要對浮點(diǎn)數(shù)截位,從而容易導(dǎo)致變換前后數(shù)據(jù)的失配問題,所以新一代標(biāo)準(zhǔn)如H. 264, VC-U AVS等標(biāo)準(zhǔn)普遍采用整數(shù)離散余弦變換。由于當(dāng)前多種標(biāo)準(zhǔn)并存的格局將長期存在,支持多種視頻標(biāo)準(zhǔn)是當(dāng)前編解碼技術(shù)中的重要研究領(lǐng)域,有著迫切的實(shí)際需求。各種視頻標(biāo)準(zhǔn)中二維離散余弦變換的尺寸大小有所不同。對于畫面比較平坦的視頻場景,較大的變換尺寸能夠提高編碼壓縮效率。但是大的變換尺寸也使得運(yùn)算復(fù)雜度大大增加。MPEG-1/MPEG-2/MPEG-4中采用的尺寸是8x8 ; H. 264和VC-I采用的尺寸是4x4和8x8 ;而正在制定當(dāng)中的最新視頻標(biāo)準(zhǔn)HEVC采用的變換尺寸有4種4x4、8x8、16x16和32x32。為了更好的支持多標(biāo)準(zhǔn)編解碼技術(shù),有必要采取一種通用的架構(gòu)來實(shí)現(xiàn)各種不同尺寸的整數(shù)離散余弦變換。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一個(gè)適用于多種視頻標(biāo)準(zhǔn)、多尺寸二維整數(shù)離散余弦變換的通用方法。各種不同的視頻標(biāo)準(zhǔn)規(guī)定了不同的變換尺寸和變換系數(shù)矩陣,但是由于這些變換都是基于離散余弦變換衍生而來的,不同的變換尺寸和變換系數(shù)矩陣之間有很多相似之處。本發(fā)明充分利用了這種相關(guān)性,進(jìn)而提出了一種通用的變換方法,可以提高硬件復(fù)用程度,降低運(yùn)算復(fù)雜度。本發(fā)明提出的方法具體可以分為如下6個(gè)步驟
(1)根據(jù)離散余弦變換的特性,將一個(gè)二維整數(shù)離散余弦變換轉(zhuǎn)換為兩次一維整數(shù)離散余弦變換,即先進(jìn)行水平方向的一維變換,然后再進(jìn)行垂直方向的一維變換;
(2)如果當(dāng)前進(jìn)行的是32點(diǎn)的一維整數(shù)離散余弦變換,對輸入的32個(gè)系數(shù)進(jìn)行32點(diǎn)蝶形運(yùn)算,得到32個(gè)輸出結(jié)果;
(3)如果當(dāng)前進(jìn)行的是16點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)步驟,對輸入的16個(gè)系數(shù)進(jìn)行16點(diǎn)蝶形運(yùn)算,得到16個(gè)輸出結(jié)果;
(4)如果當(dāng)前進(jìn)行的是8點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)、(3)步驟,對輸入的8個(gè)系數(shù)進(jìn)行8點(diǎn)蝶形運(yùn)算,得到8個(gè)輸出結(jié)果;
(5)如果當(dāng)前進(jìn)行的是4點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)、(3)、(4)步驟。 根據(jù)4x4、8x8、16x16和32x32四種不同的變換尺寸,分別設(shè)計(jì)相應(yīng)的多輸出常系數(shù)乘法器 MCMO、MCMl、MCM2和MCM3。通過對乘法器系數(shù)進(jìn)行配置即可實(shí)現(xiàn)對各種不同視頻標(biāo)準(zhǔn)的支持;
(6)設(shè)計(jì)四組運(yùn)算模塊B4x4、D4x4、D8x8和D16xl6,對多輸出常系數(shù)乘法器的輸出進(jìn)行處理;其中,B4x4模塊為4點(diǎn)的蝶形運(yùn)算模塊,D4x4模塊為4點(diǎn)的加法樹模塊,D8x8模塊為8點(diǎn)的加法樹模塊,D16xl6為16點(diǎn)的加法樹模塊;B4x4模塊的4個(gè)輸出即為4點(diǎn)一維整數(shù)離散余弦變換的結(jié)果,B4x4和D4x4的8個(gè)輸出即為8點(diǎn)一維整數(shù)離散余弦變換的結(jié)果, B4x4、D4x4和D8x8的16個(gè)輸出即為16點(diǎn)一維整數(shù)離散余弦變換的結(jié)果,B4x4、D4x4、D8x8 和D16xl6的32個(gè)輸出即為32點(diǎn)一維整數(shù)離散余弦變換的結(jié)果。本發(fā)明的有益效果
從上述步驟可以看到,本發(fā)明實(shí)現(xiàn)了用于計(jì)算小尺寸二維整數(shù)離散余弦變換的運(yùn)算單元完全復(fù)用到更大尺寸的二維整數(shù)離散余弦變換的運(yùn)算過程中,從而有效地降低了整體的運(yùn)算復(fù)雜度和硬件實(shí)現(xiàn)成本。另外,本發(fā)明方法具有很好的可擴(kuò)展性。如果在將來需要支持更多新的視頻標(biāo)準(zhǔn), 只需要對相應(yīng)的多輸出常系數(shù)乘法器:MCM0、MCM1、MCM2和MCM3做相應(yīng)改動(dòng)即可,其它模塊如蝶形運(yùn)算模塊和加法樹模塊可保持不變,因而本方法具有很好的可擴(kuò)展性,可以適應(yīng)不斷發(fā)展中的各種新興視頻編解碼技術(shù)。
圖1 兩維離散整數(shù)余弦變換的整體框圖。圖2 4點(diǎn)、8點(diǎn)、16點(diǎn)和32點(diǎn)一維離散整數(shù)余弦變換的整體框圖。圖3 多輸出常系數(shù)乘法器MCMO的結(jié)構(gòu)框圖。圖4 多輸出常系數(shù)乘法器MCMl的結(jié)構(gòu)框圖。圖5 多輸出常系數(shù)乘法器MCM2的結(jié)構(gòu)框圖。圖6 多輸出常系數(shù)乘法器MCM3的結(jié)構(gòu)框圖。圖7 4點(diǎn)蝶形運(yùn)算模塊(B4x4)的結(jié)構(gòu)框圖。圖8 :4點(diǎn)加法樹模塊(D4x4)的結(jié)構(gòu)框圖。圖9 8點(diǎn)加法樹模塊(D8x8)的結(jié)構(gòu)框圖。圖10 16點(diǎn)加法樹模塊(D16xl6)的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述。 本發(fā)明提出了一個(gè)適用于多種視頻標(biāo)準(zhǔn)、多尺寸二維整數(shù)余弦變換的通用方法, 其具體實(shí)施方式
如下述的6個(gè)步驟
(1)將一個(gè)二維整數(shù)離散余弦變換轉(zhuǎn)換為兩次一維整數(shù)離散余弦變換。
二維整數(shù)離散余弦變換可以用如下公式表示
Y= C*X*CT(1)
其中,X為需要進(jìn)行二維整數(shù)離散余弦變換的輸入矩陣,C代表整數(shù)離散余弦變換的系數(shù)矩陣,*代表矩陣乘法,Ct代表C的轉(zhuǎn)置矩陣,Y代表二維整數(shù)離散余弦變換的計(jì)算結(jié)果。 對應(yīng)于四種不同的變換尺寸,本發(fā)明中矩陣C、X、Y的大小可以分別為4x4、8x8、16xl6和 32x32。根據(jù)矩陣運(yùn)算的性質(zhì),對公式(1)進(jìn)行變換可得
Y= ((X*CT)T * CT)τ(2)
如果令
D= (X*CT)τ,(3)
那么
Y= (D*CT)T(4)
這樣二維整數(shù)離散余弦變換就可以轉(zhuǎn)換為兩次一維整數(shù)離散余弦變換。公式(3)表示先對矩陣Y的每一行的所有系數(shù)進(jìn)行一維整數(shù)離散余弦變換并將變換結(jié)果得到的矩陣進(jìn)行轉(zhuǎn)置操作,此步驟稱為行變換操作。公式(4)表示對矩陣D再進(jìn)行一次一維整數(shù)離散余弦變換并將此變換結(jié)果再次進(jìn)行轉(zhuǎn)置操作,此步驟稱為列變換操作,其運(yùn)算結(jié)果就是矩陣 X,即為二維整數(shù)離散余弦變換的運(yùn)算結(jié)果。根據(jù)離散余弦變換的特性,32x32點(diǎn)整數(shù)離散余弦變換的變換矩陣C32X32可以表示為一個(gè)大小為32x32的矩陣,它可以分割為4個(gè)16x16的矩陣,分別為K0、K1、K2、K3,具體如下
權(quán)利要求
1.一種適用于多種視頻標(biāo)準(zhǔn)、多尺寸二維整數(shù)余弦變換的通用方法,其特征在于具體步驟為(1)根據(jù)離散余弦變換的特性,將一個(gè)二維整數(shù)離散余弦變換轉(zhuǎn)換為兩次一維整數(shù)離散余弦變換,即先進(jìn)行水平方向的一維變換,然后再進(jìn)行垂直方向的一維變換;(2)如果當(dāng)前進(jìn)行的是32點(diǎn)的一維整數(shù)離散余弦變換,對輸入的32個(gè)系數(shù)進(jìn)行32點(diǎn)蝶形運(yùn)算,得到32個(gè)輸出結(jié)果;(3)如果當(dāng)前進(jìn)行的是16點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)步驟,對輸入的16 個(gè)系數(shù)進(jìn)行16點(diǎn)蝶形運(yùn)算,得到16個(gè)輸出結(jié)果;(4)如果當(dāng)前進(jìn)行的是8點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)、(3)步驟,對輸入的8個(gè)系數(shù)進(jìn)行8點(diǎn)蝶形運(yùn)算,得到8個(gè)輸出結(jié)果;(5)如果當(dāng)前進(jìn)行的是4點(diǎn)的一維整數(shù)離散余弦變換,則跳過第(2)、(3)、(4)步驟;根據(jù)^4、8x8、16xl6和32x32四種不同的變換尺寸,分別設(shè)計(jì)相應(yīng)的多輸出常系數(shù)乘法器 MCMO、MCMl、MCM2和MCM3 ;通過對乘法器系數(shù)進(jìn)行配置即實(shí)現(xiàn)對各種不同視頻標(biāo)準(zhǔn)的支持;(6)設(shè)計(jì)四組運(yùn)算模塊B^4、D4x4,D8x8和D16xl6,對多輸出常系數(shù)乘法器的輸出進(jìn)行處理;其中,B4x4模塊為4點(diǎn)的蝶形運(yùn)算模塊,D4x4模塊為4點(diǎn)的加法樹模塊,D8x8模塊為8點(diǎn)的加法樹模塊,D16xl6為16點(diǎn)的加法樹模塊;B4x4模塊的4個(gè)輸出即為4點(diǎn)一維整數(shù)離散余弦變換的結(jié)果,B4x4和D4x4的8個(gè)輸出即為8點(diǎn)一維整數(shù)離散余弦變換的結(jié)果, B4x4、D4x4和D8x8的16個(gè)輸出即為16點(diǎn)一維整數(shù)離散余弦變換的結(jié)果,B^4、D4x4、D8x8 和D16xl6的32個(gè)輸出即為32點(diǎn)一維整數(shù)離散余弦變換的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟(1)中,一個(gè)二維整數(shù)離散余弦變換用如下公式表示Y= C*X*CT(1)其中,X為需要進(jìn)行二維整數(shù)離散余弦變換的輸入矩陣,C代表整數(shù)離散余弦變換的系數(shù)矩陣,*代表矩陣乘法,Ct代表C的轉(zhuǎn)置矩陣,Y代表二維整數(shù)離散余弦變換的計(jì)算結(jié)果; 對應(yīng)于四種不同的變換尺寸,矩陣C、X、Y的大小分別為^4、8x8、16x16和32x32 ;將公式(1)進(jìn)行變換,得Y= ((x*cT)T * CT)τ (2)令D=(X*CT)T, (3)那么Y= (D*CT)T (4)這樣二維整數(shù)離散余弦變換轉(zhuǎn)換為兩次一維整數(shù)離散余弦變換公式(3)表示先對矩陣Y的每一行的所有系數(shù)進(jìn)行一維整數(shù)離散余弦變換并將變換結(jié)果得到的矩陣進(jìn)行轉(zhuǎn)置操作,此步驟稱為行變換操作;公式(4)表示對矩陣D再進(jìn)行一次一維整數(shù)離散余弦變換并將此變換結(jié)果再次進(jìn)行轉(zhuǎn)置操作,此步驟稱為列變換操作,其運(yùn)算結(jié)果就是矩陣Y,即為二維整數(shù)離散余弦變換的運(yùn)算結(jié)果;其中變換矩陣C32X32表示為一個(gè)大小為32x32的矩陣,它可以分割為4個(gè)16x16的矩陣, 分別為 Κ0、Κ1、Κ2、Κ3。其中,矩陣KO具體表示如下
3.根據(jù)權(quán)利要求2所述的方法,其特征在于步驟(2)中,對于32點(diǎn)的一維整數(shù)離散余弦變換,將輸入的32個(gè)系數(shù)進(jìn)行32點(diǎn)蝶形運(yùn)算,得到32個(gè)輸出結(jié)果;記輸入的待變換向量 Χ32 為X32 = [ XOO, XOl, Χ02, Χ 03, Χ04, Χ05, Χ06, Χ07, Χ08, Χ09, ΧΙΟ, Xll, Χ12, Χ13, Χ14, Χ15, Χ16, Χ17, Χ18, Χ19, Χ20, Χ21, Χ22, Χ23, Χ24, Χ25, Χ26, Χ27, Χ28, Χ29, Χ30, Χ31] 32 個(gè)輸出結(jié)果分別記為 T0、T1、T2、T3、T4、T5、T6、T7、T8、T9、T10、T11、T12、T13、T14、 Τ15、Τ16、Τ17、Τ18、Τ19、Τ20、Τ21、Τ22、Τ23、Τ24、Τ25、Τ26、Τ27、Τ28、Τ29、Τ30、Τ31。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于步驟(3)中,對于16點(diǎn)的一維整數(shù)離散余弦變換,將輸入的16個(gè)系數(shù)進(jìn)行16點(diǎn)蝶形運(yùn)算,得到16 個(gè)輸出結(jié)果;記輸入的待變換向量Χ16為Χ16 = [ XOO, Χ01, Χ02, Χ03, Χ04, Χ05, Χ06, Χ07, Χ08, Χ09, Χ10, Xll, Χ12, Χ13, Χ14, Χ15] 如果當(dāng)前的變換尺寸為16x16,那么以Χ16作為輸入,否則以32點(diǎn)蝶形變換Β32模塊的輸出 TO、Tl、T2、T3、T4、T5、T6、T7、T8、T9、T10、Til、T12、T13、T14、T15 作為輸入,然后再進(jìn)行16點(diǎn)的蝶形運(yùn)算;16個(gè)輸出結(jié)果分別記為分別記為SO、Si、S2、S3、S4、S5、S6、S7、 S8、S9、S10、Sll、S12、S13、S14、S15,其中 SO、Si、S2、S3、S4、S5、S6、S7 將作為 8 點(diǎn)蝶形運(yùn)算模塊B8的輸入。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于步驟(4)中,對于8點(diǎn)的一維整數(shù)離散余弦變換,將輸入的8個(gè)系數(shù)進(jìn)行8點(diǎn)蝶形運(yùn)算,得到8個(gè)輸出結(jié)果;記輸入的待變換向量X8為X8 = [ XOO, X01, X02, X03, X04, X05, X06, X07]如果當(dāng)前的變換尺寸為8x8,那么以X16作為輸入,否則以16點(diǎn)蝶形變換B16模塊的輸出S0、Si、S2、S3、S4、S5、S6、S7作為輸入,然后再進(jìn)行8點(diǎn)的蝶形運(yùn)算;8個(gè)輸出結(jié)果分別記為分別記為 RO> Rl、R2、R3、R4、R5、R6、R7。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于步驟(5)中,對于4點(diǎn)的一維整數(shù)離散余弦變換,根據(jù)4x4、8x8、16x16和32x32四種不同的變換尺寸,分別設(shè)計(jì)相應(yīng)的多輸出常系數(shù)乘法器:MCM0、MCMU MCM2和MCM3 ;通過對乘法器系數(shù)進(jìn)行配置即可實(shí)現(xiàn)對各種不同視頻標(biāo)準(zhǔn)的支持;如果當(dāng)前變換的尺寸為4x4,那么將待變換的4個(gè)輸入系數(shù)X00,X01,X02,X03作為多輸出常系數(shù)乘法器MCMO的輸入,否則將8點(diǎn)蝶形運(yùn)算B8模塊的輸出R0、R1、R2、R3作為多輸出常系數(shù)乘法器MCMO的輸入,多輸出常系數(shù)乘法器MCMO的輸出記為P0、P1、P2、P3 ;如果當(dāng)前變換的尺寸不是4x4,那么將8點(diǎn)蝶形運(yùn)算B8模塊的輸出R4、R5、R6、R7作為多輸出常系數(shù)乘法器MCMl的輸入,多輸出常系數(shù)乘法器MCMl的輸出記為P4、P5、P6、P7 ; 如果當(dāng)前變換的尺寸是16x16或32x32,那么將16點(diǎn)蝶形運(yùn)算B16模塊的輸出S8、S9、 S10、Sll、S12、S13、S14、S15作為多輸出常系數(shù)乘法器MCM2的輸入,多輸出常系數(shù)乘法器 MCM2 的輸出記為 P8、P9、P10、P11、P12、P13、P14、P15 ;如果當(dāng)前變換的尺寸是32x32,那么將32點(diǎn)蝶形運(yùn)算B32模塊的輸出S16、S17、S18、 S19、S10、S21、S22、S23、S24、S25、S26、S27、S28、S29、S30、S31 作為多輸出常系數(shù)乘法器 MCM3的輸入,多輸出常系數(shù)乘法器MCM3的輸出記為P16、P17、P18、P19、P10、P21、P22、P23、 P24、P25、P26、P27、P28、P29、P30、P31。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于步驟(6)中,對于4點(diǎn)蝶形運(yùn)算模塊B4x4,步驟(5)中的輸出P0、P1、P2、P3作為本次運(yùn)算的輸入, 運(yùn)算的結(jié)果分別記為Y00、Y16、Y08、Y24 ;如果當(dāng)前的變換尺寸是4x4,那么Y00、Y16、Y08、Y24即為即為4點(diǎn)一維整數(shù)離散余弦變換的結(jié)果;對于4點(diǎn)加法樹模塊D4X4,步驟(5)中的輸出P4、P5、P6、P7作為本次運(yùn)算的輸入, 運(yùn)算的結(jié)果分別記為Y04、Y20、Y12、Y28 ;如果當(dāng)前的變換尺寸是8x8,那么YOO、Y16、Y08、 Y24、Y04、Y20、Y12、Y28即為即為8點(diǎn)一維整數(shù)離散余弦變換的結(jié)果; 對于8點(diǎn)加法樹模塊:D8X8,步驟(5)中的輸出P8、P9、P10、P11、P12、P13、P14、P15作為本次運(yùn)算的輸入,運(yùn)算的結(jié)果分別記為Y02、Y18、ΥΙΟ、Y26、Y06、Y22、Y14、Y30 ;如果當(dāng)前的變換尺寸是 16x16,那么 YOO、Y16、Y08、Y24、Y04、Y20、Y12、Y28、Y02、Y18、ΥΙΟ、Y26、Y06、 Y22、Y14、Y30即為即為16點(diǎn)一維整數(shù)離散余弦變換的結(jié)果;對于16點(diǎn)加法樹模塊:D16X16,步驟(2)中的輸出P16、P17、P18、P19、ΡΙΟ、P21、P22、 P23、P24、P25、P26、P27、P28、P29、P30、P31,作為本次運(yùn)算的輸入,運(yùn)算的結(jié)果分別記為Y01、 Y17、Y09、Y25、Y05、Y21、Y13、Y29、Y03、Y19、Yll、Y27、Y07、Y23、Y15、Y3 ;如果當(dāng)前的變換尺寸是 32x32,那么 YOO、Υ16、Υ08、Υ24、Υ04、Υ20、Υ12、Υ28、Υ02、Υ18、ΥΙΟ、Υ26、Υ06、Υ22、 Υ14、Υ30、Υ01、Υ17、Υ09、Υ25、Υ05、Υ21、Υ13、Υ29、Υ03、Υ19、Υ11、Υ27、Υ07、Υ23、Υ15、Υ31 艮口為即為32點(diǎn)一維整數(shù)離散余弦變換的結(jié)果。
全文摘要
本發(fā)明屬于數(shù)字視頻信號(hào)編碼技術(shù)領(lǐng)域,具體為一種適用于多種視頻標(biāo)準(zhǔn)、多尺寸二維整數(shù)余弦變換的通用方法。本發(fā)明通過配置常系數(shù)乘法器的系數(shù)值即可支持多種不同的視頻編碼標(biāo)準(zhǔn),并且同時(shí)支持四種不同的變換尺寸4x4、8x8、16x16、32x32。本發(fā)明首先將二維離散余弦變換分解為兩次一維離散余弦變換;在計(jì)算4點(diǎn)一維離散余弦變換時(shí),采用傳統(tǒng)的蝶形運(yùn)算方法減少運(yùn)算量,加快計(jì)算速度;對于8點(diǎn)、16點(diǎn)、32點(diǎn)的一維離散余弦變換,采用改進(jìn)的蝶形運(yùn)算方法,使得較小尺寸的一維離散余弦變換單元可以在計(jì)算較大尺寸的一維離散余弦變換時(shí)能夠得到復(fù)用,從而大幅降低整個(gè)系統(tǒng)的硬件資源開銷。
文檔編號(hào)H04N7/30GK102387367SQ20111035016
公開日2012年3月21日 申請日期2011年11月8日 優(yōu)先權(quán)日2011年11月8日
發(fā)明者曾曉洋, 沈沙, 沈蔚煒, 范益波 申請人:復(fù)旦大學(xué)