視頻編碼方法和裝置以及解碼方法和裝置的制造方法
【專利說明】
[0001] 本申請是向中國知識產(chǎn)權(quán)局提交的申請日為2011年9月28日的標(biāo)題為"視頻編 碼方法和裝置以及解碼方法和裝置"的第201180046974. 8號申請的分案申請。
技術(shù)領(lǐng)域
[0002] 本發(fā)明涉及一種視頻編碼方法、視頻編碼設(shè)備、視頻解碼方法和視頻解碼設(shè)備,更 具體地講,涉及一種用于對大尺寸塊進(jìn)行變換的方法和設(shè)備以及用于對變換的大尺寸塊進(jìn) 行逆變換的方法和設(shè)備。
【背景技術(shù)】
[0003] 根據(jù)當(dāng)前國際視頻編碼標(biāo)準(zhǔn)(諸如H. 264或MPEG-4),視頻信號被分層劃分為序 列、幀、條帶、宏塊和塊,其中,塊是最小處理單元。在編碼方面,經(jīng)由幀內(nèi)預(yù)測或幀間預(yù)測確 定塊的預(yù)測剩余誤差,執(zhí)行塊變換使得能量集中于十進(jìn)制的系數(shù),并且經(jīng)由量化、掃描、行 程編碼和熵編碼對圖像數(shù)據(jù)進(jìn)行壓縮并記錄為編碼比特流。在解碼方面,以相反的順序執(zhí) 行上述處理。首先,從比特流提取熵編碼的塊變換系數(shù)。然后,經(jīng)由反量化和逆變換重建塊 的預(yù)測剩余誤差,并使用預(yù)測信息來重建塊的視頻數(shù)據(jù)。在編碼解碼處理中,變換模塊是視 頻壓縮的基礎(chǔ),變換模塊的變換性能直接影響編解碼器的整體性能。
[0004] 離散余弦變換(DCT)被用作初始視頻編碼標(biāo)準(zhǔn)(諸如MPEG-ι或H. 261)。在1974 年DCT被引入之后,DCT已被廣泛用于圖像和視頻編碼領(lǐng)域。由于DCT在變換域中去除了 圖像元素的相關(guān)性并且為高效圖像壓縮準(zhǔn)備了基礎(chǔ),因此,與所有次優(yōu)變換相比,DCT具有 優(yōu)秀的變換性能。然而,由于使用浮點(diǎn)數(shù)表示DCT矩陣,因此由于大量的浮點(diǎn)運(yùn)算,許多系 統(tǒng)資源被使用。因此,需要新的DCT算法,以便在對大尺寸塊執(zhí)行變換時(shí)提高變換效率。
【發(fā)明內(nèi)容】
[0005] 技術(shù)問題
[0006] -個(gè)或多個(gè)示例性實(shí)施例提供一種實(shí)現(xiàn)關(guān)于大尺寸塊的快速頻率變換的視頻編 碼方法、視頻編碼設(shè)備、視頻解碼方法和視頻解碼設(shè)備。一個(gè)或多個(gè)示例性實(shí)施例還提供一 種可經(jīng)由在量化或反量化處理中執(zhí)行的縮放或去縮放來補(bǔ)償當(dāng)使用快速頻率變換時(shí)可產(chǎn) 生的變換誤差的視頻編碼方法、視頻編碼設(shè)備、視頻解碼方法和視頻解碼設(shè)備。
[0007] 技術(shù)方案
[0008] 根據(jù)示例性實(shí)施例,通過針對變換塊執(zhí)行縮放來減小使用快速變換矩陣的IDCT 的結(jié)果中的誤差。
[0009] 有益效果
[0010] 在根據(jù)本發(fā)明的圖像變換和圖像逆變換中,當(dāng)對大塊進(jìn)行變換和逆變換時(shí),執(zhí)行 基于整數(shù)的運(yùn)算而非浮點(diǎn)運(yùn)算,從而降低計(jì)算復(fù)雜性并提高運(yùn)算速度。
[0011] 另外,可通過在量化或反量化期間執(zhí)行縮放或去縮放來補(bǔ)償基于浮點(diǎn)運(yùn)算的變換 與快速變換之間的誤差值。
【附圖說明】
[0012] 通過參照附圖詳細(xì)描述本發(fā)明的示例性實(shí)施例,本發(fā)明的以上和其它特點(diǎn)和優(yōu)點(diǎn) 將變得更加清楚,其中:
[0013] 圖1是根據(jù)本發(fā)明的實(shí)施例的視頻編碼設(shè)備的框圖;
[0014] 圖2是根據(jù)本發(fā)明的實(shí)施例的4點(diǎn)、8點(diǎn)、16點(diǎn)和32點(diǎn)離散余弦變換(DCT)的流 程圖;
[0015] 圖3是示出根據(jù)本發(fā)明的實(shí)施例的產(chǎn)生縮放矩陣的方法的流程圖;
[0016] 圖4a至圖4f示出根據(jù)本發(fā)明的實(shí)施例的根據(jù)在針對16X 16塊的變換中使用的 量化參數(shù)的縮放矩陣;
[0017] 圖5a至圖5f示出根據(jù)本發(fā)明的實(shí)施例的根據(jù)在針對32X32塊的變換中使用的 量化參數(shù)的縮放矩陣;
[0018] 圖6a至圖6f示出根據(jù)本發(fā)明的實(shí)施例的根據(jù)應(yīng)用于16X 16塊的量化參數(shù)的去 縮放矩陣;
[0019] 圖7a至圖7f示出根據(jù)本發(fā)明的實(shí)施例的根據(jù)應(yīng)用于32X32塊的量化參數(shù)的去 縮放矩陣;
[0020] 圖8是根據(jù)本發(fā)明的另一實(shí)施例的32點(diǎn)DCT的流程圖;
[0021] 圖9是形成圖8的32點(diǎn)DCT的蝶形結(jié)構(gòu)的運(yùn)算處理的參考圖;
[0022] 圖10是示出根據(jù)本發(fā)明的實(shí)施例的視頻編碼方法的流程圖;
[0023] 圖11是根據(jù)本發(fā)明的實(shí)施例的視頻解碼設(shè)備的框圖;
[0024] 圖12是示出根據(jù)本發(fā)明的實(shí)施例的視頻解碼方法的流程圖。
[0025] 最佳實(shí)施方式
[0026] 根據(jù)本發(fā)明的一方面,提供一種視頻編碼方法,包括:基于被用于對預(yù)定尺寸的塊 進(jìn)行頻率變換的變換矩陣來產(chǎn)生快速變換矩陣;通過使用快速變換矩陣對所述預(yù)定尺寸的 塊進(jìn)行變換來產(chǎn)生變換塊;針對變換塊執(zhí)行縮放以校正用于頻率變換的變換矩陣與快速變 換矩陣之間的差。
[0027] 根據(jù)本發(fā)明的一方面,提供一種視頻編碼設(shè)備,包括:變換器,基于被用于對預(yù)定 尺寸的塊進(jìn)行頻率變換的變換矩陣來產(chǎn)生快速變換矩陣,并通過使用快速變換矩陣對所述 預(yù)定尺寸的塊進(jìn)行變換來產(chǎn)生變換塊;量化器,針對變換塊執(zhí)行縮放以校正用于頻率變換 的變換矩陣與快速變換矩陣之間的差。
[0028] 根據(jù)本發(fā)明的一方面,提供一種視頻解碼方法,包括:接收預(yù)定尺寸的量化的變換 塊;針對量化的變換塊執(zhí)行去縮放以校正用于對量化的變換塊進(jìn)行頻率逆變換的逆變換矩 陣與基于所述逆變換矩陣產(chǎn)生的快速逆變換矩陣之間的差;通過使用快速逆變換矩陣對通 過去縮放所獲得的去縮放的變換塊進(jìn)行逆變換來產(chǎn)生逆變換塊。
[0029] 根據(jù)本發(fā)明的一方面,提供一種視頻解碼設(shè)備,包括:反量化器,針對量化的變換 塊執(zhí)行去縮放以校正用于對量化的變換塊進(jìn)行頻率逆變換的逆變換矩陣與基于所述逆變 換矩陣產(chǎn)生的快速逆變換矩陣之間的差;逆變換器,通過使用快速逆變換矩陣對通過去縮 放所獲得的去縮放的變換塊進(jìn)行逆變換來產(chǎn)生逆變換塊。
【具體實(shí)施方式】
[0030] 以下,將參照附圖更加全面地描述示例性實(shí)施例。
[0031 ] 圖1是根據(jù)本發(fā)明的實(shí)施例的視頻編碼設(shè)備100的框圖。
[0032] 參照圖1,視頻編碼設(shè)備100包括預(yù)測器110、減法器115、變換器120、量化器130 和熵編碼器140。
[0033] 預(yù)測器110將輸入圖像劃分為具有預(yù)定尺寸的塊,并通過對每個(gè)塊執(zhí)行幀間預(yù)測 或幀內(nèi)預(yù)測來產(chǎn)生預(yù)測塊。詳細(xì)地講,預(yù)測器110執(zhí)行用于通過運(yùn)動(dòng)預(yù)測和補(bǔ)償處理來產(chǎn) 生預(yù)測塊的幀間預(yù)測和用于通過使用與當(dāng)前塊相鄰的相鄰塊的數(shù)據(jù)來產(chǎn)生預(yù)測塊的幀內(nèi) 預(yù)測,其中,所述運(yùn)動(dòng)預(yù)測和補(bǔ)償處理在先前被編碼并隨后被恢復(fù)的參考畫面的預(yù)定搜索 范圍內(nèi)產(chǎn)生指示與當(dāng)前塊相似的區(qū)域的運(yùn)動(dòng)矢量。
[0034] 減法器115通過從原始圖像數(shù)據(jù)減去當(dāng)前塊的預(yù)測塊來產(chǎn)生殘差。
[0035] 變換器120將殘差變換到頻率域。具體地,在本發(fā)明的示例性實(shí)施例中,可將針對 具有較小尺寸的現(xiàn)有塊(諸如4X4塊或8X8塊)而定義的離散余弦變換(DCT)矩陣擴(kuò)大 并應(yīng)用于具有至少16X16尺寸的塊。如下所述,變換器120通過用有理數(shù)替代用于現(xiàn)有 DCT的變換矩陣的元素,根據(jù)移位運(yùn)算以及基于整數(shù)的加法和減法(而非浮點(diǎn)運(yùn)算)來執(zhí)行 DCT,從而在提高運(yùn)算速度的同時(shí)降低計(jì)算復(fù)雜性。根據(jù)另一實(shí)施例,變換器120可通過使 用包括如下元素的快速變換矩陣執(zhí)行DCT,從而降低整體計(jì)算復(fù)雜性,其中,所述如下元素 是通過將用于DCT的變換矩陣的元素乘以2的冪并隨后對相乘后的元素進(jìn)行四舍五入而獲 得的。
[0036] 量化器130對變換的殘差進(jìn)行量化。具體地,量化器130執(zhí)行預(yù)定縮放,以便減小 由變換器120使用快速變換矩陣執(zhí)行的變換的結(jié)果與使用基于實(shí)際浮點(diǎn)運(yùn)算的DCT矩陣執(zhí) 行的變換的結(jié)果之間的誤差值。稍后將詳細(xì)描述縮放和量化。
[0037] 熵編碼器140通過對量化的圖像數(shù)據(jù)執(zhí)行可變長度編碼來產(chǎn)生比特流。
[0038] 現(xiàn)在將詳細(xì)描述在圖1的變換器120中執(zhí)行的變換。
[0039] 變換器120針對NXN(其中,N表示整數(shù))輸入塊執(zhí)行列式變換和行式變換以 產(chǎn)生NXN變換塊。當(dāng)NXN輸入塊是Input,行式DCT矩陣是Transform_hor,列式DCT 矩陣是Transform_ver,并且變換結(jié)果值是Output時(shí),變換器120執(zhí)行如等式Output = Transform_horXInputXTransform_ver中表不的矩陣運(yùn)算以輸出變換結(jié)果值Output。在 矩陣運(yùn)算中,第一矩陣乘法Transform_hor X Input相應(yīng)于針對NXN輸入塊Input的每一 行的一維(1D)水平 DCT 的執(zhí)行,Transform_hor X Input 與 Transform_ver 相乘相應(yīng)于 1D 垂直DCT的執(zhí)行。行式DCT矩陣Transform_hor是列式DCT矩陣Transform_ver的轉(zhuǎn)置。 雖然以下描述集中于針對N X N輸入塊執(zhí)行頻率變換和頻率逆變換的N X N變換矩陣和N X N 逆變換矩陣,但是本發(fā)明的精神還可應(yīng)用于使用aXb(其中,a和b表示整數(shù))頻率變換矩 陣和aXb頻率逆變換矩陣的情況。
[0040] 當(dāng)位于垂直變換矩陣的(i,k)(其中,i和k是整數(shù))位置的元素是Aik時(shí),用于 針對NXN輸入塊進(jìn)行變換的垂直變換矩陣的第(i,k)元素Aik可被定義為等式1 :
[0041] [等式 1]
[0044] 由于水平變換矩陣是垂直變換矩陣的轉(zhuǎn)置,因此類似垂直變換矩陣,水平變換矩 陣的第(i,k)元素Bik被表示為使用余弦函數(shù)獲得的值。變換器120可通過使用以有理數(shù) 替代用于DCT的變換矩陣的元素所產(chǎn)生的快速變換矩陣,根據(jù)加法、減法和移位運(yùn)算來執(zhí) 行DCT。根據(jù)另一實(shí)施例,變換器120可通過使用由如下元素形成的快速變換矩陣來執(zhí)行 DCT,其中,所述如下元素是通過將用于DCT的變換矩陣的元素乘以2的冪并隨后對相乘后 的元素進(jìn)行四舍五入而獲得的。
[0045] 圖2是根據(jù)本發(fā)明的實(shí)施例的4點(diǎn)、8點(diǎn)、16點(diǎn)和32點(diǎn)DCT的流程圖。
[0046] 參照圖2, f0至f31表示一維(1D)DCT的輸入值,并同時(shí)表示1D逆離散余弦變換 (IDCT)的輸出值。R)至F31表示ID DCT的輸出值,并同時(shí)表示ID IDCT的輸入值。DCT 期間的數(shù)據(jù)處理方向?yàn)閺淖笾劣?,并且IDCT期間的處理方向?yàn)閺挠抑磷蟆?條線相交于點(diǎn) 表示兩個(gè)數(shù)的加法。每條線之上的值表示根據(jù)相應(yīng)系數(shù)的乘法。c0表示cos Θ,8Θ表示 sin Θ,并且表示負(fù)。指示虛線的參考標(biāo)號210是4點(diǎn)ID DCT的流程圖,指示虛線的參 考標(biāo)號220是8點(diǎn)ID DCT的流程圖,指示虛線的參考標(biāo)號230是16點(diǎn)ID DCT的流程圖, 指示虛線的參考標(biāo)號240是32點(diǎn)ID DCT的流程圖。
[0047] 如流程圖200中所示,c Θ和s Θ可根據(jù)DCT中的Θ值變?yōu)闊o理數(shù),因此,會增加 計(jì)算復(fù)雜性。這樣的DCT的處理在使用硬件實(shí)現(xiàn)時(shí)會增加復(fù)雜性。因此,根據(jù)示例性實(shí)施 例,變換器120通過以有理數(shù)替代用于DCT的元素的三角函數(shù)值來產(chǎn)生與原始DCT矩陣相 似的快速變換矩陣。根據(jù)另一示例性實(shí)施例,變換器120通過將用于DCT的元素乘以預(yù)定 常數(shù)(例如,2n)并對相乘后的元素進(jìn)行四舍五入來產(chǎn)生快速變換矩陣。
[0048] 詳細(xì)地講,參照圖2,當(dāng)N是16時(shí),即,當(dāng)針對16 X 16輸入塊執(zhí)行ID DCT時(shí),根據(jù) 流程圖230以16X 16輸入塊的16行和16列為單位執(zhí)行ID DCT。當(dāng)f = [f0, fl,f2,… ,Π4, Π5]Τ表示16個(gè)輸入值,F(xiàn) = [F0, Fl,F(xiàn)2,. . .,F(xiàn)14, F15]T表示變換結(jié)果值,并 且Original_A表示代表根據(jù)流程圖230對輸入值進(jìn)行變換的處理的變換矩陣時(shí),F(xiàn) = Original_AXf 表示 ID DCT。
[0049] 如上所述,由于cos Θ和sin Θ可根據(jù)Θ值為無理數(shù),因此變換器120以有理數(shù)替 代包括在變換矩陣〇riginal_A的元素中的cos Θ和sin Θ。例如,當(dāng)N = 16時(shí),變換器120 以 a0 替代 cosO,以 al 替代 cos ( π X (1/2) /16),以 a2 替代 cos ( π X (2/2) /16),以 a3 替代 cos ( π X (3/2) /16),以 a4 替代 cos ( π X (4/2) /16),以 a5 替代 cos ( π X (5/2) /16),以 a6 替代 cos ( π X (6/2) /16),以 a7 替代 cos ( π X (7/2) /16),以 a8 替代 cos ( π X (8/2) /16), 以 a9 替代 cos (π X (9/2)/16),以 alO 替代 cos (π X (10/2)/16),以 all 替代 cos (π X (11/2)/16),以 al2 替代 cos (π X (12/2)/16),以 al3 替代 cos (π X (13/2)/16), 以al4替代cos (π X (14/2)/16)以及以al5替代cos (π X (15/2)/16)。類似地,可通過使 用諸如sin Θ = cos (90-Θ)的關(guān)系以變量ai替代sin Θ。變量ai可以是有理數(shù),并且每 個(gè)變量ai的分母可具有能夠進(jìn)行移位運(yùn)算的2的冪的值。因?yàn)槿绻帜甘?的冪,則可用 右移運(yùn)算(>>)來替代用于變換所需的除法運(yùn)算等,所以變量ai限于二進(jìn)有理數(shù)。
[0050] 例如,當(dāng)N是16時(shí),16個(gè)變量ai可以是以下值:al = 63/64,a2 = 62/64,a3 = 61/64, a4 = 59/64, a5 = 56/64, a6 = 53/64, a7 = 49/64, a8 = 45/64, a9 = 40/64, alO =35/64, all = 30/64, al2 = 24/64, al3 = 18/64, al4 = 12/64, al5 = 6/64。
[0051] 如果N是16,則可將通過使用替代的16X 16變換矩陣A針對16X 16輸入塊所執(zhí) 行的ID DCT表示為如下運(yùn)算,其中,Xi (其中,i表示范圍0至15中的整數(shù))表示待變換的 輸入值,Bi、Ci、Di、Ei和Fi表示中間值,并且Yi表示變換結(jié)果值:
[0052] {
[0053] / 階段 0
[0054] BO = X0+X15 ;B15 = X0-X15