楊旭 李兵兵 馬祥 常義林
(西安電子科技大學(xué) 綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點實驗室,陜西 西安 710071)
目前三維視頻編碼采用的表示方式為多視點視頻加深度(MVD)[1],其主要包括紋理視頻編碼和深度圖編碼.深度圖的亮度值表示場景中的物體到攝像機光心的距離,紋理視頻的亮度值和色度值表示場景中物體的顏色、輪廓和紋理特性[2].深度圖與紋理視頻的特征存在一定的差異性和關(guān)聯(lián)性,故深度圖編碼與紋理視頻編碼類似,均采用基于H.264/MVC 的編碼標(biāo)準(zhǔn)[3].目前已有許多深度圖的幀內(nèi)編碼方法[4-12],如文獻[4]中提出了一種幀內(nèi)預(yù)測模式,該模式利用邊緣圖表信息獲得任意的邊緣形狀以達到提高深度圖幀內(nèi)編碼效率的目的;文獻[5]中利用k-均值方法將參考像素分為k 類并計算出每類的核心值,再利用這k 個核心值預(yù)測當(dāng)前塊中每個區(qū)域的值;文獻[6]中提出的深度自適應(yīng)重建濾波器,通過周圍的像素對當(dāng)前邊緣位置像素值進行修正;文獻[7]中利用紋理視頻中的邊緣信息尋找深度圖的邊緣,以降低編碼比特,并利用三角形濾波器對深度圖的邊緣像素進行濾波以降低深度圖的編碼誤差;文獻[8]中采用一階/二階多項式方程來趨近塊的邊緣,以降低深度圖幀內(nèi)編碼的邊緣誤差;文獻[9]在編碼模式中增加了高效視頻編碼(HEVC)標(biāo)準(zhǔn)所使用的平面模式對平坦區(qū)域進行編碼,以提高深度圖的幀內(nèi)編碼效率.
這些算法雖然能夠有效地提高深度圖的幀內(nèi)編碼效率,但深度圖的特性及獨立宏塊的率失真優(yōu)化(RDO)技術(shù)會導(dǎo)致深度圖編碼產(chǎn)生誤差擴散,這種誤差擴散最終會影響虛擬合成誤差.因此,文中在深入分析深度圖編碼特性及編碼誤差擴散的基礎(chǔ)上,提出了抑制編碼誤差擴散的深度圖幀內(nèi)編碼方法,即對幀內(nèi)16×16(I16MB)及幀內(nèi)4×4(I4MB)的率失真優(yōu)化過程進行改進,以更好地抑制編碼誤差擴散.
目前的視頻編碼所采用的RDO 技術(shù)是局部RDO 技術(shù),即對每個宏塊(MB)采用RDO 技術(shù)選擇最優(yōu)的編碼模式.在此情況下,第i 個MB 的率失真(RD)代價函數(shù)Ji的最小值是基于其參考MB 的重建像素值,Ji的優(yōu)化式如下:
在深度圖的幀內(nèi)編碼過程中,若當(dāng)前MB 處于平坦區(qū)域,且其亮度矩陣與參考MB 相同,則當(dāng)前MB 的失真矩陣Dc等于參考MB 的失真矩陣Dr.
首先,參考MB 的失真矩陣與當(dāng)前塊的殘差矩陣相等,這是因為預(yù)測的像素依賴于參考像素.若參考像素均相同,則對于I16MB 預(yù)測模式而言,其4種預(yù)測模式的預(yù)測矩陣相同且與參考MB 的重建像素矩陣相等.由于參考MB 與當(dāng)前MB 的亮度矩陣相同,故Dr與當(dāng)前塊的殘差矩陣c相等.
其次,殘差矩陣需要經(jīng)過離散余弦變換(DCT)、量化、反量化及逆離散余弦變換(IDCT),才能得到重建的殘差矩陣c'.由前面推導(dǎo)可得Dr=c.令c'=F(c),F(xiàn)(·)表示DCT、量化、反量化及IDCT 的整個過程,因為F(Dr)=0,所以c'=0.
最后,由于當(dāng)前MB 的重建矩陣等于預(yù)測矩陣與重建的殘差矩陣c'之和,且c'=0,故當(dāng)前MB 的重建矩陣等于預(yù)測矩陣.又由于當(dāng)前MB 的預(yù)測矩陣等于參考MB 的重建矩陣,且參考MB 與當(dāng)前MB的亮度矩陣相同,因此當(dāng)前MB 的失真矩陣Dc等于參考MB 的失真矩陣Dr.
如果具有以上性質(zhì)的MB 聯(lián)合在一起,每個MB的失真矩陣等于其參考MB 的失真矩陣,那么這些MB 的編碼誤差均等于第一個MB 的編碼誤差Dr,即誤差Dr將擴散到這些MB 中,文中稱這種現(xiàn)象為平坦區(qū)域的誤差擴散現(xiàn)象.在實際的編碼過程中,受誤差擴散影響的MB(DPMB)頻繁出現(xiàn)于深度圖的平坦區(qū)域.DPMB 在不同序列中所占的百分比如表1所示,其中QP 為量化參數(shù).
表1 DPMB 在不同序列中所占的百分比Table 1 Percentages of DPMB in different sequences %
進一步地,DPMB 的RD 性能受誤碼擴散的影響,不論選擇I16MB 中的哪種預(yù)測模式,DPMB 的失真均等于Dr.故對Ji優(yōu)化的過程簡化為對宏塊編碼優(yōu)化比特Ri的過程.由于Ri包含頭信息比特Rh和殘差編碼比特Rr,且DPMB 量化后的DCT 矩陣為零矩陣,即Rr=0,故Ji的最小值為
對于深度圖編碼而言,邊緣的誤差擴散方向主要有水平、垂直和斜角方向.宏塊中邊緣有出現(xiàn)在4 ×4子塊之間及出現(xiàn)在4 ×4 子塊之內(nèi)兩種方式.對于邊緣在4 ×4 子塊內(nèi)的深度圖,宏塊仍會存在較大的編碼誤差.文中著重分析邊緣出現(xiàn)在4 ×4 子塊之內(nèi)的情況.采用RDO 技術(shù)計算I4MB 的代價函數(shù)時,通常是先計算每個4 ×4 子塊的最優(yōu)預(yù)測模式,然后將每個子塊的最優(yōu)代價函數(shù)相加,得到宏塊的最優(yōu)代價函數(shù),故當(dāng)前子塊的編碼誤差依賴于其參考子塊的誤差,從而使4 ×4 子塊的邊緣出現(xiàn)誤差擴散現(xiàn)象.以圖1(a)為例,存在邊緣的第1 個4 ×4 子塊出現(xiàn)邊緣誤差,即原始邊緣與重建邊緣存在偏差,如果第2 個存在邊緣的子塊選擇水平預(yù)測模式為最優(yōu)模式,那么其預(yù)測子塊為參考塊的重建塊,進一步地,當(dāng)前子塊的誤差矩陣等于參考塊的誤差矩陣,即第2 個子塊亦出現(xiàn)原始邊緣與重建邊緣存在偏差的現(xiàn)象.依此類推,隨后的子塊若選擇水平預(yù)測模式,則這種編碼誤差亦會擴散到隨后的子塊中.圖1(b)和圖1(c)的編碼誤差擴散情況均與圖1(a)的情況類似.
深度圖的亮度值表示場景中的物體到攝像機光心的距離,它是由被多個邊緣分割的平坦區(qū)域組成.為了驗證誤差擴散在深度圖編碼中是普遍存在的,文中采用視頻序列Balloons、Kendo、GT_Fly 和Undo Dancer 的深度圖(這些深度圖具有普遍的特性)進行實驗,統(tǒng)計存在誤差擴散的塊占所有塊的百分比.首先將編碼塊劃分為4 類:①平坦區(qū)域存在誤差擴散的子塊,即其DCT 矩陣僅直流系數(shù)不為0 且與參考塊的DCT 矩陣相同;②存在邊緣擴散的子塊,即其DCT 矩陣的非直流系數(shù)不為0 且相鄰子塊的DCT 矩陣相同;③DCT 系數(shù)為0 的子塊;④不存在擴散的子塊,即其DCT 矩陣與參考塊的DCT 矩陣不同.實驗中的量化參數(shù)QP 取為38、42、46,統(tǒng)計結(jié)果如表2 所示.從表可以看出,這4 個序列的深度圖中存在大量的誤差擴散塊,其中Balloons、Kendo GT-Fly序列的誤差塊所占的百分比(表中第1 類與第2 類編碼)分別達到44%、43%和47%.
表2 不同視頻序列深度圖中的誤差擴散塊所占百分比Fig.2 Percentages of error pervasion blocks in depth map for different video sequences
深度圖的編碼誤差擴散對虛擬合成誤差有很大的影響,故需對編碼誤差擴散進行抑制.根據(jù)前面對深度圖誤差擴散的分析,文中提出了一種基于深度圖特性的抑制誤差擴散的深度圖幀內(nèi)編碼方法.
如果當(dāng)前宏塊處于平坦區(qū)域,量化誤差只集中在直流分量上,并且符合式(3),則表明該宏塊的編碼誤差會影響虛擬合成誤差.
式中,f 為焦距,l 為水平攝像機陣列的間距,Znear和Zfar分別為最近和最遠深度值,ΔL為編碼誤差,Δd 為幾何誤差.
為防止編碼誤差擴散到其他宏塊,文中將平坦區(qū)域中第1 個MB 的每個重建像素加上修正值δ,
式中,TDC和T'DC分別為4 ×4 子塊及其量化后的DCT系數(shù)矩陣中的直流(DC)系數(shù).經(jīng)此修正過程后,平坦區(qū)域的誤碼擴散得到抑制;DPMB 可獲得較好的重建質(zhì)量,其預(yù)測誤差為0,且DCT 系數(shù)矩陣為零矩陣.對于平坦區(qū)域中的第一個MB,需要用多余的比特對修正值δ進行編碼,而對于DPMB,則不需要多余的編碼比特,DPMB 的最優(yōu)化Ji為
在此修正過程后,式(5)的RD 性能優(yōu)于式(2)的RD 性能,即DPMB 的編碼性能得到明顯的提高.由于DPMB 所占的比例較大(如表1 所示),故平坦區(qū)域的編碼性能會有明顯的提高.
進一步地,由于DPMB 的亮度值完全可由參考塊的亮度值所替代,即其模式信息(cbp)和殘差信息與參考塊相同.為了進一步降低編碼頭信息比特和優(yōu)化Ji,在編碼時可直接跳過這些塊,同時跳過DCT 系數(shù)矩陣為零矩陣的MB,該跳過模式稱為幀內(nèi)跳過模式(ISM).表3 給出了QP 為38、42、46 時不同序列經(jīng)誤碼抑制后DCT 系數(shù)矩陣為零矩陣的塊所占百分比(記為P).從表中可以看出,P 值相對較高,因此編碼時跳過DCT 系數(shù)矩陣為零矩陣的MB,能夠節(jié)省較多的比特.
表3 DCT 系數(shù)矩陣為零矩陣的MB 所占百分比Table 3 Percentages of MB blocks whith zero DCT matrixes %
改進的I16MB 的RDO 算法步驟如下:
(1)判斷是否選擇ISM 模式.利用DC 模式對當(dāng)前的MB 進行預(yù)測,如果當(dāng)前MB 只有左鄰塊(或上鄰塊),則可用水平(或垂直)預(yù)測模式對當(dāng)前塊進行預(yù)測.隨后計算DCT 矩陣,判斷其是否為零矩陣,若是,則將幀內(nèi)預(yù)測模式設(shè)為ISM 模式,并跳轉(zhuǎn)到步驟(4);否則,跳轉(zhuǎn)到步驟(2).
(2)利用I16MB 中的4 種預(yù)測模式對當(dāng)前塊進行預(yù)測,并計算殘差和DCT 系數(shù).判斷該塊是否存在編碼誤差并且僅存在于DCT 系數(shù)中的直流系數(shù)上,如果存在,將Error_flag 置為1,并對修正值δ進行計算和編碼,為每個重建像素加上修正值δ;否則,將Error_flag 置為0.
(3)按照H.264 中幀內(nèi)編碼步驟對量化后的DCT 系數(shù)、cbp 值及宏塊頭進行編碼,計算編碼比特和編碼誤差,然后計算RD 代價函數(shù)值,將計算得到的RD 代價函數(shù)值與初始的MinRDcost 進行比較,若小于MinRDcost 則將其置為MinRDcost.最后判斷預(yù)測模式m 是否為最后一個預(yù)測模式,若不是,則跳轉(zhuǎn)到步驟(2),否則跳轉(zhuǎn)到步驟(4).
(4)結(jié)束幀內(nèi)預(yù)測的模式選擇過程.
在該算法中,用鄰近子塊的量化誤差方向代替I4MB 的9 種預(yù)測模式.子塊的量化誤差方向可分為DC、水平、垂直、左斜、右斜.這些誤差方向可由DCT矩陣得到,令D 為4 ×4 子塊的DCT 系數(shù)矩陣,dij為D 的第i 行第j 列的數(shù)值,則誤差方向可由表4 得到,其中direction_flag 表示誤差方向所對應(yīng)的值.
表4 子塊誤差方向的判定Table 4 Judgment of the distortion direction of subblock
在獲得相鄰子塊的誤差方向后,可對當(dāng)前子塊進行預(yù)測.其預(yù)測過程如下:如果上、左及左上鄰子塊的誤差方向相同,則當(dāng)前子塊的預(yù)測方向為上、左鄰子塊的誤差方向;如果上、左及左上鄰子塊的誤差方向不同,則分別用這些誤差方向?qū)Ξ?dāng)前子塊進行預(yù)測.
得到當(dāng)前子塊的預(yù)測值后,計算其殘差的DCT系數(shù)矩陣,并判斷當(dāng)前子塊是否存在編碼誤差,若存在,則將Error_flag 置為1,并對編碼誤差進行抑制.抑制過程如下:首先計算direction_flag,然后計算邊緣像素位置edge_pixel,最后計算被邊緣劃分的兩個區(qū)域的修正系數(shù).
最后計算該誤差方向條件下所得到的預(yù)測殘差的代價函數(shù).若不存在編碼誤差,則將Error_flag 置為0,不對該子塊進行編碼.改進的I4MB 的RDO 算法流程如圖2 所示.以誤差方向為水平方向為例,如果子塊被邊緣劃分為兩個區(qū)域,則edge_pixel 的值為即當(dāng)邊緣在第1 和第2 行之間時,edge_pixel 為0;當(dāng)邊緣在第2 和第3 行之間時,edge_pixel 為1;當(dāng)邊緣在第3 和第4 行之間時,edge_pixel 為2.通常情況下,深度圖的子塊一般被劃分為兩個區(qū)域.但在某些情況下,子塊被多個邊緣劃分,此時將采用均方誤差(MSE)最大的邊緣作為最終的邊緣,將子塊強制劃分為兩個區(qū)域,并將edge_pixel 置為次邊緣對應(yīng)的值.在確定好子塊的邊緣后,分別計算被邊緣劃分的兩個區(qū)域的修正系數(shù).
圖2 改進的I4MB 的RDO 算法流程圖Fig.2 Flowchart of improved RDO algorithm of I4MB
為了評估文中所提出的深度圖幀內(nèi)編碼方法的性能,采用3DV 序列Balloons、Newspaper、Poznan Hall、Undo Dancer、Kendo[13]進行實驗,這些序列的分辨率為1024 ×768,幀數(shù)為100.實驗所用的參考軟件為JMVC8.5[14],深度圖編碼時的量化參數(shù)為32、36、42 和46.在解碼端,已解碼的深度圖和原始的紋理視圖需通過虛擬合成虛擬視點,本實驗所采用的虛擬合成軟件平臺為VS3.5,并利用左右兩個視點合成中間視點.虛擬合成的配置參數(shù)值如表5所示.
表5 合成虛擬視圖的配置參數(shù)值Table 5 Setting values of parameters for virtual view synthesis
對深度圖的I 幀進行編碼,編碼幀數(shù)為100.編碼條件為基于內(nèi)容的自適應(yīng)二進制編碼(CABAC).將文中提出的深度圖幀內(nèi)編碼方法與JMVC8.5、基于分割的幀內(nèi)預(yù)測(PSIP)方法[5]分別進行編碼,3 種方法的編碼結(jié)果如表6 所示,其中Bit-rate 為左右兩個視點深度圖編碼的比特之和,D-PSNR 為左右兩個視點深度圖編碼的峰值信噪比(PSNR)均值,S-PSNR 為重建的深度圖相比于原始的紋理視頻合成虛擬視點的峰值信噪比.
文中方法與JMVC8.5 和PSIP 方法的深度圖編碼質(zhì)量和合成質(zhì)量比較如表7 所示,其中,BD PSNR[15]為正值,表示文中方法與參考方法相比的PSNR 平均增長值;BD Bit-rate[15]為負值,表示文中方法與參考方法相比的Bit-rate 平均下降值.從表7中可以看出,對于深度圖編碼而言,文中方法與JMVC8.5 的幀內(nèi)編碼方法和PSIP 方法相比的平均BD PSNR 分別為0.80 和0.61 dB,其中Kendo 序列的BD PSNR 最高,分別為2.90 和2.85 dB,這是因為Kendo 序列中的擴散誤差塊比例較大,且通過誤差抑制后DCT 系數(shù)為0 的塊所占比例高達63.12%.這表明文中方法能夠抑制深度圖的幀內(nèi)編碼誤差擴散.由于深度圖不直接顯示給用戶,而是參與虛擬視點的合成,并影響虛擬合成質(zhì)量,故進一步關(guān)注虛擬合成質(zhì)量的提高.從表7 中還可以看出,對于虛擬合成,文中方法與JMVC8.5 的幀內(nèi)編碼方法和PSIP
表6 3 種方法對I 幀編碼的實驗結(jié)果Table 6 Experiment results of three methods for coding I-frames
表7 文中方法與其他兩種方法在I 幀編碼條件下對深度圖的編碼質(zhì)量和合成質(zhì)量的比較Table 7 Comparison of depth map coding quality and synthesis quality of the proposed method with other two methods under I-frame coding condition
圖3 3 種方法在I 幀編碼條件下的RD 性能比較ig.3 Comparison of RD performance among three methods under I-frame coding condition
F方法相比的平均BD PSNR 分別為0.30 和0.25 dB,其中Undo Dancer 序列的BD PSNR 最高,分別為1.21和1.15 dB.由此可以看出,文中方法能夠有效地提高三維視頻虛擬的合成質(zhì)量.
在I 幀編碼條件下,3 種方法的RD 性能對比如圖3 所示.從圖中可以看出,文中方法的RD 性能要優(yōu)于其他兩種方法,尤其是對于序列Kendo 和Undo Dancer.
文中在深入分析深度圖平坦區(qū)域和邊緣區(qū)域的編碼誤差擴散基礎(chǔ)上,對幀內(nèi)16 ×16 及4 ×4 的率失真優(yōu)化過程進行改進,提出了抑制編碼誤差擴散的幀內(nèi)編碼方法.實驗結(jié)果表明,該方法能夠較好地抑制深度圖的幀內(nèi)編碼誤差擴散,有效地提高三維視頻虛擬的合成質(zhì)量.
在文中方法的基礎(chǔ)上,可進一步將紋理視頻信息引入到深度圖編碼中,在深度圖編碼的率失真優(yōu)化算法中,用紋理深度的合成誤差代替深度圖編碼誤差,可以更有效地抑制深度圖編碼誤差,提高合成質(zhì)量.
[1]Smolic A,Muller K,Dix K,et al.Intermediate view interpolation based on multiview video plus depth for advanced3D video systems[C]∥Proceedings of the 15th IEEE International Conference on Image Processing.San Diego:IEEE,2008:2448-2451.
[2]Daribo Ismaёl,Tillier Christophe,Pesquet-Popescu Béatrice.Motion vector sharing and bitrate allocation for 3D video-plus-depth coding [J].EURASIP Journal on Advances in Signal Processing,2009,2009:258920/1-13.
[3]ITU-T Recommendation H.264,Audio visual and multimedia systems infrastructure of audiovisual services:coding of moving video[S].
[4]Shen G,Kim W S,Ortega A,et al.Edge-aware intra prediction for depth-map coding [C]∥Proceedings of the 17th IEEE International Conference on Image Processing.Hong Kong:IEEE,2010:3393-3396.
[5]Oh Byung Tae,Wey Ho-Cheon,Park Du-Sik.Plane segmentation based intra prediction for depth map coding[C]∥Proceedings of 2012 Picture Coding Symposium.Kraków:IEEE,2012:41-44.
[6]Oh K-J,Vetro A,Ho Y-S.Depth coding using a boundary reconstruction filter for 3D video system[J].IEEE Transactions on Circuits and Systems for Video Technology,2011,21(3):350-359.
[7]Liu Shujie,Lai PoLin,Tian Dong,et al.New depth coding techniques with utilization of corresponding video [J].IEEE Transactions on Broadcasting,2011,57(2):551-561.
[8]Kang M K,Lee J,Lee J Y,et al.Geometry-based block partitioning for efficient intra prediction in depth video coding[C]∥Proceedings of SPIE-IS&T Electronic Imaging.San Jose:SPIE,2010:75430A/1-11.
[9]Bici M O,Lainema J,Ugur K,et al.Planar representation for intra coding of depth maps [C]∥Proceedings of 3DTV Conference:the True Vision Capture,Transmission and Display of 3D Video.Antalya:IEEE,2011:16-18.
[10]喻莉,張軍濤,鄧慧萍,等.SSIM 度量虛擬視點繪制失真的深度圖幀內(nèi)編碼[J].中國圖象圖形學(xué)報,2012,17(11):1353-1358.Yu Li,Zhang Jun-tao,Deng Hui-ping,et al.Virtual view rendering distortion using the structural similarity index as quality metric for depth map intra coding[J].Journal of Image and Graphics,2012,17(11):1353-1358.
[11]張秋聞,安平,張艷,等.基于虛擬視點繪制失真估計的深度圖幀內(nèi)編碼[J].電子與信息學(xué)報,2011,33(11):2541-2546.Zhang Qiu-wen,An Ping,Zhang Yan,et al.Depth map intra coding based on virtual view rendering distortion estimation[J].Journal of Electronics & Information Technology,2011,33(11):2541-2546.
[12]Yin Zhao,Lu Yu.3D-AVC-CE4 results on gradientbased most probable mode (GMPM)for intra depth coding[EB/OL].(2012-02-01)[2012-10-20].http:∥wg11.sc29.org/.
[13]ISO/IEC.Call for proposals on 3D video coding technology[EB/OL].(2010-03-01)[2012-10-20].http:∥wg11.sc29.org/.
[14]Joint Video Team.JMVC reference software[EB/OL].(2011-03-10)[2012-10-20].http:∥garcon.ient.rwthaachen.de/cvs/jvt.
[15]Bjontegaard G.Calculation of average PSNR differences between RD-curves[Z]∥ITU-T SG16 Q.6 Document.Austin:Video Coding Experts Group,2001.