何書前,余緒杭,鄧正杰
(1.海南師范大學 信息科學技術(shù)學院,海南 海口 571158;2.海南師范大學 信息網(wǎng)絡與數(shù)據(jù)中心,海南 ???571158)
相對于H.264/AVC,高效視頻編碼H.265/HEVC幀內(nèi)編碼采用了更加豐富的編碼單元結(jié)構(gòu)組合、變換單元大小組合和35種編碼模式等高計算復雜度的編碼工具,帶來50%以上率失真性能的提升;其中,計算復雜度占比重最大的模塊是率失真最優(yōu)化的編碼單元選擇,該部分計算復雜度占比達到了50%以上[1,2]。2020年7月7日下一代視頻編解碼標準H.266/VVC(versatile video coding)制定完成,相比于H.265/HEVC,針對4K/8K視頻應用率失真性能進一步提高一倍。當前,因視覺技術(shù)的成熟與發(fā)展,視覺傳感器網(wǎng)絡得到了廣泛的應用,節(jié)點數(shù)大,因此,急需投入成本低,消耗功率小,能夠達到實時高清視頻通信的具有一定產(chǎn)業(yè)基礎視覺終端。現(xiàn)階段能夠滿足該需求的唯有H.265/HEVC能夠符合。如何降低H.265/HEVC預測編碼的計算復雜度,實現(xiàn)視覺傳感器網(wǎng)絡的實時視頻通信,已成為當前視覺傳感器網(wǎng)絡大規(guī)模應用的研究熱點問題。預測編碼中幀內(nèi)編碼方式在計算復雜度和降低功耗方面都比幀間編碼更有優(yōu)勢,本文針對以上應用場景提出一種高效的幀內(nèi)編碼方法。
近年來,很多學者在H.265/HEVC和H.266/VVC幀內(nèi)優(yōu)化領域取得了大量成果[3-20],提出了多種快速幀內(nèi)優(yōu)化方法,在保持率失真性能較小損失的同時大大降低計算復雜度[3-6]。其中,Zhang Y等[3]基于空間相鄰編碼單元的紋理和編碼單元深度遞歸預測當前編碼單元的深度范圍,利用統(tǒng)計模型來優(yōu)化提前中止和提前跳過編碼單元決策。Zhang T等[4]分別提取了深度差、Hadamard變換代價與率失真代價為特征,用于線性支持向量機執(zhí)行CU拆分與中止決策。文獻[5]在每個編碼單元大小上設定提前終止條件,提出了一種基于分層方法的有效復雜度控制算法。Lim K等[6]利用圖像復雜度和自適應深度預測來進行早期分割CU決策,并在提前中止CU決策過程中使用了貝葉斯決策規(guī)則和二次判別分析。諸志龍等[7]分析了相鄰CU之間的統(tǒng)計相關(guān)性,融合已編碼幀率失真代價,用于更新CU決策算法參數(shù),控制誤差傳播。Kim TS等[8]提出了一種使用分層和跳過方法的HEVC幀內(nèi)預測的自適應快速模式?jīng)Q策算法。Tariq J等[9]使用Hadamard計算代價,并結(jié)合時空相關(guān)統(tǒng)計特性來改善初始模式范圍,也使用了最優(yōu)停止理論預測提前中止決策。Podder PK等[10]通過引入人的視覺特征,有效地選擇合適的塊劃分模式來降低HEVC編碼器的時間復雜度。Correa G等[11]基于HEVC編碼樹塊(coding tree block,CTB)的動態(tài)約束,以解決權(quán)衡率失真性能條件下的計算復雜度控制問題。文獻[10-15]結(jié)合了編碼單元和模式選擇優(yōu)化,進一步降低計算復雜度。最典型的方法是文獻[15],結(jié)合了絕對變換差分低成本代價和Prewitt算子來估計率失真代價,減少預測幀內(nèi)模式處理,大大降低了幀內(nèi)模式選擇的計算復雜度。
近幾年,文獻[15-20]中引入機器學習方法,融合了多種解決方案。Xu M等[16]通過卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)和長短期記憶(long short-term memory,LSTM)網(wǎng)絡抽取特征向量,直接預測獲得最佳的幀內(nèi)與幀間編碼單元分塊結(jié)構(gòu),從而極大降低了預測編碼非最優(yōu)模式的率失真計算復雜度。Sun HM等[17]則使用多種神經(jīng)網(wǎng)絡模式來映射相鄰參考信息與當前傳統(tǒng)編碼模式的關(guān)系,以獲得更準確的最佳模式集合,降低了幀內(nèi)編碼的比特率。Wang Y等[18]提出了一種用于幀內(nèi)角度預測的多尺度卷積神經(jīng)網(wǎng)絡,將角度預測信息與相鄰數(shù)據(jù)輸入神經(jīng)網(wǎng)絡,得到更準確的預測塊,平均節(jié)省3.4%比特率。Dong X等[19]針對H.266/VVC幀內(nèi)編碼環(huán)境,利用機器學習分類器針對集中特殊模式選擇進行提前判決,并結(jié)合提前終止算法,節(jié)省了計算復雜度。Zhang Q等[20]基于隨機森林分類器(random forest classifier,RFC)模型的快速編碼單元分割和基于紋理區(qū)域特征的快速幀內(nèi)預測模式優(yōu)化,節(jié)省了54.91%的編碼時間,BDBR幾乎不變。這類方法因其需要配置更多的計算和存儲資源支持深度神經(jīng)網(wǎng)絡,無法在H.265/HEVC的視覺傳感器網(wǎng)絡推廣。
無論是編碼單元提前中止還是幀內(nèi)模式判決,幀內(nèi)預測編碼還有進一步的優(yōu)化提升空間。本文利用不同編碼單元深度的非紋理(殘差編碼之外信息)代價和紋理(殘差編碼信息)率失真代價之間的關(guān)系,定義了一種編碼單元內(nèi)容復雜度的判定準則。利用內(nèi)容復雜度與編碼單元判決條件之間的關(guān)系,提出了一種簡單高效的H.265/HEVC幀內(nèi)編碼單元提前中止閾值方法。同時,分析了最優(yōu)編碼單元結(jié)構(gòu)深度的統(tǒng)計特性和空間相關(guān)性,預測當前編碼單元最佳的初始編碼深度,節(jié)省了非最佳深度范圍的處理。
H.265/HEVC幀內(nèi)預測過程是將待編碼幀分割為一序列相同大小的正方形編碼單元,每個編碼單元根據(jù)四叉樹的結(jié)構(gòu)進行迭代分割,分割大小從64×64到8×8的尺寸,每個編碼單元再進行35種編碼模式的代價計算,最終選擇代價最小的編碼分割組合作為最佳的預測編碼結(jié)果。下面主要從非紋理信息與紋理代價的角度分析最佳編碼單元選擇結(jié)果。對編碼內(nèi)容來說,包含不同對象的區(qū)域,選擇較大的編碼單元意味著較高的預測殘差,但編碼結(jié)構(gòu)、模式和變換等非紋理信息則較小;相反,選擇較小的編碼單元和復雜的編碼分割結(jié)構(gòu)將獲得更高的預測殘差精度,但要求傳輸更多的非紋理參數(shù)信息。
每個編碼單元模式選擇由量化參數(shù)和視頻內(nèi)容決定。一般來說,小的編碼深度(大的編碼單元尺寸)更適合于平滑區(qū)域,而大的編碼深度(小的編碼單元尺寸)對高紋理復雜內(nèi)容更有效。為了驗證以上的觀察結(jié)果,本文選擇3個紋理特征有明顯差異的視頻序列(BasketballDrill、Kimono和BQTerrace)進行驗證實驗測試,采用原始HM編碼器的全搜索率失真最優(yōu)化幀內(nèi)編碼模式選擇,量化參數(shù)為22、27、32和37,編碼幀數(shù)為50幀。結(jié)果見表1,最佳的編碼單元深度“0”、“1”、“2”和“3”的平均占比分別為19.8%、33.7%、19.9%和26.6%。對不同紋理復雜度的視頻序列各種比例也不一樣,如高紋理復雜序列“BasketballDrill”中,“0”深度的比重較小,在0.6%~1.7%的范圍;而與平滑內(nèi)容的視頻序列“Kimono”比較,深度“0”為最佳編碼單元大小的比例較高(為25.6%~38.3%)。從以上數(shù)據(jù)可以得出:最佳編碼單元大小與視頻內(nèi)容紋理復雜度有明顯的對應關(guān)系,可通過當前編碼單元內(nèi)容復雜度預測最佳的編碼單元大小。另外,大多數(shù)編碼結(jié)果選擇前3個低深度最佳編碼單元,在高量化參數(shù)情況下更為明顯。以視頻序列“BQTerrace”為例,最佳深度“3”的比例變化較大,從量化參數(shù)22至37,占比差異達到了22%。根據(jù)H.265/HEVC編碼器中編碼單元編碼順序,即從“0”到“3”進行順序迭代分割編碼,最佳編碼單元深度為非“3”時,省略后續(xù)的編碼單元處理對最佳編碼選擇并無影響。同時,最佳編碼單元深度為“2”或“3”時,可省略“0”和“1”深度的計算復雜度。因此,可選擇最佳編碼單元深度范圍預測和提前中止方法,將在不改變編碼性能的情況下節(jié)省大量的編碼計算復雜度。
表1 最優(yōu)編碼單元深度分布結(jié)果/%
根據(jù)以上分析,本節(jié)將介紹基于非紋理信息與紋理代價關(guān)系提出的編碼單元大小提前中止閾值算法,并融合空間率失真代價統(tǒng)計特性,提出初始編碼單元深度預測算法,通過分級簡化幀內(nèi)預測的四叉樹CU大小決策過程計算復雜度來加快編碼過程。
在幀內(nèi)預測編碼中,編碼單元從最大64×64尺寸,分割為最小8×8單元尺寸,每個編碼單元固定用35種模式進行預測編碼,在編碼單元分割結(jié)構(gòu)和模式表示所用的比特數(shù)與編碼結(jié)構(gòu)深度存在單調(diào)線性關(guān)系。本文通過分析紋理信號和非紋理信息之間的關(guān)系,推導出一種編碼單元深度之間存在穩(wěn)定關(guān)系的判別準則。根據(jù)紋理殘差和非紋理信息的分類,每個最大的編碼單元比特率由非紋理信息和紋理信息組成
R=Rnontexture+Rtexture
(1)
式中:Rnontexture為非紋理信息,包括了殘差信息之外的頭信息和量化參數(shù)等,Rtexture為紋理殘差信號經(jīng)過變換量化和熵編碼得到的比特數(shù)。將式(1)代入率失真代價函數(shù)JRD=SSE(Qp)+λ×R, 其中SSE為失真平方和,率失真代價則分解為兩個部分
(2)
式中:JRDtexture、JRDnontexture分別為紋理代價和非紋理代價,紋理代價包含了殘差的失真和碼率,非紋理代價包含了非紋理信息,信息與失真通過歸一化參數(shù)λ統(tǒng)一尺度。非紋理信息由編碼單元的分割結(jié)構(gòu)決定,即編碼單元深度越大,則編碼分割結(jié)構(gòu)越復雜,非紋理信息則越多;因此,當前深度的非紋理信息小于下一層深度的非紋理信息,則非紋理代價深度間關(guān)系如下
JRDnontexture,dpi (3) (4) 從非紋理代價與編碼單元深度之間的關(guān)系,可以得到紋理代價與編碼單元深度之間的關(guān)系 JRDtexture,dpi>JRDtexture,dpi+1 (5) 其中, JRDtexture,dpi=SSEdpi(Qp)+λRtexture,dpi(Qp), 由于JRDtexture,dpi (6) 因此,存在一個確定最佳率失真代價的中止閾值TH,當TOC小于該閾值時,后續(xù)深度編碼可被省略而不影響編碼率失真性能。當然,也可以用計算復雜度換取一定的性能損失,為確定合適的TOC中止閾值,以最大限度降低CU編碼的計算復雜度的同時保證編碼性能不變。通過定義參數(shù)ω統(tǒng)一計算復雜度和編碼效率的尺度,將該優(yōu)化問題構(gòu)建為非約束的最優(yōu)化問題。 首先,定義最佳的中止代價 J(TH)=PA(TH)+ω×TR(TH) (7) 其中,在中止閾值TH確定之后,TR為計算復雜度縮小率(%) (8) PA表示中止閾值結(jié)果的準確率 (9) 一個合適的TOC閾值TH選擇,實現(xiàn)在較高的預測精度的情況下獲得較高的計算復雜度降低率。該最佳的優(yōu)化問題可表述為 (10) ω為預測精度和計算復雜度之間的權(quán)衡因子。以上最優(yōu)函數(shù)的求解過程,可得 (11) 從式(11),相對于TH、PA和TR之間存在耦合關(guān)系,即最佳中止閾值為PA增加率等于TR的降低率時的折中結(jié)果。在實際操作中,因PA和TR的取值范圍均為[0,1],為簡化權(quán)重因子的選擇,將ω參數(shù)設置為1。式(11)則簡化為 (12) 如圖1所示,將TOC的分布取值與編碼結(jié)果統(tǒng)計PA、TR值對應分析,為視頻序列“Kimono”量化參數(shù)為27采集的數(shù)據(jù),選擇最低的TOC值0.5時,預測精度保證100%,計算復雜度降低了12%;在測試實驗中保證預測精度80%以上,TOC的最佳中止閾值為0.6,以保證編碼性能。 圖1 PA和TR相對于TOC分布關(guān)系 幀內(nèi)編碼從64×64的編碼單元大小執(zhí)行率失真最優(yōu)化編碼,直至8×8的編碼單元大小,選擇最優(yōu)的編碼單元組合,存在最優(yōu)深度范圍 [dpimin_o,dpimax_o], 其中, dpimin_o為初始最小深度級,當深度級小于初始最小深度時,可省略當前深度級的代價計算。這里討論如何確定dpimin_o。 因率失真最優(yōu)化選擇方法,該最優(yōu)的深度范圍與每一深度級率失真編碼代價具有高相關(guān)性。首先得到64×64深度級的率失真編碼代價RDdpi=0, 如RDdpi=0小于預選閾值TRD0=α×min(RDopt,i), 則判定該單元為平滑紋理單元,即最佳深度級為“0”;其中, RDopt,i為空間相鄰(上、左、左上、右上)已編碼單元的最佳率失真代價;如RDdpi=0大于預選閾值,最佳深度dpimin_o>0。 定義當前編碼單元深度為“0”時,以該“0”級代價區(qū)域分為4個編碼單元“0、1、2、3”,如圖2所示,第j個區(qū)域(j為0,1,2,3)的紋理復雜度為第j個“0”深度代價與該區(qū)域最佳代價比值: Cj=RDdpi=0,j/RDopt,j, 其中,因RDdpi=0,j≥RDopt, 則Cj≥1。 當前編碼單元最佳率失真代價預測值為相鄰編碼單元的最小代價 RDopt_pre=min{RDopt,i} (13) 則可得當前單元的紋理復雜度預測值為: Cpre=RDdepth0,cur/RDopt_pre。 將相鄰編碼單元的紋理復雜度按升序排序: C1≤C2≤C3≤C4; 最優(yōu)初始深度級可按照下式確定 (14) dpimax_o的確定是上一節(jié)中介紹的提前中止閾值算法來確定。 圖2 深度層級關(guān)系 從第2節(jié)分析中可知,各類深度為最佳分割單元所占的比重較為均勻,可采用分類處理的辦法節(jié)省計算復雜度。對于最佳深度為“0”或“1”的編碼單元,可采用提前中止后續(xù)深度單元的計算;對于最佳深度為“2”和“3”的編碼單元,可省略“0”和“1”深度單元的計算;從而達到降低計算復雜度的同時保持最佳編碼性能不變。本文的編碼單元優(yōu)化算法具體流程如圖3所示,具體步驟如下:首先對“0”級深度進行率失真最優(yōu)化代價計算,利用時空相鄰已編碼單元相關(guān)性信息,可提前確定“0”級最優(yōu)選擇閾值,根據(jù)該閾值判定該“0”級代價是否符合最佳編碼單元;其次,“0”級率失真編碼代價與最優(yōu)編碼單元分割存在相關(guān)性,利用該關(guān)系可準確預測最佳深度范圍的初始最小深度級,如當前編碼深度小于該最小深度級,則省略該編碼深度級的計算;最后,編碼深度級均未滿足以上2個條件,則進入當前深度級率失真最優(yōu)化處理,可利用深度級之間的非紋理和紋理代價比值之間的固有線性關(guān)系,在保證達到最佳編碼深度級的前提下,提前中止后續(xù)編碼深度級單元的處理。 圖3 整體算法流程 本文中,選擇H.265/HEVC參考軟件平臺HM15,實驗中選擇默認的幀內(nèi)率失真最優(yōu)化預測編碼作為對比參考,并選擇H.265/HEVC幀內(nèi)編碼單元快速選擇算法[15]進行比較。實驗中,編碼環(huán)境選擇為:全部為幀內(nèi)編碼,最大編碼單元為64×64,最大的深度為4。采用JCT-VC推薦的5類視頻序列:A(4K×4K),B(1080p),C(WVGA),D(QWVGA) 和E(720p)作為測試視頻。選擇4種量化參數(shù)22、27、32和37。編碼結(jié)果的對比參數(shù)指標選擇平均比特率變化BDBR(%),平均峰值信噪比BD-PSNR(dB)和默認配置HM15的編碼時間縮小率 (15) 式中:TFast為快速算法得到的處理時間,THM為原始參考軟件模型得到的處理時間。 表2為本文方法中初始編碼單元深度預測和提前中止閾值方法的單獨比較。一方面,初始編碼單元深度預測實現(xiàn)了平均25%的編碼時間降低率,BDBR提高了0.34%,幾乎沒有損失編碼效率。對一些視頻序列,最佳編碼單元深度范圍比較集中,排除較多的非最佳深度編碼處理,帶來較大計算量的下降,如”Johnny”、“BQTerrace”、“Cacus”、“Kimono”和“ParkScene”視頻序列,降低計算量從17.7%至35.4%不等,最高1.14%的BD-Rate增加。以上數(shù)據(jù)表明,初始編碼單元深度預測有效預測當前編碼單元初始深度,準確判決最佳的“0”深度單元,在保證編碼性能不變的同時,降低了計算復雜度。另一方面,提前中止閾值實現(xiàn)40.28%的編碼時間降低率,BDBR增加了0.27%,損失相對初始編碼單元深度預測較少的編碼效率。對不同的視頻內(nèi)容,由于紋理內(nèi)容的特性不同,得到的結(jié)果也不一樣;如“PartyScene”、“Kimono”、“BasketballDrill”視頻序列包含較低的紋理復雜度,最大復雜度降低率達到了54.1%;而“BQTerrace”則包含較高的紋理信息,只獲得23.1%的計算復雜度減小率。對于大部分低紋理特性的視頻序列“Traffic”,“BasketballDrill”,“Cactus”,“PartyScene”,“Kimono”,“FourPeople”和“Johnny”,本文快速方法均實現(xiàn)了高于42%的計算復雜度降低率。而對于高紋理內(nèi)容的視頻序列“BQTerrace”,“RaceHorse”和“BQMall”,計算復雜度節(jié)省率的范圍在23.1%~37.5%之間。因此,從以上分析可以得到,本文方法對紋理內(nèi)容復雜度的準確預測,并提前中止后續(xù)的計算代價,引起0.27%的性能損失。 表2 本文方法與HM的對比結(jié)果 表3為聯(lián)合初始編碼單元深度預測和提前中止閾值方法的判決算法得到的結(jié)果,并與近年同類典型的算法[15]進行了比較。無論是編碼時間節(jié)省還是客觀的BDBR、BD-PSNR性能,本文方法均優(yōu)于文獻[15]。在各類編碼性能均優(yōu)于文獻[15],相比于文獻[15]算法,編碼時間多節(jié)省了2.06%,BDBR節(jié)省了0.84%比特率,BD-PSNR提高了0.011 dB。對于各類(A,B,C,D和E)視頻測試序列,本文方法實現(xiàn)了34.5%~69.1%編碼時間的優(yōu)化,編碼性能損失BDBR平均增加了0.49%,BD-PSNR損失了-0.039。而文獻[15]降低了39.6%~49.7%的編碼時間,增加了1.33%的BDBR,BD-PSNR損失了0.05 dB。在各類視頻序列中,本文方法因引入了“0”深度最佳編碼單元判決,相比于文獻[15]方法,帶來了較高的編碼時間節(jié)省,最高達到了69.1%,而文獻[15]方法最高只達到49.7%。綜上所述,聯(lián)合初始編碼單元深度預測方法,本文方法實現(xiàn)較高計算復雜度降低的同時,達到了編碼率失真性能幾乎不變的目標。 表3 本文方法與文獻[15]的對比結(jié)果 本文圍繞視覺傳感器網(wǎng)絡對視覺節(jié)點對視頻編碼器低成本、低功耗和低延時的需求,針對幀內(nèi)預測編碼計算復雜度的優(yōu)化問題,提出了一種高效的混合優(yōu)化編碼方案。其中,分析了H.265/HEVC標準編碼單元深度的統(tǒng)計分布與視頻編碼內(nèi)容之間的關(guān)系;采用省略非最優(yōu)深度級的計算復雜度而不影響編碼性能的策略,提出了一種高效的快速幀內(nèi)編碼算法。算法包括了兩個重要的編碼單元大小提前中止方法:①利用64×64編碼單元的率失真代價,提前判決64×64是否為最佳深度,并精確預測初始最小深度級;②以非紋理復雜度和紋理率失真復雜度的比重為基本判決準則,推導出該準則與編碼單元深度之間存在一種單調(diào)遞減關(guān)系。利用判決準則與編碼單元深度之間的關(guān)系,提出了編碼單元最佳的提前中止閾值方法。實驗結(jié)果顯示,對于各類不同的視頻內(nèi)容序列,本文方法在保持編碼性能不變的情況下,計算復雜度平均降低了48.74%。3.2 初始最佳深度預測
3.3 本文算法整體流程
4 實驗結(jié)果分析
5 結(jié)束語