賈克斌 崔騰鶴 劉鵬宇 劉 暢
(北京工業(yè)大學(xué)信息學(xué)部 北京 100124)
(先進信息網(wǎng)絡(luò)北京實驗室 北京 100124)
隨著生活水平的不斷提高,人們對信息化服務(wù)的質(zhì)量要求也越來越高,多視點及高清甚至超高清視頻服務(wù)已成為人們追逐的目標。面對視頻服務(wù)的新需求,2013年由視頻編碼聯(lián)合協(xié)作小組(Joint Collaborative Team on Video Coding, JCT-VC)提出的著眼于“更低碼率”和“更高畫質(zhì)”的高效視頻編碼標準H.265/HEVC(High Efficiency Video Coding)[1],為視頻內(nèi)容從高清到超高清的發(fā)展提供了技術(shù)保障,并成為最成熟的新一代視頻編碼標準。與上一代高級視頻編碼標準H.264/AVC (Advanced Video Coding)[2]相比,H.265/HEVC通過引入編碼單元(Coding Unit, CU)四叉樹劃分結(jié)構(gòu)[3], 多角度幀內(nèi)預(yù)測等技術(shù),使壓縮效率提高了1倍[1]。
但隨著新編碼技術(shù)的引入,H.265/HEVC的編碼復(fù)雜度相對于H.264/AVC增加了253%,其中,CU的四叉樹劃分過程需要遍歷所有可能的CU劃分方式,并基于所有的劃分方式進行率失真優(yōu)化(Rate Distortion Optimization, RDO)的計算,這一過程占據(jù)了編碼時間的80%[4],使得H.265/HEVC很難滿足目前高實時性多媒體系統(tǒng)的應(yīng)用要求[5]。然而CU作為預(yù)測、變換、量化和熵編碼等處理的基本單元,是保證編碼性能的關(guān)鍵所在。因此,對CU劃分結(jié)構(gòu)預(yù)測的研究引起了國際同行學(xué)者的廣泛關(guān)注。目前,針對CU劃分結(jié)構(gòu)預(yù)測,國內(nèi)外學(xué)者在傳統(tǒng)方法和機器學(xué)習(xí)方法都有了大量的探索與嘗試。其中傳統(tǒng)CU劃分結(jié)構(gòu)預(yù)測方法主要用于CU劃分四叉樹的剪枝處理,這些方法大多是基于統(tǒng)計CU的時間/空間相關(guān)性所提出的[6,7]。但傳統(tǒng)方法存在著對先驗信息要求高,對復(fù)雜情況判斷準確性較低的缺點。進一步,有學(xué)者采用機器學(xué)習(xí)方法來預(yù)測CU是否劃分,早期研究方法主要是基于概率密度分布,依靠設(shè)計良好的手工特征進行一些二分類問題的處理,其中利用SVM分類器最為經(jīng)典[8–10]。近年來,以數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)技術(shù)憑借其在數(shù)據(jù)表征上優(yōu)秀的泛化能力,在大量視覺任務(wù)中取得了令人矚目的成就。一些學(xué)者也開始嘗試將其引入到新一代視頻編碼標準的優(yōu)化過程中,以解決傳統(tǒng)機器學(xué)習(xí)方法在復(fù)雜情況下判別大幅度失準的問題,例如,F(xiàn)eng等人[11]與Liu等人[12]基于不同的網(wǎng)絡(luò)模型學(xué)習(xí)圖像幀的紋理復(fù)雜度并自適應(yīng)判斷深度范圍,然而,這兩種方法是剪枝思想的延續(xù),還需額外RDO計算才能確定CU劃分結(jié)構(gòu);文獻[13]則采用簡易的卷積神經(jīng)網(wǎng)絡(luò),針對不同尺寸CU設(shè)計對應(yīng)的網(wǎng)絡(luò),其工程量巨大,且泛化性能差。文獻[14]通過數(shù)據(jù)降維手段,使得單個網(wǎng)絡(luò)能夠針對不同尺寸CU進行預(yù)測,但其網(wǎng)絡(luò)結(jié)構(gòu)簡單,且過程中還需進行額外的RDO計算。
針對上述方法存在的不足,本文提出了一種基于HEVC編碼框架的CU劃分表征矢量預(yù)測網(wǎng)絡(luò),意在實現(xiàn)對CU劃分結(jié)構(gòu)端到端的預(yù)測,省去CU劃分結(jié)構(gòu)確定過程中的復(fù)雜RDO計算過程,從而降低編碼復(fù)雜度。第2節(jié)簡述HEVC幀內(nèi)編碼結(jié)構(gòu)及CU劃分表征矢量;第3節(jié)提出CU劃分表征矢量預(yù)測的多層特征傳遞卷積神經(jīng)網(wǎng)絡(luò)模型的設(shè)計方案;第4節(jié)驗證提出模型的有效性;第5節(jié)對全文進行總結(jié)。
在HEVC中,每幀圖像會被分成若干個編碼樹單元(Coding Tree Units, CTU)[2]。每個CTU可以包含單個CU,也可以根據(jù)四叉樹結(jié)構(gòu)遞歸各個深度(depth)分割成多個較小的CU,圖1展示了一種CTU劃分結(jié)構(gòu)及其對應(yīng)四叉樹結(jié)構(gòu)。在HEVC默認配置中,CU大小可為8×8, 16×16, 32×32, 64×64。
圖1 CTU劃分結(jié)構(gòu)示意圖
需要說明的是,CTU最優(yōu)劃分結(jié)構(gòu)是通過遞歸計算實現(xiàn)的。在一個64×64的CTU中,隨著CU尺寸的減小,共需計算85( 40+ 41+ 42+ 43)個CU的率失真代價。其率失真代價的計算過程均需編碼器對該CU進行預(yù)編碼,在此過程中還需對所有可能的預(yù)測模式和變換方式進行編碼,故時間開銷巨大。然而,CTU最優(yōu)劃分結(jié)構(gòu)在限定編碼參數(shù)條件下具有唯一性。故需要最少計算1個(如果64×64 CU沒有被分割),最多64個(如果整個CTU被分割為8×8 CU)CU率失真代價來完成編碼需求。因此,通過對CU劃分的準確預(yù)測可以避免最多84個,最少21個CU的預(yù)編碼過程。
圖2 父CU和子CU之間率失真代價計算和比較過程
根據(jù)HEVC中CTU劃分結(jié)構(gòu)可知,當(dāng)CU尺寸大于等于16×16,只存在劃分和不劃分兩種情況。所以可利用其劃分標志位來描述CU劃分結(jié)構(gòu),其中0代表不劃分,1代表劃分?;诖?,本文提出了由21位二進制數(shù)字組成的CU劃分表征矢量,可表示CTU所有的劃分可能。其21位分別對應(yīng)于從淺層到深層的CU,依次按照對應(yīng)從左到右,從上到下的CU的劃分標志位,其CU劃分表征矢量對應(yīng)位置如圖3所示。
圖3 CU劃分表征矢量對應(yīng)位置示意圖
MLFT-CNN模型結(jié)構(gòu)如圖4所示,可分為泛化特征提取、深度差異特征提取,以及全連接特征分類3部分。從降低編碼復(fù)雜度的整體需求出發(fā),考慮到亮度分量表征視覺信息能力遠大于色度分量,網(wǎng)絡(luò)輸入為從原始序列中提取的大小為64×64的亮度信息。泛化特征提取部分對數(shù)據(jù)進行全局降維和多維特征提取。深度差異特征提取部分從CU劃分的3個深度出發(fā)進行CU劃分表征矢量端到端的訓(xùn)練。全連接特征分類部分用高深度CU劃分特征指導(dǎo)低深度CU劃分過程,強化低深度CU的劃分標識符的全局表征能力。最終拼接得到CU劃分表征矢量。下面對模型的各個模塊結(jié)構(gòu)及整體模型學(xué)習(xí)過程進行詳細介紹。
圖4 整體網(wǎng)絡(luò)模型圖
在基于深度學(xué)習(xí)的CU劃分表征矢量預(yù)測任務(wù)中,若采用傳統(tǒng)的卷積操作訓(xùn)練,則忽略了劃分過程的邊界限制條件,各層感受野與CU的劃分尺寸之間缺少關(guān)聯(lián)信息,使得深層特征之間存在較多信息冗余,這無疑會擴大網(wǎng)絡(luò)體積,拖慢前向傳播速度,在實際視頻編碼過程中得不償失。故本文在降分辨率特征提取過程中,設(shè)計了針對CU四叉樹劃分過程的卷積過程,提出了應(yīng)用邊長s為 2n(n=1,2)的卷積核,并進行步長即步進距離的卷積操作。這使得CU劃分尺寸與卷積得到的特征圖感受野尺寸相耦合,在卷積過程中融入了視頻編碼的先驗信息,故更適用于CU劃分的降分辨率特征的提取。
其中在全局特征提取部分,對輸入亮度CU單元S0進行邊長為s的全局多核卷積降分辨率特征提取,可用式(1)表示;在深度差異特征提取部分中將全局泛化特征專一化,將高深度特征作為輸入來獲取只屬于該深度的降分辨率特征,可用式(2)來表示。
卷積運算是對于空間信息進行多尺度融合,雖然在空間上能夠有效地進行特征融合,但忽略了不同特征通道對于關(guān)鍵信息描述的差異性。因此,本文引入了計算機視覺中的注意力機制。利用網(wǎng)絡(luò)學(xué)習(xí)各通道特征重要性的差異,通過賦予不同特征通道不同的權(quán)值將降分辨率提取到的多通道特征進行非均勻融合,以提升融合特征的信息表達能力。本文參考SENet[15]模型,提出了一種改進的通道注意力機制,通過設(shè)計一個全局卷積操作代替其原本的全局平均池化操作來實現(xiàn)數(shù)據(jù)的壓縮,鼓勵模型在學(xué)習(xí)時充分考慮空間和通道信息,而非對兩種信息進行割裂的處理。對于降分辨率特征Hi,j進行全局卷積操作可表示為
此外,將歸一化的QP信息以數(shù)值的形式拼接在全連接層的預(yù)測矢量上,實現(xiàn)QP在網(wǎng)絡(luò)中的非線性融合,強化CU劃分結(jié)構(gòu)預(yù)測網(wǎng)絡(luò)在不同QP值下的預(yù)測性能。拼接3級CU劃分標識符得到CU劃分表征矢量y?,對其進行優(yōu)化處理(若父CU劃分標識符為0,則其子CU劃分標識符將被置為0)后作為網(wǎng)絡(luò)判別結(jié)果輸出,并被用到后續(xù)編碼過程中。
為了更好地訓(xùn)練MLFT-CNN,通過整合CU劃分深度預(yù)測的先驗信息以及QP對于視頻編碼質(zhì)量的影響,創(chuàng)造性地設(shè)計了目標損失函數(shù),用于協(xié)同訓(xùn)練網(wǎng)絡(luò)模型。其目標損失函數(shù)J可定義為
本文實驗環(huán)境對于實驗數(shù)據(jù)的獲取有重大影響,本文的實驗是基于HEVC參考軟件HM16.5[4]開展的,所有配置采用默認幀內(nèi)編碼配置,即采用給定的encoder_intra_main.cfg[16]進行實驗數(shù)據(jù)的測定。本文提出的網(wǎng)絡(luò)是在CPH-Intra[17]數(shù)據(jù)集上訓(xùn)練并驗證的,該數(shù)據(jù)集是由2880×1920, 1536×1024以及768×512 3種分辨率各500張圖像視頻序列在4個QP{22, 27, 32, 37}值下的110, 105, 784條幀內(nèi)編碼樣本構(gòu)成的。整個數(shù)據(jù)集中,CU劃分與不劃分的樣本數(shù)量分別占總數(shù)的49.2%和50.8%。其中各QP值的85%構(gòu)成訓(xùn)練集,10%構(gòu)成測試集,5%構(gòu)成驗證集。此外,為了更好地展示本文網(wǎng)絡(luò)對于不同分辨率的測試序列都有著較好的預(yù)測性能,本文對JCT-VC給出的5類(A, B, C, D, E)不同分辨率下的10個標準序列[18]在4個QP值(22, 27, 32, 37)進行了驗證實驗。為了對編碼復(fù)雜度有一致的衡量標準,所有的實驗是在Intel(R) Core(TM) i5-8300H CPU @2.3 GHz, 8.00 GB RAM以及64位Windows 10操作系統(tǒng)的計算機上進行的。
由于MLFT-CNN是針對HEVC幀內(nèi)編碼模式的快速編碼算法,本文選取了2種目前在幀內(nèi)編碼具有代表性的算法進行比較。其中文獻[9]是目前機器學(xué)習(xí)方法中最具代表性的算法,文獻[14]是采用卷積神經(jīng)網(wǎng)絡(luò)的代表性算法。在檢驗所提模型性能時,采用提出算法相對于原始HM16.5編碼算法的時間節(jié)省百分比來衡量編碼復(fù)雜度的降低程度,可用式(8)表示,并采用了Bj?ntegaard比特率差值(Bj?ntegaard Delta Bit Rate, BDBR)和Bj?ntegaard峰值信噪比差值(Bj?ntegaard Delta Peak Signalto-Noise Rate, BD-PSNR)對視頻編碼性能進行評定[19]。其中,BDBR表示在同樣的客觀質(zhì)量下,兩種方法的碼率節(jié)省情況,BD-PSNR表示在給定的同等碼率下,兩種方法的亮度峰值信噪比的差異。
此外,本文是基于Tensorflow深度學(xué)習(xí)框架實現(xiàn)所有深度學(xué)習(xí)方法。在模型訓(xùn)練中使用Adam優(yōu)化算法[20]進行參數(shù)優(yōu)化,并設(shè)置初始學(xué)習(xí)率為3×10-4, 0.9的1階矩估計的指數(shù)衰減率和0.999的2階矩估計的指數(shù)衰減率為默認超參數(shù),同時采用學(xué)習(xí)率衰減和Dropout優(yōu)化技術(shù)避免模型過擬合。非線性激活函數(shù)使用Leaky-ReLU函數(shù)。
表1和表2分別展示了MLFT-CNN在CPH-Intra測試集和HEVC標準測試序列上的編碼復(fù)雜度下降程度和編碼性能差異。由表1可知,在QP值為22,27, 32, 37時,MLFT-CNN在編碼復(fù)雜度上分別平均降低了68.51%, 73.34%, 74.28%, 76.56%,與文獻[9]和文獻[14]方法相比,MLFT-CNN算法編碼復(fù)雜度下降得更多。需要說明的是,文獻[14]雖然也為利用深度卷積神經(jīng)網(wǎng)絡(luò)的編碼復(fù)雜度降低算法,且其在網(wǎng)絡(luò)模型的構(gòu)建上,參數(shù)更少,但由于其在判別是否需要從64×64分裂到32×32時,需要進行RDO搜索,所以其在編碼復(fù)雜度降低性能上不如MLFT-CNN。此外,文獻[14]和本文所提出的MLFTCNN對于不同的序列,其ΔT的標準差都小于ΔT平均值的1/10,可以證明在降低編碼復(fù)雜度性能上兩種算法都有著較好的穩(wěn)定性。為了更加直觀地對比3種算法在標準測試序列上的性能,圖5(a)展示了3種方法在不同QP值下的編碼時間節(jié)省百分比(中間值為平均值,上下的偏置為標準差)。從表1中展示出來的算法性能差異在表2中得到進一步證實,在不同QP值,不同標準視頻測試序列上,平均降低了70.96%的編碼復(fù)雜度。
表1 圖像測試序列結(jié)果
表2 HEVC標準測試序列結(jié)果
續(xù)表2
由于編碼復(fù)雜度的降低往往是通過犧牲編碼質(zhì)量實現(xiàn)的,評價降低編碼復(fù)雜度算法的好壞,還要進行視頻編碼質(zhì)量的比較。從表1和表2可以看出,本文所提MLFT-CNN盡管在圖像測試序列上BDBR平均增加1.688%,BD-PSNR平均造成–0.096 dB的性能下降。在HEVC標準測試序列BD-BR平均增加 4.063%,BD-PSNR平均造成–0.227 dB的性能下降,但在兩種測試序列上性能都要優(yōu)于文獻[9]和文獻[14]。圖5(b)和(c)分別給出了標準測試序列不同類別BD-BR和BD-PSNR對比圖。
圖5 標準測試序列編碼性能對比圖
綜上所述,MLFT-CNN要優(yōu)于上述兩種算法。之所以有這樣好的性能表現(xiàn),是因為本文提出的網(wǎng)絡(luò)結(jié)構(gòu),基于CU劃分過程的先驗信息能夠更好地擬合CU四叉樹劃分過程,因此能更好地學(xué)習(xí)CU劃分過程。
此外,在實驗過程中發(fā)現(xiàn)各算法在圖像測試序列上的性能都要優(yōu)于在標準測試序列上的測試結(jié)果,原因在于CPH-Intra數(shù)據(jù)集中由風(fēng)景、人物等幾類風(fēng)格相似的圖像組成的、紋理相似的CU會出現(xiàn)在訓(xùn)練、測試以及驗證集中,而在預(yù)測標準測試序列中一些室內(nèi)以及近距離場景圖像的紋理信息時預(yù)測準確度降低。因此,各算法在數(shù)據(jù)集上的表現(xiàn)要優(yōu)于HEVC標準測試序列。不過,MLTF-CNN在標準測試序列上也有上佳的表現(xiàn),證明了MLTFCNN能夠更好地學(xué)習(xí)CU劃分的深層特征,具有更好的魯棒性。
本文提出了一種針對HEVC幀內(nèi)編碼模式下CU劃分表征矢量預(yù)測的MLFT-CNN網(wǎng)絡(luò),為高實時性多媒體系統(tǒng)的視頻編碼應(yīng)用要求提供了切實可行的技術(shù)方案。主要貢獻在于利用視頻編碼過程的先驗信息設(shè)計模型,其中提出的降分辨率特征提取模塊可有效減少模型參數(shù),改進的通道注意力機制提升了特征的紋理表達能力,設(shè)計的特征傳遞機制強化了不同深度CU特征之間的關(guān)聯(lián)性,并在此基礎(chǔ)上設(shè)計了具有分段表達能力的目標損失函數(shù),多管齊下共同加速了HEVC的幀內(nèi)編碼過程。通過實驗結(jié)果可以看出,本文提出的MLFT-CNN在圖像視頻序列和HEVC不同級別的標準測試序列上都有著卓越的性能表現(xiàn),在標準測試序列上,編碼復(fù)雜度更是平均下降了70.96%,證明了本文算法的有效性。此外,通過與其他算法比較,表明了本文所提出的算法是一種有效深度融合編碼過程先驗信息的CU劃分結(jié)構(gòu)預(yù)測模型,可有效緩解HEVC編碼復(fù)雜度與編碼質(zhì)量的內(nèi)在矛盾,對于HEVC編碼標準在多媒體設(shè)備上的應(yīng)用有著重要意義。