徐藝文,李瑋蒙,劉 航,房 穎
(福州大學物理與信息工程學院,福建 福州 350108)
全景視頻是由多枚攝像頭對當前場景從某點以不同角度進行采集后拼接得到的球面視頻. 用戶戴上頭盔設(shè)備后,可以任意角度觀看視頻,從而獲得比普通平面視頻更佳的沉浸式體驗. 為提供良好的用戶體驗,全景視頻往往需要比平面視頻更高的幀率和空間分辨率,導致視頻編碼器的計算復雜度急劇上升,阻礙了其廣泛應(yīng)用. 復雜度優(yōu)化算法(complexity optimization algorithm,COA)犧牲可接受的視頻壓縮質(zhì)量以換取明顯的編碼復雜度下降,是解決上述問題的有效途徑,吸引了大量研究人員的興趣.
目前,針對平面視頻編碼的COA研究相對成熟,可作為全景視頻COA的重要參考,該類算法根據(jù)復雜度是否可變分為固定COA和自適應(yīng)COA. 固定COA采取保守率失真(rate distortion, RD)的策略對編碼器進行優(yōu)化,主要通過實驗發(fā)現(xiàn)某些編碼特性對相應(yīng)的編碼單元進行加速,在幾乎不損失RD性能的情況下,降低固定的編碼時間. 例如,文[1]利用不同深度編碼單元(coding unit,CU)之間的相關(guān)性加快了CU模式選擇過程,從而降低編碼復雜度; Lee等[2]統(tǒng)計了CU的RD代價,進而根據(jù)其特性提出了編碼模式快速劃分算法; 文[3]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)以及長短期記憶神經(jīng)網(wǎng)絡(luò)的CU劃分預(yù)測模型,并將其用于降低幀內(nèi)以及幀間編碼復雜度. 固定COA在實用中具有明顯的缺陷,即其減少的編碼復雜度是固定的,不能適應(yīng)實際應(yīng)用場景的需求變化(例如在某些終端計算能力不足的情況下,編碼器往往需要更低的編碼復雜度). 為克服此缺陷,自適應(yīng)COA應(yīng)運而生. 與固定COA不同,它采用靈活RD的策略對編碼器進行優(yōu)化,主要利用編碼參數(shù)與RD性能的關(guān)系對編碼器進行整體優(yōu)化,在不同的RD性能下減少最多的復雜度. 例如,利用幀間各編碼層中CU模式候選集與RD性能的依賴強弱,Zhao等[4]在不同的復雜度級別下合理調(diào)整各層CU模式候選集,降低RD性能損失. 文[5]基于博弈論在不同的復雜度級別對量化參數(shù)(quantization parameter,QP)以及CU劃分深度進行調(diào)整,從而達到最優(yōu)的RD性能. Zhang等[6]通過控制編碼樹單元(coding tree unit,CTU)的深度范圍,提出CTU級的自適應(yīng)COA. 文[7]提出一種基于隨機森林的復雜度控制方法,可對編碼時間進行精細的控制. 顯然,自適應(yīng)COA比固定COA具備更高的靈活性,在工業(yè)應(yīng)用中更具優(yōu)越性. 但是,以上自適應(yīng)COA均針對平面視頻場景而設(shè)計,未考慮全景視頻特性,不能直接應(yīng)用于全景視頻編碼.
全景視頻與平面視頻的最大差別在于視頻表現(xiàn)形式,即前者為球面形式而后者為平面形式. 全景視頻編碼中,需先將其從球面投影至平面,然后再利用平面視頻編碼框架進行編碼[8]. 投影過程使全景視頻編碼出現(xiàn)與平面視頻完全不同的特性. 近年來,隨著全景視頻的逐步推廣,適用于該類視頻的COA研究也逐漸引起研究人員的關(guān)注,并已取得少量成果. 例如,Wang 等[9]根據(jù)球面投影(equirectangular projection,ERP)帶來的失真特征提出一種快速幀內(nèi)預(yù)測算法,能在幾乎可忽略RD損失的情況下降低24.5%的幀內(nèi)編碼時間. Ray 等[10]根據(jù)ERP對全景內(nèi)容的不均勻采樣,提出一種自適應(yīng)的運動向量以及編碼塊最小寬度調(diào)整算法,在RD性能幾乎不變的情況下,可以減少11%的編碼時間. Zhang 等[11]首先根據(jù)ERP投影的失真特性自適應(yīng)地調(diào)整不同緯度區(qū)域的QP,然后根據(jù)視頻的時空相關(guān)性提前終止CU劃分,該算法平均可降低42.4%的編碼時間. 遺憾的是,由于全景視頻是近幾年才逐漸興起的新型視頻,當前針對該視頻的COA算法均為固定COA,適用范圍較窄,性能仍存在提升空間.
為解決上述問題,本研究在深入分析全景視頻特性的基礎(chǔ)上提出一種幀內(nèi)復雜度的自適應(yīng)分配算法,同時結(jié)合圖像組(group of pictures,GOP)級和幀級復雜度分配實現(xiàn)一個適用于全景視頻的自適應(yīng)COA,最后將該算法實現(xiàn)于目前流行的全景視頻編碼器平臺上,在實用環(huán)境中驗證所提算法的性能.
幀內(nèi)復雜度分配的目的是將視頻幀所得到的復雜度資源分配至各個幀內(nèi)編碼單元,使編碼器能夠在有限的資源下達到最佳的壓縮性能. 首先, 在分析全景視頻緯度特性的基礎(chǔ)上構(gòu)建編碼復雜度預(yù)測模型,實現(xiàn)幀內(nèi)緯度級的編碼復雜度分配; 然后, 構(gòu)建時間復雜度轉(zhuǎn)換模型,將編碼復雜度映射為時間復雜度,以確保編碼時間的穩(wěn)定性; 最后,結(jié)合以上兩個模型實現(xiàn)全景視頻的幀內(nèi)復雜度分配.
全景視頻是一種球形視頻,它在編碼前需先通過某種投影方式將球形視頻轉(zhuǎn)換為平面視頻,當前最常見的投影方式是ERP投影. 高效視頻編碼(high efficiency video coding,HEVC)標準[12]中所提的全景視頻ERP投影過程,如圖1所示. 編碼時將投影后的平面視頻根據(jù)最大CU寬度分為L個互不重疊的緯度區(qū)域,然后使用與平面視頻相同的編碼技術(shù)進行編碼.
視頻編碼中,編碼器的計算能力資源被定義為編碼復雜度因子(encoding complexity factor,ECF). 如圖2所示,編碼器通過給各編碼層次分配合適的ECF實現(xiàn)復雜度優(yōu)化[4],該過程一般分為四個層次,即全局ECF、 GOP級ECF、 幀級ECF以及緯度級ECF,本節(jié)研究的是緯度級ECF的分配問題.
圖2 復雜度分配總體方案Fig.2 Framework of complexity allocation
在低空間分辨率的平面視頻編碼中,通常將幀作為最小的復雜度分配單元. 而在全景視頻編碼中,由于其超高空間分辨率特性以及從球面投影至平面產(chǎn)生的影響,將緯度區(qū)域作為最小分配單元也許可以提升編碼的整體RD性能. 全景視頻經(jīng)過ERP(如圖1所示)投影后,不同緯度的視頻內(nèi)容被不同程度地拉伸,則可能導致幀內(nèi)紋理產(chǎn)生變化,從而影響CU的模式選擇過程. 通過對比平面視頻和全景視頻的CU數(shù)量分布情況來驗證全景視頻幀內(nèi)復雜度分配的必要性,其中平面視頻考察了BasketballDrive、 BQTerrace、 Cactus、 Kimono、 ParkScene等序列,全景視頻考察了AerialCity、 DrivingInCity、 Fengjing_1、 Hangpai_1、 Xinwen_1等序列. 同時,為便于對比, 將CU數(shù)量進行歸一化處理,結(jié)果如圖3所示.
圖3 平面視頻和全景視頻的CU數(shù)量分布Fig.3 CU number distributions of planar videos and panoramic videos
由于平面視頻空間分辨率(1 920 px × 1 080 px)與全景視頻空間分辨率(3 328 px ×1 664 px)有差異,所以圖3中平面視頻有16個采樣點,而全景視頻有26個采樣點. 從圖3可以明顯看出,平面視頻在不同緯度區(qū)域的CU分布差異不大,而全景視頻不同緯度區(qū)域之間的CU分布卻具有非常大的差異. 以上分析表明,全景視頻不同緯度區(qū)域所需復雜度資源具有顯著差異,因此對其進行差異化分配比傳統(tǒng)的平均分配方式可提升視頻壓縮性能,即幀內(nèi)復雜度按下式分配:
θm,n,l=θm,n·wm,n,l
(1)
顯然,為保證編碼質(zhì)量,wm,n,l不能取固定值,而應(yīng)隨視頻內(nèi)容的變化而變化. 考慮到視頻相鄰幀之間紋理具有非常高的相似性(相應(yīng)地也具有非常相似的模式選擇結(jié)果),利用相鄰已編碼幀的CU數(shù)量信息預(yù)測wm,n,l,從而實現(xiàn)視頻內(nèi)容自適應(yīng)的幀內(nèi)緯度級復雜度分配. 預(yù)測模型的原理如圖4所示.
圖4 w(m, n, l)預(yù)測模型的原理Fig.4 Prediction method of w(m, n, l)
該模型利用當前GOP中的前n個已編碼幀(0~n-1)在緯度上的CU數(shù)量分布信息預(yù)測當前編碼幀各緯度的wm,n,l,即:
(2)
為驗證上述預(yù)測模型的有效性,通過實驗測試其復雜度分配的準確性. 緯度區(qū)域的真實CU數(shù)量與幀內(nèi)平均值的比值可反映所需復雜度資源的高低. 該值大于1時,說明該緯度區(qū)域需要高復雜度; 小于1時,說明該緯度區(qū)域只需要低復雜度. 因此在實驗中,當wm,n,l與該比值一致時,被認為分配準確,否則認為分配不準確. 實驗使用了5個不同場景下的全景視頻,分別測試了在QP=22,27,32,37下的情況,測試結(jié)果如表1所示. 從表1可以看出,各個QP的平均預(yù)測準確率分別為0.91,0.94,0.95以及0.93,表明本研究所提方法具有較高的分配準確率,可滿足實際編碼需求.
表1 wm,n,l的預(yù)測準確性Tab.1 Predictive accuracy of wm,n,l
編碼時間與幀級ECF之間的線性關(guān)系對于幀內(nèi)復雜度分配十分重要. 如果它們之間不呈線性關(guān)系,那么用式(1)進行分配會導致幀內(nèi)編碼時間的不穩(wěn)定. 為此,測試了不同ECF相應(yīng)的編碼時間,并將其歸一化(定義該歸一化值為時間復雜度因子,time complexity factor,TCF),結(jié)果如圖5所示. 從圖5可看出,TCF與ECF并不具備良好的線性關(guān)系,因此,利用曲線擬合技術(shù)獲得ECF-TCF轉(zhuǎn)換模型如下:
pTCF=T(θ)=θ1.835
(3)
圖5 ECF-TCF的擬合結(jié)果Fig.5 Fitting results of the relationship between TCF and ECF
在實際編碼中,該轉(zhuǎn)換模型將用來確保幀內(nèi)編碼時間的穩(wěn)定性.
綜合上述方法可得幀內(nèi)緯度級的復雜度分配算法,即:當?shù)趍個GOP第n幀獲得的幀級ECF為θm,n時,首先利用式(3)將θm,n轉(zhuǎn)換為TCF; 然后利用式(1)進行緯度級TCF分配,確保幀內(nèi)編碼時間的穩(wěn)定性; 最后通過式(3)的逆變換將各緯度級TCF轉(zhuǎn)換為緯度級ECF,以此控制實際的CU模式選擇過程. 整體分配方案可描述為:
(4)
如前文1.1所述,全景視頻編碼器的復雜度分配主要分全局、 GOP級、 幀級和緯度級(幀內(nèi))等4級,本算法主要研究幀內(nèi)的復雜度分配,而其它級別的復雜度分配與已有算法[4]類似. 首先,通過參數(shù)配置確定全局ECF,即Θ; 然后,針對所有GOP分配相同ECF(各個GOP具有相同編碼時間),即θ1=θ2=…=θM-1=Θ; 接著,利用下式進行幀級ECF分配:
(5)
圖6 整體算法流程圖Fig.6 Flowchart of the overall algorithm
式中:N代表GOP中的視頻幀總數(shù);γn代表第n幀的RD損失對整個GOP的RD性能影響. 利用單純形法[13]可對式(5)進行求解并獲得幀級ECF(即θm,n); 最后根據(jù)式(4)進行幀內(nèi)復雜度分配. 總體算法的流程圖如圖6所示.
為驗證所提算法的有效性,在HEVC全景視頻編碼標準平臺(HM 16.16-360lib-5.0)上實現(xiàn)了所提算法,并在全景視頻標準測試環(huán)境[14]下與全景視頻標準編碼器進行性能對比. 測試集包含4個8 K視頻(Canolafield、 Highway、 Natatorium、 THEPLACE)以及7個4 K視頻(DrivingInCountry、 Fengjing_3、 Hangpai_2、 Hangpai_3、 Xinwen2、 Yanchanghui_1、 Yanchanghui_2). 每個視頻測試全局復雜度為0.5~0.9(間隔為0.1,即共5個復雜度,模擬實際應(yīng)用中的不同復雜度需求)的情況,其中各復雜度包含QP為22,27,32,37的情形. 評價指標采用BDBR[15]、 BD-WSPSNR[15-16]和時間節(jié)省(time saving,TS). 其中,BDBR用于衡量同等視頻質(zhì)量下,算法對比HEVC標準編碼器在碼率方面提升的百分比,值越大說明性能越差; BD-WSPSNR用于衡量同等碼率情況下,算法對比HEVC標準編碼器在WSPSNR(dB)上的提升,值越小說明性能越差; TS則表示算法對比HEVC標準編碼器編碼時間減少的百分比,體現(xiàn)編碼器計算復雜度的減少量. 所提算法8 K視頻的實驗結(jié)果如圖7所示.
圖7 8 K視頻實驗結(jié)果Fig.7 Experimental results of 8 K videos
從圖7可見,本算法可根據(jù)預(yù)設(shè)的全局復雜度將TS控制在25%~60%的較大范圍內(nèi)(全局復雜度越高,則TS越小),并將BDBR限制在2.7%以下,BD-WSPSNR限制在-0.1 dB以上,這說明在8 K視頻編碼場景,算法可在壓縮性能基本不變的情況下,根據(jù)不同的復雜度需求不同程度地降低編碼器復雜度. 另外,圖7中,BDBR以及BD-WSPSNR隨TS增長呈線性增長/減少趨勢,這說明在TS較大情況下,壓縮性能不易出現(xiàn)突降的情況(而是線性穩(wěn)定變化),則用戶可根據(jù)自身需求對編碼器的復雜度進行穩(wěn)定控制.
所提算法4 K視頻的實驗結(jié)果如圖8所示. 該圖表明,除了序列Yanchanghui_1以外,利用本算法同樣能在基本不影響壓縮性能的前提下,根據(jù)預(yù)設(shè)的全局復雜度將TS控制在25%~60%的范圍內(nèi),這說明本文算法具有較強的適應(yīng)性. 序列Yanchanghui_1中,本算法在低復雜度(全局ECF為0.5和0.6)場景下帶來了相對較高的BDBR損失(雖然TS接近60%),該性能明顯不如其它序列,其原因可能在于該視頻中具有大量的快速場景變換,導致所提基于幀間相關(guān)性的復雜度預(yù)測不夠準確. 實際編碼中,針對該類視頻應(yīng)設(shè)置較高的全局復雜度,以確保視頻壓縮質(zhì)量. 另外,綜合對比圖7和圖8可看出,本算法在4 K和8 K視頻中的性能差別不大(8 K視頻的壓縮質(zhì)量略好,但其TS略差),表明視頻分辨率對算法性能幾無影響,算法性能可保持較強的一致性.
圖8 4 K視頻實驗結(jié)果Fig.8 Experimental results of 4 K videos
為進一步驗證本算法性能,將文[6]算法實現(xiàn)于相同編碼平臺,并在相同測試環(huán)境中與本算法進行性能對比,結(jié)果如圖9所示. 從圖9可見,隨著TS增大,本算法在BDBR上的增長和BD-WSPSNR上的下降均明顯慢于文[6]算法. 這意味著在相同復雜度情況下, 本算法的RD損失更小,即本算法對比文[6]算法能在復雜度與壓縮性能之間取得更優(yōu)的平衡. 同時也表明,盡管全景視頻與平面視頻采用了相同的編碼框架,但在全景視頻編碼中需考慮其從球面映射到平面所產(chǎn)生的投影特性,以提高編碼器性能.
圖9 性能對比結(jié)果Fig.9 Performance comparison results
復雜度優(yōu)化算法對于視頻編碼器的實際應(yīng)用具有重大意義,尤其是自適應(yīng)復雜度優(yōu)化算法可以根據(jù)實際情況調(diào)節(jié)編碼器以滿足需求,是當前視頻編碼領(lǐng)域的研究熱點. 但是,眾所周知,目前在全景視頻編碼領(lǐng)域暫未有自適應(yīng)COA被提出,而平面視頻編碼領(lǐng)域的自適應(yīng)COA直接應(yīng)用于全景視頻性能不佳. 為解決此問題,設(shè)計實驗深入分析了全景視頻的緯度特性,在此基礎(chǔ)上提出幀內(nèi)編碼復雜度預(yù)測模型和時間復雜度轉(zhuǎn)換模型,進而利用此兩個模型實現(xiàn)一種新的適用于全景視頻的自適應(yīng)幀內(nèi)復雜度優(yōu)化算法,并最終將該算法實現(xiàn)于當前最新版本的HEVC全景視頻編碼平臺. 實驗結(jié)果表明,所提算法在不同全景視頻場景下均取得良好的性能,具備實用價值.