黃 勝,李萌芳,張倩云
重慶郵電大學 通信與信息工程學院,重慶400065
隨著高清、超高清和高幀頻數(shù)字視頻消費需求的增長,人們對數(shù)字視頻的壓縮效率提出了更高的要求。相比于H.264/AVC,HEVC 加入了更先進的編碼技術,如更靈活的編碼單元劃分、更多的預測方向等,使得其與H.264/AVC 在獲得相同視頻圖像質量條件下,可節(jié)省50%以上的編碼比特流[1],但編碼計算量增大了2~3倍。HEVC的高復雜度阻礙了其在視頻領域的快速應用,如何在保證一定的視頻質量的情況下,降低HEVC的計算量,是目前很多專家和學者研究的重點。
為了降低HEVC的編碼復雜度,文獻[2]根據(jù)視頻圖像運動的快慢,設置了兩個不同的閾值用于判別運動程度,以提前終止CU 劃分過程。文獻[3]以當前CU 的空間相鄰CU 的深度劃分信息作為最優(yōu)特征屬性,建立CART 模型且進行測試評估,然后利用建立的CART 模型對當前CU 進行快速劃分。文獻[4]通過設置率失真閾值來提前結束幀間PU 模式選擇。文獻[5]采用預測相鄰CU 深度率失真代價模型,在編碼當前CU 深度后快速預測下一深度級CU 的率失真代價。文獻[6]利用當前CU 與時空域相鄰CU 的深度信息,初步預測當前CU的深度范圍,并根據(jù)當前CU與鄰近CU的運動矢量信息對當前CU 深度選擇做進一步終止判斷。文獻[7]通過CU 深度時空相關性來預測當前CU 的深度范圍,減少深度的遍歷次數(shù)。文獻[8]通過光流法計算金字塔運動發(fā)散(Pyramid Movement Diverges,PMD)的特征值,從而決定當前CU的劃分。
以上提到的方案在縮短編碼時間,降低編碼復雜度方面有明顯的效果,但是對于監(jiān)控和會議視頻來說,其特點沒有被充分利用來降低編碼復雜度。監(jiān)控和會議視頻一般具有背景相對固定不變,前景變化內容較少,場景相對穩(wěn)定的特點。通常由固定攝像機捕獲的監(jiān)視和會議視頻,利用它們的特殊特征(例如,在一段時間內相對固定的背景)對于高效視頻編碼是至關重要的[9]。本文利用會議和監(jiān)控視頻的特性,提出了一種基于虛擬背景幀的幀間預測快速算法。首先,考慮到會議和監(jiān)控視頻中背景相對固定不變,提出了一種基于像素級的策略生成虛擬背景幀。以生成的背景虛擬幀為基準,制定判別方法以判定當前編碼的CU是純背景編碼塊(PBCU)、背景編碼塊(BCU)、前景編碼塊(FCU),還是混合編碼塊(XCU)。然后,對不同類型的編碼塊,制定CU 快速劃分方案和PU模式選擇策略,減少其遍歷過程,以降低幀間預測編碼的復雜度。
HEVC 中仍沿用混合編碼結構,但對編碼單元(Coding Unit,CU)、預測單元(Prediction Unit,PU)以及變換單元(Transform Unit,TU)采用了靈活的四叉樹劃分。一個CTU(Coding Tree Unit)可以按照四叉樹結構分解為若干方形編碼單元,同一層次的CU必須是同一尺寸的4 個方塊,最多可有4 層分解,即64×64、32×32、16×16和8×8。一個編碼單元CU可以劃分為一個或多個預測單元PU,CU 到PU 僅允許一層劃分,最小的PU 為4×4。劃分可以是對稱的,也可以是不對稱的,不對稱的劃分模式統(tǒng)稱為非對稱運動劃分(Asymmetric Motion Partitioning,AMP)。一個2N×2N(N 可以是4、8、16、32)的CU可劃分為8種PU方式:N×N、2N×2N、N×2N、2N×N、nL×2N、nR×2N、2N×nD、2N×nU 。幀間預測時可以在這8種方式中任意選擇,幀間預測的跳過模式只允許選擇2N×2N 這種方式[10]。
HEVC 的測試模型(HEVC Test Model,HM)采用全搜索遍歷方式,在CU層遍歷所有的深度,選擇最小率失真對應的PU 作為最佳PU。這種方法能得到高質量的視頻,節(jié)省編碼比特率,但大大增加了編碼的運算量。HM采用了一些方法來優(yōu)化編碼器,但是對于監(jiān)視和會議視頻,仍然需要通過編碼器來進一步優(yōu)化編碼復雜度。為此,本文提出使用虛擬背景幀來實現(xiàn)CU分類,然后自適應地加速編碼過程。該方法利用虛擬背景幀將編碼CU 分為PBCU、BCU、FCU 和XCU,然后對每類CU采用不同的CU分區(qū)終止和PU模式選擇方案。
背景建模技術在智能監(jiān)控系統(tǒng)中已被廣泛應用,常用的背景建模方法有高斯混合模型(Gaussian Mixture Model,GMM)、Mean-Shift算法和背景差分法等。這些算法使用了大量的存儲空間以保存訓練的中間結果,實現(xiàn)過程有一定的難度。因此,本文采用基于像素統(tǒng)計分析的方法生成背景虛擬幀。
在視頻編碼中,因為圖像塊本身較大且在編碼后塊劃分大小并不統(tǒng)一,所以在塊邊界出現(xiàn)不匹配的問題,且不能保證塊本身干凈(沒有前景信息),導致得到的背景參考幀質量不高。因此,本文設計的背景建模方案是基于像素級的。像素是圖像的基本單位,以像素為單位會比以塊為單位得到的虛擬背景幀更加注重細節(jié),不但邊界不匹配的問題會得到解決,同時圖像本身更加接近背景。為了得到更高質量的背景虛擬幀,采用原始的視頻數(shù)據(jù)進行虛擬背景幀的訓練,這樣訓練得到的虛擬背景幀能夠更精準地對CU進行分類。視頻幀之間對應像素存在相似對應關系,若為背景部分,則像素值相同或相差不大。監(jiān)控和會議視頻的前景一直處在運動過程中,對應像素位置為背景像素的概率往往會較高。因此對大量相鄰幀對應位置像素進行統(tǒng)計分析,出現(xiàn)概率最高的將其認定為背景像素。因為虛擬背景幀僅用于對CU進行分類,所以僅選取亮度分量并對其進行建模。
基于像素統(tǒng)計分析生成虛擬背景幀的算法流程圖如圖1所示,其描述如下:
圖1 生成虛擬背景幀流程圖
(1)選定原始視頻的前M 幀進行虛擬背景幀建模;
(2)對前M 幀的每一幀中每一個位置的像素進行0~255 區(qū)間像素頻率統(tǒng)計,如當前位置像素值為30,則其像素值N=30 出現(xiàn)頻率加1;
(3)對統(tǒng)計結果進行分析,得到每個像素位置出現(xiàn)頻率最高的像素值為虛擬背景幀該像素位置的像素值。
為了研究潛在的編碼復雜度優(yōu)化策略,本文進行了若干實驗以分析如何提前終止CU 分區(qū),選擇最佳PU模式。首先,要對當前編碼CU進行分類,利用它們不同的特性以減少編碼復雜度。CU可以被劃分為四種類型:前景編碼塊(FCU)、純背景編碼塊(PBCU)、背景編碼塊(BCU)和混合編碼塊(XCU)。 M(b)表示像素的類別。
其中,B 表示當前像素是背景像素,F(xiàn) 表示當前像素是前景像素。Ci,j表示在當前編碼CU中位置(i,j)的像素值,Bi,j表示在虛擬背景幀中當前編碼CU 的同位塊中位置(i,j)的像素值。若Ci,j和Bi,j的絕對差值小于閾值α,則判定當前像素點為背景像素點,否則為前景像素點。在實驗中,閾值α 設置為5。根據(jù)當前編碼CU 中背景像素點的占比,可以對CU分類,公式如下:
其中,Nb表示當前編碼CU 中背景像素點的數(shù)量,Nc表示當前編碼CU像素點的總數(shù)。在實驗中,設置δ 為0.9,ε 設置為0.5。當前編碼CU 中,背景像素點占比達到100%時,判定其為PBCU;若背景像素點占比高達δ時,判定其為BCU;若背景像素點占比小于ε 時,判定其為FCU;否則為XCU。
在編碼2N×2N 區(qū)域之前,HEVC編碼器通常需要確定該CU 是否應該被編碼為整個2N×2N 大小的CU或者繼續(xù)劃分以4 個單獨部分的形式遞歸編碼。編碼器通常通過遞歸計算每種分區(qū)的RD成本來決定是否要劃分,這個過程非常耗時。為了解決這個問題,一些CU分區(qū)終止方法被提出以提前終止進一步的分區(qū)。然而,對于監(jiān)視和會議視頻,通過利用長時間靜態(tài)背景,可以更大程度地加速CU分區(qū)終止。之前已經(jīng)對編碼CU進行了分類,接下來對編碼中PBCU的劃分進行統(tǒng)計分析。
由表1 可以看出,在監(jiān)控和會議視頻中,當深度為0、1 和2 時,PBCU 超過98%的比例不會再被進一步劃分。因此,提出當前編碼CU是PBCU時,若當前深度為0、1 或2,則當前深度為最優(yōu)深度,不再繼續(xù)向下劃分。對于其他類型的CU劃分統(tǒng)計如表2所示。
表1 PBCU進一步劃分的概率
表2 不同類別CU進一步劃分的概率
如表2所示,在監(jiān)控視頻中,深度為0、1和2的BCU分別只有11.88%、6.90%和2.21%的比例將進一步分區(qū),而會議視頻的比例分別為4.75%、4.96%和2.41% 。雖然這些比例遠小于FCU 和XCU 的比例,但占比仍然比較大,因此對于BCU 來說不能直接終止其向下劃分。在幀間預測過程中,當CU紋理較簡單且運動較平緩時,CU最佳分割為64×64或32×32大小的可能性較高,反之選擇小尺寸CU分割的可能性比較大[11]。本文可以用均值絕對差(MAD)度量CU的紋理復雜度[12],即:
式(3)中,M、N 分別為CU的寬和高;p(i,j)表示位于(i,j)的像素值;pave為CU塊的平均像素值。當MAD <θ 時,CU為紋理簡單,在其他情況下,CU為紋理復雜。在實驗中,把θ 設置為16 ?Depth,Depth為當前CU的深度。
為了降低CU 劃分的復雜度且保證編碼質量,本文根據(jù)CU 的分類,結合其紋理復雜度設計了加速方案。對于BCU來說,超過90%的像素點都是背景像素點,因此其運動比較平緩。本文通過實驗進行分析,由表3可以看出,對于紋理簡單的BCU,在深度為1和2時,超過97%的CU 是不繼續(xù)向下劃分的。從表4 中可以看出,XCU 在深度小于等于2 時,且紋理復雜度較大時,超過95%的比例會向下劃分,因此對于此類CU 可以直接進行下一深度的劃分,在當前深度不需要做PU 模式選擇。CU劃分提前終止策略總結如下:若當前編碼CU為PBCU時,不再繼續(xù)向下分割,當前深度為最優(yōu)深度;若當前編碼CU 為BCU 且深度為1 和2 時,判斷其紋理復雜度,若為簡單紋理的BCU則不再向下劃分,當前深度為最優(yōu)深度;若當前編碼CU為XCU且深度小于等于2,且紋理復雜度較大時,直接跳過當前深度的PU 模式選擇進行下一深度的CU劃分。
表3 紋理簡單的BCU向下劃分的比例
表4 紋理復雜的XCU向下劃分的比例
在幀間預測中,每個CU對應的PU模式有11種,若能減少當前CU 對應PU 模式遍歷的范圍,就能夠加速幀間模式的選擇過程。為此,本文對不同類型的CU的PU模式選擇進行了實驗分析。
在實驗統(tǒng)計中,把PBCU歸類到BCU中。表5顯示了BCU中PU模式的分布,可以看出,對于Size >16×16的BCU來說,PU模式為2N×N、N×2N、N×N 和AMP只占有很小的比例,總體沒有超過5%。但是對于Size ≤16×16 的BCU,2N×2N 的PU模式占比沒有達到95%,所以對于Size ≤16×16的BCU不能跳過2N×N、N×2N、N×N 和AMP 的模式選擇。基于以上分析,在PU 模式預測中,對于Size >16×16 的BCU則只選擇2N×2N 的PU 模式,若Size ≤16×16 則正常遍歷所有的PU 預測模式。
表5 PU模式選擇在BCU中的分布
由表6 可以看出,XCU 在PU 模式選擇中,AMP 模式的占比非常低,因此對于XCU 在模式選擇中可以跳過AMP模式選擇。加速PU模式預測的策略為:若當前編碼CU的尺寸是Size >16×16的BCU(其中包含PBCU),只遍歷2N×2N 的PU 模式;對于XCU 在進行PU 模式選擇時,不遍歷AMP模式。
表6 PU模式選擇在FCU、XCU中的分布
本文基于背景虛擬幀對編碼CU 進行分類,從CU深度劃分和PU 模式選擇兩方面來加速幀間的預測過程。整體的流程如下:
(1)由像素統(tǒng)計分析生成虛擬背景幀。
(2)對當前編碼CU 進行分類。當前編碼CU 和虛擬背景幀中的同位CU進行比較,根據(jù)不同程度的相似性將其劃分為PBCU、BCU、XCU和FCU。
(3)若當前編碼CU為PBCU,則不再進行下一次劃分,當前CU 深度為最佳劃分深度;若當前編碼CU 為BCU 且深度為1、2 時,對其進行紋理復雜度判斷,如果紋理簡單則不再向下劃分,當前深度為最優(yōu)深度;若當前編碼CU為XCU且深度小于等于2且紋理復雜時,直接跳過當前深度的模式選擇,進行下一深度的CU劃分。
(4)對于PU 模式選擇,若當前編碼CU 的尺寸是Size >16×16 的BCU(其中包含PBCU),只遍歷2N×2N的PU 模式;對于XCU 在進行PU 模式選擇時,不遍歷AMP模式。
整體算法過程如圖2所示。
測試所采用的實驗環(huán)境是Windows Server 2016,處理器為Intel?Xeon?Silver 4110 CPU@2.10 GHz、2.10 GHz(雙處理器,16 核CPUs),RAM 為32 GB。本文所使用的視頻序列均是HEVC的通用測試序列,其中包含4 個監(jiān)控測試序列和6 個會議測試序列。其中,監(jiān)控測試序列有Traffic、PeopleOnStreet、Cactus 和BasketballDrill,會議視頻序列有Vidyo1、Vidyo3、Vidyo4、Four-People、KristrenAndSara和Johhny。本文算法在HM16.9上進行實現(xiàn),采用低延時(Low Delay,LD)接入方式,以通用測試條件[13]對10 個視頻序列各編碼100 幀進行測試。為了測試編碼率失真性能,使用BDBR[14]、PSNR和時間變化對算法做性能評估。
利用式(4)計算時間的編碼來評估算法的加速性能,THM16.9和TProposed分別表示HM16.9 和采用本文算法對測試序列編碼所需的時間。
圖2 整體流程圖
表7 為本文提出的基于虛擬背景幀的幀間預測加速算法在LD接入方式下的性能測試結果。對比HM16.9算法,監(jiān)控視頻序列的平均輸出比特率增加了2.14%,平均編碼時間減少了33.24%,而視頻的平均PSNR只降低了0.08 dB。對于會議視頻序列來說,平均輸出比特率增加了1.84%,平均編碼時間減少了33.18%,而視頻的平均PSNR只降低了0.06 dB。本文所提出的算法,對于監(jiān)控和會議視頻序列都有不錯的效果。
表7 本文算法和HM16.9性能對比
為進一步驗證本文算法的有效性,與文獻[15]中所提出的算法進行了對比,分別選取了監(jiān)控和會議視頻測試序列的對比結果,如表8所示。
通過實驗對比結果可以看出,本文算法和文獻[15]算法相對HM,平均編碼時間分別減少了33.31%和31.78%,采用本文算法平均BDBR 增加了1.93%,略高于文獻[15]的1.56%,而編碼后視頻質量沒有太大的差距,平均PSNR 分別下降了0.07 dB 和0.05 dB。經(jīng)過對比驗證,本文算法能夠準確對CU塊進行分類,通過加速CU 劃分和PU 模式選擇,編碼監(jiān)控和會議視頻時,能夠在保證編碼質量的前提下,降低編碼復雜度,減少編碼時間。
表8 本文算法與文獻[15]在LD配置下性能比較
為了有效降低監(jiān)控和會議視頻在HM 中的編碼時間,本文提出了一種基于虛擬背景幀的幀間快速編碼算法。首先,對原始視頻幀進行像素統(tǒng)計分析,生成虛擬背景幀,根據(jù)虛擬背景幀對當前編碼CU進行分類;對于不同類型的CU結合其紋理特性,提前終止CU劃分,加速CU 劃分過程;對不同類型的CU,根據(jù)PU 模式選擇策略,減少PU 模式的遍歷過程,加速幀間預測中PU 模式選擇過程。實驗仿真結果表明,本文提出的改進算法在視頻質量基本沒有損失,輸出比特率增加較小的前提下,大幅度降低了平均編碼時間。