韓 雪 馮 桂 曹海燕
(華僑大學(xué)信息科學(xué)與工程學(xué)院, 福建廈門 361021)
3D視頻的編碼和傳輸多采用新興的3D-HEVC編碼標(biāo)準(zhǔn),基于傳統(tǒng)的2D視頻編碼標(biāo)準(zhǔn),即高性能視頻編碼(High Efficiency Video Coding, HEVC)標(biāo)準(zhǔn),采用多視點(diǎn)視頻加深度圖(Multi-view Video Plus Depth, MVD)的編碼格式[1],能同時(shí)編碼多個(gè)視點(diǎn)的紋理圖及對應(yīng)深度圖,使用基于深度圖的繪制(Depth-image-based rendering, DIBR)技術(shù)就能合成任意視點(diǎn)的視頻信息[2]。增加的深度圖信息,反映了物體與攝像機(jī)的相對距離。與紋理圖相比,平坦區(qū)域占據(jù)大部分面積,但物體邊緣處是鋸齒狀邊界。深度圖不在解碼端顯示,但直接影響合成視點(diǎn)的失真大小[3],而傳統(tǒng)的2D視頻編碼方式不能較好編碼深度圖。為了保證深度圖的編碼效果,3D-HEVC針對深度圖的特征,對HEVC幀內(nèi)預(yù)測過程做出很多改進(jìn)。
對深度圖幀內(nèi)預(yù)測增加了兩種深度建模模式(Depth Modeling Mode, DMM),分別是楔形分割(Wedgelet partition, DMM1)和輪廓分割(Contour partition, DMM4)[4],目的是用更精細(xì)的分割方向和不規(guī)則分割的方式更準(zhǔn)確的描述深度圖的邊緣信息。新增加分段DC編碼(Segment-wise DC Coding, SDC)對預(yù)測后殘差編碼[5],殘差塊不經(jīng)過變換和量化直接傳輸?shù)浇獯a端,減少編碼比特率。提出深度圖跳過模式(Depth Intra Skip, DIS),只用一個(gè)常數(shù)值代表當(dāng)前CU[6]。上述新增的編碼算法在降低編碼失真和減少編碼比特率方面改善較大,但增加了深度圖編碼時(shí)間。
降低深度圖編碼復(fù)雜度的算法大致分為兩類,一類算法針對CU尺寸提前判決,另一類算法減少幀內(nèi)模式的檢測數(shù)目。文獻(xiàn)[7]用哈達(dá)瑪變換后的矩陣檢測CU是否含有邊緣,跳過DMM模式。文獻(xiàn)[8]根據(jù)深度圖和紋理圖的相關(guān)性,用紋理圖中已編碼CU的最佳尺寸和最佳模式化簡深度圖的同位置CU的編碼過程。文獻(xiàn)[9]利用CU在空域和時(shí)域的相似性簡化四叉樹分割結(jié)構(gòu)。文獻(xiàn)[10]用最佳預(yù)測模式對應(yīng)的率失真代價(jià)與閾值比較,提前終止繼續(xù)分割。文獻(xiàn)[11]利用相鄰層的相關(guān)性,用已編碼CU的最佳模式對下一層四個(gè)子CU幀內(nèi)模式數(shù)目化簡。上述算法均能在一定程度降低深度圖編碼復(fù)雜度,主要依據(jù)CU在空域,時(shí)域和對應(yīng)紋理圖的相似性。但上述算法對復(fù)雜度不同的序列效果差別顯著,對快速運(yùn)動(dòng)的序列效果較差。
本文提出了基于Otsu’s算子的深度圖編碼快速算法。用Otsu’s算子計(jì)算當(dāng)前CU的最大類間方差,預(yù)估當(dāng)前CU是否平坦,對平坦CU終止繼續(xù)分割并簡化幀內(nèi)預(yù)測過程。再根據(jù)當(dāng)前CU與上一層CU的相關(guān)性對提前決策CU尺寸算法做優(yōu)化,然后對平坦CU的幀內(nèi)模式檢測數(shù)目進(jìn)行縮減。本文所用的Otsu’s的編碼效果優(yōu)于其他紋理檢測算子,達(dá)到了較大程度的紋理復(fù)雜度減小,并且合成視點(diǎn)的失真很小。
深度圖編碼采用四叉樹的分割結(jié)構(gòu),如圖1所示。一副圖像由編碼樹單元(Coding Tree Unit, CTU)組成。CTU為四叉樹分割的起點(diǎn),CTU中64×64大小的最大編碼單元(Largest Coding Unit, LCU)不斷遞歸分割成四個(gè)相等大小的子CU,直到分割尺寸為8×8,對應(yīng)分割深度為0,1,2,3。對每一層的CU進(jìn)行幀內(nèi)預(yù)測,遍歷所有幀內(nèi)模式,率失真代價(jià)最小的為當(dāng)前CU的最佳幀內(nèi)模式。再以自下而上的順序依次比較四個(gè)子CU的率失真代價(jià)之和與上一層CU的率失真代價(jià),保留率失真代價(jià)較小的分割結(jié)果。
幀內(nèi)預(yù)測模式中新增兩種DMM模式。DMM1用一條直線將CU分為兩部分,直線分別在CU左邊界和上邊界的不同位置選取端點(diǎn)。32×32到4×4的CU在DMM1模式下的分割方式依次有1503,1394,782和86種,能更精確地代表深度圖邊緣較鋒利的區(qū)域,但增加了編碼計(jì)算度。DMM4模式用不規(guī)則的分割方式,根據(jù)紋理圖中參考CU的形狀將當(dāng)前CU分為兩部分,每部分用一個(gè)常數(shù)值表示,直接傳輸?shù)浇獯a端不經(jīng)過復(fù)雜的變換過程。
從編碼結(jié)果看,LCU分割到深度為0,1,2,3所占的比例依次為62.3%,24.3%,9.5%和3.8%。深度圖中的平坦CU較多,所以CU采用較大的編碼尺寸。若能提前判決出平坦CU,直接終止繼續(xù)遞歸分割,能大幅度降低深度圖的編碼復(fù)雜度。從最佳幀內(nèi)模式的選擇上看,選擇DMM模式為最佳預(yù)測模式的CU不到5%,大部分CU選擇Planar模式和DC模式為最佳幀內(nèi)模式。所以,對平坦CU或者不含邊緣的CU,可以跳過DMM模式。
圖1 LCU四叉樹分割方式Fig.1 Quad-tree splitting structure
利用CU紋理復(fù)雜度降低深度圖編碼復(fù)雜度的算法中,文獻(xiàn)[12]用Canny邊緣檢測算子預(yù)測當(dāng)前CU的大致紋理方向,對幀內(nèi)預(yù)測過程只檢測大致方向上的模式。文獻(xiàn)[13]用灰度共生矩陣檢測紋理復(fù)雜度,但該算子只對平坦CU的檢測效果好,所以編碼減少時(shí)間較少。文獻(xiàn)[14]根據(jù)角點(diǎn)代表了具有兩個(gè)方向的興趣點(diǎn),對LCU利用Shi-Tomasi角點(diǎn)檢測算子,對包含角點(diǎn)的區(qū)域繼續(xù)分割,不含角點(diǎn)的區(qū)域終止分割。該方法減少深度圖編碼時(shí)間較多,但合成視點(diǎn)失真較大。文獻(xiàn)[15]對每層的CU計(jì)算方差,方差小于閾值的CU定義為平坦的,終止繼續(xù)分割。但方差難以準(zhǔn)確分辨出平坦CU和灰度變化程度小的CU,為了說明方差的缺點(diǎn),圖2展示了用3D-HEVC編碼標(biāo)準(zhǔn)的原始算法和改進(jìn)的方差的算法對序列Poznan_Street深度圖中的LCU分割結(jié)果。圖2(a)為原始的深度圖圖像,矩形框?yàn)槲淳幋a的LCU,其特點(diǎn)是大面積為背景區(qū)域,只有中間存在小面積顏色較淺的區(qū)域代表其他物體。圖2(b)和圖2(c)分別為原始算法和方差提前終止CU分割算法對該LCU的分割深度。從圖2可以看出,原始算法將LCU分割到最大深度級3,而方差的算法把當(dāng)前CU當(dāng)作平坦塊,分割最大深度為0。
圖2 方差的算法檢測CU紋理復(fù)雜度的局限性Fig.2 The LCU splitting results when applying different encoding algorithm
上述實(shí)驗(yàn)結(jié)果說明,對于灰度變化不明顯的CU,其方差值可能很小,使用方差算法難以區(qū)分出平坦CU,因此造成誤判的概率很大。特別是,深度圖中的灰度信息不如紋理圖的彩色信息有明顯的區(qū)分度。因此本文提出用Otsu’s算子計(jì)算最大類間方差,該算子對平坦CU判斷正確率優(yōu)于其他紋理檢測算子,并且計(jì)算時(shí)使用均衡化處理的直方圖,噪聲對算子的影響較小,是一種理想的紋理復(fù)雜度檢測算子。
Otsu’s算子是圖像分割領(lǐng)域中,一種用于選取出能夠最優(yōu)的分離物體和背景的閾值的方法。Otsu’s算子的基本思想為,構(gòu)建圖像的均衡化直方圖,閾值k把圖像分為兩類,類C1為灰度值小于閾值k的所有像素組成,其余像素點(diǎn)構(gòu)成類C2,計(jì)算對應(yīng)閾值下的類間方差值。閾值k從0到255遍歷,選擇類間方差中的最大值及其對應(yīng)閾值作為最終結(jié)果[16]。最大類間方差表明了當(dāng)前圖像的灰度分布差異的程度。有一種特殊情況,即圖像的像素值大小均相等,則最大類間方差值為0。
考慮到計(jì)算復(fù)雜度的問題,隨著CU分割層數(shù)的增加,子CU的個(gè)數(shù)呈四倍數(shù)的遞增,計(jì)算最大類間方差會(huì)消耗大量時(shí)間。但從灰度級數(shù)目比較,子CU的紋理復(fù)雜度比上一層CU的紋理復(fù)雜度低,即灰度直方圖中的灰度級數(shù)目減少。所以對16×16和8×8的CU先下采樣,再用Otsu’s算子計(jì)算最大類間方差。這種做法在不影響算法效果的前提下,使算子的計(jì)算時(shí)間不會(huì)增加太大。使用通用測試條件(Common Test Conditions, CTC)中規(guī)定的四組量化參數(shù),統(tǒng)計(jì)上述CU提前終止分割算法的正確率,結(jié)果如表1所示[17]。從表中可知,本文算法的正確率較高,說明Otsu’s算子對平坦CU的檢測效果較好,進(jìn)一步研究表1我們發(fā)現(xiàn)序列Poznan_Street的準(zhǔn)確率略小于其他三個(gè)序列,原因是該序列紋理較復(fù)雜,但是該序列的最大類間方差小于1的CU的比例也遠(yuǎn)遠(yuǎn)小于其他序列,所以對該序列的合成視點(diǎn)失真的影響較小。
表1 CU提前終止分割的正確率(%)
針對32×32到8×8尺寸的CU。在當(dāng)前CU的最大類間方差小于上一層CU的最大類間方差的條件下,用當(dāng)前CU經(jīng)過幀內(nèi)預(yù)測后決策出的率失真代價(jià)與閾值TH比較,如果小于閾值,則終止該CU的繼續(xù)分割。本文定義CU尺寸從32×32到8×8分別對應(yīng)的閾值為TH32,TH16,TH8。
表2 最大類間方差小于1的CU比例(%)
表3 在子CU的小于上一層CU的條件下CU停止分割的概率分布(%)
深度圖的幀內(nèi)預(yù)測沿用HEVC中傳統(tǒng)的35種幀內(nèi)模式。Planar模式適用于緩慢變化的區(qū)域,DC模式取上方和左方參考像素的均值對CU編碼,適用于平坦的CU。33種角度模式適用于有明顯方向性的CU。新增兩種DMM模式,是為了編碼深度圖邊緣區(qū)域。Otsu’s算子作為一種有效的檢測平坦CU的方法,可以根據(jù)最大類間方差值提前判決平坦CU,跳過DMM模式檢測。
表4 平坦CU的幀內(nèi)模式分布(%)
本文的算法根據(jù)CU提前終止分割的命中率,自適應(yīng)的選擇不同尺寸下的閾值。命中率的計(jì)算如下所示。
Hit-Rate=
(1)
其中,Num_unsplit(RD
圖3和圖4顯示了在量化參數(shù)(25, 34)下,對32×32和16×16尺寸的CU計(jì)算不同閾值下CU終止分割的命中率。圖中顯示了命中率曲線明顯下降的趨勢,豎線所在位置表示對應(yīng)閾值繼續(xù)增大,命中率加速下降。根據(jù)命中率曲線特點(diǎn),對不同尺寸的,閾值應(yīng)選擇在命中率曲線下降之前的位置。表5顯示了不同量化參數(shù)下,32×32,16×16和8×8尺寸CU的閾值。對表5的閾值進(jìn)行擬合,得到閾值計(jì)算公式(2)-(4)。為了說明閾值選擇方案的效果,另取四個(gè)測試序列。 在QP(25,34)配置下,用表5中的閾值計(jì)算不同尺寸CU終止分割算法的正確率,結(jié)果如表6所示。表中顯示命中率都在99.5%以上,說明本文提出根據(jù)命中率選擇閾值這一方案具有很好的適應(yīng)性。
TH32=3.957×10-5×e0.4107×QP
(2)
TH16=6.913×10-4×e0.3329×QP
(3)
TH8=3.22×10-5×e0.3875×QP
(4)
表5 不同QP對應(yīng)不同CU尺寸下的閾值
圖3 QP(25,34)配置下32×32的CU不同閾值下命中率Fig.3 The hit-rate of 32×32 CUs under QP(25,34)
圖4 QP(25,34)配置下16×16的CU不同閾值下命中率Fig.4 The hit-rate of 16×16 CUs under QP(25,34)
測試序列32×3216×168×8Newspaper199.6299.6999.87GT_Fly99.6699.7799.95Undo_Dancer99.4999.5599.92Shark99.4699.5199.73Average99.5699.6399.87
Step2 若當(dāng)前CU為64×64大小,則幀內(nèi)預(yù)測過程跳過角度模式,只計(jì)算Planar模式和DC模式。并且終止繼續(xù)分割。若當(dāng)前CU尺寸為32×32到8×8,執(zhí)行Step3。
Step4 執(zhí)行幀內(nèi)預(yù)測過程,當(dāng)前CU的最佳幀內(nèi)模式對應(yīng)的率失真代價(jià)記為RD-Cost,根據(jù)當(dāng)前CU尺寸比較RD-Cost與對應(yīng)閾值的大小,若小于閾值,終止繼續(xù)分割,否則,執(zhí)行Step6。
Step5 對當(dāng)前CU執(zhí)行幀內(nèi)預(yù)測過程,執(zhí)行Step6。
Step6 當(dāng)前CU繼續(xù)分割成四個(gè)相等尺寸的子CU。
本文提出的算法在3D-HEVC測試平臺(tái)HTM16.0上測試。在通用測試條件配置下,使用All-Intra配置文件,分別測試分辨率為1024×768的3組序列Balloons, Kendo, Newspaper1和分辨率為1920×1088的5組序列GT_Fly, Poznan_Hall2, Poznan_Street, Undo_Dancer, Shark。測試環(huán)境為,Inter(R) Core(TM) i5- 4590 CPU、16G內(nèi)存、Windows7 Sp1(64位)操作系統(tǒng)。編碼性能采用與原始平臺(tái)對比的編碼紋理圖和深度圖的總時(shí)間減少ΔT和合成視點(diǎn)的平均比特率ΔBDBR表示。
表7為本文算法分別與文獻(xiàn)[15]和文獻(xiàn)[18]的比較結(jié)果。本算法與HTM16.0平臺(tái)的原始算法相比,總編碼時(shí)間減少40.1%,合成視點(diǎn)的平均比特率增加0.04%。其中Poznan_Hall2序列的減少時(shí)間高達(dá)50.6%,并且平均比特率沒有變化,這是由于該序列平坦的CU塊較多,最大類間方差值小于1的CU比例較大,本算法對紋理復(fù)雜度較低的序列能達(dá)到很好的編碼效果。文獻(xiàn)[15]利用方差判斷當(dāng)前CU是否平坦,編碼時(shí)間減少37.6%,合成視點(diǎn)平均比特率增加0.83%。對比合成視點(diǎn)質(zhì)量,本算法在畫面豐富的視頻序列優(yōu)勢更明顯,如Newspaper1和Poznan_Street的合成視點(diǎn)平均比特率僅增加0.06%和0.17%。原因是深度圖體現(xiàn)物體的相對距離,深度信息可能變化緩慢。對于灰度變化不明顯的CU,方差的計(jì)算值很小,因此被誤判為平坦CU。Otsu’s算子很好的區(qū)分出平坦CU與灰度變化不明顯的CU,更適合編碼深度圖。文獻(xiàn)[18]利用CU的空域相關(guān)性對深度圖編碼做優(yōu)化,節(jié)省的編碼時(shí)間和合成視點(diǎn)的質(zhì)量都不如本文算法。
表7 本文提出算法與文獻(xiàn)[15]和文獻(xiàn)[18]的比較
本文基于深度圖的特點(diǎn),分別從CU提前終止分割和減少幀內(nèi)預(yù)測模式數(shù)目兩個(gè)方面降低深度圖編碼復(fù)雜度。用Otsu’s算子計(jì)算CU的最大類間方差,提前判斷當(dāng)前CU是否平坦。根據(jù)相鄰層間CU的相似性,進(jìn)一步優(yōu)化CU尺寸提前決策算法。對平坦的CU跳過幀內(nèi)預(yù)測過程的角度模式和DMM模式檢測。實(shí)驗(yàn)結(jié)果表明,本算法與3D-HEVC參考模型HTM16.0的原始算法相比平均減少時(shí)間達(dá)到40.1%,最多減少時(shí)間達(dá)到50.6%,并且合成視點(diǎn)失真幾乎不變。同時(shí),與其他紋理復(fù)雜度檢測算子相比,Otsu’s算子檢測平坦CU的準(zhǔn)確率更高,具有一定優(yōu)勢性。