黃 炎
(北方工業(yè)大學(xué),北京100144)
人類已全面邁入信息化時代,以視頻形式傳播的信息早已被人們普遍接受,成為當(dāng)今社會人們獲取信息的重要手段。視頻編碼標(biāo)準(zhǔn)作為全世界數(shù)字音視頻產(chǎn)業(yè)發(fā)展的規(guī)范,它能夠滿足當(dāng)下人們對于視頻的各種需求。隨著人們對于8 K、高動態(tài)范圍(High Dynamic Range,HDR)、虛擬現(xiàn)實(shí)(Virtual Reality,VR)等各種形式視頻的需求提升,給現(xiàn)有的存儲設(shè)備以及網(wǎng)絡(luò)帶寬帶來了巨大的挑戰(zhàn),而對視頻進(jìn)行壓縮編碼后再傳輸,可以有效解決當(dāng)前挑戰(zhàn),并帶來可觀收益。因此為了應(yīng)對當(dāng)前不斷增長的視頻數(shù)據(jù)量,提高網(wǎng)絡(luò)的傳輸效率,研究高效的視頻編碼技術(shù)手段顯得尤為重要。
高效視頻編碼標(biāo)準(zhǔn)(High Efficiency Video Coding,HEVC)[1]是視頻編碼發(fā)展和壓縮技術(shù)的重要里程碑,壓縮效率比H.264提高了2倍。為了研究HEVC之后的下一代視頻編碼技術(shù),視頻編碼專家組(Video Coding Experts Group,VCEG)和運(yùn)動圖像專家組(Moving Picture Experts Group,MPEG)于2015年成立了聯(lián)合視頻探索小組(Joint Video Explore Team,JVET)。在2018年的第10屆JVET會議上,新一代視頻編碼標(biāo)準(zhǔn)正式命名為通用視頻編碼標(biāo)準(zhǔn)(Versatile Video Coding,VVC),并且發(fā)布了VVC參考模型(VVC Test Model,VTM)。VVC的目標(biāo)是在HEVC編碼標(biāo)準(zhǔn)的基礎(chǔ)上,使編碼性能提高1倍,即在保持視頻圖像相同質(zhì)量的情況下,降低1/2的碼率。
VVC的整體編碼框架與HEVC相差不大,但改進(jìn)了其中的幀內(nèi)預(yù)測、幀間預(yù)測和環(huán)路濾波器等重要環(huán)節(jié)。在幀間預(yù)測環(huán)節(jié)中,VVC對HEVC的幀間預(yù)測技術(shù)進(jìn)行了擴(kuò)展,新增加了幀間幀內(nèi)聯(lián)合預(yù)測(Combined Inter and Intra Prediction,CIIP)模式[2]。它為編碼器提供了一種新的預(yù)測數(shù)據(jù)構(gòu)造方式,提高了幀間預(yù)測性能。筆者重點(diǎn)針對VVC中的CIIP模式進(jìn)行研究,從提升CIIP模式預(yù)測性能方面進(jìn)行改進(jìn),提升幀間預(yù)測效率。
在HEVC中當(dāng)前編碼塊只能進(jìn)行幀間預(yù)測模式或者幀內(nèi)預(yù)測模式,但是在VVC中新引入的CIIP模式,可以對當(dāng)前編碼塊分別進(jìn)行幀間預(yù)測與幀內(nèi)預(yù)測。由于CIIP模式的特殊性,其自從被VVC采納以來便備受關(guān)注研究。為了進(jìn)一步提高CIIP模式的編碼性能,研究人員進(jìn)行了深入研究,提出了許多新的技術(shù),其中對CIIP模式的研究主要體現(xiàn)在以下方面:DO J.等[3]通過當(dāng)前使用CIIP模式編碼塊的更多相鄰塊預(yù)測模式,從而推導(dǎo)更準(zhǔn)確的權(quán)重值;BLASI等[4]提出在CIIP模式中使用三角劃分的方式對CIIP模式進(jìn)行區(qū)域劃分;SUN Y.C.等[5]提出刪除CIIP模式的排序過程并修改CIIP模式中的默認(rèn)幀內(nèi)預(yù)測模式;CHEN C.C.等[6]進(jìn)行了多次關(guān)于CIIP模式的測試實(shí)驗(yàn),主要測試了對角劃分區(qū)域中的幀間和幀內(nèi)預(yù)測的最佳組合模式。此外,XU X.等[7]與BROSS B.等[8]還對當(dāng)前使用幀內(nèi)運(yùn)動信息的預(yù)測塊進(jìn)行了預(yù)測模式的復(fù)制,使得預(yù)測塊同時具有幀內(nèi)預(yù)測和幀間預(yù)測的特性。
VVC中新引入的CIIP模式雖然增強(qiáng)了幀間預(yù)測性能,但是現(xiàn)有的CIIP模式并不完善,沒有考慮到CIIP模式在紋理復(fù)雜區(qū)域中幀間預(yù)測性能較差的問題,為此,筆者將重點(diǎn)針對以上CIIP模式存在的問題開展研究,提高幀間預(yù)測性能。
CIIP模式即幀間幀內(nèi)聯(lián)合預(yù)測技術(shù),是幀間預(yù)測技術(shù)中的一種重要技術(shù)。CIIP幀間幀內(nèi)聯(lián)合預(yù)測模式與其他幀間預(yù)測模式最大的區(qū)別在于,在對當(dāng)前編碼塊進(jìn)行最終幀間預(yù)測值的計算過程中,使用到了當(dāng)前編碼塊的幀內(nèi)預(yù)測值。需要注意的是,CIIP模式在幀間預(yù)測過程中存在一定的限制條件。只有當(dāng)前編碼塊以Merge模式進(jìn)行幀間預(yù)測,并且當(dāng)前編碼塊的寬度乘以高度大于64,小于128,整體VVC框架才會發(fā)送附加信號,指示當(dāng)前編碼是否應(yīng)用CIIP模式[9]。CIIP模式示意圖如圖1所示。
圖1 CIIP模式示意圖
CIIP模式通過以下流程實(shí)現(xiàn):首先利用Planar,DC,角度預(yù)測等傳統(tǒng)幀內(nèi)預(yù)測模式獲取幀內(nèi)預(yù)測值,記為Pintra,接著利用常規(guī)Merge模式中的最優(yōu)候選MV獲取幀間預(yù)測值,記為Pinter,最后將Pintra與Pinter通過加權(quán)計算得到當(dāng)前編碼塊的最終CIIP模式預(yù)測值。在目前的VVC版本中,CIIP模式統(tǒng)一采用Planar模式獲取當(dāng)前編碼塊的幀內(nèi)預(yù)測值,CIIP模式的計算如式(1):
PCIIP=[(4-ωt)Pinter+ωtPintra+2]?2
(1)
在CIIP幀間幀內(nèi)聯(lián)合預(yù)測模式最終的計算公式中,權(quán)重值ωt設(shè)置為1,2,3,由當(dāng)前使用CIIP模式編碼塊的上方相鄰塊和左方相鄰塊的幀間預(yù)測模式和幀內(nèi)預(yù)測模式確定,權(quán)重值確定示意圖如圖2所示。
圖2 CIIP模式權(quán)重值確定示意圖
圖2中,權(quán)重值ωt的取值如下:(1)當(dāng)上方相鄰塊與左方相鄰塊均為幀內(nèi)預(yù)測編碼時,ωt設(shè)置為3;(2)當(dāng)上方相鄰塊與左方相鄰塊其中1個為幀內(nèi)編碼,另外1個為幀間編碼時,ωt設(shè)置為2;(3)當(dāng)上方相鄰塊與左方相鄰塊均為幀間編碼時,ωt設(shè)置為1。
筆者提出的算法主要分為2個部分。
第1部分是獲得更準(zhǔn)確的CIIP模式幀內(nèi)預(yù)測值。在目前版本的VVC中,CIIP模式都是采用Planar角度預(yù)測模式來獲取幀內(nèi)預(yù)測值。Planar模式根據(jù)周圍像素加權(quán)計算,其中權(quán)重大小與距離有關(guān),因此只適用于紋理簡單像素變換緩慢的區(qū)域??紤]到當(dāng)前使用CIIP模式的編碼塊難免會處于紋理復(fù)雜像素分布不均勻的區(qū)域,使用Planar模式來預(yù)測CIIP模式的幀內(nèi)預(yù)測值會不夠準(zhǔn)確。因此,算法新設(shè)計了幀內(nèi)預(yù)測最可能模式(Most Probable Mode,MPM)列表來提高幀內(nèi)預(yù)測值。
第2部分是結(jié)合了幾何劃分GPM技術(shù)對CIIP模式進(jìn)行區(qū)域劃分,通過判斷當(dāng)前編碼塊的周圍相鄰塊幀間幀內(nèi)預(yù)測模式來對當(dāng)前編碼塊進(jìn)行幾何劃分,劃分后的區(qū)域分別進(jìn)行幀間預(yù)測與幀內(nèi)預(yù)測,得到新預(yù)測值,新得到的幀間預(yù)測值與幀內(nèi)預(yù)測值再通過新設(shè)計的CIIP模式整數(shù)融合矩陣,計算得到最終的CIIP預(yù)測值。
在當(dāng)前版本的VVC中,CIIP模式獲取幀內(nèi)預(yù)測值的方式只采用Planar模式,Planar模式僅適用于當(dāng)前編碼塊處于像素漸變的情況,即適用于像素值緩慢變換的區(qū)域,而在VVC的幀間預(yù)測過程中,當(dāng)前編碼塊難免會處于紋理復(fù)雜、像素變換不均勻的情況下,所以在CIIP模式中,只用Planar模式預(yù)測當(dāng)前塊的幀內(nèi)預(yù)測值難免會顯得精準(zhǔn)性不夠,因此筆者提出利用幀內(nèi)角度預(yù)測MPM列表的方式來獲得更加精準(zhǔn)的幀內(nèi)預(yù)測值。如果在CIIP模式的幀內(nèi)預(yù)測值獲取過程中,使用原本MPM列表構(gòu)建的方式,那么CIIP模式的編碼復(fù)雜度將會大大提高,所以本文算法提出了一種改進(jìn)的MPM列表構(gòu)建方式,重新獲取CIIP模式中的幀內(nèi)預(yù)測值,改進(jìn)的MPM列表構(gòu)建方式如下:
(1)新構(gòu)建的MPM列表長度設(shè)置為6,與普通幀內(nèi)預(yù)測過程中構(gòu)建的MPM列表長度相同。
(2)新構(gòu)建的MPM列表的候選考慮當(dāng)前編碼塊的運(yùn)動信息與上方塊和左方塊的運(yùn)動信息,候選列表依次填入:當(dāng)前編碼塊的Planar模式、當(dāng)前編碼塊的DC模式、上方塊的幀內(nèi)預(yù)測角度模式、左方塊的幀內(nèi)預(yù)測角度模式、當(dāng)前編碼塊的垂直(Vertical)模式以及當(dāng)前編碼塊的水平(Horizontal)模式這6種模式。通過計算候選MPM列表中這幾種模式的絕對誤差和(Sum of Absolute Difference,SAD),選取其中SAD代價值最小的作為當(dāng)前CIIP幀間幀內(nèi)聯(lián)合預(yù)測模式下的CU最佳幀內(nèi)預(yù)測模式。CIIP幀間幀內(nèi)聯(lián)合預(yù)測模式中改進(jìn)的MPM列表候選示意圖如圖3所示。
通過對當(dāng)前編碼塊進(jìn)行區(qū)域劃分,使CIIP模式獲取最終預(yù)測值的方式更加靈活。同時區(qū)域劃分構(gòu)造了一種新的高效預(yù)測數(shù)據(jù)表達(dá)方式,不同于原本CIIP模式獲取編碼塊整個區(qū)域的幀間預(yù)測值與幀內(nèi)預(yù)測值,區(qū)域劃分獲取編碼塊不同分區(qū)的幀間預(yù)測值與幀內(nèi)預(yù)測值,利用分區(qū)的方式能夠更好地將適用于幀間預(yù)測模式與幀內(nèi)預(yù)測模式的編碼塊信息區(qū)分出來,便于CIIP模式提取紋理復(fù)雜區(qū)域中編碼塊信息,并且區(qū)域劃分后的編碼塊信息具有良好的可靠性與獨(dú)立性,計算的幀內(nèi)預(yù)測值與幀間預(yù)測值更加準(zhǔn)確。
本文算法綜合考慮了VVC中各種區(qū)域的劃分方式,決定采用GPM劃分的方式來對CIIP模式進(jìn)行區(qū)域劃分,因?yàn)镚PM劃分對比其他劃分的方式來說,具有精度高、劃分方式多樣、計算復(fù)雜度低的優(yōu)勢[10]。精度高體現(xiàn)在GPM模式多應(yīng)用于對圖像邊緣輪廓的幀間預(yù)測的過程中,而圖像邊緣輪廓通常紋理復(fù)雜,所以需要高精度的預(yù)測模式才能獲得準(zhǔn)確的預(yù)測值;劃分方式多樣體現(xiàn)在GPM具有64種劃分方式,其中劃分方式由角度參數(shù)φ和偏移參數(shù)ρ決定;計算復(fù)雜度低體現(xiàn)在GPM劃分之后的計算是通過混合融合矩陣計算,其矩陣推導(dǎo)的計算復(fù)雜度較低,在解碼器端可以動態(tài)生成。
編碼塊在使用GPM劃分后,每個區(qū)域中都包含著單獨(dú)的運(yùn)動信息、運(yùn)動矢量和參考索引,這保證了每個區(qū)域的編碼塊與傳統(tǒng)雙向預(yù)測方式相同,因此在CIIP模式中引入GPM劃分具有很好的兼容性,對CIIP模式的幀間預(yù)測流程不會造成太大影響。結(jié)合GPM劃分的CIIP改進(jìn)模式區(qū)域劃分方式如圖4所示。
(a)A1與B1均采用幀間預(yù)測模式 (b)A1與B1均采用幀內(nèi)預(yù)測模式
劃分方式依據(jù)幀間預(yù)測過程中,相鄰塊與當(dāng)前編碼塊的相關(guān)性高的特點(diǎn)進(jìn)行劃分。根據(jù)當(dāng)前編碼塊的左方塊A1與上方塊B1的預(yù)測模式,決定當(dāng)前編碼塊的具體劃分方式,具體劃分方式如下:
(1)當(dāng)左方塊A1與上方塊B1都采用幀間預(yù)測模式時,采用的劃分方式如圖4(a)所示;
(2)當(dāng)左方塊A1與上方塊B1都采用幀內(nèi)預(yù)測模式時,采用的劃分方式如圖4(b)所示;
(3)當(dāng)左方塊A1采用幀內(nèi)預(yù)測模式,上方塊B1采用幀間預(yù)測模式時,采用如圖4(c)所示;
(4)當(dāng)左方塊A1采用幀間預(yù)測模式,上方塊B1采用幀內(nèi)預(yù)測模式時,采用如圖4(d)所示。
在使用GPM模式時,通過幾何定位的直線將CU劃分為2個部分,分割線的位置從數(shù)學(xué)上是根據(jù)特定分區(qū)的角度參數(shù)φ和偏移參數(shù)ρ得出的,如圖5所示。其中在VVC標(biāo)準(zhǔn)中,GPM模式的角度參數(shù)φ有24種類型,由360°不等間隔的量化得到,如圖5(a)所示;每種角度下的偏移參數(shù)ρ有4種類型,分別為h/8,h/4,3h/8,h/2,如圖5(b)所示。因此GPM模式總共可以組合出64種不同的劃分模式,每種劃分模式下對應(yīng)的角度參數(shù)φ和偏移參數(shù)ρ不同。
(a)角度參數(shù) (b)偏移參數(shù)圖5 GPM模式劃分的角度位移參數(shù)
因?yàn)镚PM劃分方式具有多樣性,所以在使用GPM劃分對CIIP模式進(jìn)行子劃分時,需要考慮當(dāng)前編碼塊的GPM劃分方式是否為最優(yōu)劃分,因此根據(jù)相鄰塊與當(dāng)前編碼塊的相關(guān)性高的原理,通過比較圖4中的A1與B1塊的預(yù)測模式來對GPM進(jìn)行劃分,具體的劃分方式如下:
(1)對于左方塊A1與上方塊B1都采用幀間預(yù)測模式或者幀內(nèi)預(yù)測模式時,采用角度參數(shù)φ為27,29,30,31此4種劃分方式,偏移參數(shù)ρ為h/8,h/4,3h/8這3種情況;
(2)對于左方塊A1與上方塊B1分別采用幀間預(yù)測模式或者幀內(nèi)預(yù)測模式時采用角度參數(shù)φ為17,18,19,21此4種劃分方式,偏移參數(shù)ρ為h/8,h/4,3h/8這3種情況。
綜合統(tǒng)計以上所有GPM劃分模式情況后,通過比較在不同角度參數(shù)φ與偏移參數(shù)ρ下每種劃分模式在幀間預(yù)測情況下的Rd-cost代價值,選擇其中代價值最小的作為當(dāng)前結(jié)合GPM矩形劃分下的CIIP模式最佳區(qū)域劃分方式。
在對當(dāng)前使用了CIIP模式的編碼塊進(jìn)行GPM模式區(qū)域劃分之后,當(dāng)前編碼塊被劃分為2個區(qū)域。依據(jù)當(dāng)前編碼塊的上方塊與左方塊的預(yù)測模式,分別對不同的區(qū)域進(jìn)行幀間預(yù)測值與幀內(nèi)預(yù)測值的計算。其中幀內(nèi)預(yù)測值的計算采用在CIIP模式中設(shè)計的新MPM列表方式來獲取,幀間預(yù)測值的計算采用常規(guī)Merge模式中的最優(yōu)候選MV獲取。得到的幀內(nèi)預(yù)測值與幀間預(yù)測值再依據(jù)整數(shù)融合矩陣進(jìn)行計算。新設(shè)計的CIIP模式的整數(shù)融合矩陣計算方法理論來源于GPM模式原本的整數(shù)融合矩陣計算方法。設(shè)計的CIIP模式計算公式如式(2)和式(3):
PCIIP=WintraPintra+WinterPinter
(2)
Wintra+Winter=8Jw,h
(3)
式(2)和式(3)中,PCIIP是CIIP模式的最終預(yù)測值;Pintra是新獲取的幀內(nèi)預(yù)測值;Pinter是新獲取的幀間預(yù)測值;Wintra和Winter是設(shè)計的幀內(nèi)、幀間權(quán)重值整數(shù)融合矩陣;Jw,h是w×h的全1矩陣,w表示寬度,h表示高度。
最終預(yù)測值通過幀內(nèi)權(quán)重值整數(shù)融合矩陣Wintra與幀間權(quán)重值整數(shù)融合矩陣Winter的邊緣融合計算得到,同時依據(jù)GPM劃分的整數(shù)融合矩陣基本原理,將Wintra和Winter的權(quán)重值范圍設(shè)計在(0,8),整數(shù)融合矩陣的權(quán)重值取決于當(dāng)前塊中CU與幾何定位的分割線之間的位移。1個幀內(nèi)權(quán)重值整數(shù)融合矩陣Wintra與幀間權(quán)重值整數(shù)融合矩陣Winter的混合矩陣示例圖如圖6所示。
(a)幀內(nèi)權(quán)重值混合矩陣 (b)幀間權(quán)重值混合矩陣圖6 新CIIP模式的混合矩陣
對于當(dāng)前塊中CU劃分邊緣的各個位置,其混合權(quán)重依據(jù)各CU位置與幾何定位的分割線之間的距離計算得出。位置(x,y)到幾何定位的分割線的距離計算公式如下:
d(x,y)=(2x+1-w)cosφi+
(2y+1-h)sinφi-ρj
(4)
式(4)中,φi與ρj的含義參見圖7,ρj還需要依據(jù)整數(shù)融合矩陣的特性確定符號和取值,計算公式如下:
ρj=ρx,jcosφi+ρy,jsinφi
(5)
(6)
(7)
式(5)~式(7)中,i,j分別表示角度索引與偏移索引,根據(jù)編碼器傳輸?shù)腉PM分割線信號索引確定;ρx,j與ρy,j表示當(dāng)前編碼塊位置與幾何定位分割線距離參數(shù),符號取決于角度索引i,取值通過整數(shù)融合矩陣的寬度與高度比較確定。使用GPM劃分后,各區(qū)域的權(quán)重計算公式如下:
(8)
Winter(x,y)=1-Wintra(x,y)
(9)
式(8)中,Clip3表示權(quán)重值的取值范圍在(0,8),并且取其中的絕對偏移量;WIdxL表示當(dāng)前編碼塊的索引位置,取決于編碼器傳輸?shù)慕嵌人饕齣。
權(quán)重Wintra計算過程的1個示例圖如圖7所示。圖7的小方塊代表當(dāng)前編碼塊最小的編碼單元。
圖7 權(quán)重Wintra示例圖
為驗(yàn)證本文算法,將本文算法合并到測試模型VTM 8.0中進(jìn)行測試。實(shí)驗(yàn)的初始QP分別為22,27,32,37,使用HEVC提供的標(biāo)準(zhǔn)視頻序列作為測試序列,序列顏色格式設(shè)置為4∶2∶0,涉及了不同的場景和不同的分辨率。為驗(yàn)證本文算法的性能,使用JVET發(fā)布的Excel表,計算BD-rate來綜合表示圖像質(zhì)量與碼率的情況,使用Y,U,V這3種分量的BD-rate增量以及編碼時間EncT作為評價指標(biāo)。其中,BD-rate表示圖像質(zhì)量與碼率的情況;?BR為正,表示性能損失;?BR為負(fù),表示性能提升;編碼時間EncT超過100%,表示編碼時間增加;編碼時間EncT低于100%,表示編碼時間節(jié)省。實(shí)驗(yàn)測試了隨機(jī)訪問RA模式以及低延遲LDB模式下的算法性能,測試的結(jié)果如表1與表2所示。
表1 RA模式下本文算法與VTM8.0的測試結(jié)果比較
表2 LDB模式下本文算法與VTM8.0的測試結(jié)果比較
表2(續(xù))
實(shí)驗(yàn)結(jié)果表明:通過結(jié)合GPM劃分的CIIP改進(jìn)模式,可以增強(qiáng)CIIP模式的幀間預(yù)測性能,其中在隨機(jī)訪問RA模式下Y方向上分量的BD-rate下降平均可以達(dá)到0.12%,最多可以下降0.31%。U,V方向上分量的BD-rate基本不變,而整體的編碼時間僅增加了5%左右。在低延遲模式LDB下,Y方向上分量的BD-rate下降平均0.08%,最多可以下降0.22%。U,V方向上分量的BD-rate基本不變,整體的編碼時間同樣上升了5%左右。
為了提高CIIP模式的預(yù)測性能,筆者提出了一種結(jié)合GPM劃分的CIIP改進(jìn)模式。通過對CIIP模式的流程分析,發(fā)現(xiàn)當(dāng)編碼塊的紋理復(fù)雜度較高時,CIIP模式中的幀內(nèi)預(yù)測效率會明顯降低。筆者設(shè)計了改進(jìn)的幀內(nèi)預(yù)測MPM列表,以改善紋理復(fù)雜的區(qū)域中CIIP模式的幀內(nèi)預(yù)測效果。同時,采用GPM劃分方式對當(dāng)前編碼塊進(jìn)行區(qū)域劃分,對劃分后的區(qū)域分別進(jìn)行幀間預(yù)測與幀內(nèi)預(yù)測,通過新設(shè)計的整數(shù)融合矩陣計算最終的CIIP預(yù)測值。實(shí)驗(yàn)結(jié)果表明:與參考模型VTM8.0相比,本文算法Y分量的BD-rate平均降低了0.12%,U,V分量的BD-rate基本不變,整體編碼時間略微有所上升。
筆者提出的結(jié)合GPM劃分的CIIP改進(jìn)模式研究仍然有一定的局限性,雖然成功地提高了CIIP模式的預(yù)測性能,但是卻增加了幀間預(yù)測過程中的計算復(fù)雜度,并且對于CIIP模式的預(yù)測性能提升也還存在著進(jìn)步空間。