李 維,范彩霞
(西安理工大學(xué)印刷包裝與數(shù)字媒體學(xué)院,西安 710048)
信息化浪潮正以前所未有的廣度和深度影響著人們生活的方方面面。視頻作為一種內(nèi)容傳播載體,逐漸成為人們生活中不可或缺的重要組成部分,而隨著網(wǎng)絡(luò)技術(shù)和電子技術(shù)的快速發(fā)展,超高清視頻在遠(yuǎn)程教育、醫(yī)療檢測、虛擬現(xiàn)實等任務(wù)得到廣泛應(yīng)用。人們能夠通過終端設(shè)備便捷地獲取到豐富的視頻內(nèi)容,但視頻數(shù)據(jù)量的爆炸性增長給視頻編碼技術(shù)帶來了新的挑戰(zhàn)。
目前,高效視頻編碼標(biāo)準(zhǔn)H.265/HEVC[1]憑借其較高的編碼效率逐步滲透到媒體產(chǎn)品中,然而由于版權(quán)問題限制了HEVC 的進(jìn)一步推廣和使用。聯(lián)合視頻專家組JVET 制定了新一代高效視頻編碼標(biāo)準(zhǔn)H.266/VVC[2],目標(biāo)是提供比HEVC 更優(yōu)越的編碼性能,并支持360°視頻和HDR 視頻的編解碼。H.266/VVC 沿用H.265/HEVC 中的混合編碼框架,如幀內(nèi)幀間預(yù)測、熵編碼等,但同時引入多種新的編碼技術(shù),如基于四叉樹加二叉樹加三叉樹的塊分割結(jié)構(gòu)、67 種幀內(nèi)預(yù)測模式、仿射運動補償預(yù)測、自適應(yīng)運動矢量精度、多核變換、自適應(yīng)環(huán)路濾波等。在眾多候選模式中,需要借助率失真優(yōu)化(Rate Distortion Optimization,RDO)技術(shù)[3-4],通過獲取率失真代價來確定最優(yōu)的編碼模式。這種模式判決方法在給定目標(biāo)碼率的條件下可以為用戶提供最優(yōu)的視頻質(zhì)量,但同時增加了編碼復(fù)雜度。每一種候選幀內(nèi)的預(yù)測模式均需經(jīng)過預(yù)測、變換、量化、熵編碼、反量化和反變換過程,占用大量的硬件資源,為實際應(yīng)用帶來了困難。
快速編碼方法受到了業(yè)界的廣泛關(guān)注。李躍等[5]提出一種提前Merge 模式終止算法,該算法終止了多余候選模式的判決過程。JAMALI 等[6]利用變換域殘差來預(yù)測率失真代價,并通過排除不可能成為最優(yōu)的預(yù)測模式來降低編碼復(fù)雜度。TARIQ[7]根據(jù)相鄰塊率失真代價的動態(tài)變化預(yù)測當(dāng)前塊的率失真代價,并通過最小化率失真代價確定最優(yōu)的預(yù)測模式。此外,TARIQ[8]借助智能優(yōu)化算法,通過分析和研究幀內(nèi)預(yù)測模式判決的特性,建立新的目標(biāo)函數(shù)來選取最優(yōu)預(yù)測模式。上述方法主要針對H.265/HEVC 中35 種幀內(nèi)預(yù)測模式判決進(jìn)行優(yōu)化,并不適用于H.266/VVC。針對H.266/VVC 的67 種幀內(nèi)預(yù)測模式判決,ZOUIDI 等[9]利用相鄰塊的統(tǒng)計信息來縮小當(dāng)前塊在粗略模式判決模塊中的候選模式集合,該方法從統(tǒng)計的角度選擇候選模式集合,忽略了幀內(nèi)模式判決原理和編碼工具的影響,在降低編碼復(fù)雜度的同時編碼效率衰減較大。本文提出一種幀內(nèi)預(yù)測模式快速判決方法,基于幀內(nèi)預(yù)測編碼原理,利用率失真優(yōu)化理論建立適用于視頻特性的碼率預(yù)測模型,同時采用上下文信息預(yù)測編碼失真,并根據(jù)率失真代價確定最優(yōu)幀內(nèi)預(yù)測模式。
為進(jìn)一步利用空間相關(guān)性來去除視頻幀內(nèi)容的冗余,H.266/VVC 引入67 種幀內(nèi)預(yù)測模式,包括多角度模式、Planar 模式和DC 模式[10-11]。圖1 給出了67 種幀內(nèi)預(yù)測模式。依據(jù)視頻的紋理特性,通過使用幀內(nèi)預(yù)測模式判決,從眾多模式中選擇一種最優(yōu)的模式來最大化H.266/VVC 的幀內(nèi)編碼效率。圖2 給出了量化參數(shù)(Quantization Parameter,QP)為22 時視頻Basket ballPass_416×240 第1 幀的最優(yōu)幀內(nèi)預(yù)測模式,其中不同灰度對應(yīng)不同的預(yù)測角度,可以看出最優(yōu)幀內(nèi)預(yù)測模式可以較好地反映空域方向特性。
圖1 67 種幀內(nèi)預(yù)測模式Fig.1 The sixty-seven intra prediction modes
圖2 視頻幀選用的最優(yōu)幀內(nèi)預(yù)測模式Fig.2 The optimal intra prediction mode selected for video frames
幀內(nèi)預(yù)測模式判決主要借助于拉格朗日優(yōu)化技術(shù)實現(xiàn)。每一種模式經(jīng)過預(yù)測、變換、量化、熵編碼、反量化、反變換、像素重構(gòu)等步驟得到編碼碼率和編碼失真,然后計算率失真代價,通過比較率失真代價來確定最優(yōu)的預(yù)測模式。在H.266/VVC 中,幀內(nèi)預(yù)測模式判決方法分為粗略模式判決(Rough Mode Decision,RMD)和率失真優(yōu)化兩部分[12]。首先以哈達(dá)瑪變換后的絕對誤差和Ds為失真測度,計算幀內(nèi)預(yù)測模式的率失真代價Js:
其中:λs為拉格朗日因子;Rs表示編碼幀內(nèi)預(yù)測模式所消耗的比特數(shù)。依據(jù)式(1),選擇M種最可能的最優(yōu)幀內(nèi)預(yù)測模式組成最可能模式集(MPM)。因為幀內(nèi)預(yù)測模式從原先的35 種增加到67 種,所以M也從原先的3 種增加到6 種。然后對MPM 中的每一種幀內(nèi)預(yù)測模式進(jìn)行RDO 編碼,選擇率失真代價Je最小的模式作為最優(yōu)幀內(nèi)預(yù)測模式:
其中:λe表示拉格朗日因子;Re表示幀內(nèi)預(yù)測模式的編碼比特數(shù)和預(yù)測殘差的編碼比特數(shù)之和;De表示均方誤差和。圖3 給出了H.266/VVC 第i種預(yù)測模式的判決流程,其中M為預(yù)測模式總數(shù)。
圖3 H.266/VVC 幀內(nèi)預(yù)測模式判決流程Fig.3 Decision procedure of H.266/VVC intra prediction mode
雖然多種模式可以很好地捕獲幀中任意方向的視頻信息,但給編碼器帶來了超負(fù)荷的運算量和超長的處理時延,這對基于H.266/VVC 的多媒體業(yè)務(wù)拓展是極為不利的。表1 給出不同QP 下序列采用幀內(nèi)預(yù)測模式判決方法的耗時情況,其中RMD 編碼時間平均約占總編碼時間的11.28%,RDO 編碼時間平均約占總編碼時間的48.14%??梢钥闯?,RDM 耗時較小,RDO 耗時較大,這是因為RDO 模塊需要運行一系列的編碼工具,所以編碼復(fù)雜度更高。此外,相同分辨率下內(nèi)容復(fù)雜的視頻比內(nèi)容簡單的視頻耗時長。因此,本文方法一方面需考慮視頻序列的特性,另一方面需考慮編碼中應(yīng)用的具體工具,通過借助RMD 模塊得到的編碼信息來建立快速模式判決方法,在保證編碼效率的同時盡量降低編碼的復(fù)雜度。
表1 RMD 和RDO 占總編碼時間的比率Table 1 Ratio of total coding time to that of RMD and RDO
由于H.266/VVC 幀內(nèi)預(yù)測模式判決主要依據(jù)拉格朗日優(yōu)化來確定最優(yōu)模式,因此本文分別從碼率和失真兩個角度入手來建立預(yù)測模式快速判決方法。
通常變換域的殘差可以被描述為零均值的高斯分布:
其中:x表示殘差;δh表示殘差的標(biāo)準(zhǔn)差;e 為自然常數(shù)。以均方誤差和作為失真測度,殘差經(jīng)過量化后的理論率失真模型[13]如下:
在高比特率或低失真的情況下,殘差的編碼碼率[14]如下:
其中:α=0.5。幀內(nèi)預(yù)測模式主要采用基于上下文模型的熵編碼,該編碼碼率可以通過RMD 模塊得到:
總的編碼碼率Re為:
上述碼率預(yù)測方法不僅考慮了視頻特性,還考慮了變換、量化和熵編碼的影響,可在降低編碼復(fù)雜度的同時最大化編碼效率。
碼率預(yù)測過程需要使用變換域殘差的標(biāo)準(zhǔn)差δ。假設(shè)變換前殘差塊大小為N×N,則殘差系數(shù)c(x,y)經(jīng)DCT 變換[15]后得到的殘差矩陣如下:
若參數(shù)D(k)為已知量,則方差和矩陣P的 計算如下:
其中:ρ表示水平方向和垂直方向上像素值之間的相關(guān)性,本文中取0.6[16]。由于參數(shù)δp反映的是像素域的標(biāo)準(zhǔn)差,可通過平均絕對差值m近似[17]:
通過結(jié)合式(10)和式(12)即可計算出DCT 域標(biāo)準(zhǔn)差。
由于H.266/VVC 編碼使用標(biāo)量量化技術(shù),導(dǎo)致像素經(jīng)反編碼后無法恢復(fù)到原始值而引起失真。根據(jù)幀內(nèi)編碼原理,位于(i,j)位置處的像素失真d可表示為原始像素值p與重構(gòu)像素值p?之差:
其中:pp表示采用某種幀內(nèi)預(yù)測模式后得到的像素預(yù)測值;pe表示原始像素值與預(yù)測像素值之差;pe?表示重構(gòu)像素值與預(yù)測像素值之差??紤]到當(dāng)前像素與參考像素具有強相關(guān)性,且都使用相同的量化參數(shù),因此當(dāng)前像素的編碼失真可以借助參考像素的編碼失真d(ri,rj)進(jìn)行預(yù)測:
最終編碼塊的總失真如下:
失真預(yù)測方法不僅考慮了當(dāng)前塊的預(yù)測誤差,同時間接考慮了標(biāo)量量化技術(shù)的影響,有助于設(shè)計準(zhǔn)確的幀內(nèi)預(yù)測模式判決方法。
首先,使用RMD 方法從67 種幀內(nèi)預(yù)測模式中選擇M種最有可能成為最優(yōu)幀內(nèi)預(yù)測模式的候選模式。然后,分別計算這M種候選模式的編碼碼率和編碼失真,按照式(2)獲取每種候選模式的總代價Je,從中選擇總代價最小的預(yù)測模式作為編碼塊的最優(yōu)幀內(nèi)預(yù)測模式。幀內(nèi)預(yù)測模式判決通過利用相鄰塊信息以及編碼塊特性,在RMD 的基礎(chǔ)上跳過H.266/VVC 中原有的RDO 編碼,一方面有利于降低整個幀內(nèi)預(yù)測模式選擇的編碼時間,另一方面可以最大化保留幀內(nèi)編碼性能。圖4 給出了H.266/VVC幀內(nèi)預(yù)測模式快速判決流程。
圖4 H.266/VVC 幀內(nèi)預(yù)測模式快速判決流程Fig.4 Fast decision procedure of H.266/VVC intra prediction mode
為驗證本文方法的性能,將其加入到H.266/VVC 原有算法中進(jìn)行測試。實驗硬件平臺為Windows10,CPU 為1.8 GHz,處理器為Intel Core i7-8550,內(nèi)存為8.00 GB。在All_Intra 配置[18]下使用測試軟件平臺VTM[19]對標(biāo)準(zhǔn)視頻序列進(jìn)行測試。序列選用JVET 提供的不同場景下的Class B、Class C、Class D、Class E 視頻,其各自對應(yīng)的分辨率分別為1 920 像素×1 080 像素、832 像素×480 像素、416 像素×240 像素、1 280 像素×720 像素。編碼配置的量化參數(shù)分別為22、27、32 和37,總編碼幀數(shù)為200。本文從編碼效率和編碼復(fù)雜度兩方面來驗證并分析本文方法的編碼性能。
本文使用相關(guān)系數(shù)Rc和相對誤差Ra來分析碼率預(yù)測與失真預(yù)測的準(zhǔn)確性。Ra的計算公式如下:
其中:Ra表示真實值Va相對于預(yù)測值Ve的偏離程度。表2 給出了碼率預(yù)測模型和失真預(yù)測模型的平均相關(guān)系數(shù)和相對誤差,其中,碼率預(yù)測模型的平均相關(guān)系數(shù)和相對誤差分別為0.85 和0.14,失真預(yù)測模型的平均相關(guān)系數(shù)和相對誤差分別為0.82 和0.25??梢钥闯觯a率預(yù)測模型和失真預(yù)測模型的準(zhǔn)確度較高,預(yù)測值與實際值具有較好的一致性。
表2 碼率與失真預(yù)測模型的相關(guān)系數(shù)和相對誤差Table 2 The correlation coefficient and relative error relative to bit rate and distortion prediction model
本文使用比特率差值ΔR作為評價指標(biāo)[20]來評價H.266/VVC 編碼的率失真性能。表3 給出了不同類別序列下本文方法和文獻(xiàn)[9]方法與H.266/VVC原始方法的編碼性能對比結(jié)果??梢钥闯?,本文方法的比特率平均增加了1.53%,文獻(xiàn)[9]方法的比特率平均增加了1.71%,表明在保證一定視頻質(zhì)量的情況下,本文方法對編碼效率的影響更小,這是因為其從視頻序列特性本身以及H.266/VVC 的編碼原理兩方面入手來構(gòu)建幀內(nèi)預(yù)測模式快速判決方法。
表3 本文方法和文獻(xiàn)[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來度量編碼復(fù)雜度,ΔT的計算公式如下:
其中:Tp表示本文方法所消耗的編碼時間;To表示原始方法所消耗的編碼時間。表4 給出了本文方法和文獻(xiàn)[9]方法與H.266/VVC 原始方法的編碼時間對比結(jié)果。可以看出,與H.266/VVC 原始方法相比,本文方法的編碼時間平均降低31.2%,文獻(xiàn)[9]的編碼時間平均降低15.5%。與文獻(xiàn)[9]方法對比,本文對編碼復(fù)雜度的貢獻(xiàn)更大。綜合上述結(jié)果可知,本文所提的幀內(nèi)預(yù)測模式快速判決方法在最大化編碼效率的同時,為H.266/VVC 編碼器減少了更多的編碼時間。
表4 本文方法和文獻(xiàn)[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 %
在視頻編碼中,幀內(nèi)預(yù)測模式判決模塊是重要的編碼模塊,也是編碼耗時較長的模塊。本文針對H.266/VVC 幀內(nèi)預(yù)測模式判決中的RDO 子模塊,提出一種考慮視頻內(nèi)容特性及幀內(nèi)編碼原理的快速幀內(nèi)預(yù)測模式判決方法。利用殘差概率分布建立碼率預(yù)測模型,結(jié)合像素域中的上下文信息構(gòu)建失真預(yù)測模型,根據(jù)總的率失真代價從候選模式集中確定幀內(nèi)預(yù)測模式。實驗結(jié)果表明,該方法在對編碼效率影響較小的情況下有效降低了編碼復(fù)雜度。下一步將研究不同特性視頻的快速幀內(nèi)編碼方法,以期在降低編碼時間的同時進(jìn)一步提升編碼效率。