康劍源,劉志
(北方工業(yè)大學(xué),北京 100144)
虛擬現(xiàn)實(VR)360 度視頻的應(yīng)用越來越廣泛。與傳統(tǒng)視頻不同,虛擬現(xiàn)實360度視頻不能直接被編碼,需要首先經(jīng)過投影過程轉(zhuǎn)化為二維(2D)平面視頻,才能使用傳統(tǒng)的視頻編碼器進行編碼。為此,JVET組織提出了11種投影格式,包括等矩形投影(ERP)、八面體投影(OHP)、立方體映射投影(CMP)等[1-2]。其中ERP是使用最廣泛的投影格式。
根據(jù)JVET建議,高效視頻編碼(HEVC)[3]被用來編碼投影后的虛擬現(xiàn)實360度視頻。HEVC是目前最新的視頻編碼國際標(biāo)準(zhǔn),壓縮性能比H.264/AVC提高50%。為了提升HEVC編碼器的性能,人們對HEVC進行了大量的優(yōu)化[4-5]。如在編碼單元(CU)劃分方面,唐浩漾等[6]提出了一種基于CART決策樹的CU快速劃分算法,利用相鄰CU的深度來判斷當(dāng)前CU是否需要被劃分。Jing等[7]提出了一種基于決策樹的CU尺寸決策算法,利用決策樹模型判斷CU的尺寸。在幀內(nèi)模式選擇方面,祝世平等[8]提出了一種基于決策樹的候選模式縮減算法,通過對候選模式的分類,減少粗選模式(RDO)列表中候選模式的數(shù)量。Ryu等[9]提出了一種基于機器學(xué)習(xí)的快速幀內(nèi)預(yù)測模式?jīng)Q策算法,用多個幀內(nèi)預(yù)測模式的RDO過程來估計當(dāng)前預(yù)測單元中的幀內(nèi)預(yù)測模式。
在幀內(nèi)預(yù)測之前,HEVC編碼器需要對變換單元(TU)周圍的參考像素進行濾波處理,濾波的效果對幀內(nèi)預(yù)測性能具有較大影響。為了提高濾波性能,研究人員提出了一些改進算法[10-12]。王歡[13]提出了一種參考像素濾波的并行化設(shè)計方案,將原有的串行濾波方式改為了并行化濾波方式。Liu等[14]提出了一種減少參考像素的幀內(nèi)預(yù)測方法。
目前,大部分的優(yōu)化研究都是針對傳統(tǒng)視頻數(shù)據(jù)進行的,針對360度視頻的參考像素濾波優(yōu)化工作還很少。由于投影后的虛擬現(xiàn)實視頻擁有與傳統(tǒng)二維視頻不同的統(tǒng)計特性,降低了編碼器的性能,因此有必要根據(jù)虛擬現(xiàn)實視頻的特性,對HEVC編碼器進行優(yōu)化。在本文中,基于對虛擬現(xiàn)實360度視頻特性的分析,優(yōu)化濾波參數(shù)的配置,分區(qū)域建立決策樹模型,利用決策樹判斷參考像素的濾波方式,達到提升濾波性能的效果。
ERP格式是官方360Lib框架提出的默認(rèn)投影格式。與傳統(tǒng)視頻相比,ERP格式視頻靠近兩極的視頻內(nèi)容被嚴(yán)重拉伸,造成圖像的失真與圖像數(shù)據(jù)的冗余,呈現(xiàn)出與赤道區(qū)域不同的紋理特性。為此,本文將視頻區(qū)域分為兩極區(qū)域和赤道區(qū)域分別處理。利用WS-PSNR[5]的權(quán)重,計算每個編碼樹單元(CTU)的,并根據(jù)確定CTU所屬的區(qū)域。的計算方法如式(1)所示,其中(i, j)表示CTU左上角第一個像素的坐標(biāo)位置。
圖1 區(qū)域劃分示意圖
在HEVC的標(biāo)準(zhǔn)算法中,可以根據(jù)需求對參考像素進行濾波處理,濾波方式可以分為強濾波、弱濾波和不濾波。其中,強濾波只用于32×32尺寸的樹單元(TU)。在濾波方式的判斷過程中,HEVC標(biāo)準(zhǔn)算法會在橫向和縱向的參考像素中,各采樣三個像素點用于判斷濾波方式。強濾波的判斷過程為:若滿足式(2)和式(3),那么當(dāng)前濾波方式為強濾波。其中abs代表絕對值,的大小為,Bitdepth為像素灰度值的位深,A、B、C、D、E的像素位置如圖2所示。式(2)和式(3)可以用于粗略判斷縱向和橫向方向上參考像素灰度值變化的劇烈程度。
圖2 各參考像素采樣點的位置
在HEVC標(biāo)準(zhǔn)參考算法中,TU的尺寸與當(dāng)前區(qū)域的像素灰度值變化程度有關(guān)。當(dāng)像素灰度值變化程度較大時,一般使用小尺寸TU;反之,一般使用大尺寸的TU。在ERP格式視頻的兩極區(qū)域,由于圖像水平拉伸的緣故,該區(qū)域的像素復(fù)雜度較低,主要采用32×32尺寸的TU。
由于投影過程中水平拉伸的緣故,ERP格式視頻兩極區(qū)域中32×32尺寸的TU通常呈現(xiàn)水平方向的紋理,如圖3所示。對于具有水平方向紋理的TU,HEVC標(biāo)準(zhǔn)算法關(guān)于濾波方式的判斷存在一定的問題。在標(biāo)準(zhǔn)算法中,只用了5個像素采樣點用于判斷強弱濾波,并且對于32×32尺寸的TU,只在模式10和模式26中采用了不濾波的參考像素,導(dǎo)致許多TU在應(yīng)該使用弱濾波或不濾波的參考像素時使用了強濾波的參考像素,降低了預(yù)測的準(zhǔn)確性。
圖3 兩極區(qū)域尺寸為32×32的TU
為了體現(xiàn)HEVC標(biāo)準(zhǔn)算法對兩極區(qū)域參考像素濾波方式的判斷不準(zhǔn)確的問題,我們?yōu)槿齻€典型序列統(tǒng)計了標(biāo)準(zhǔn)算法下的濾波方式占比和窮舉算法下的最優(yōu)濾波方式占比,統(tǒng)計數(shù)據(jù)如表1和表2所示。從表1和表2中可以看出,在標(biāo)準(zhǔn)算法的濾波過程中,對兩極區(qū)域使用了大量的強濾波。而從窮舉算法得到的最優(yōu)濾波方式表明,對于兩極區(qū)域中水平方向紋理的TU,一般使用弱濾波或者不濾波的方式。
表1 標(biāo)準(zhǔn)算法下各濾波方式的占比(單位:%)
表2 窮舉算法下各濾波方式的占比(單位:%)
不同于兩極區(qū)域,赤道區(qū)域各尺寸TU的分布比較均勻,圖像紋理結(jié)構(gòu)多變,HEVC標(biāo)準(zhǔn)算法對參考像素三種濾波方式的選擇不存在明顯的傾向性,然而,標(biāo)準(zhǔn)算法對濾波方式的判定方法仍存在需要改進的地方。
在標(biāo)準(zhǔn)算法的濾波過程中,對所有4×4尺寸的TU都使用不濾波的參考像素,這樣的策略不一定是最優(yōu)的。例如在圖4中,TU1~TU4為一個四叉樹分枝上的四個節(jié)點,其中TU1、TU2、TU4為復(fù)雜塊,TU3為簡單塊。按照標(biāo)準(zhǔn)算法,這四個塊的參考像素均不濾波。然而實際上,對TU3而言,采用強濾波或弱濾波的參考像素往往能夠?qū)崿F(xiàn)更準(zhǔn)確的像素預(yù)測。因此,標(biāo)準(zhǔn)算法的濾波判定存在偏差。
圖4 TU紋理復(fù)雜度示意圖
另一個問題是對32×32尺寸TU參考像素的濾波方式判斷。在32×32尺寸TU的像素預(yù)測過程中,只對模式10和模式26使用不濾波的參考像素,而對其他模式則只使用弱濾波或強濾波的參考像素。實際上,對其他模式也存在使用不濾波的參考像素的情形。如圖5所示,區(qū)域1和區(qū)域2為兩個尺寸為32×32的TU。相對于TU1,TU2的圖像顯得更模糊,這是由于TU2的預(yù)測模式為模式11,在該模式下,標(biāo)準(zhǔn)算法對參考像素采用了弱濾波的濾波方式,參考像素的一些紋理細(xì)節(jié)被濾除了。如果采用不濾波的濾波方式,TU2的圖像會更加清晰。
圖5 濾波決策誤差導(dǎo)致的圖像紋理損失示意圖
基于以上的分析,HEVC標(biāo)準(zhǔn)算法關(guān)于參考像素濾波方式的判定策略存在優(yōu)化空間。下文中,我們針對上述問題,使用決策樹模型,分區(qū)域?qū)⒖枷袼氐臑V波決策進行優(yōu)化。
在本文改進算法中,主要通過增加參考像素采樣點數(shù)量、設(shè)計低復(fù)雜度的決策樹屬性,以及分區(qū)域構(gòu)造決策樹等方式來改進參考像素濾波方式選擇策略。
2.2.1 采樣像素點的優(yōu)化
采樣點用于反映參考像素灰度值的變化程度。在標(biāo)準(zhǔn)算法的濾波過程中,共有5個像素采樣點用于判斷參考像素的濾波方式。在橫向或縱向上,只有3個像素的灰度值被采樣,采樣點數(shù)量少、間隔較大導(dǎo)致反映出的灰度值變化不夠準(zhǔn)確。
本文在標(biāo)準(zhǔn)算法的每兩個采樣點之間,增加一個采樣點。優(yōu)化后的采樣點,間隔縮短為原來的二分之一,數(shù)量由5個增加到了9個。這樣的優(yōu)化方法可以在避免增加過多計算復(fù)雜度的同時,更好地反映參考像素灰度值的變化。采樣像素點的位置如圖6所示。其中,L的大小等于TU的長度的二分之一。
圖6 采樣像素點的位置示意圖
2.2.2 決策樹屬性的構(gòu)造
決策樹屬性的選擇對決策樹的性能至關(guān)重要。本文的決策樹屬性選擇中,一方面要求屬性能夠反映不同濾波方式的特征,另一方面要避免增加過多計算量。
本文使用9個參考像素采樣點來構(gòu)造樣本屬性。屬性的計算方法為:對于R1至R5和R5至R9的兩個方向,對每一個方向上的5個采樣像素點依次兩兩相減,如果兩個相鄰采樣像素的灰度值滿足式(4),那么屬性值加1,依次下去,直到得到最終的屬性值。最終屬性的取值范圍為:{0,1,2,3,4}。這樣的屬性計算過程中只有減法、取絕對值,以及比較操作,計算復(fù)雜度很低。式(4)中,THR取值為,Bitdepth為像素灰度值的比特位深。THR的值為常數(shù),不需要每次比較的時候都計算。
2.2.3 決策樹的建立
根據(jù)前文的分析,在兩極區(qū)域,本文只對32×32尺寸TU的參考像素濾波方式進行重新判定,決策樹樣本為所有32×32尺寸的TU。樣本有兩個屬性A和B,分別代表R1至R5和R5至R9兩個方向上的參考像素灰度值變化程度,屬性的構(gòu)造方法如章節(jié)2.2.2所述。樣本最終被分為兩類:1和0,分別代表對當(dāng)前TU的參考像素進行弱濾波和不濾波處理。
在赤道區(qū)域,本文對所有尺寸TU的參考像素濾波方式進行重新判定,決策樹樣本為所有TU。樣本有三個屬性A、B和C。其中屬性A和B與兩極區(qū)域決策樹的屬性A和B相同。屬性C代表當(dāng)前TU的尺寸,取值方法如式(5)所示。TU尺寸能作為屬性的原因是TU尺寸能反映當(dāng)前區(qū)域的紋理復(fù)雜度,且區(qū)域的紋理復(fù)雜度與參考像素的濾波方式存在一定聯(lián)系。樣本被分為三類:0、1和2,分別代表對當(dāng)前TU的參考像素進行不濾波、弱濾波和強濾波處理。
圖7 用于提取樣本的3個典型序列
圖8 兩極區(qū)域的決策樹模型
圖9 赤道區(qū)域的決策樹模型
樣本分類和屬性確定之后,從三個分辨率的視頻序列中各取一個序列作為典型序列,如圖7所示。在四個QP(QP=22,27,32,37)下,分別取每個典型序列的一幀用于提取樣本,組成樣本集。采用CART算法[12]建立決策樹模型,決策樹最大深度設(shè)置為4。建立的兩極區(qū)域和赤道區(qū)域的決策樹模型分別如圖8和圖9所示。
在本文算法中,當(dāng)葉節(jié)點的Gini系數(shù)小于等于0.35時,該葉節(jié)點的分類結(jié)果被采用,圖8和圖9中灰色的葉節(jié)點為采用的葉節(jié)點。對于兩極區(qū)域,當(dāng)根據(jù)決策樹無法判定濾波方式時,對32×32尺寸的TU使用不濾波的參考像素進行像素預(yù)測過程。對于赤道區(qū)域,當(dāng)根據(jù)決策樹無法判定濾波方式時,使用標(biāo)準(zhǔn)算法判定濾波方式。
基于決策樹的參考像素濾波過程流程如下:
步驟1:開始,判斷當(dāng)前T U 所在的圖像區(qū)域,若位于赤道區(qū)域,跳到步驟2。若位于兩極區(qū)域,跳到步驟7。
步驟2:緩存經(jīng)過強濾波和弱濾波的參考像素,跳到步驟3。
步驟3:根據(jù)赤道區(qū)域決策樹模型決定當(dāng)前TU參考像素的濾波方式,跳到步驟4。
步驟4:根據(jù)標(biāo)準(zhǔn)算法判斷當(dāng)前模式是否使用濾波的參考像素。若使用,跳到步驟5;若不使用,跳到步驟6。
步驟5:使用由決策樹判定濾波方式的參考像素進行預(yù)測像素的計算,跳到步驟10。
步驟6:當(dāng)前模式使用不濾波的參考像素進行預(yù)測像素的計算,跳到步驟10。
步驟7:判斷T U 尺寸,若為3 2×3 2 尺寸的TU,跳到步驟8;若為其他尺寸TU,按照標(biāo)準(zhǔn)算法判斷參考像素的濾波方式,跳到步驟10。
步驟8:緩存經(jīng)過弱濾波的參考像素,并根據(jù)兩極區(qū)域決策樹判斷當(dāng)前TU參考像素的濾波方式,跳到步驟9。
步驟9:判斷當(dāng)前模式是否為DC模式、模式10、模式26中的一種:若為其中一種,跳到步驟6;若不是,當(dāng)前模式使用由決策樹判定濾波方式的參考像素進行預(yù)測像素的計算,跳到步驟10。
步驟10:結(jié)束參考像素的濾波,開始預(yù)測像素的計算過程。
本文算法被整合到HM16.20(HEVC的參考程序)和360Lib-5.1中,驗證算法的有效性。JVET-G0147、JVET-D0143、JVET-D0179、JVET-D0026、JVET-D0039和JVET-D0053[15-17]提案提供的十二個標(biāo)準(zhǔn)測試序列用于測試算法的有效性。實驗的計算機硬件參數(shù)為:CPU 為Intel?CoreTM i7-7700 CPU @ 3.60GHz,RAM容量為8.0 GB。編碼參數(shù)配置為全I幀編碼模式(encoder_intra_main10)。用于測試的視頻幀數(shù)為每個QP 100幀(QP=22、27、32、37)。在本次實驗中,和被用于衡量算法性能,計算公式如式(6)和式(7)所示。
實驗結(jié)果如表3 所示。由表3 可以看出,與HM16.20相比,本文算法的BD-rate降低了0.1%,而編碼時間基本保持不變,說明改進后的參考像素濾波過程在一定程度上提升了幀內(nèi)預(yù)測編碼后的圖像質(zhì)量。從表中還可以看出,各序列減少的BD-rate較為均衡,說明算法性能比較穩(wěn)定。
表3 本文算法與HM16.20的性能比較
本文提出的適用于虛擬現(xiàn)實視頻的參考像素濾波算法,利用決策樹判斷當(dāng)前TU參考像素的濾波方式。提出的算法根據(jù)ERP格式下虛擬現(xiàn)實視頻的特性,改進了濾波方式的配置:一是在兩極區(qū)域,為32×32尺寸的TU增加了不濾波的濾波方式;二是在赤道區(qū)域,為各尺寸的TU均設(shè)計了強濾波、弱濾波和不濾波三種濾波方式。
算法優(yōu)化了參考像素采樣點的數(shù)量,為不同區(qū)域設(shè)計了不同的決策樹屬性和分類類別,分別構(gòu)造了兩極區(qū)域和赤道區(qū)域的決策樹。實驗結(jié)果表明,與HM-16.20的標(biāo)準(zhǔn)算法相比,所提出算法的BD-rate減少了0.1%,而編碼時間基本保持不變。實驗結(jié)果證明了該算法的有效性。