溫潔 楊帆 潘旭冉 王曉宇 范海瑞
摘要 新一代視頻編碼標(biāo)準(zhǔn)VP9與上一代標(biāo)準(zhǔn)VP8相比性能提升了近1倍,且它的開源特性使得其在視頻編碼領(lǐng)域取得了廣泛應(yīng)用,但是編碼性能提高的同時(shí)帶來了編碼復(fù)雜度的增加,從而對(duì)一些實(shí)時(shí)的視頻應(yīng)用產(chǎn)生很大影響。因此本文通過對(duì)編碼單元模式劃分復(fù)雜度過高問題的影響因素進(jìn)行分析,提出基于深度學(xué)習(xí)的視頻編碼單元選擇算法,該算法首先選擇對(duì)編碼復(fù)雜度很高的塊劃分進(jìn)行研究,主要針對(duì)超級(jí)塊劃分模式的選擇進(jìn)行了優(yōu)化。應(yīng)用深度學(xué)習(xí)中的全連接神經(jīng)網(wǎng)絡(luò)模型作為劃分模型,輸入特征向量為36個(gè),輸出是具體的塊劃分模式,訓(xùn)練方式選擇離線訓(xùn)練。其次,為了進(jìn)一步的簡(jiǎn)化模型結(jié)構(gòu)同時(shí)提升分類器的性能,將對(duì)復(fù)雜度很高的四叉樹遞歸劃分方式進(jìn)行優(yōu)化,并根據(jù)具體的量化參數(shù)(QP)值和塊大小得到不同的結(jié)構(gòu),以便得到1個(gè)4層二分類模型。最后,通過對(duì)不同復(fù)雜視頻圖像應(yīng)用簡(jiǎn)化版的四叉樹進(jìn)行測(cè)試,測(cè)試結(jié)果與原四叉樹遞歸算法相比編碼復(fù)雜度降低很多,編碼復(fù)雜度平均降低比例高達(dá)77.84%,編碼效率得到了很大的提升。
關(guān) 鍵 詞 視頻圖像編碼;VP9;編碼單元?jiǎng)澐?深度學(xué)習(xí);SAD值
中圖分類號(hào) TN919.81? ? ?文獻(xiàn)標(biāo)志碼 A
Abstract The performance of the new generation video coding standard VP9 is nearly double that of the previous generation VP8, and its open source characteristics make it widely used in the field of video coding. However, the improvement of coding performance brings about an increase in coding complexity, which has a great impact on some real-time video applications. Therefore, this paper proposes a video coding unit selection algorithm based on deep learning after analyzing the influencing factors of the problem of excessively high coding unit mode partitioning. The algorithm selects the block partition with high coding complexity, mainly for super block partitioning. The choice of mode is optimized. The fully connected neural network model in deep learning is applied as the partition model, and the input feature vector is 36. The output is a specific block partition mode, and the training mode selects offline training. Secondly, in order to further simplify the model structure and improve the performance of the classifier, the recursive partitioning method of the highly complex quadtree is optimized, and different structures are obtained according to the specific QP value and block size, so as to obtain a four-layer-two-classification model. Finally, by applying a simplified version of the quadtree to different complex video images, the test results are much simpler than the original quadtree recursive algorithm. The average coding complexity is reduced by 77.84%, and the coding efficiency has been greatly improved.
Key words video image coding; VP9; coding unit partition; deep learning; SAD value
0 引言
VP9[1-3]是Google針對(duì)上一代視頻編碼標(biāo)準(zhǔn)VP8[4]進(jìn)行優(yōu)化新推出的新一代編碼標(biāo)準(zhǔn),主要涉及的改進(jìn)技術(shù)包括:引入超大塊概念可對(duì)更大的編碼區(qū)域進(jìn)行處理;對(duì)一些參考幀采用了動(dòng)態(tài)的方式進(jìn)行選擇;對(duì)熵編碼也進(jìn)行了相關(guān)的優(yōu)化等。這些新技術(shù)確實(shí)帶來了壓縮效率的提高,但也引入了其他的問題,比如超級(jí)塊技術(shù)的引入,可以在同等質(zhì)量的視頻下,降低近一半的碼率,但是會(huì)出現(xiàn)編碼復(fù)雜度的大幅度提高的現(xiàn)象,這種編碼性能的提高以編碼復(fù)雜度為代價(jià)的方式,使其在實(shí)時(shí)的編碼應(yīng)用場(chǎng)景下效果不太理想。針對(duì)上述問題已有大量的研究文獻(xiàn)出現(xiàn),文獻(xiàn)[5]提出了編碼單元模式判別與預(yù)測(cè)單元(PU)模式判別的優(yōu)化算法,利用了率失真(RD)代價(jià)相關(guān)度、空域相近塊與父塊之間的預(yù)測(cè)模式相關(guān)度來獲取當(dāng)前塊的劃分方式。文獻(xiàn)[6]提出了利用父塊和子塊之間RD代價(jià)的差異性來進(jìn)行判斷是否進(jìn)行四叉樹遞歸劃分的終止動(dòng)作。文獻(xiàn)[7]利用了SVM作為分類器進(jìn)行模式劃分的預(yù)測(cè),對(duì)RD代價(jià)性能的影響進(jìn)行了考量。文獻(xiàn)[8]利用了聚類算法進(jìn)行幀間模式預(yù)測(cè),輸入主要涉及時(shí)空域、相關(guān)的RD代價(jià)值。上述算法優(yōu)化基本上采用的方式是機(jī)器學(xué)習(xí)加上RD代價(jià)及時(shí)空域相關(guān)性的方式,這類優(yōu)化方式可以對(duì)簡(jiǎn)單的視頻內(nèi)容進(jìn)行很高效的處理,誤判率也很低,但是存在的問題主要是,對(duì)于視頻內(nèi)容多變且編碼復(fù)雜結(jié)構(gòu)多的情況,編碼效率下降很嚴(yán)重,誤判率也增加很多。
綜上,本文采用的優(yōu)化方式是通過對(duì)編碼單元模式劃分復(fù)雜度過高問題的影響因素進(jìn)行分析,選擇編碼復(fù)雜度很高的塊劃分進(jìn)行研究,主要針對(duì)超級(jí)塊劃分模式的選擇進(jìn)行了優(yōu)化。本文應(yīng)用深度學(xué)習(xí)中的全連接神經(jīng)網(wǎng)絡(luò)模型作為劃分模型,輸入特征向量為36個(gè),輸出是具體的塊劃分模式,訓(xùn)練方式選擇離線訓(xùn)練。為了進(jìn)一步的簡(jiǎn)化模型結(jié)構(gòu)同時(shí)提升分類器的性能,本文將對(duì)復(fù)雜度很高的四叉樹遞歸劃分方式進(jìn)行優(yōu)化,并根據(jù)具體的量化參數(shù)(QP)值和塊大小來得到不同的結(jié)構(gòu),最終可以得到1個(gè)三層二分類模型。最終通過對(duì)不同復(fù)雜視頻圖像應(yīng)用簡(jiǎn)化版的四叉樹進(jìn)行測(cè)試,測(cè)試結(jié)果與原四叉樹遞歸算法相比編碼復(fù)雜度降低很多,編碼效率得到了很大的提升。
1 編碼塊特征向量提取
1.1 編碼單元模式劃分影響因素分析
在分類任務(wù)中,特征工程是影響分類結(jié)果非常重要的因素。所以首先需要對(duì)編碼單元模式劃分影響因素進(jìn)行分析。VP9是針對(duì)率失真優(yōu)化(RDO)[9-10]理論進(jìn)行編碼塊選擇優(yōu)化的,塊的大小有很多,主要針對(duì)大于8×8的塊大小,對(duì)于每個(gè)塊應(yīng)用劃分及不劃分兩種模式的率失真代價(jià)來選擇每個(gè)編碼塊的劃分模式。具體的率失真優(yōu)化({Para}opt)求取公式如式(1)所示。
式中:J為RD代價(jià);D可以代表原始與重構(gòu)之間的不同之處,稱為編碼失真;R為編碼比特率;λ為拉格朗日因子[11-13],與QP成正相關(guān)的關(guān)系。
由式(1)可以看出率失真代價(jià)的計(jì)算是很復(fù)雜的過程,但是根據(jù)不同的視頻內(nèi)容可以找到基于RDO塊劃分的規(guī)律性。一般規(guī)律為:對(duì)于色彩單一、條紋簡(jiǎn)單的圖像塊主要采用大塊方式劃分,而對(duì)于色彩復(fù)雜、條紋豐富的圖像塊則主要采用小塊的劃分方式;同理對(duì)于含有運(yùn)動(dòng)信息的圖像塊主要采用小塊劃分方式,純背景或不含運(yùn)動(dòng)信息的圖像塊則主要采用大塊劃分的方式等。
除了上述視頻本身的特性外,如圖1所示,采用不同量化參數(shù)(QP)進(jìn)行編碼所得劃分深度分布圖。由圖1可得,QP與最終的編碼塊劃分成正相關(guān)的關(guān)系。
綜上所述,編碼參數(shù)及視頻內(nèi)容特性與編碼塊劃分模式有很大的相關(guān)度,這里編碼參數(shù)主要考慮影響因素較大的QP,視頻內(nèi)容特性主要涉及條紋、色彩復(fù)雜度及時(shí)空域信息等。因此,編碼參數(shù)及視頻內(nèi)容特性是在后續(xù)特征工程中要充分考慮的兩個(gè)影響因素。
1.2 輸入特征向量的選擇和提取
本文主要的目的就是對(duì)編碼塊遞歸劃分的過程進(jìn)行優(yōu)化,優(yōu)化的同時(shí)還要保證原編碼的性能。對(duì)于一個(gè)M[×]N的圖像區(qū)域塊,殘差信號(hào)絕對(duì)值之和(SAD)的公式如式(2)所示,其中SAD主要是對(duì)運(yùn)動(dòng)圖像進(jìn)行估計(jì)的,用來衡量殘差時(shí)域的差異性。
一般紋理簡(jiǎn)單或運(yùn)動(dòng)較小的圖像序列精確匹配更容易,對(duì)應(yīng)的SAD值會(huì)偏小一些;相反的,則精確匹配變得復(fù)雜一些,相應(yīng)的SAD值會(huì)偏大一些。因此,本文采用前一幀在9個(gè)不同點(diǎn)的SAD值及當(dāng)前待編碼幀中的4個(gè)子塊作為特征向量。如圖2所示,選取的9個(gè)搜索點(diǎn)及相應(yīng)子塊的位置分布圖。其中,9個(gè)點(diǎn)是等間隔分布的,每?jī)蓚€(gè)點(diǎn)相距2個(gè)像素的距離,圖中最中心的點(diǎn)表示當(dāng)前子塊在上一幀中的對(duì)應(yīng)位置。
從圖2可以看出中心位置點(diǎn)及對(duì)應(yīng)該點(diǎn)的9個(gè)方向是用9個(gè)搜索點(diǎn)來表示的,所以1個(gè)圖像區(qū)塊在9個(gè)搜索點(diǎn)的SAD在某種程度上可以代表區(qū)塊的運(yùn)動(dòng)趨勢(shì)。然后選取1個(gè)區(qū)塊中的4個(gè)子塊來分析當(dāng)前區(qū)塊的運(yùn)動(dòng)趨勢(shì),如圖3所示,a)為不含局部運(yùn)動(dòng)的區(qū)塊對(duì)應(yīng)其中的4個(gè)子塊的SAD變化曲線圖,b)為含局部運(yùn)動(dòng)趨勢(shì)的區(qū)塊對(duì)應(yīng)其中的4個(gè)子塊的SAD變化曲線圖。
由圖3可以看出,9個(gè)搜索點(diǎn)由于紋理復(fù)雜度的差異性,不同點(diǎn)的SAD值變化很大,但是同1個(gè)子塊的SAD值的變化趨勢(shì)基本是一致的。含有運(yùn)動(dòng)信息的4個(gè)子塊之間的差異還是很清晰的。所以可以用不同子塊的SAD值來表示含有運(yùn)動(dòng)信息的視頻圖像。
綜上所述,本文選取36個(gè)SAD值(4個(gè)子塊,每個(gè)9點(diǎn)SAD值)來作為全連接網(wǎng)絡(luò)的特征進(jìn)行輸入,這樣對(duì)視頻區(qū)域塊的可區(qū)分度較高。
2 樣本的預(yù)處理
由于神經(jīng)網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)的權(quán)值是通過訓(xùn)練得到的,為了縮短訓(xùn)練時(shí)間,提高分類器的預(yù)測(cè)準(zhǔn)確率,本文會(huì)選用典型的樣本進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,所以就要在離線訓(xùn)練前進(jìn)行訓(xùn)練樣本的篩選。
本網(wǎng)絡(luò)輸入為36個(gè)SAD值,輸出為編碼塊劃分模式,對(duì)于分類器結(jié)果好壞一般采用預(yù)判準(zhǔn)確率來判斷網(wǎng)絡(luò)性能的優(yōu)劣,但是對(duì)于本文的應(yīng)用還需要考慮判別結(jié)果與RDCOST性能之間的關(guān)聯(lián)。比如:4個(gè)子塊與其父塊的RDCOST值差異很小時(shí),則劃分模式誤判決的影響結(jié)果較小;但是當(dāng)差異較大時(shí),一旦出現(xiàn)誤判決,則對(duì)RDCOST性能影響很大。所以訓(xùn)練網(wǎng)絡(luò)時(shí)就要尋找這種“典型的樣本”,即:特征值與劃分模式之間的映射關(guān)系。對(duì)于劃分與不劃分RDCOST差異較小的樣本稱為“奇異樣本”,反之稱為“典型樣本”。我們選擇樣本就是要選擇典型樣本,去掉奇異樣本。對(duì)于劃分與不劃分RDCOST差異[ΔRDCOST]是否顯著的衡量公式為
式中,[Rspilt]和[Rnonsplit]分別表示劃分與不劃分的率失真代價(jià)。這樣在進(jìn)行典型樣本的選擇時(shí),當(dāng)[ΔRDCOST]大于1個(gè)給定的閾值時(shí),則該樣本被挑選出來,不同的閾值對(duì)應(yīng)的網(wǎng)絡(luò)泛化能力的實(shí)驗(yàn)結(jié)果是不同的,通過大量的實(shí)驗(yàn)得出,閾值取值大概為0.012時(shí),測(cè)試準(zhǔn)確率處于最高點(diǎn)位置附近。典型樣本篩選完成后,還要選擇樣本的數(shù)量,太多則訓(xùn)練時(shí)間過長(zhǎng)同時(shí)容易出現(xiàn)過擬合;反之,則容易出現(xiàn)欠擬合的問題。本實(shí)驗(yàn)選擇400 000個(gè)樣本集合,同時(shí)劃分與不劃分模式樣本各占50%。
3 全連接網(wǎng)絡(luò)模型及設(shè)計(jì)
人工神經(jīng)網(wǎng)絡(luò)(ANN)[14-15]是對(duì)人類大腦神經(jīng)元系統(tǒng)建立的一種數(shù)學(xué)模型,具有強(qiáng)大的自學(xué)習(xí)及非線性擬合能力。對(duì)于全連接網(wǎng)絡(luò)模型,即BP神經(jīng)網(wǎng)絡(luò),在1985年被Rumelhart等[16]提出。
其中,神經(jīng)元數(shù)學(xué)模型如式(4)所示。其中XW是對(duì)輸入和權(quán)重的向量表示形式,[f(x)]為激活函數(shù)。一般的全連接網(wǎng)絡(luò)層級(jí)分為輸入、輸出及隱含層,當(dāng)隱含層層數(shù)增加到一定數(shù)目時(shí)即為深度學(xué)習(xí)。
本文的分類過程屬于監(jiān)督式學(xué)習(xí),采用的思想是通過對(duì)比預(yù)測(cè)輸出與實(shí)際輸出的值,來不斷優(yōu)化網(wǎng)絡(luò),縮小最終的錯(cuò)誤代價(jià)函數(shù),最終訓(xùn)練出合適的網(wǎng)絡(luò)參數(shù)。全連接網(wǎng)絡(luò)的參數(shù)迭代過程包括正向和反向兩個(gè)過程。一般在初始時(shí),給各個(gè)權(quán)重1個(gè)初始值,然后正向逐層的計(jì)算,一直到輸出結(jié)果,這個(gè)過程沒有參數(shù)修正的過程,然后反向由輸出層到輸入層的過程應(yīng)用BP算法[17-19]進(jìn)行權(quán)重的修正。這樣不斷的迭代最終得到合適的網(wǎng)絡(luò)參數(shù)值。這里面主要要考慮的影響訓(xùn)練時(shí)間及結(jié)果的關(guān)鍵點(diǎn)包括:網(wǎng)絡(luò)初始權(quán)值的設(shè)定,激活函數(shù)的選擇,誤差損失函數(shù)的選擇和學(xué)習(xí)步長(zhǎng)[η]的選取等。
模型結(jié)構(gòu)的建立主要涉及網(wǎng)絡(luò)結(jié)構(gòu)的搭建及神經(jīng)元參數(shù)的給定2個(gè)部分。其中網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的建立主要是神經(jīng)元個(gè)數(shù)的確定和網(wǎng)絡(luò)層數(shù)的設(shè)計(jì);神經(jīng)元相關(guān)屬性設(shè)定則為上面所敘述的關(guān)鍵點(diǎn)。實(shí)際建模的過程主要是根據(jù)具體的問題,通過經(jīng)驗(yàn)和實(shí)驗(yàn)來確定的。由于本實(shí)驗(yàn)應(yīng)用MATLAB開發(fā)工具進(jìn)行訓(xùn)練,全連接網(wǎng)絡(luò)訓(xùn)練采用的是開源庫代碼Deeplearning來實(shí)現(xiàn),這樣很多初始化參數(shù),如權(quán)值的初始化值已經(jīng)給定。因此,下面僅對(duì)網(wǎng)絡(luò)建模過程中需要設(shè)定的相關(guān)參數(shù)進(jìn)行說明。
3.1 網(wǎng)絡(luò)節(jié)點(diǎn)及層數(shù)設(shè)計(jì)
網(wǎng)絡(luò)節(jié)點(diǎn)個(gè)數(shù)及網(wǎng)絡(luò)層數(shù)的設(shè)計(jì)是和具體任務(wù)緊密相關(guān)的,由于網(wǎng)絡(luò)的輸入特征是36個(gè),所以網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為36。網(wǎng)絡(luò)的功能是判斷是否劃分為該類型編碼單元,所以網(wǎng)絡(luò)的輸出節(jié)點(diǎn)數(shù)為2。為了更充分地提取輸入特征,本文使用2個(gè)隱藏層的BP神經(jīng)網(wǎng)絡(luò)。因?yàn)樵黾泳W(wǎng)絡(luò)的深度比增加網(wǎng)絡(luò)的廣度對(duì)特征提取的貢獻(xiàn)更大,使得深度學(xué)習(xí)在多種圖像處理任務(wù)中取得顯著優(yōu)勢(shì)。但增加網(wǎng)絡(luò)深度會(huì)增加計(jì)算量,層數(shù)不能增加太多,因此,這里選擇包含兩個(gè)隱藏層的4層BP神經(jīng)網(wǎng)絡(luò)。由于輸入特征和輸出特征數(shù)量相差較大,設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)每層的神經(jīng)元個(gè)數(shù)逐步減小,用于逐步提取更準(zhǔn)確的特征。經(jīng)過多次測(cè)試選擇最終的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù),表1列舉了最終測(cè)試中幾對(duì)不同隱藏層神經(jīng)元個(gè)數(shù)的性能。
表1測(cè)試了幾種常見隱層節(jié)點(diǎn)數(shù)的性能,通常情況下隱層1的節(jié)點(diǎn)數(shù)要比隱層2的節(jié)點(diǎn)數(shù)多,隱層1的節(jié)點(diǎn)用于提取輸入節(jié)點(diǎn)中的特征,隱層2的節(jié)點(diǎn)用于判別結(jié)果,經(jīng)過試驗(yàn),最優(yōu)的隱藏層節(jié)點(diǎn)配置為:隱層1節(jié)點(diǎn)數(shù)為18,隱層2節(jié)點(diǎn)數(shù)為8。
3.2 網(wǎng)絡(luò)及神經(jīng)元幾個(gè)關(guān)鍵點(diǎn)的確定
本文采用全連接網(wǎng)絡(luò)結(jié)構(gòu),由于輸出結(jié)果為0到1,所以激活函數(shù)選擇常用的單極性的sigmoid函數(shù);學(xué)習(xí)步長(zhǎng)[η]代表的是權(quán)值的修正步長(zhǎng),[η]過大則網(wǎng)絡(luò)訓(xùn)練不易收斂;[η]過小則網(wǎng)絡(luò)收斂速度很慢,訓(xùn)練時(shí)間過長(zhǎng),一般為了得到穩(wěn)定的結(jié)果會(huì)選擇0.03~0.75之間偏小一點(diǎn)的[η]值。在實(shí)踐中一般根據(jù)學(xué)習(xí)的情況來隨時(shí)調(diào)整學(xué)習(xí)步長(zhǎng),最終選擇1個(gè)合適的學(xué)習(xí)步長(zhǎng)來訓(xùn)練出網(wǎng)絡(luò)權(quán)值;本實(shí)驗(yàn)誤差損失函數(shù)選擇均方誤差損失函數(shù);動(dòng)量因子[α]和學(xué)習(xí)步長(zhǎng)一樣都需要根據(jù)實(shí)驗(yàn)情況,實(shí)踐中去最終確定,最終[α]確定的區(qū)間為0.06~0.22;迭代次數(shù)就是網(wǎng)絡(luò)中權(quán)重的更新次數(shù),一般的迭代次數(shù)與測(cè)試準(zhǔn)確率之間的關(guān)系為:一開始網(wǎng)絡(luò)迭代次數(shù)小于某個(gè)限定值時(shí),網(wǎng)絡(luò)處于欠擬合狀態(tài),最終的測(cè)試準(zhǔn)確度很低,隨著迭代次數(shù)的增加,測(cè)試準(zhǔn)確率達(dá)到最高,這時(shí)的網(wǎng)絡(luò)權(quán)值時(shí)最優(yōu)的權(quán)值結(jié)果,之后測(cè)試準(zhǔn)確率開始下降,網(wǎng)絡(luò)出現(xiàn)過擬合,所以需要根據(jù)具體的問題設(shè)置合適的迭代次數(shù),這樣網(wǎng)絡(luò)性能才能達(dá)到最優(yōu),本實(shí)驗(yàn)通過測(cè)試,本實(shí)驗(yàn)的迭代次數(shù)通常確定在3 500到5 200之間。
4 基于全連接網(wǎng)絡(luò)的編碼單元模式選擇優(yōu)化
4.1 編碼模型的簡(jiǎn)化
VP9支持的編碼塊大小有4種,包括:8[×]8、16[×]16、32[×]32和64[×]64,這導(dǎo)致最終需要預(yù)測(cè)的結(jié)果有83 522種。所以使用正常的分類器模式進(jìn)行劃分是不符合需求的。因此,本文采用的是如圖4所示的優(yōu)化模型,即:超級(jí)塊劃分全連接網(wǎng)絡(luò)分類器的分布圖,建立1個(gè)3層二分類模型,這樣可以取代原來復(fù)雜的四叉樹模型。圖4中的分類器遞歸為3層,對(duì)于不同的64[×]64、32[×]32和16[×]16層分類器個(gè)數(shù)分別為1個(gè),4個(gè)和16個(gè)。因此,分類遞歸過程分別進(jìn)行1次,4次和16次的判決。把三層劃分深度(cuDepth)從0到2進(jìn)行編號(hào),每層的命名如圖4所示。最后,對(duì)所有不同的分類器輸出結(jié)果進(jìn)行整合即可得到超級(jí)塊的1組預(yù)判決劃分模式。具體編碼過程的流程如圖5所示。描述過程是逐層的對(duì)當(dāng)前塊是否劃分進(jìn)行標(biāo)記,劃分則對(duì)4個(gè)子塊進(jìn)行標(biāo)記,然后進(jìn)行預(yù)判決處理;不劃分則對(duì)當(dāng)前塊進(jìn)行標(biāo)記,停止對(duì)4個(gè)子塊進(jìn)行進(jìn)一步的預(yù)判決。這樣就可以應(yīng)用簡(jiǎn)化后的四叉樹來進(jìn)行編碼處理。
4.2 編碼單元?jiǎng)澐纸Y(jié)果預(yù)測(cè)
根據(jù)上述的理論分析方法,各個(gè)網(wǎng)絡(luò)模型的輸入、輸出向量及模型結(jié)構(gòu)幾乎都一致,也就是輸入、輸出向量分別為36和2,最優(yōu)的隱藏層節(jié)點(diǎn)配置為:隱層1節(jié)點(diǎn)數(shù)為18,隱層2節(jié)點(diǎn)數(shù)為8。實(shí)驗(yàn)中為進(jìn)一步簡(jiǎn)化網(wǎng)絡(luò)模型結(jié)構(gòu),通過設(shè)置不同的QP值得到不同的模型結(jié)構(gòu)。
各層分類器進(jìn)行模式分類的過程主要為3步驟:1)進(jìn)行典型樣本的篩選,然后分為測(cè)試樣本和訓(xùn)練樣本;2)應(yīng)用離線的方式訓(xùn)練出各層的網(wǎng)絡(luò)模型并進(jìn)行簡(jiǎn)單測(cè)試;3)將訓(xùn)練后的網(wǎng)絡(luò)模型移植到編碼器,然后對(duì)各個(gè)塊劃分模型進(jìn)行預(yù)測(cè)。具體的編碼單元?jiǎng)澐帜J筋A(yù)判決算法各處理模塊流程圖如圖6所示。
5 實(shí)驗(yàn)結(jié)果與分析
對(duì)于一個(gè)算法性能的評(píng)估,需要選擇合適的評(píng)估方式及參數(shù)進(jìn)行評(píng)估,本實(shí)驗(yàn)根據(jù)實(shí)際的需求情況,選擇從算法的預(yù)判決準(zhǔn)確率及對(duì)編碼復(fù)雜度和編碼性能影響等方面對(duì)本實(shí)驗(yàn)算法進(jìn)行評(píng)估。本實(shí)驗(yàn)不使用BPNN進(jìn)行預(yù)測(cè),都是以原始編碼算法的結(jié)果進(jìn)行評(píng)估的。全連接網(wǎng)絡(luò)的訓(xùn)練和測(cè)試都是采用MATLAB工具進(jìn)行的,視頻編碼VP9使用的軟件版本號(hào)是libvpx-v1.30。具體的主要參數(shù)設(shè)置為:Frame類型是IPPP,對(duì)應(yīng)的Frame Rate為30 fps,GOP設(shè)置為200,劃分深度為0到3,進(jìn)行幀間預(yù)測(cè)時(shí)的參考幀數(shù)為單位幀數(shù),對(duì)應(yīng)編碼塊的非對(duì)稱劃分方式采用關(guān)閉處理的方式。
具體內(nèi)容特征屬性的統(tǒng)計(jì)情況如表2所示,其中前3個(gè)為訓(xùn)練樣本,后2個(gè)為測(cè)試樣本。從表中可以看到所選的5個(gè)1 080p序列在各自不同特征分布上的差異情況。
下面分別從各層網(wǎng)絡(luò)命中率測(cè)試結(jié)果及優(yōu)化后的算法性能測(cè)試結(jié)果進(jìn)行分析。
1)各層模型結(jié)構(gòu)命中率測(cè)試結(jié)果。各層模型結(jié)構(gòu)命中率就是對(duì)上面3層的預(yù)判決命數(shù)進(jìn)行統(tǒng)計(jì),用HitRate_xx來表示,具體計(jì)算公式如式(5)所示。具體的測(cè)試結(jié)果準(zhǔn)確率如表3所示。
HitRate = 當(dāng)前層預(yù)判定模式與RDO模式相同的塊個(gè)數(shù)/當(dāng)前層總的塊個(gè)數(shù)×100%。? ? ? ? ?(5)
2)優(yōu)化后的算法性能測(cè)試結(jié)果。對(duì)于算法性能的衡量,則選用了5個(gè)參數(shù)來測(cè)試衡量,針對(duì)不同QP和序列得到的測(cè)試結(jié)果如表4所示。其中[ΔTime]計(jì)算公式如式(6)所示。式中變量分別對(duì)應(yīng)原始編碼器([Toriginal])和優(yōu)化后算法編碼器([Tmethod])的編碼復(fù)雜度。
由上述測(cè)試后的統(tǒng)計(jì)結(jié)果如表3所示,可以看出針對(duì)不同序列、不同層的編碼塊,分類器進(jìn)行預(yù)判后的準(zhǔn)確率是不同的,整體預(yù)測(cè)準(zhǔn)確率范圍分布為76.3%~99.5%,3層的HitRate_xx平均命中率分別為83.57%, 81.31%和95.62%。從表4可以看出,雖然比特率([ΔBitrate]平均上升了25.01%,YUV三分量的PSNR(峰值信噪比)即:[ΔPSNR-Y],[ΔPSNR-U], [ΔPSNR-V]分別平均下降了-0.459,-0.196,? -0.294(下降幅度很?。莾?yōu)化后的算法的編碼復(fù)雜度得到了很大的降低,與正常編碼預(yù)測(cè)相比,本文優(yōu)化后模型的編碼復(fù)雜度[(ΔTime)]平均降低比例高達(dá)77.84%。
由實(shí)驗(yàn)結(jié)果可以得出,對(duì)不同復(fù)雜視頻圖像應(yīng)用簡(jiǎn)化版的四叉樹進(jìn)行測(cè)試,測(cè)試結(jié)果與原四叉樹遞歸算法相比編碼復(fù)雜度降低很多,編碼效率得到了很大的提升。與之前相關(guān)的研究文獻(xiàn)結(jié)果相比,本文針對(duì)ParkScene,Cactus等這種復(fù)雜度很高的視頻圖像內(nèi)容進(jìn)行測(cè)試,測(cè)試結(jié)果可以看出編碼效率沒有大幅度降低,而是得到了很大的提升。
6 結(jié)論
本文通過對(duì)編碼單元模式劃分復(fù)雜度過高問題的影響因素進(jìn)行分析,選擇編碼復(fù)雜度很高的塊劃分進(jìn)行研究,主要針對(duì)超級(jí)塊劃分模式的選擇進(jìn)行了優(yōu)化。使用了基于全連接網(wǎng)絡(luò)的編碼塊劃分算法,將提出的算法應(yīng)用到編碼器中的1個(gè)預(yù)處理模塊。通過最終的測(cè)試結(jié)果的對(duì)比,可以看出編碼復(fù)雜度得到了很好地降低,但是當(dāng)直接使用網(wǎng)絡(luò)輸出結(jié)果時(shí),與之前相關(guān)文獻(xiàn)出現(xiàn)的問題一樣,就是整體的預(yù)測(cè)精度會(huì)有所降低。后續(xù)繼續(xù)優(yōu)化的方向是針對(duì)神經(jīng)網(wǎng)絡(luò)輸出結(jié)果的規(guī)律性來對(duì)該算法進(jìn)行優(yōu)化處理,以此來提升預(yù)測(cè)精度。
參考文獻(xiàn):
[1]? ? UHRINA M,BIENIK J,VACULIK M. Coding efficiency of VP8 and VP9 compression standards for high resolutions[C]//2016 ELEKTRO. Strbske Pleso,High Tatras,Slovakia,IEEE,2016:100-103.
[2]? ? SRINIVASAN M. VP9 encoder and decoders for next generation online video platforms and services[C]//SMPTE 2016 Annual Technical Conference and Exhibition. Los Angeles,CA,IEEE,2016:1-14.
[3]? ? 袁星范. 最新一代視頻壓縮標(biāo)準(zhǔn)VP9綜述[J]. 電視技術(shù),2016,40(5):18-21.
[4]? ? FELLER C,WUENSCHMANN J,ROLL T,et al. The VP8 video codec-overview and comparison to H.264/AVC[C]//2011 IEEE International Conference on Consumer Electronics-Berlin (ICCE-Berlin). Berlin,Germany,IEEE,2011:57-61.
[5]? ? SHEN L Q,ZHANG Z Y,AN P. Fast CU size decision and mode decision algorithm for HEVC intra coding[J]. IEEE Transactions on Consumer Electronics,2013,59(1):207-213.
[6]? ? GOSWAMI K,KIM B G,JUN D S,et al. Early coding unit-splitting termination algorithm for high efficiency video coding (HEVC)[J]. ETRI Journal,2014,36(3):407-417.
[7]? ? SHEN X L,YU L. CU splitting early termination based on weighted SVM[J]. EURASIP Journal on Image and Video Processing,2013,2013(1):4.
[8]? ? SUNG Y H,WANG J C. Fast mode decision for H.264/AVC based on rate-distortion clustering[J]. IEEE Transactions on Multimedia,2012,14(3):693-702.
[9]? ? SULLIVAN G J,WIEGAND T. Rate-distortion optimization for video compression[J]. IEEE Signal Processing Magazine,1998,15(6):74-90.
[10]? ORTEGO A,RAMCHANDRAN K. Rate-distortion methods for image and video compression[J]. IEEE Signal Processing Magazine,1998,15(6):23-50.
[11]? ORTEGA A,RAMCHANDRAN K,VETTERLI M. Optimal trellis-based buffered compression and fast approximations[J]. IEEE Transactions on Image Processing,1994,3(1):26-40.
[12]? 王雙龍. 快速 AVS 幀內(nèi)預(yù)測(cè)算法[J]. 計(jì)算機(jī)應(yīng)用與軟件,2015,32(6):185-187.
[13]? 佘航飛,郁梅,蔣剛毅,等. 基于對(duì)比敏感度函數(shù)的高動(dòng)態(tài)范圍視頻編碼[J]. 光電子·激光,2018,29(10):73-80.
[14]? AGATONOVIC-KUSTRIN S,BERESFORD R. Basic concepts of artificial neural network (ANN) modeling and its application in pharmaceutical research[J]. Journal of Pharmaceutical and Biomedical Analysis,2000,22(5):717-727.
[15]? 李英玉,陳剛. 基于人工神經(jīng)網(wǎng)絡(luò)的RSSI測(cè)距的牛頓定位算法[J]. 儀表技術(shù)與傳感器,2017(8). 1002-1841.
[16]? RUMELHART D E,HINTON G E,WILLIAMS R J. Learning representations by back-propagating errors[J]. Nature,1986,323(6088):533-536.
[17]? LI J,CHENG J H,SHI J Y,et al. Brief introduction of back propagation (BP) neural network algorithm and its improvement[J]. Advances in Computer Science and Information Engineering,2012:553-558.
[18]? 嚴(yán)鄧濤,霍智勇,戴偉達(dá),等. 基于全連接神經(jīng)網(wǎng)絡(luò)和邊緣感知視差傳播的立體匹配算法研究[J]. 南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,38(3):83-88.
[19]? WANG X G,TANG Z,TAMURA H,et al. A modified error function for the backpropagation algorithm[J]. Neurocomputing,2004,57:477-484.
[責(zé)任編輯? ? 田? ? 豐]