劉 鵬 羅 娜 寇俊楠
(西安郵電大學電子工程學院 西安 710061)
隨著人們對視頻質量需求的上升,H.264/AVC在高清視頻壓縮應用方面已經(jīng)不能滿足人們的需求[1]。視頻編碼聯(lián)合協(xié)作小組在2013年1月發(fā)布了高效率視頻編碼(High Efficiency Video Coding,HEVC)標準[2],每個模塊都對 H.264[3]中原有的技術加以改進,在有限帶寬下傳輸更高質量的視頻。但HEVC的四叉樹[4~6]遞歸結構使得計算量增加2~3倍,限制了其快速在視頻領域應用。在不影響視頻質量的情況下降低HEVC的復雜度是目前研究的主要方向[7]。
國內外的幀間預測快速算法研究中,F(xiàn)ang[8]等計算每個待編碼單元(CU)及其子塊的幀差離散度(FDD)和運動特征(RMF)確定的候選幀間預測模式。Shen[9]通過時空域相鄰CU的加權進行深度值預測。Hou[10]利用率失真代價確定的閾值來提前終止CU的分割;Yang[11]利用上層預測單元(PU)的運動矢量作為當前PU的運動矢量,減少了運動估計的次數(shù);Zhang[12]提出了以最小絕對變化差值和(Sum of Absolute Transformed Differenc?es,SATD)為選取最優(yōu)模型準則的方法,有效解決了變形運動下merge模式參數(shù)增多的問題,但在普通激烈程度畫面的應用效果一般。Tan[13]利用相關CU的深度差值信息優(yōu)化,同時對菱形搜索進行改進,但未考慮視頻序列的差異性,因此搜索結果與最優(yōu)結果存在誤差。
以上算法多利用時空域相關性,未能充分考慮到不同視頻序列的差異性波動,導致編碼圖像質量有所下降。本文通過計算區(qū)域離散度和相關性,充分利用圖像信息,減少CU和PU的遍歷數(shù)量,預測準確性提高。
H.265不同于H.264中CU的固定大小,每一幀圖像首先按順序被依次分割為64×64大小的LCU,如圖1所示,一個CU可以不進行劃分,也可以進一步以四叉樹[14]形式劃分為均分為更小的CU,編碼深度從0到3,相應的CU的大小為64×64、32×32、16×16和8×8。
PU劃分是在CU劃分的基礎上。對于一個2N×2N的CU模式,幀內預測PU劃分模式有2N×2N和N×N兩種;幀間預測[15]PU可選模式有4種對稱模式(2N×2N、N×N、2N×N、N×2N)、4種非對稱模式(2N×nD、2N×nU、nL×2N、nR×2N)、skip模式。PU的模式劃分如圖2所示。
圖2 幀間PU預測模式
官方參考軟件HM14.0[16]中對一個CU依次按Merge2N ×2N、skip、inter模式下的4種對稱 PU 劃分、inter模式下的4種非對稱劃分的順序,從以上所有模式中選出率失真代價最小的CU分割模式和PU劃分模式[17]。這是幀間預測計算量大的主要原因。
對于視頻圖像,如圖3所示,圖像紋理較復雜的區(qū)域對應的殘差分布不均勻,需要用小尺度的CU精確地描述復雜的區(qū)域信息,而圖像紋理較為平坦的區(qū)域CU往往采用尺度大的CU來減少碼率[18~19]。因此,可以根據(jù)區(qū)域離散度 MD(Mea?sures of Dispersion)的大小來判斷圖像中CU塊像素平坦程度,以此來預測CU劃分深度的大致范圍。
圖3 BasketballDrill中一幀的CU劃分
CU的尺寸大小與區(qū)域的像素離散度有密切關系。因此,對圖像CU塊的MD定義如下:
其中MDid表示深度為d的第i個子CU的離散度,Eid表示深度為d的第i個子CU的像素均值,同樣Ejd-1深度為d-1的第j個CU的像素均值,且Ejd-1可由其四叉樹劃分下的四個Eid得來。Ejd-1的計算如式(2)。
為避免子CU塊均處于紋理復雜而均值相似出現(xiàn)誤判的情況,先將所有LCU塊劃分至最低深度,按自下向上的順序依次判決,高層的CU像素均值可以由低層的四個CU均值相加除4得到,對離散度滿足條件的四個CU進行逐層合并。
統(tǒng)計離散度,對每個深度設置閾值Td,當四個深度為d+1的CU的離散度有一個大于當前深度閾值時,當前四個CU不進行合并,并等待當前LCU層所有深度為d+1的CU判定完畢后,進入上一層CU計算。為減少計算量,每個離散度大于閾值的CU,對其父CU不再計算,并做標記。當一個CU被做標記,則跳過此CU及與其相關的三個CU的離散度計算,并將其父CU做標記,直至CU深度為0。
MD計算公式中進行了歸一化,在平坦區(qū)域中,MD在0.25浮動,在復雜區(qū)域MD會偏離0.25。統(tǒng)計不同復雜度視頻不同深度下,已劃分的四個CU中最大離散度MDmax如表1所示。
表1 各深度子CU的最大MD取值范圍
由表1可知,復雜區(qū)域CU的MDmax在[0.26,0.5]之間。統(tǒng)計最大深度分別為1、2、3的各CU的MDmax取值范圍,盡可能保證劃分準確性的情況下,各深度閾值如表2。
表2 各深度CU的MDmax閾值
算法流程如下:
1)將LCU劃分至最大深度。
2)判斷當前深度CU是否為最上層CU,是則跳至步驟5,否則進入下一步。
3)計算當前深度下的各CU離散度MDid,當一個CU存在不可合并標記,這個CU和其一組的共四個CU不進行計算。
4)每四個CU一組,比較各CU離散度與當前深度下閾值Td的大小。四個CU均滿足MDid
5)當前LCU預劃分結束。
視頻是由連續(xù)的幀組成,相鄰的兩幀往往有著很強的關聯(lián)性。但因不同視頻幀中運動物體的波動,相鄰的PU劃分往往有所差別,因此提出時域相關性決策算法。利用相鄰兩幀CU的相關性,選擇可能性極大的PU模式,對所選的模式進行率失真判決。
式3中,CUcol表示當前 CU 的同位CU[21],E(CUcol)表示同位CU的均值,CUcur是當前CU的均值。δ(CUcur)與δ(CUcol)分別表示當前CU像素的方差與同位CU的方差,同位CU的方差。
對CUcol模式為幀內和幀間分開討論。
CUcol預測模式為為幀內預測時,建立相關性與CU劃分之間的關系如表3。
表3 CUcol為幀內預測時相關性與PU模式關系
相關度落在[0.95,0.1]時,兩個CU相似度極高,采用Skip和2N×2N模式,加入到RA4;相關度落在[0.9,0.95]時,兩個CU相似,但圖像中存在幅度不大的位移情況,采用2N×nU、2N×nD、nL×2N、nR×2N模式,加入到RA3;相關度落在[0.8,0.9]之間時,圖像位移幅度較大,或者輕微的形變,采用2N×N、N×2N、N×N模式,加入到RA2。當相關性落在[0,0.8]時,兩CU相關性不大,遍歷所有模式,加入到RA1。
類似CUcol為幀內模式,若CUcol為幀間模式,按照相關性大小劃分為四個區(qū)間,分別對應ER1至ER4,具體對應關系如表4。
表4 CUcol為幀間預測時相關性與PU模式關系
在計算相關性時和離散度時均用到了像素均值,因此將CU和PU的模式?jīng)Q策優(yōu)化結合到一起,算法總流程見圖4。
圖4 基于塊相關的HEVC幀間快速決策算法
為了測試基于時域相關性的算法性能,以HM14.0為測試模型,對提出的算法進行了實現(xiàn),測試的視頻選用標準測試序列,序列信息如表5。
選用了不同分辨率和不同運動程度的序列。硬件配置為CPU Intel Core i5-8400,內存為8G,操作系統(tǒng)為Windows 10,IDE(Integrated Development Environment)選用Microsoft Visual Studio 2010。量化參數(shù)QP取常用的22、27、32、37四種,配置文件取 encoder_lowdelay_main.cfg和 encoder_randomac?cess_main.cfg。對性能的評估采用同等碼率下峰值信噪比 BD-PSNR(delta peak signal-to-noise rate)和相對編碼時間差TD,TD計算如下:
測試結果如表6。
表5 測試序列信息
由表6可知,在PSNR略微下降的情況下,降低了約30%的編碼時間。對于運動劇烈的視頻如BasketballPass和Basketball-Drill,畫面中存在快速位移,相鄰幀時域相關性較差,時間性能提升較平坦視頻差一些。但算法整體上有效地降低了幀間預測的計算時間。
表6 序列測試結果統(tǒng)計
利用圖像自身的紋理信息,通過離散度對CU劃分進行預處理,減小CU需要遍歷的深度,在PU模式?jīng)Q策中,利用相鄰幀之間的時域相關性,縮小PU模式?jīng)Q策需要遍歷的范圍。在保證圖像質量基本不變的情況下,編碼時間減少了26%以上,大幅度降低了幀間預測編碼中的計算量。