李 維,范彩霞
(西安理工大學印刷包裝與數字媒體學院,西安 710048)
信息化浪潮正以前所未有的廣度和深度影響著人們生活的方方面面。視頻作為一種內容傳播載體,逐漸成為人們生活中不可或缺的重要組成部分,而隨著網絡技術和電子技術的快速發展,超高清視頻在遠程教育、醫療檢測、虛擬現實等任務得到廣泛應用。人們能夠通過終端設備便捷地獲取到豐富的視頻內容,但視頻數據量的爆炸性增長給視頻編碼技術帶來了新的挑戰。
目前,高效視頻編碼標準H.265/HEVC[1]憑借其較高的編碼效率逐步滲透到媒體產品中,然而由于版權問題限制了HEVC 的進一步推廣和使用。聯合視頻專家組JVET 制定了新一代高效視頻編碼標準H.266/VVC[2],目標是提供比HEVC 更優越的編碼性能,并支持360°視頻和HDR 視頻的編解碼。H.266/VVC 沿用H.265/HEVC 中的混合編碼框架,如幀內幀間預測、熵編碼等,但同時引入多種新的編碼技術,如基于四叉樹加二叉樹加三叉樹的塊分割結構、67 種幀內預測模式、仿射運動補償預測、自適應運動矢量精度、多核變換、自適應環路濾波等。在眾多候選模式中,需要借助率失真優化(Rate Distortion Optimization,RDO)技術[3-4],通過獲取率失真代價來確定最優的編碼模式。這種模式判決方法在給定目標碼率的條件下可以為用戶提供最優的視頻質量,但同時增加了編碼復雜度。每一種候選幀內的預測模式均需經過預測、變換、量化、熵編碼、反量化和反變換過程,占用大量的硬件資源,為實際應用帶來了困難。
快速編碼方法受到了業界的廣泛關注。李躍等[5]提出一種提前Merge 模式終止算法,該算法終止了多余候選模式的判決過程。JAMALI 等[6]利用變換域殘差來預測率失真代價,并通過排除不可能成為最優的預測模式來降低編碼復雜度。TARIQ[7]根據相鄰塊率失真代價的動態變化預測當前塊的率失真代價,并通過最小化率失真代價確定最優的預測模式。此外,TARIQ[8]借助智能優化算法,通過分析和研究幀內預測模式判決的特性,建立新的目標函數來選取最優預測模式。上述方法主要針對H.265/HEVC 中35 種幀內預測模式判決進行優化,并不適用于H.266/VVC。針對H.266/VVC 的67 種幀內預測模式判決,ZOUIDI 等[9]利用相鄰塊的統計信息來縮小當前塊在粗略模式判決模塊中的候選模式集合,該方法從統計的角度選擇候選模式集合,忽略了幀內模式判決原理和編碼工具的影響,在降低編碼復雜度的同時編碼效率衰減較大。本文提出一種幀內預測模式快速判決方法,基于幀內預測編碼原理,利用率失真優化理論建立適用于視頻特性的碼率預測模型,同時采用上下文信息預測編碼失真,并根據率失真代價確定最優幀內預測模式。
為進一步利用空間相關性來去除視頻幀內容的冗余,H.266/VVC 引入67 種幀內預測模式,包括多角度模式、Planar 模式和DC 模式[10-11]。圖1 給出了67 種幀內預測模式。依據視頻的紋理特性,通過使用幀內預測模式判決,從眾多模式中選擇一種最優的模式來最大化H.266/VVC 的幀內編碼效率。圖2 給出了量化參數(Quantization Parameter,QP)為22 時視頻Basket ballPass_416×240 第1 幀的最優幀內預測模式,其中不同灰度對應不同的預測角度,可以看出最優幀內預測模式可以較好地反映空域方向特性。

圖1 67 種幀內預測模式Fig.1 The sixty-seven intra prediction modes

圖2 視頻幀選用的最優幀內預測模式Fig.2 The optimal intra prediction mode selected for video frames
幀內預測模式判決主要借助于拉格朗日優化技術實現。每一種模式經過預測、變換、量化、熵編碼、反量化、反變換、像素重構等步驟得到編碼碼率和編碼失真,然后計算率失真代價,通過比較率失真代價來確定最優的預測模式。在H.266/VVC 中,幀內預測模式判決方法分為粗略模式判決(Rough Mode Decision,RMD)和率失真優化兩部分[12]。首先以哈達瑪變換后的絕對誤差和Ds為失真測度,計算幀內預測模式的率失真代價Js:

其中:λs為拉格朗日因子;Rs表示編碼幀內預測模式所消耗的比特數。依據式(1),選擇M種最可能的最優幀內預測模式組成最可能模式集(MPM)。因為幀內預測模式從原先的35 種增加到67 種,所以M也從原先的3 種增加到6 種。然后對MPM 中的每一種幀內預測模式進行RDO 編碼,選擇率失真代價Je最小的模式作為最優幀內預測模式:

其中:λe表示拉格朗日因子;Re表示幀內預測模式的編碼比特數和預測殘差的編碼比特數之和;De表示均方誤差和。圖3 給出了H.266/VVC 第i種預測模式的判決流程,其中M為預測模式總數。

圖3 H.266/VVC 幀內預測模式判決流程Fig.3 Decision procedure of H.266/VVC intra prediction mode
雖然多種模式可以很好地捕獲幀中任意方向的視頻信息,但給編碼器帶來了超負荷的運算量和超長的處理時延,這對基于H.266/VVC 的多媒體業務拓展是極為不利的。表1 給出不同QP 下序列采用幀內預測模式判決方法的耗時情況,其中RMD 編碼時間平均約占總編碼時間的11.28%,RDO 編碼時間平均約占總編碼時間的48.14%。可以看出,RDM 耗時較小,RDO 耗時較大,這是因為RDO 模塊需要運行一系列的編碼工具,所以編碼復雜度更高。此外,相同分辨率下內容復雜的視頻比內容簡單的視頻耗時長。因此,本文方法一方面需考慮視頻序列的特性,另一方面需考慮編碼中應用的具體工具,通過借助RMD 模塊得到的編碼信息來建立快速模式判決方法,在保證編碼效率的同時盡量降低編碼的復雜度。

表1 RMD 和RDO 占總編碼時間的比率Table 1 Ratio of total coding time to that of RMD and RDO
由于H.266/VVC 幀內預測模式判決主要依據拉格朗日優化來確定最優模式,因此本文分別從碼率和失真兩個角度入手來建立預測模式快速判決方法。
通常變換域的殘差可以被描述為零均值的高斯分布:

其中:x表示殘差;δh表示殘差的標準差;e 為自然常數。以均方誤差和作為失真測度,殘差經過量化后的理論率失真模型[13]如下:

在高比特率或低失真的情況下,殘差的編碼碼率[14]如下:

其中:α=0.5。幀內預測模式主要采用基于上下文模型的熵編碼,該編碼碼率可以通過RMD 模塊得到:

總的編碼碼率Re為:

上述碼率預測方法不僅考慮了視頻特性,還考慮了變換、量化和熵編碼的影響,可在降低編碼復雜度的同時最大化編碼效率。
碼率預測過程需要使用變換域殘差的標準差δ。假設變換前殘差塊大小為N×N,則殘差系數c(x,y)經DCT 變換[15]后得到的殘差矩陣如下:

若參數D(k)為已知量,則方差和矩陣P的 計算如下:

其中:ρ表示水平方向和垂直方向上像素值之間的相關性,本文中取0.6[16]。由于參數δp反映的是像素域的標準差,可通過平均絕對差值m近似[17]:

通過結合式(10)和式(12)即可計算出DCT 域標準差。
由于H.266/VVC 編碼使用標量量化技術,導致像素經反編碼后無法恢復到原始值而引起失真。根據幀內編碼原理,位于(i,j)位置處的像素失真d可表示為原始像素值p與重構像素值p?之差:

其中:pp表示采用某種幀內預測模式后得到的像素預測值;pe表示原始像素值與預測像素值之差;pe?表示重構像素值與預測像素值之差。考慮到當前像素與參考像素具有強相關性,且都使用相同的量化參數,因此當前像素的編碼失真可以借助參考像素的編碼失真d(ri,rj)進行預測:

最終編碼塊的總失真如下:

失真預測方法不僅考慮了當前塊的預測誤差,同時間接考慮了標量量化技術的影響,有助于設計準確的幀內預測模式判決方法。
首先,使用RMD 方法從67 種幀內預測模式中選擇M種最有可能成為最優幀內預測模式的候選模式。然后,分別計算這M種候選模式的編碼碼率和編碼失真,按照式(2)獲取每種候選模式的總代價Je,從中選擇總代價最小的預測模式作為編碼塊的最優幀內預測模式。幀內預測模式判決通過利用相鄰塊信息以及編碼塊特性,在RMD 的基礎上跳過H.266/VVC 中原有的RDO 編碼,一方面有利于降低整個幀內預測模式選擇的編碼時間,另一方面可以最大化保留幀內編碼性能。圖4 給出了H.266/VVC幀內預測模式快速判決流程。

圖4 H.266/VVC 幀內預測模式快速判決流程Fig.4 Fast decision procedure of H.266/VVC intra prediction mode
為驗證本文方法的性能,將其加入到H.266/VVC 原有算法中進行測試。實驗硬件平臺為Windows10,CPU 為1.8 GHz,處理器為Intel Core i7-8550,內存為8.00 GB。在All_Intra 配置[18]下使用測試軟件平臺VTM[19]對標準視頻序列進行測試。序列選用JVET 提供的不同場景下的Class B、Class C、Class D、Class E 視頻,其各自對應的分辨率分別為1 920 像素×1 080 像素、832 像素×480 像素、416 像素×240 像素、1 280 像素×720 像素。編碼配置的量化參數分別為22、27、32 和37,總編碼幀數為200。本文從編碼效率和編碼復雜度兩方面來驗證并分析本文方法的編碼性能。
本文使用相關系數Rc和相對誤差Ra來分析碼率預測與失真預測的準確性。Ra的計算公式如下:

其中:Ra表示真實值Va相對于預測值Ve的偏離程度。表2 給出了碼率預測模型和失真預測模型的平均相關系數和相對誤差,其中,碼率預測模型的平均相關系數和相對誤差分別為0.85 和0.14,失真預測模型的平均相關系數和相對誤差分別為0.82 和0.25。可以看出,碼率預測模型和失真預測模型的準確度較高,預測值與實際值具有較好的一致性。

表2 碼率與失真預測模型的相關系數和相對誤差Table 2 The correlation coefficient and relative error relative to bit rate and distortion prediction model
本文使用比特率差值ΔR作為評價指標[20]來評價H.266/VVC 編碼的率失真性能。表3 給出了不同類別序列下本文方法和文獻[9]方法與H.266/VVC原始方法的編碼性能對比結果。可以看出,本文方法的比特率平均增加了1.53%,文獻[9]方法的比特率平均增加了1.71%,表明在保證一定視頻質量的情況下,本文方法對編碼效率的影響更小,這是因為其從視頻序列特性本身以及H.266/VVC 的編碼原理兩方面入手來構建幀內預測模式快速判決方法。

表3 本文方法和文獻[9]方法與H.266/VVC 原始方法的編碼性能對比Table 3 Comparison of coding performance of the proposed method and Literature[9]method compared with H.266/VVC original method %
本文使用編碼時間差ΔT來度量編碼復雜度,ΔT的計算公式如下:

其中:Tp表示本文方法所消耗的編碼時間;To表示原始方法所消耗的編碼時間。表4 給出了本文方法和文獻[9]方法與H.266/VVC 原始方法的編碼時間對比結果。可以看出,與H.266/VVC 原始方法相比,本文方法的編碼時間平均降低31.2%,文獻[9]的編碼時間平均降低15.5%。與文獻[9]方法對比,本文對編碼復雜度的貢獻更大。綜合上述結果可知,本文所提的幀內預測模式快速判決方法在最大化編碼效率的同時,為H.266/VVC 編碼器減少了更多的編碼時間。

表4 本文方法和文獻[9]與H.266/VVC 原始方法的編碼時間對比Table 4 Comparison of coding time of the proposed method and Literature[9]method compared with H.266/VVC original method %
在視頻編碼中,幀內預測模式判決模塊是重要的編碼模塊,也是編碼耗時較長的模塊。本文針對H.266/VVC 幀內預測模式判決中的RDO 子模塊,提出一種考慮視頻內容特性及幀內編碼原理的快速幀內預測模式判決方法。利用殘差概率分布建立碼率預測模型,結合像素域中的上下文信息構建失真預測模型,根據總的率失真代價從候選模式集中確定幀內預測模式。實驗結果表明,該方法在對編碼效率影響較小的情況下有效降低了編碼復雜度。下一步將研究不同特性視頻的快速幀內編碼方法,以期在降低編碼時間的同時進一步提升編碼效率。