栗晨陽 陳婧
(華僑大學(xué)信息科學(xué)與工程學(xué)院,廈門市移動(dòng)多媒體通信重點(diǎn)實(shí)驗(yàn)室,福建廈門 361021)
近年來,互聯(lián)網(wǎng)技術(shù)發(fā)展迅速,出現(xiàn)了越來越多與視頻和多媒體行業(yè)相關(guān)的應(yīng)用,由于視頻傳遞的信息更加真實(shí)、具體、生動(dòng)和全面,因此對(duì)視頻信息的需求不斷增加。傳統(tǒng)的2D 視頻已經(jīng)不能滿足人們視覺感受的需求,3D 視頻、多視點(diǎn)視頻(Multi View Video,MVV)[1]能夠提供立體視覺感受而受到更多的關(guān)注。最初的3D 視頻采用的是雙視點(diǎn)視頻格式,為了增強(qiáng)立體視覺感受,越來越多的使用MVV 視頻格式。由于MVV 格式的視頻數(shù)據(jù)量較多,且傳輸和存儲(chǔ)過程變得復(fù)雜,為了解決這些問題,提出了多視點(diǎn)加深度圖(Multi-view Video Plus Depth,MVD)[2]的視頻格式。MVD 視頻格式中包括來自不同視點(diǎn)的紋理圖信息和對(duì)應(yīng)的深度圖信息,其余虛擬視點(diǎn)可用深度圖渲染(Depth Image Based Rendering,DIBR)技術(shù)[3]進(jìn)行合成。
高效視頻編碼(High Efficiency Video Coding,HEVC)[4]于2013 年4 月頒布,其壓縮性能在上一個(gè)編碼標(biāo)準(zhǔn)的基礎(chǔ)上提高了一倍。3D-HEVC[5]編碼標(biāo)準(zhǔn)在HEVC 的基礎(chǔ)上提高了立體視頻的編碼效率。在3D-HEVC 中,相較于HEVC 新增了一些其他的編碼技術(shù),比如組件間預(yù)測[6],深度圖特有的預(yù)測模式,深度模型模式(Depth Modeling Mode,DMM)和分段直流編碼(Segment-wise DC Coding,SDC)等新的技術(shù)[7],這些技術(shù)雖然提高了立體視頻的編碼性能,但同時(shí)也提高了編碼復(fù)雜度。因此,如何在保證重建視頻質(zhì)量基本不變的情況下減少編碼時(shí)間,是當(dāng)前需要解決的問題。
在目前的3D-HEVC幀內(nèi)快速算法中,主要有兩種方式減少編碼復(fù)雜度,一種是提前判斷最優(yōu)編碼單元的分割深度。文獻(xiàn)[8]提出了一種基于深度圖邊緣分類卷積神經(jīng)網(wǎng)絡(luò)(Depth Edge Classification Convolutional Neural Network,DEC-CNN)的幀內(nèi)快速算法,通過建立的數(shù)據(jù)庫訓(xùn)練此網(wǎng)絡(luò)用于CU 分類,并將網(wǎng)絡(luò)嵌入到3D-HEVC 測試平臺(tái)中,針對(duì)不同的CU 確定其深度范圍,并且利用二值化深度圖像的像素值對(duì)上述分類結(jié)果進(jìn)行了校正,雖然減少了計(jì)算復(fù)雜度,但是由于數(shù)據(jù)集較少,導(dǎo)致其合成質(zhì)量損失較多。文獻(xiàn)[9]提出利用決策樹判斷當(dāng)前CU 是否劃分的方法,首先獲取不同尺寸CU 的特征,包括當(dāng)前CU 的均值、方差、梯度等,利用這些特征生成決策樹,并將決策樹嵌入原始編碼平臺(tái)來判斷當(dāng)前CU 是否需要?jiǎng)澐帧N墨I(xiàn)[10]提出一種提前終止CU 劃分的算法來加速編碼過程,它通過計(jì)算每個(gè)CU 的四條邊的像素方差之和以及當(dāng)前CU 的率失真代價(jià)(Rate Distortion Cost,RDCost),將其分別與設(shè)定閾值比較,如果均小于設(shè)定閾值,則停止幀內(nèi)預(yù)測過程,即跳過尺寸較小的CU 的幀內(nèi)預(yù)測過程;否則,執(zhí)行原平臺(tái)操作。文獻(xiàn)[9]和[10]所提算法對(duì)分辨率較大的視頻有更好的效果,對(duì)分辨率較小的視頻編碼性能還需進(jìn)一步提升。文獻(xiàn)[11]利用Otsu’s 算子計(jì)算當(dāng)前CU 的最大類間方差值,將CU 劃分為平坦CU 和復(fù)雜CU,對(duì)平坦CU 終止劃分以及減少模式選擇數(shù)量,本算法雖然對(duì)紋理復(fù)雜度較低的效果較好,但是對(duì)CU 劃分類型有限。文獻(xiàn)[12]提出了一種基于梯度和分段直接分量編碼(Sum of Gradient and Segment-wise Direct Component Coding,SOG-SDC)的深度圖快速算法,利用Robert算子計(jì)算當(dāng)前CU 的梯度,并與設(shè)定的閾值比較,判斷當(dāng)前CU 是否為平滑CU,如果是平滑CU,則停止CU 劃分。以上針對(duì)CU 劃分決策的方法主要是用在減少深度圖的編碼時(shí)間上,沒有考慮用于同時(shí)減少紋理圖的編碼時(shí)間。
另一種減少編碼復(fù)雜度的方法是選擇性跳過某些幀內(nèi)預(yù)測模式的計(jì)算和判斷。文獻(xiàn)[13]提出利用決策樹判斷是否使用DMM 模式,首先獲取當(dāng)前CU 的特征,包括當(dāng)前CU 的均值、方差,母CU 的最佳預(yù)測模式以及當(dāng)前CU 的前兩個(gè)最佳預(yù)測模式和對(duì)應(yīng)的RDCost 等,然后利用這些特征生成決策樹,將決策樹嵌入平臺(tái),判斷當(dāng)前CU 是否需要加入DMM模式,該算法只考慮了幀內(nèi)模式中消耗時(shí)間較多,但使用率較低的DMM 模式。文獻(xiàn)[14]提出了一種低復(fù)雜度幀內(nèi)模式選擇算法,通過計(jì)算幀內(nèi)模式復(fù)雜度(Intra Mode Complexity,IMC),將CU 劃分為簡單CU、普通CU 和復(fù)雜CU,然后對(duì)不用種類的CU 選擇不同的模式加入幀內(nèi)預(yù)測模式候選列表,即跳過其他模式的幀內(nèi)預(yù)測過程,該算法的IMC 參考的CU 包含了幀內(nèi)和幀間的CU,但是最后的模式選擇只針對(duì)了幀內(nèi)的模式。文獻(xiàn)[15]基于對(duì)模式分布的統(tǒng)計(jì)分析,提出了一種快速模式幀內(nèi)決策算法,利用選擇特定模式的概率大小,依次計(jì)算模式對(duì)應(yīng)的RDCost和設(shè)定閾值比較,進(jìn)而確定最佳幀內(nèi)預(yù)測模式,跳過其余模式的計(jì)算,該算法有效的減少了深度圖幀內(nèi)編碼復(fù)雜度,但是對(duì)于全局運(yùn)動(dòng)較大的序列質(zhì)量損失較多。文獻(xiàn)[16]提出了一種自適應(yīng)地減少模式?jīng)Q策過程中原始候選模式數(shù)量的方法,首先計(jì)算Planar 模式、DC 模式以及水平和垂直模式的哈達(dá)瑪變換差值的絕對(duì)值和(Sum of Absolute Hadamard Trans-formed Difference,SATD),將SATD 值最小的前兩個(gè)模式加入候選列表,根據(jù)模式配對(duì)表來加入或刪除其余模式。以上文獻(xiàn)都只針對(duì)深度圖進(jìn)行優(yōu)化,文獻(xiàn)[17-18]則針對(duì)紋理圖和深度圖同時(shí)優(yōu)化,以減少編碼復(fù)雜度。其中,文獻(xiàn)[17]提出了一種基于梯度信息的紋理圖和深度圖編碼的快速模式?jīng)Q策算法,首先利用Sobel 算子計(jì)算預(yù)測單元(Prediction Unit,PU)的梯度,然后利用PU 的梯度信息將PU 分為三種類型,為PU 選擇合適的候選模式,跳過其余模式的預(yù)測過程。文獻(xiàn)[18]則提出了一種基于局部結(jié)構(gòu)張量的邊緣檢測算法,利用局部邊緣方向直方圖來識(shí)別優(yōu)勢邊緣方向,分別對(duì)深度圖和紋理圖確定候選模式的選擇范圍,以降低3D-HEVC內(nèi)編碼的計(jì)算復(fù)雜度。
考慮到3D-HEVC編碼復(fù)雜度較高,且包含紋理圖和深度圖兩種視頻序列,因此本文提出了一種紋理圖和深度圖共同優(yōu)化的幀內(nèi)快速算法。首先,分別計(jì)算紋理圖和深度圖當(dāng)前編碼CU 的梯度矩陣和SGM(Sum of Gradient Matrix,簡稱SGM),將其作為復(fù)雜度判斷因子。利用當(dāng)前CU 和子CU 的SGM 聯(lián)合判斷當(dāng)前CU 是否需要繼續(xù)劃分,進(jìn)而將編碼CU分為三類:直接劃分CU(Split Coding Unit,簡稱SCU),不劃分CU(Non-Split Coding Unit,簡 稱NSCU)以及普通CU,之后對(duì)紋理圖和深度圖不同類型的CU 采取不同的CU 分割深度決策以降低編碼復(fù)雜度。
本文余下部分安排如下:第2 節(jié)介紹3D-HEVC幀內(nèi)預(yù)測過程,包括四叉樹結(jié)構(gòu),幀內(nèi)預(yù)測工具,以及幀內(nèi)預(yù)測過程;第3節(jié)具體介紹本文所提算法,包括復(fù)雜度判斷因子的計(jì)算過程,如何利用復(fù)雜度判斷因子對(duì)CU 進(jìn)行分類,分類優(yōu)化編碼的整體算法的框圖;第4節(jié)是本文算法的實(shí)驗(yàn)結(jié)果,包括與其他文獻(xiàn)的對(duì)比結(jié)果,主觀質(zhì)量的比較等;第5 節(jié)是結(jié)論。
3D-HEVC 采用了MVD 視頻格式,并且按照先編碼獨(dú)立視點(diǎn),再編碼其余非獨(dú)立視點(diǎn),以及先編碼紋理圖,再編碼對(duì)應(yīng)的深度圖的順序依次編碼。編碼結(jié)構(gòu)采用如圖1所示的四叉樹結(jié)構(gòu)。
圖1 四叉樹結(jié)構(gòu)Fig.1 Quadtree structure
當(dāng)前編碼的視頻幀被劃分成若干個(gè)編碼樹單元(Coding Tree Units,CTUs),每個(gè)CTU 繼續(xù)遞歸劃分為尺寸大小依次為64 × 64、32 × 32、16 × 16、8 ×8 的CU,其對(duì)應(yīng)劃分深度為0、1、2、3。在幀內(nèi)預(yù)測過程中,從64 × 64 到8 × 8 尺寸的CU 依次進(jìn)行幀內(nèi)預(yù)測過程,并且將代價(jià)最小的模式作為當(dāng)前CU的最佳模式,然后從最小尺寸的CU 開始,將子節(jié)點(diǎn)對(duì)應(yīng)的四個(gè)小尺寸CU 代價(jià)之和與父節(jié)點(diǎn)對(duì)應(yīng)的母CU 的代價(jià)比較,如果前者小于后者,則保留當(dāng)前樹形結(jié)構(gòu),如果前者大于后者,則移除小尺寸CU 對(duì)應(yīng)的節(jié)點(diǎn)。以此類推,得到最后的樹形結(jié)構(gòu)。
在3D-HEVC 中,紋理圖使用的預(yù)測模式為HEVC 幀內(nèi)預(yù)測模式,幀內(nèi)預(yù)測編碼是為了消除空間冗余信息,在這個(gè)過程中,參考CU 通常是位于當(dāng)前CU 的上方、左方以及左上方。為了預(yù)測結(jié)果的準(zhǔn)確性,在之前編碼標(biāo)準(zhǔn)的基礎(chǔ)上,HEVC 進(jìn)行了擴(kuò)展,增加了更多的預(yù)測模式,如圖2 所示。HEVC 采用的幀內(nèi)預(yù)測編碼模式一共有35 種,包括平面(Planar)預(yù)測模式、直流(DC)預(yù)測模式以及33 個(gè)角度預(yù)測模式[19]。Planar模式常常用在漸變式的平滑紋理區(qū)域,它利用水平方向和垂直方向的線性插值的平均作為當(dāng)前塊像素的預(yù)測值;DC 模式適用于大面積平坦區(qū)域,利用當(dāng)前CU 左側(cè)和上方的參考像素的平均值得到;此外,HEVC 規(guī)定了33 種角度預(yù)測模式,細(xì)化了預(yù)測方向,可以更好地適應(yīng)不同方向的紋理復(fù)雜度。
圖2 HEVC幀內(nèi)預(yù)測模式Fig.2 HEVC intra prediction mode
對(duì)于深度圖,幀內(nèi)預(yù)測模式加入了兩種DMM模式,分別是DMM1 楔形模式和DMM4 輪廓模式,如圖3所示。這種DMM 模式將深度圖CU分割成兩個(gè)區(qū)域,每個(gè)區(qū)域內(nèi)深度近似為常數(shù)。DMM1 楔形模式是用直線分割,DMM4 輪廓模式的邊界劃分由與該深度塊對(duì)應(yīng)的紋理塊來決定。
圖3 深度圖DMM模式Fig.3 Depth Modeling Mode
3D-HEVC 的幀內(nèi)預(yù)測過程如圖4 所示,首先利用SATD 將模式加入候選列表,然后對(duì)模式列表里的模式計(jì)算其RDCost,最終選擇最優(yōu)的模式和最佳劃分方式。
圖4 3D-HEVC的幀內(nèi)預(yù)測過程Fig.4 The intra prediction process of 3D-HEVC
紋理圖幀內(nèi)預(yù)測過程具體如下:
1)首先建立一個(gè)用來存儲(chǔ)候選模式的空列表。
2)模式粗選過程,利用公式(1)計(jì)算HEVC內(nèi)包含的35 種模式的SATD 值,然后比較SATD 值大小,將較小的SATD 值對(duì)應(yīng)的模式加入候選列表中,加入的模式個(gè)數(shù)與當(dāng)前CU的尺寸有關(guān)[20]。
3)加入最 可能模 式(Most Probable Modes,MPMs),這個(gè)模式根據(jù)當(dāng)前編碼塊的上方、左方以及左上方已經(jīng)編碼的CU模式,選出3種最可能的模式,加入候選列表。
4)利用公式(2)計(jì)算模式候選列表中所有模式的RDCost,選擇代價(jià)最小的模式為當(dāng)前CU 的最佳模式。
深度圖幀內(nèi)預(yù)測過程如下:
首先對(duì)深度圖CU 進(jìn)行HEVC 幀內(nèi)預(yù)測過程,包括模式粗選過程和MPMs 過程,之后將深度圖獨(dú)有的DMMs 模式加入候選列表,對(duì)列表里所有模式進(jìn)行變換、量化(Transform and Quantization,TQ)以及SDC,之后對(duì)其進(jìn)行熵編碼,對(duì)深度幀內(nèi)跳躍模式(Depth Intra Skip,DIS)則直接進(jìn)行熵編碼。最后通過RDCost的計(jì)算和比較,選擇代價(jià)最小的模式為當(dāng)前CU的最佳模式[21]。
由上一節(jié)幀內(nèi)預(yù)測過程可以知道,在3D-HEVC中,無論是紋理圖還是深度圖,在預(yù)測過程中至多遍歷85 個(gè)CU 的編碼過程,包括1 個(gè)64×64 尺寸的CU,4 個(gè)32×32 尺寸的CU,16 個(gè)16×16 尺寸的CU 和64個(gè)8×8尺寸的CU。由于每個(gè)CU都需要遍歷所有模式,因此3D-HEVC的復(fù)雜度急劇升高。
為了分析3D-HEVC 最佳CU 尺寸分布,表1 統(tǒng)計(jì)了四個(gè)序列紋理圖和深度圖的CU 深度級(jí)別(CU Depth Level,CUDL),分別是分辨率為1024 × 768的Balloons 和Newspaper 序列、分辨率為1920 × 1088的Shark 和Undo_Dancer 序列,編碼平臺(tái)為HTM-16.0,采用全幀內(nèi)配置,量化參數(shù)(Quantification Parameter,QP)設(shè)置為:(25,34),(30,39),(35,42),(40,45)。從表1可以看出,紋理圖選擇大尺寸CU的概率較小,而深度圖選擇大尺寸CU 的概率較大,因此,如果能夠利用復(fù)雜度判斷因子提前決定紋理圖和深度圖CU是否需要?jiǎng)澐?,則可以減少編碼復(fù)雜度。
表1 紋理圖和深度圖CU劃分深度分布Tab.1 The distribution of CU partition depth of texture and depth map
本文利用梯度矩陣和(SGM)計(jì)算CU 的復(fù)雜度判斷因子。圖5 為一個(gè)3×3 紋理單元,利用四個(gè)方向上的像素差值的絕對(duì)值之和計(jì)算中心像素點(diǎn)的梯度,四個(gè)方向分別是水平、對(duì)角以及垂直方向,其計(jì)算公式如下:
圖5 3×3紋理單元Fig.5 3×3 texture unit
其中P1(x,y),P2(x,y),P3(x,y)和P4(x,y)分別為中心像素點(diǎn)I(x,y)四個(gè)方向(0°,90°,45°,145°)的梯度絕對(duì)值,四個(gè)方向梯度和表示如下:
式中,P(m,n)是四個(gè)方向的像素差值的絕對(duì)值之和,即為當(dāng)前像素點(diǎn)的梯度和。其中(m,n)為紋理單元中心像素點(diǎn)的位置,m,n∈(1,N-2),因?yàn)楫?dāng)前CU 的差分矩陣需要計(jì)算四個(gè)方向的像素值差,則無法獲取CU 外層像素點(diǎn)的梯度信息,因此N×N的CU 對(duì)應(yīng)的差分矩陣大小為(N-2) ×(N-2),如圖6 和圖7 所示,8 × 8 大小的CU,對(duì)應(yīng)的差分矩陣大小為6 × 6。
圖6(a)、(b)為紋理圖簡單CU 和復(fù)雜CU 及其對(duì)應(yīng)的差分矩陣,圖7(a)、(b)為深度圖簡單CU 和復(fù)雜CU 及其對(duì)應(yīng)的差分矩陣。可以看出,差分矩陣可以很好的反應(yīng)CU 的復(fù)雜程度。因此,SGM 可作為CU的復(fù)雜度判斷因子,計(jì)算公式如下:
圖6 紋理圖CU及其差分矩陣Fig.6 Texture CU and its difference matrix
圖7 深度圖CU及其差分矩陣Fig.7 Depth CU and its difference matrix
其中P(m,n)為差分矩陣內(nèi)的元素,N為當(dāng)前CU 寬度。同時(shí)也可以根據(jù)子CU 的復(fù)雜度判斷因子聯(lián)合判斷當(dāng)前CU 的復(fù)雜度,更好地判斷當(dāng)前CU 是否需要?jiǎng)澐?。公式?)為當(dāng)前CU 進(jìn)行四叉樹劃分后第一個(gè)子CU 的復(fù)雜度判斷因子的計(jì)算方法,其余子CU的復(fù)雜度判斷因子C2、C3、C4同理可得。
針對(duì)紋理圖和深度圖,本文利用當(dāng)前CU 和子CU 的SGM 聯(lián)合判斷其復(fù)雜度,利用復(fù)雜度判斷因子的值所在范圍將CU 劃分為NSCU、SCU 以及普通CU。NSCU 代表紋理不復(fù)雜的CU,即跳過小尺寸CU 的幀內(nèi)預(yù)測過程;SCU 表示紋理復(fù)雜的CU,即跳過當(dāng)前CU 的幀內(nèi)預(yù)測過程,直接劃分,進(jìn)行小尺寸CU的判斷;其余則是普通CU,執(zhí)行原平臺(tái)操作。
3.2.1 NSCU提前決策
對(duì)于紋理圖和深度圖,如果當(dāng)前CU 復(fù)雜度判斷因子的值較小,則直接判斷為NSCU,如果當(dāng)前CU 的復(fù)雜度判斷因子的值較大,但子CU 的復(fù)雜度判斷因子均小于母CU 的復(fù)雜度判斷因子的一半,依然可以判定當(dāng)前CU為NSCU,具體算法如下:
當(dāng)前CU復(fù)雜度判斷因子判斷:
利用子CU復(fù)雜度判斷因子聯(lián)合判斷:
其中,C0、C1、C2、C3、C4為當(dāng)前CU 和其子CU 的復(fù)雜度判斷因子,THNi為NSCU 的閾值,i表示CU 深度,aveNi為訓(xùn)練幀中被判斷為NSCU 的復(fù)雜度判斷因子的均值,訓(xùn)練幀為每個(gè)序列的第1幀,對(duì)于訓(xùn)練幀則直接使用原平臺(tái)算法,考慮到單個(gè)視頻序列的相關(guān)性,每30 幀更新一次閾值,即每編碼30 幀后重新計(jì)算閾值。
由公式(12)可知,閾值的設(shè)定與復(fù)雜度判斷因子均值及系數(shù)α相關(guān),均值每30 幀更新一次,因此確定α的值也很重要,如果α較大,則閾值較大,則判斷為NSCU 的可能性變大。由表1 可知,紋理圖選擇大尺寸CU 的概率小于深度圖選擇大尺寸CU的概率,因此判斷紋理圖的NSCU 范圍要小于判斷深度圖的NSCU 范圍,因此紋理圖α的取值小于深度圖的α。對(duì)于紋理圖,α分別選取0.4、0.6、0.8 進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖8 所示,其中,S/T(Synth PSNR/Total Bitrate)表示合成視點(diǎn)質(zhì)量的變化,其值越小代表損失越少,從圖中可以看出,隨著α的增大,時(shí)間減少增多,但合成視點(diǎn)質(zhì)量損失有所改變。考慮到時(shí)間和質(zhì)量的平衡,對(duì)于紋理圖,選擇α=0.6。對(duì)于深度圖,設(shè)α=0.8[22]。
圖8 紋理圖中選取參數(shù)α的實(shí)驗(yàn)結(jié)果Fig.8 Select α experimental result in texture map
3.2.2 SCU提前決策
對(duì)于紋理圖和深度圖,如果當(dāng)前CU 復(fù)雜度判斷因子的值較大,則直接判斷為SCU,如果當(dāng)前CU的復(fù)雜度判斷因子的值在某一個(gè)范圍內(nèi),且某個(gè)子CU 的復(fù)雜度判斷因子大于母CU 的復(fù)雜度判斷因子的一半,依然可以判定當(dāng)前CU 為SCU,具體算法如下:
當(dāng)前CU復(fù)雜度判斷因子判斷:
利用子CU復(fù)雜度判斷因子聯(lián)合判斷:
其中THS1i和THS2i是SCU的兩個(gè)閾值,定義如下:
其中aveSi為訓(xùn)練幀中判斷為SCU 的復(fù)雜度判斷因子均值。考慮到準(zhǔn)確率以及質(zhì)量,經(jīng)過實(shí)驗(yàn),THS1i應(yīng)盡可能大,在紋理圖和深度圖編碼時(shí),β均設(shè)為2.0,而THS2i應(yīng)盡可能小,同時(shí)也要保證復(fù)雜度判斷因子的覆蓋范圍,因此,紋理圖和深度圖中β=1.5。
3.2.3 深度圖DMM模式跳過
由于DMM 模式針對(duì)的是復(fù)雜度較高的CU,且DMM 模式計(jì)算復(fù)雜度較高,因此,對(duì)于深度圖CU,如果判斷其為NSCU,則不僅停止CU 的劃分,在當(dāng)前CU 的幀內(nèi)預(yù)測過程中選擇跳過DMM 模式的判斷,可以進(jìn)一步減少編碼復(fù)雜度。
3.2.4 算法流程圖及實(shí)現(xiàn)
本算法的總體流程圖如圖9 所示,具體步驟如下:
圖9 所提算法流程圖Fig.9 Flowchart of the proposed algorithm
1)首先初始化紋理圖和深度圖的CU深度。
2)判斷是否為訓(xùn)練幀,如果為訓(xùn)練幀,則計(jì)算NSCU和SCU的閾值,否則執(zhí)行步驟3)。
3)利用公式(3)~(9)計(jì)算紋理圖和深度圖當(dāng)前CU及其子CU的SGM,作為其復(fù)雜度判斷因子。
4)利用公式(10)~(11)判斷是否為NSCU,如果是NSCU 則跳過小尺寸CU 的幀內(nèi)預(yù)測過程,并且執(zhí)行步驟8),否則到步驟5);如果是深度圖的NSCU,則還需跳過DMM模式的檢測。
5)利用公式(13)~(14)判斷是否為SCU,是則執(zhí)行步驟7),跳過當(dāng)前CU 的幀內(nèi)預(yù)測過程;否則為普通CU,執(zhí)行步驟6)。
6)對(duì)當(dāng)前CU進(jìn)行原平臺(tái)的幀內(nèi)預(yù)測過程。
7)如果當(dāng)前CU深度為3,則執(zhí)行步驟8);否則,CU分割深度加一。
8)選擇最佳模式以及CU劃分。
本次實(shí)驗(yàn)采用HTM-16.0 編碼平臺(tái),全幀內(nèi)配置,輸入視點(diǎn)個(gè)數(shù)為3,量化參數(shù)QP 設(shè)置為:(25,34),(30,39),(35,42),(40,45),測試序列如表2所示,測試環(huán)境為英特爾Core i9-9900K@3.60GHz CPU、16G內(nèi)存,Window10(64位)操作系統(tǒng)。
表2 測試序列Tab.2 Test sequences
表3 顯示了本文所提算法與原始平臺(tái)HTM-16.0 編碼性能以及編碼時(shí)間的比較。其中,V/T(Video PSNR/Total Bitrate)表示全部視頻的比特率占比變化,越接近0 則編碼性能越好;S/T 表示合成視點(diǎn)質(zhì)量的變化,越小越好;ΔT為所提算法相比于原始平臺(tái)算法節(jié)省時(shí)間,節(jié)省的編碼時(shí)間計(jì)算方法如下:
表3 本算法與實(shí)驗(yàn)平臺(tái)HTM-16.0實(shí)驗(yàn)結(jié)果比較Tab.3 Comparison between the proposed and the standard platform HTM-16.0
其中TD-ori為原始平臺(tái)所用編碼時(shí)間,TD-pro為所提算法所用編碼時(shí)間。
由表3 可以看出,相較于原始平臺(tái)所需編碼時(shí)間,本文所提算法在合成視點(diǎn)質(zhì)量平均減少0.91%的情況下,平均減少了40.92%的編碼時(shí)間。從表中可以看出,對(duì)于局部運(yùn)動(dòng)或者全局運(yùn)動(dòng)頻繁的視頻序列,本文算法效果較好,如序列“GT-Fly”和“Shark”分別只產(chǎn)生了0.37%和0.62%的質(zhì)量損失,但其編碼時(shí)間平均減少了48.15%和45.85%;對(duì)于全局運(yùn)動(dòng)較少或者具有大量平坦區(qū)域的視頻序列,如“Poznan_Hall2”序列,合成視點(diǎn)質(zhì)量平均雖減少了1.89%,但該序列的編碼時(shí)間平均減少了48.84%。另外,從表3 可以看出,本文算法對(duì)于分辨率較大的視頻序列效果較好,可以減少較多編碼時(shí)間,而對(duì)于分辨率較小的視頻質(zhì)量損失較少。表4 展示了不同QP 對(duì)編碼時(shí)間的影響。從表4 中可以看出,對(duì)于紋理圖和深度圖,不同的編碼QP 結(jié)果不同,QP 越大,節(jié)省時(shí)間越多,主要是因?yàn)镼P 越大,在編碼過程中,細(xì)節(jié)部分編碼較少,訓(xùn)練幀中被判斷為NSCU 的概率較大,使得編碼幀中判斷為簡單CU 的閾值變大,故而判斷為NSCU 的概率較大,進(jìn)而可以減少較多編碼時(shí)間。表5顯示了本文算法分別針對(duì)紋理圖和深度圖的實(shí)驗(yàn)結(jié)果比較,從表5可以看出,本文算法平均減少43.7%的深度圖編碼時(shí)間以及45.1%的紋理圖編碼時(shí)間,對(duì)于合成視點(diǎn)質(zhì)量,本文算法針對(duì)深度圖的質(zhì)量效果要好于紋理圖的效果。
表4 本文算法在不同QP情況下的時(shí)間減少比較Tab.4 Time reduction comparison of the proposed algorithm under different QPs
表5 紋理圖和深度圖編碼時(shí)間與實(shí)驗(yàn)平臺(tái)HTM-16.0的比較結(jié)果Tab.5 Comparison of time consuming between the proposed algorithm and the HTM-16.0
為了觀察本文算法對(duì)3D-HEVC 編碼性能的主觀質(zhì)量影響,選取“Kendo”序列合成視點(diǎn)1 的第10幀圖像和“Shark”序列合成視點(diǎn)4 的第20 幀圖像作為主觀實(shí)驗(yàn)結(jié)果比較,分別如圖10 和圖11 所示。比較了兩處細(xì)節(jié)相對(duì)豐富的區(qū)域,圖10(a)和圖11(a)是從原始算法編碼后的合成視點(diǎn)中選取,圖10(b)和圖11(b)是從本算法編碼后的合成視點(diǎn)中選取。主觀對(duì)比結(jié)果顯示,本算法的合成視點(diǎn)主觀質(zhì)量可以獲得和HTM-16.0 平臺(tái)相當(dāng)?shù)闹亟ㄐЧ?/p>
圖10 所提算法與HTM-16.0平臺(tái)主觀結(jié)果比較(Kendo視頻序列,合成視點(diǎn)1,第10幀)Fig.10 Subjective comparison between the proposed algorithm and HTM-16.0(Kendo video sequence,synthetic viewpoint 1,10th frame)
圖11 所提算法與HTM-16.0平臺(tái)主觀結(jié)果比較(Shark視頻序列,合成視點(diǎn)4,第20幀)Fig.11 Subjective comparison between the proposed algorithm and HTM-16.0(Shark video sequence,synthetic viewpoint 4,20th frame)
選取同是針對(duì)紋理圖和深度圖聯(lián)合優(yōu)化的快速算法[17]和[18]與本算法進(jìn)行性能比較,結(jié)果如表6 所列。從表6 可以看出,本文所提算法相較于文獻(xiàn)[17]、[18]在虛擬合成視點(diǎn)質(zhì)量損失0.25%和提升0.08%的情況下分別減少了10.32%和9.01%的編碼時(shí)間。
表6 所提算法與文獻(xiàn)[17]、[18]的實(shí)驗(yàn)結(jié)果比較Tab.6 Experimental results comparison between the proposed algorithm and[17]、[18]
為了減少3D-HEVC的編碼時(shí)間,本文提出了聯(lián)合紋理-深度的提前CU 分割深度決策的快速算法。通過計(jì)算紋理圖和深度圖編碼CU 的復(fù)雜度判斷因子SGM 將其劃分為NSCU 和SCU 以及普通CU,對(duì)NSCU 跳過小尺寸的CU 幀內(nèi)預(yù)測過程,對(duì)SCU 則直接劃分,跳過當(dāng)前CU 的幀內(nèi)預(yù)測過程。實(shí)驗(yàn)結(jié)果表明,與原始平臺(tái)相比,本算法在合成視點(diǎn)質(zhì)量基本不變的情況下平均減少40.92%的編碼時(shí)間,與最新的聯(lián)合紋理-深度3D-HEVC 幀內(nèi)快速算法比較,本算法在節(jié)省更多編碼時(shí)間的情況下更好地保證了合成視點(diǎn)質(zhì)量。