張亞軍,李 強(qiáng)
重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065
隨著高清、超高清和高幀頻數(shù)字視頻消費(fèi)需求的增長(zhǎng),人們對(duì)數(shù)字視頻的壓縮效率提出了更高的要求。由于H.264/AVC在編碼效率、并行處理等方面存在著局限性,已經(jīng)難以滿足高清視頻應(yīng)用發(fā)展的需求。為了滿足海量高清視頻數(shù)據(jù)的傳輸和存儲(chǔ)要求,ITU-T視頻編碼專家組(Video Coding Experts Group,VCEG)和ISO/IEC運(yùn)動(dòng)圖像專家組(Moving Picture Experts Group,MPEG)于2010年1月聯(lián)合成立了視頻編碼聯(lián)合協(xié)作小組(Joint Collaborative Team on Video Coding,JCT-VC),專門(mén)制定下一代視頻編碼標(biāo)準(zhǔn)。2013年4月JCT-VC正式發(fā)布了新一代高效率視頻編碼標(biāo)準(zhǔn)。雖然HEVC仍采用預(yù)測(cè)、變換加熵編碼的混合框架結(jié)構(gòu),但通過(guò)采用靈活的圖像四叉樹(shù)結(jié)構(gòu)、條和片劃分、多角度幀內(nèi)預(yù)測(cè)、運(yùn)動(dòng)信息融合、高精度運(yùn)動(dòng)補(bǔ)償、自適應(yīng)環(huán)路濾波等技術(shù),大大提高了視頻的編碼效率。與H.264/AVC相比,HEVC在相同視頻質(zhì)量的情況下可節(jié)省50%以上的編碼比特流[1],但編碼計(jì)算量增大了2~3倍。HEVC的高復(fù)雜度阻礙了其在視頻領(lǐng)域的快速應(yīng)用。如何在保證一定的視頻質(zhì)量的情況下,降低HEVC的計(jì)算量,是目前很多專家和學(xué)者研究的重點(diǎn)。
據(jù)統(tǒng)計(jì),在HEVC框架中,幀間編碼的計(jì)算量占整個(gè)編碼的69%左右,因此,如果能有效降低幀間編碼算法復(fù)雜度,就能加快編碼端的處理速度。目前國(guó)內(nèi)外很多學(xué)者對(duì)幀間預(yù)測(cè)模式?jīng)Q策算法展開(kāi)了研究,提出了很多具有應(yīng)用價(jià)值的幀間編碼快速算法。如文獻(xiàn)[2]利用當(dāng)前CU與空間相鄰CU深度的相關(guān)性及視頻內(nèi)容的運(yùn)動(dòng)一致性,跳過(guò)相鄰CU很少使用的深度,提前終止當(dāng)前CU劃分過(guò)程。文獻(xiàn)[3]根據(jù)視頻圖像運(yùn)動(dòng)的快慢,設(shè)置了兩個(gè)不同的閾值用于判別運(yùn)動(dòng)程度,以提前終止CU劃分過(guò)程。文獻(xiàn)[4]根據(jù)當(dāng)前幀與參考幀中對(duì)應(yīng)塊位置CU及其左側(cè)CU深度信息預(yù)測(cè)當(dāng)前CU深度范圍,以縮小可能的CU深度遍歷數(shù),從而減少CU劃分過(guò)程。文獻(xiàn)[5]根據(jù)預(yù)測(cè)當(dāng)前CU對(duì)應(yīng)最有可能的PU模式個(gè)數(shù)來(lái)減少當(dāng)前PU模式的選擇。文獻(xiàn)[6]依據(jù)當(dāng)前塊的紋理運(yùn)動(dòng)簡(jiǎn)單性,跳過(guò)一些Inter模式來(lái)加速編碼過(guò)程;文獻(xiàn)[7]通過(guò)設(shè)置率失真閾值來(lái)提前結(jié)束幀間PU模式選擇;文獻(xiàn)[8]通過(guò)運(yùn)動(dòng)特性來(lái)提前終止當(dāng)前CU深度的選擇,從而降低編碼復(fù)雜度;文獻(xiàn)[9]通過(guò)CU深度時(shí)空相關(guān)性來(lái)預(yù)測(cè)當(dāng)前CU的范圍,減少深度的遍歷次數(shù)。文獻(xiàn)[10]依據(jù)當(dāng)前CU及對(duì)應(yīng)PU的空時(shí)域相關(guān)性,通過(guò)減少CU深度和PU模式遍歷個(gè)數(shù)來(lái)加速編碼過(guò)程。
上述文獻(xiàn)中的算法大多利用視頻內(nèi)容在空時(shí)域上的相關(guān)性減小CU深度遍歷和PU模式?jīng)Q策過(guò)程來(lái)降低編碼時(shí)間,但在視頻的運(yùn)動(dòng)平坦區(qū)域所遍歷的PU模式中,依然存在一定的PU模式冗余信息。比如文獻(xiàn)[10],所采用的CU深度快速算法雖然在一定程度上提升了CU的遍歷過(guò)程,但沒(méi)有充分考慮編碼區(qū)域運(yùn)動(dòng)及紋理的復(fù)雜性與所要遍歷CU深度范圍之間的對(duì)應(yīng)關(guān)系,在PU模式快速?zèng)Q策過(guò)程中只考慮了幀間PU的相似性,沒(méi)有考慮與其幀內(nèi)相鄰CU及其上一深度CU對(duì)應(yīng)的PU的相關(guān)性。因此上述編碼過(guò)程依然存在一定的信息冗余,仍有減小編碼時(shí)間的可能性。本文利用視頻運(yùn)動(dòng)快慢與幀間PU類型劃分之間的相關(guān)性,提出了一種基于運(yùn)動(dòng)特性的幀間預(yù)測(cè)模式快速?zèng)Q策算法。首先根據(jù)當(dāng)前CU與其相鄰空時(shí)域CU深度的相關(guān)性,降低當(dāng)前CU深度遍歷次數(shù)。如果當(dāng)前CU周圍CU深度相同,利用平滑區(qū)域CU深度快速?zèng)Q策算法來(lái)縮小當(dāng)前CU深度遍歷范圍;如果當(dāng)前CU周圍CU深度不同,則采用復(fù)雜區(qū)域CU深度快速?zèng)Q策算法來(lái)降低當(dāng)前CU深度遍歷范圍。然后根據(jù)當(dāng)前CU上一深度及其空時(shí)域相鄰CU所對(duì)應(yīng)的幀間PU模式特性與運(yùn)動(dòng)快慢的關(guān)系,對(duì)運(yùn)動(dòng)平坦區(qū)域提前終止一些PU模式的遍歷過(guò)程,對(duì)運(yùn)動(dòng)中等區(qū)域及運(yùn)動(dòng)復(fù)雜區(qū)域跳過(guò)一些不必要PU模式遍歷,從而減少幀間PU模式選擇的個(gè)數(shù)以降低編碼復(fù)雜度。
HEVC的每幀圖像由多個(gè)片(Slice)構(gòu)成,每個(gè)片又劃分為多個(gè)深度為0的編碼樹(shù)單元(Coding Tree Unit,CTU),即大小為64×64的CU。一個(gè)CTU可繼續(xù)劃分為深度為1、2和3的CU,其對(duì)應(yīng)的CU尺寸大小分別為32×32、16×16和8×8。與H.264/AVC中16×16固定尺寸編碼塊相比,HEVC中的CTU四叉樹(shù)劃分結(jié)構(gòu)具有更靈活的尺寸類型,使得幀內(nèi)和幀間編碼更具有多樣性,從而提高視頻的壓縮效率。
圖1和圖2分別是CTU的劃分及四叉樹(shù)結(jié)構(gòu),每個(gè)CU是否繼續(xù)劃分由圖2的四叉樹(shù)結(jié)構(gòu)來(lái)決定。圖1的每個(gè)CU可以繼續(xù)劃分為如圖3所示的2個(gè)或4個(gè)PU。PU模式包括合并模式(Merge Mode)、跳過(guò)模式(Skip Mode)、幀間模式(Inter Mode)和幀內(nèi)模式(Intra Mode)四種類型。幀內(nèi)預(yù)測(cè)模式都是對(duì)稱模式,有2N×2N和N×N兩種,只有在最小尺寸為8×8大小的CU時(shí),才可以繼續(xù)劃分成4個(gè)4×4的預(yù)測(cè)塊,其他情況下,CU和PU的尺寸大小相同。
圖1 CTU的劃分
圖2 編碼四叉樹(shù)結(jié)構(gòu)示意圖
圖3 HEVC的幀間PU劃分模式
幀間預(yù)測(cè)模式有6種對(duì)稱模式和4種非對(duì)稱模式,包 括 Skip、Merge、Inter 2N×2N、Inter 2N×N、Inter N×2N、Inter N×N、Inter 2N×nU、Inter 2N×nD、Inter nL×2N和Inter nR×2N共10種。后4種是非對(duì)稱模式,即非對(duì)稱運(yùn)動(dòng)劃分(Asymmetric Motion Partitioning,AMP)。非對(duì)稱模式在HM中是可選模式,只有當(dāng)CU的尺寸大于8×8時(shí)才可以使用。非對(duì)稱模式把CU面積按1∶3進(jìn)行劃分以提高幀間預(yù)測(cè)的準(zhǔn)確性,進(jìn)而提高壓縮效率。當(dāng)CU尺寸為8×8時(shí),禁止使用Inter N×N和4種幀間AMP模式,以降低幀間預(yù)測(cè)中的編碼運(yùn)算量。Merge模式是HEVC新引進(jìn)的幀間預(yù)測(cè)模式,采用“運(yùn)動(dòng)合并”技術(shù)處理運(yùn)動(dòng)參數(shù),無(wú)需傳送MV信息,只傳候選PU塊的索引值,由解碼端采用運(yùn)動(dòng)推理方法來(lái)獲得運(yùn)動(dòng)信息[11]。Skip模式是Merge模式編碼塊標(biāo)志(Coded Block Flag,CBF)為0的一種特殊情況,即殘差為0。HEVC的測(cè)試模型(HEVC Test Model,HM)采用全搜索遍歷方式,首先在CU層遍歷所有的深度,然后在每次遞歸過(guò)程計(jì)算出相應(yīng)候選PU的率失真值的大小,選擇最小率失真對(duì)應(yīng)的PU作為最佳PU。這種方法能得到高質(zhì)量的視頻,節(jié)省編碼比特率,但大大增加了編碼的運(yùn)算量。
由于當(dāng)前CU與空時(shí)域相鄰CU深度之間存在著一定的相關(guān)性,這些CU對(duì)應(yīng)的PU模式在空間劃分上也具有一定的相似性。本文將利用當(dāng)前CU的運(yùn)動(dòng)特性來(lái)減少不必要的CU深度遍歷,實(shí)現(xiàn)CU深度范圍的快速?zèng)Q策,降低HEVC幀間預(yù)測(cè)的運(yùn)算量。為了分析CU最終劃分的深度信息與視頻序列的運(yùn)動(dòng)、紋理之間的關(guān)系,本文在HM16.9平臺(tái)上對(duì)表1所示的5種具有不同運(yùn)動(dòng)特征的標(biāo)準(zhǔn)測(cè)試視頻序列進(jìn)行編碼,統(tǒng)計(jì)出了不同類型視頻序列的CU深度特性。在編碼測(cè)試中,量化參數(shù)(Quantity Parameter,QP)設(shè)置為 32,采用隨機(jī)接入(Random Access,RA)配置,對(duì)每個(gè)測(cè)試序列編碼60幀。
表1 5種測(cè)試序列的不同CU深度比例分布
表2是5種測(cè)試序列深度值的分布比例,S4序列有25.4%的CU深度值等于0,S2序列有98.8%的CU深度值大于0,而S2和S3序列均有近一半的CU深度值為3。這表明運(yùn)動(dòng)平坦,紋理簡(jiǎn)單的序列深度值小的比例較高,相反,運(yùn)動(dòng)劇烈,紋理復(fù)雜的序列深度值大的比例較高;由序列S0、S1及S4的CU深度分布可知,CU深度值比例分布取決于序列的運(yùn)動(dòng)快慢程度與紋理特性。鑒于序列CU深度與序列運(yùn)動(dòng)和紋理特征的關(guān)系,若在CU深度劃分前能提前預(yù)測(cè)出CU深度范圍,跳過(guò)一些CU深度值所占比例低的遍歷過(guò)程,則可加快編碼速度。
表2 5種測(cè)試序列的不同CU深度比例分布
文獻(xiàn)[12]根據(jù)當(dāng)前CU深度值大小與其相鄰時(shí)空域CU的關(guān)聯(lián)性,定義了如式(1)所示的當(dāng)前CU(下面稱為CUcurrent)的預(yù)測(cè)候選集合S。
圖4中的 CU0、CU1、CU2和 CU3分別表示 CUcurrent空域相鄰的左側(cè)、左上側(cè)、上側(cè)和右上側(cè)的編碼單元,CU4和CU5分別是前后參考幀中與CUcurrent對(duì)應(yīng)位置的編碼單元,CU6和CU7分別是CUcurrent的上一級(jí)和上二級(jí)對(duì)應(yīng)的編碼單元。
圖4 CU current的空時(shí)域相鄰CU及上級(jí)深度CU
2.2.1 復(fù)雜區(qū)域的CU深度范圍快速預(yù)測(cè)
本文將空時(shí)域相鄰候選CU深度值不同的區(qū)域稱為復(fù)雜區(qū)域,利用CUcurrent周圍相鄰CU的深度值,通過(guò)式(2)和式(3)預(yù)測(cè)出CUcurrent的深度值。
其中,Depthpre為CUcurrent的加權(quán)預(yù)測(cè)深度值;i表示候選CU對(duì)應(yīng)下標(biāo)號(hào);N是候選CU的個(gè)數(shù),該算法下N取6;Depthi為第i個(gè)候選CU的深度值;αi表示第i個(gè)候選CU深度值的權(quán)重。通過(guò)對(duì)大量的測(cè)試序列進(jìn)行編碼,統(tǒng)計(jì)出CUcurrent與其時(shí)空域相鄰CU和上級(jí)深度CU之間的相關(guān)性,得到如表3所示的CU之間的相關(guān)系數(shù)。依據(jù)表3中的數(shù)據(jù)給予空時(shí)域和上級(jí)CU分配相關(guān)的權(quán)重系數(shù)如表4所示。
為了加快對(duì)CUcurrent的深度遍歷過(guò)程,本文采用CU深度范圍(Depth Range,DR)來(lái)表示CUcurrent需要遍歷的深度區(qū)間。當(dāng)?shù)玫紺Ucurrent的深度預(yù)測(cè)值Depthpre后,對(duì)Depthpre分別加減0.5,然后取整作為CUcurrent深度預(yù)測(cè)范圍的最大值與最小值。
表3 當(dāng)前CU與候選CU之間的相關(guān)系數(shù)
表4 候選CU與其對(duì)應(yīng)權(quán)重值大小
2.2.2 平滑區(qū)域的CU深度快速?zèng)Q策
本文將空時(shí)域相鄰候選CU深度值相同的區(qū)域稱為平滑區(qū)域。對(duì)于平滑區(qū)域,從預(yù)測(cè)候選集S中選取空域相鄰編碼塊CU0和CU2的深度值,以及時(shí)域相鄰對(duì)應(yīng)塊CU4和CU5的深度值來(lái)預(yù)測(cè)CUcurrent的深度范圍。具體實(shí)現(xiàn)過(guò)程如下:
(1)如果4個(gè)候選CU的深度值都為0,表明前后兩幀CU附近區(qū)域相對(duì)靜止,CUcurrent提前終止劃分,CUcurrent深度值為0;
(2)如果4個(gè)候選CU的深度值都為1,則CUcurrent深度預(yù)測(cè)范圍DR為[0,2];
(3)如果4個(gè)候選CU的深度值都為2,則CUcurrent深度預(yù)測(cè)范圍DR為[1,3];
(4)如果4個(gè)候選CU的深度值都為3,則CUcurrent深度預(yù)測(cè)范圍DR為[2,3]。
2.2.3 CU深度加速預(yù)測(cè)算法流程
CU深度加速預(yù)測(cè)算法流程如圖5所示。首先,從預(yù)測(cè)候選集S中選取C Ucurrent的時(shí)空域相鄰編碼塊CU0、CU2、CU4和 CU5,選出這4個(gè)編碼塊深度值的最大值和最小值,分別記為Dmax和Dmin;然后判斷Dmax與Dmin是否相等,如果相等,按平滑區(qū)域?qū)Ucurrent深度范圍DR進(jìn)行快速預(yù)測(cè),否則按復(fù)雜區(qū)域預(yù)測(cè)CUcurrent深度范圍DR。預(yù)測(cè)時(shí),式(2)和式(3)中的N取6,即選取CUcurrent的時(shí)空域相鄰編碼塊CU0、CU1、CU2、CU3、CU4和CU5的深度值來(lái)預(yù)測(cè)其深度范圍DR;最后,遍歷DR,確定CUcurrent的深度值。
這種采用先確定CUcurrent的深度范圍DR,然后在DR中進(jìn)行遍歷,最后確定CUcurrent的深度的方法將大大減少幀間編碼的時(shí)間。
圖5 CU深度范圍預(yù)測(cè)流程
當(dāng)前CU與空時(shí)域相鄰CU所遍歷的PU模式在空間劃分上也具有類似的相關(guān)性。由于每個(gè)CU對(duì)應(yīng)的PU模式有11種,如果能減小當(dāng)前CU對(duì)應(yīng)PU模式遍歷的范圍,就能加速幀間模式的選擇過(guò)程,從而降低幀間編碼過(guò)程的運(yùn)算量。由于CUcurrent與CU6在空間劃分上有被包含關(guān)系,與空域相鄰CU0、CU1、CU2和CU3有紋理相似性關(guān)系,與時(shí)域相鄰CU4具有運(yùn)動(dòng)一致性關(guān)系。因此,當(dāng)CU4與CUcurrent深度相同或者CU6比CUcurrent深度值小1時(shí),就可以利用CU4或CU6對(duì)應(yīng)的PU模式作為當(dāng)前PU模式的遍歷范圍。為了表述方便,本文對(duì)于PU劃分的9個(gè)幀間預(yù)測(cè)模式和2個(gè)幀內(nèi)預(yù)測(cè)模式,采用表5所示的對(duì)應(yīng)編號(hào)來(lái)表示。圖6是本文幀間PU模式快速預(yù)測(cè)算法流程,根據(jù)視頻編碼區(qū)域運(yùn)動(dòng)的劇烈程度,CUcurrent的PU遍歷模式過(guò)程如下:
(1)判斷 CUcurrent相鄰的 CU0、CU2及上一級(jí) CU6中的對(duì)應(yīng)PU模式是否存在m0;若存在,可判斷CUcurrent所處的區(qū)域是靜止或是處于同向極其緩慢的運(yùn)動(dòng)狀態(tài),且視頻紋理極其簡(jiǎn)單,此時(shí),CUcurrent所需遍歷的PU模式為m0和m1;否則,按下面步驟執(zhí)行。
(2)如果CUcurrent和CU4深度值相同,表明此時(shí)的前后參考幀對(duì)應(yīng)CU塊具有運(yùn)動(dòng)一致性,依次如下處理:
①當(dāng)CU4對(duì)應(yīng)的PU模式是m1,那么對(duì)應(yīng)CU塊所處的區(qū)域是均勻運(yùn)動(dòng),且視頻紋理簡(jiǎn)單。此時(shí),CUcurrent所需遍歷的PU模式為m0和m1。
②當(dāng)CU4對(duì)應(yīng)的PU模式是m2,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域應(yīng)是中等運(yùn)動(dòng),且視頻紋理較平緩。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3、m4和 m5。
表5 PU劃分模式及對(duì)應(yīng)編號(hào)
圖6 PU預(yù)測(cè)算法流程圖
③當(dāng)CU4對(duì)應(yīng)的PU模式是m3,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是中等運(yùn)動(dòng),且視頻紋理較平緩。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3、m6和m7。
④當(dāng)CU4對(duì)應(yīng)的PU模式是m4,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是劇烈快速運(yùn)動(dòng),且視頻紋理較復(fù)雜。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3和 m4。
⑤當(dāng)CU4對(duì)應(yīng)的PU模式是m5,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是劇烈快速運(yùn)動(dòng),且視頻紋理較復(fù)雜。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3和 m5。
⑥當(dāng)CU4對(duì)應(yīng)的PU模式是m6,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是劇烈快速運(yùn)動(dòng),且視頻紋理較復(fù)雜。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3和 m6。
⑦當(dāng)CU4對(duì)應(yīng)的PU模式是m7,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是劇烈快速運(yùn)動(dòng),且視頻紋理較復(fù)雜。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3和 m7。
⑧當(dāng)CU4對(duì)應(yīng)的PU模式是m8,那么對(duì)應(yīng)CU塊所處的運(yùn)動(dòng)區(qū)域是劇烈快速運(yùn)動(dòng),且視頻紋理較復(fù)雜。此時(shí),CUcurrent所需遍歷的PU模式為 m1、m2、m3和 m8。
(3)如果CUcurrent和CU4深度值不等且兩者之差ΔD等于1或2,說(shuō)明CUcurrent與時(shí)域相鄰CU對(duì)應(yīng)的PU模式劃分存在差別,通常運(yùn)動(dòng)越劇烈紋理越復(fù)雜的區(qū)域PU劃分得越細(xì)小。為了準(zhǔn)確地預(yù)測(cè)CUcurrent對(duì)應(yīng)PU模式類型范圍,本文用模式復(fù)雜度(Mode Complexity,MC)來(lái)描述PU模式的復(fù)雜類型,MC的計(jì)算公式如式(4)所示,MC越大表明運(yùn)動(dòng)復(fù)雜度越高。式(4)中的N是預(yù)測(cè)候選集合S中候選CU的數(shù)量,這里N的取值為8;ki用來(lái)判斷候選CU是否可用,ki取1表示候選CU可用,ki取0表示候選CU信息不可用;ωi為不同預(yù)測(cè)類型對(duì)應(yīng)的權(quán)重值大?。沪羒為表4中第i個(gè)候選CU深度值的權(quán)重的大小。
依據(jù)所選用的PU結(jié)構(gòu)劃分關(guān)系,將表5中的11種不同預(yù)測(cè)模式按復(fù)雜程度合并為4種預(yù)測(cè)類型,然后分別賦予權(quán)重值ωi為0.5、1.0、1.5和3.0,每種預(yù)測(cè)類型及其包含的PU模式如表6所示。本文依據(jù)運(yùn)動(dòng)劇烈程度將運(yùn)動(dòng)區(qū)域分為4種復(fù)雜度區(qū)間,分別用集合S、T、U和V來(lái)表示。每種運(yùn)動(dòng)類型之間的臨界閥值分別用T0、T1和T2來(lái)表示,依據(jù)對(duì)測(cè)試序列進(jìn)行編碼得到的經(jīng)驗(yàn)值,可分別設(shè)為0.8、2.0和4.0。復(fù)雜度區(qū)間所對(duì)應(yīng)的遍歷模式類型如表7所示。
表6 不同模式類型對(duì)應(yīng)的權(quán)重值
表7 4種運(yùn)動(dòng)類型及其對(duì)應(yīng)的區(qū)間
(4)如果CUcurrent深度與CU4的深度值之差為3,說(shuō)明其對(duì)應(yīng)的PU空間劃分差別也非常大,CUcurrent的PU模式不采用CU4的PU模式,結(jié)束CUcurrent的PU模式劃分,轉(zhuǎn)入下一深度CU對(duì)應(yīng)的PU模式判斷。
本文基于時(shí)空域相鄰CU的運(yùn)動(dòng)特性,從CU深度劃分和PU模式選擇兩方面來(lái)加速幀間的預(yù)測(cè)過(guò)程。
首先,預(yù)測(cè)出當(dāng)前CU的深度。依據(jù)CUcurrent空時(shí)域相鄰候選CU深度值是否相同,將編碼區(qū)域分為復(fù)雜區(qū)域和平滑區(qū)域兩種類型,針對(duì)不同的區(qū)域類型按圖5所示的流程,選擇不同的預(yù)測(cè)算法來(lái)加速CU深度的決策過(guò)程。
然后,判斷CUcurrent的PU模式。依據(jù)CUcurrent深度與空時(shí)域相鄰CU及上一深度CU對(duì)應(yīng)的PU模式在空間劃分上的相似性來(lái)減少CUcurrent的對(duì)應(yīng)PU模式的遍歷范圍,加速PU模式的選擇。PU模式的快速選擇流程如圖6所示。
本文算法在HM16.9上進(jìn)行了實(shí)現(xiàn),編碼端的基本參數(shù)如下:最大CU尺寸為64;最大劃分深度為3;量化步長(zhǎng)QP分別取22、27、32和37;選取測(cè)試序列分為A、B、C、D、E共5種類型,共18組標(biāo)準(zhǔn)測(cè)試序列作為編碼對(duì)象,這5種類型測(cè)試序列的分辨率分別為2 560×1 600、1 920×1 080、832×480、416×240和1 280×720,且每個(gè)測(cè)試序列的輸入比特深度為8;其他配置參數(shù)及測(cè)試條件參考了HM提案JCTVC-J1100[13]。根據(jù)文獻(xiàn)[13],采用RA接入方式的編碼器測(cè)試A、B、C和D類4種測(cè)試序列;采用低延時(shí)(Low Delay,LD)接入方式的編碼器測(cè)試B、C、D和E測(cè)試序列;測(cè)試所用的硬件平臺(tái)為泰克公司的圖像質(zhì)量分析儀PQA600A,其配置為12核CPU,2.30 GHz主頻,32 GB內(nèi)存,64位Windows7操作系統(tǒng)。
為了測(cè)試編碼率失真性能在4個(gè)QP下的變化,采用BDBR(Bjntegaard Detla Bit Rate)和BDPSNR(Bjntegaard Detla Peak Signal to Noise Ratio)[14]作為測(cè)試指標(biāo)。使用式(5)計(jì)算得到的PSNR來(lái)評(píng)價(jià)圖像編碼的質(zhì)量[15]。
式(5)中,PSNRV和PSNRU表示色度峰值信噪比,PSNRY表示亮度峰值信噪比。利用式(6)計(jì)算得到的編碼時(shí)間變化率來(lái)評(píng)估算法的加速性能。式(6)中的THM16.9和Tfast分別為HM16.9和采用本文算法的編碼器對(duì)測(cè)試序列編碼所需的時(shí)間。
表8和表9分別為本文提出的CU深度加速預(yù)測(cè)算法和PU模式加速預(yù)測(cè)算法在RA、LD兩種接入方式下的性能測(cè)試結(jié)果。對(duì)比HM16.9算法,在RA編碼方式中,平均輸出比特率在分別增加了1.43%和2.16%的情況下,平均編碼時(shí)間分別減小了28.58%和48.97%,而視頻的平均PSN R都只降低了0.06 dB;在LD編碼方式中,平均輸出比特率分別增加1.64%和1.68%的情況下,平均編碼時(shí)間分別減小了25.53%和46.86%,視頻的平均PSN R損失均不高于0.05 dB。測(cè)試數(shù)據(jù)表明,本文算法在RA和LD兩種不同接入方式下都能有效地降低CU深度劃分的復(fù)雜度,減少PU模式的遍歷范圍,加速了幀間編碼過(guò)程。
為了評(píng)估本文幀間模式快速算法的整體性能,在HM16.9平臺(tái)上,對(duì)文獻(xiàn)[10]中的算法進(jìn)行了實(shí)現(xiàn),并分別對(duì)本文算法和文獻(xiàn)[10]算法進(jìn)行了性能測(cè)試,測(cè)試結(jié)果如表10和表11所示。在RA編碼方式下,本文算法和文獻(xiàn)[10]算法相對(duì)HM16.9,平均編碼時(shí)間分別降低了53.93%和48.48%,采用本文算法的平均編碼輸出比特率增加了2.92%,略高于文獻(xiàn)[10]的2.36%,而編碼后視頻失真度基本一致,平均PSNR均下降了0.09 dB。本文算法針對(duì)高分辨率的A類和B類視頻序列,相對(duì)于HM16.9,平均編碼時(shí)間降低了58.36%,而對(duì)于中低分辨率的C類和D類視頻序列,平均編碼時(shí)間降低了50.05%,說(shuō)明本文算法針對(duì)高清視頻序列有更好的編碼加速性能。在LD編碼方式下,本文算法和文獻(xiàn)[10]算法相對(duì)HM16.9,平均編碼時(shí)間分別降低了56.64%和49.96%,采用本文算法的平均編碼輸出比特率增加了2.98%,同樣略高于文獻(xiàn)[10]的2.08%,且編碼后視頻失真程度更小,平均P SNR減小均不超過(guò)0.07 dB。
表8 CU深度加速預(yù)測(cè)算法和PU模式加速預(yù)測(cè)算法在RA配置下性能比較
表9 CU深度加速預(yù)測(cè)算法和PU模式加速預(yù)測(cè)算法在LD配置下性能比較
對(duì)運(yùn)動(dòng)劇烈的測(cè)試序列,如BasketballDrive、BasketballDrill、RaceHoursesC、BasketballPass和RaceHorses,在RA編碼方式下本文算法平均編碼時(shí)間降低了52.14%,文獻(xiàn)[10]算法降低了45.89%;而在LD編碼模式下本文算法平均編碼時(shí)間降低了56.15%,文獻(xiàn)[10]算法降低了46.03%。說(shuō)明相對(duì)文獻(xiàn)[10]算法,本文算法在兩種編碼方式下均能有效降低運(yùn)動(dòng)劇烈視頻序列的編碼運(yùn)算量,并且本文算法在LD編碼方式下效果更顯著。
為了有效降低HEVC的編碼時(shí)間,本文通過(guò)對(duì)CU深度劃分和PU模式選擇過(guò)程的分析,提出了一種基于運(yùn)動(dòng)特性的幀間預(yù)測(cè)模式快速算法。首先,依據(jù)視頻運(yùn)動(dòng)及紋理特性,采用時(shí)空域相鄰CU來(lái)預(yù)測(cè)當(dāng)前CU深度范圍,加速編碼單元的劃分過(guò)程;然后,利用CU的PU在深度上下級(jí)和相鄰時(shí)空域上的相似性,減少PU類型的遍歷過(guò)程。實(shí)驗(yàn)仿真結(jié)果表明,本文提出的改進(jìn)算法在視頻質(zhì)量基本沒(méi)有損失,輸出比特率增加較小的前提下,大幅度降低了平均編碼時(shí)間。
表10 本文算法與文獻(xiàn)[10]算法在RA配置下性能比較
表11 本文算法與文獻(xiàn)[10]算法在LD配置下性能比較