楊會(huì)云,張有會(huì),王志巍,趙 金,霍利嶺,劉晨光
(1.河北師范大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,河北 石家莊 050016;2.石家莊第二十三中學(xué),河北 石家莊 050011)
H.264/AVC是由ITU-T視頻編碼專(zhuān)家組和ISO/IEC運(yùn)動(dòng)圖像專(zhuān)家組組成的聯(lián)合視頻專(zhuān)家組JVT制定的新一代視頻編碼標(biāo)準(zhǔn)[1]。與以往的標(biāo)準(zhǔn)相比,本標(biāo)準(zhǔn)在相同碼率情況下,峰值信噪比和可視質(zhì)量獲得了較好的性能[2],但也增加了復(fù)雜度,影響了其實(shí)時(shí)應(yīng)用。
幀內(nèi)預(yù)測(cè)是H.264/AVC標(biāo)準(zhǔn)的一個(gè)重要組成部分,充分利用了圖像的空間相關(guān)性,提高了壓縮效率[3-4]。為達(dá)到高效的編碼性能,H.264/AVC使用率失真優(yōu)化(Rate Distortion Optimization,RDO)[5]模型選擇最佳編碼模式。由于幀內(nèi)預(yù)測(cè)模式較多,為選擇一個(gè)預(yù)測(cè)模式,需計(jì)算592個(gè)RDO值,使其具有很高的復(fù)雜度。為降低復(fù)雜度,人們提出了很多優(yōu)化算法[6-8]。
筆者則提出一種基于某方向上像素差分和的塊平坦性及紋理方向估算的快速H.264/AVC幀內(nèi)預(yù)測(cè)算法(以下簡(jiǎn)稱(chēng)新算法)。實(shí)驗(yàn)結(jié)果表明在PSNR和碼率變化極小的情況下編碼速度有顯著提高。
在H.264/AVC編碼標(biāo)準(zhǔn)中,為提高幀內(nèi)圖像編碼效率,采用幀內(nèi)預(yù)測(cè)技術(shù)。根據(jù)圖像的空間相關(guān)性,利用當(dāng)前塊左邊和上邊的像素值對(duì)當(dāng)前塊進(jìn)行預(yù)測(cè)[9-10](見(jiàn)圖1),對(duì)實(shí)際值和預(yù)測(cè)值的差值進(jìn)行編碼,大大節(jié)省了圖像幀的比特?cái)?shù)。
圖1 宏塊預(yù)測(cè)
H.264/AVC提供了4種幀內(nèi)預(yù)測(cè)方式[11-12],分別為4×4 亮度塊預(yù)測(cè)(Intra_4×4)、8×8 色度塊預(yù)測(cè)(Intra_chroma)、16×16 亮度塊預(yù)測(cè)(Intra_16×16)和 PCM 預(yù)測(cè)(I_PCM)。Intra_4×4適合紋理細(xì)節(jié)較多的圖像塊,有9種預(yù)測(cè)模式,其中包括8種方向性預(yù)測(cè)模式(見(jiàn)圖2)和1種均值預(yù)測(cè)模式。Intra_16×16適合較平坦的塊,有4種預(yù)測(cè)模式,其中包括3種方向性預(yù)測(cè)模式(見(jiàn)圖3)和1種均值預(yù)測(cè)模式。Intra_chroma預(yù)測(cè)方式與 Intra_16×16相似。I_PCM預(yù)測(cè)模式直接傳輸圖像樣值,無(wú)須進(jìn)行預(yù)測(cè)。
為獲取最佳的預(yù)測(cè)效果,JVT提供的參考程序采用全搜索算法對(duì)各宏塊進(jìn)行模式搜索,對(duì)結(jié)果進(jìn)行比較。全搜索算法能獲得最優(yōu)的壓縮效果,但其搜索模式總數(shù)達(dá)到了 M8×(M4×16+M16)[11-12],共 592 個(gè),其中 M8=4,M4=9,M16=4,分別代表 8×8 色度塊、Intra_4×4 和 Intra_16×16 的預(yù)測(cè)模式個(gè)數(shù)。這意味著要得到一個(gè)塊的最佳模式需計(jì)算592個(gè)RDO值,可見(jiàn)其算法復(fù)雜度之高。
紋理特征是圖像的重要特征之一,其本質(zhì)是刻畫(huà)像素鄰域灰度空間的分布規(guī)律[2]。圖像的紋理特征[13]可用方向性、規(guī)則性、粗糙度和凹凸性等特性描述。其中方向性是指其灰度在一定方向上的變化所呈現(xiàn)的一致性和均勻性,從視覺(jué)上看近似條紋狀。按方向性可將紋理劃分為水平、垂直和斜向等。
由第2節(jié)可知,H.264/AVC的預(yù)測(cè)模式除DC模式外都具有方向性。如果能對(duì)塊的紋理性進(jìn)行預(yù)判,即判斷出塊是否有明顯的紋理及其大致紋理方向,便可排除可能性小的模式,僅對(duì)可能性大的模式進(jìn)行RDO計(jì)算,降低算法復(fù)雜度。
基于此,針對(duì)H.264/AVC的4種預(yù)測(cè)方式中對(duì)預(yù)測(cè)算法改進(jìn)影響較大的Intra_4×4模式和Intra_16×16模式,提出一種新的基于紋理特性的預(yù)測(cè)算法。算法分兩部分:一部分為類(lèi)型判定,利用16×16塊在不同方向上間隔一定臂長(zhǎng)L下的像素差分和[13]的差來(lái)判斷宏塊是否有明顯紋理,即是否平坦,若平坦只進(jìn)行Intra_16×16塊的預(yù)測(cè),否則只進(jìn)行Intra_4×4塊的預(yù)測(cè);另一部分為預(yù)測(cè)模式選擇,利用4×4塊差分和的大小判斷紋理方向,根據(jù)紋理方向選擇預(yù)測(cè)方向??紤]色度塊的模式選擇較簡(jiǎn)單,在此僅研究亮度塊的模式選擇。
具體過(guò)程為:將0~π內(nèi)角度量化為多個(gè)角度方向θ(θi∈{0°,45°,90°,135°}),以 w×w(w 取值 16 或 4)塊中每個(gè)像素點(diǎn)O(x,y)為中心,按一定臂長(zhǎng)L在中心點(diǎn)兩側(cè)沿θi方向各選一點(diǎn)作差分;遍歷整個(gè)塊,求方向θi上塊的差分和;比較各方向差分和,如果各差分和之間差別較小則判定宏塊較平坦,否則非平坦。對(duì)非平坦塊,進(jìn)行Intra_4×4模式預(yù)測(cè),其差分和最小的塊對(duì)應(yīng)的方向即為其紋理方向。其中每一方向上中心點(diǎn)兩側(cè)像素點(diǎn)的選取如下:
計(jì)算相對(duì)O點(diǎn)的偏移量Tx和Ty
由Tx和Ty可分別確定相對(duì)O點(diǎn)的兩個(gè)偏移點(diǎn)的灰度值,分別記為 P(x+Tx,y+Ty),P(x-Tx,y-Ty)。 遍歷該塊,求方向?yàn)棣萯的絕對(duì)差分和
依次求取各方向上的 S[θi],比較各 S[θi],找出最小的S[θi]對(duì)應(yīng)的方向 θi即為當(dāng)前塊紋理方向,即
由以上討論可知,對(duì)較平坦的宏塊,像素的灰度較接近,相鄰像素的灰度絕對(duì)差較小,其各個(gè)方向上的絕對(duì)差分和的差異性較小;對(duì)非平坦宏塊,其在紋理方向上的絕對(duì)差分和較小,其他方向特別是與紋理方向垂直的方向上的絕對(duì)差分和則很大,不同方向上的絕對(duì)差分和的差異性較大。
圖4為foreman序列第0幀中兩種類(lèi)型的宏塊,圖右側(cè)為平坦塊,左側(cè)為非平坦塊,表1為圖4中對(duì)應(yīng)塊的最大、最小絕對(duì)差分和及其差值(其中臂長(zhǎng)L=1,方向?yàn)?°,45°,90°,135°的 4 個(gè)方向)。
由表1可見(jiàn),平坦塊對(duì)應(yīng)的最大差小,非平坦塊對(duì)應(yīng)的最大差較大?;谝陨戏治?,以各方向絕對(duì)差分和的最大差作為判定宏塊是否平坦的依據(jù)是可行的。因此算法可以此作為依據(jù)選取合適的閾值對(duì)宏塊進(jìn)行類(lèi)型判定。
表1 塊的最大、最小差分和以及最大差
利用前述差分和同樣可以對(duì)塊紋理方向進(jìn)行估計(jì)。對(duì)一紋理塊來(lái)說(shuō),沿其紋理方向上的各像素值比較相似,故其差分和較小,而其他方向特別是與紋理方向垂直的方向上各像素值差異較大,其差分和會(huì)較大。因此,認(rèn)為宏塊各方向上差分和的最小值對(duì)應(yīng)的方向?yàn)榧y理的大致方向。
為此,計(jì)算 4 個(gè)方向(0°,45°,90°,135°)上臂長(zhǎng)為 L(L=1)的塊的差分和,比較4個(gè)方向差分和的大小,并選出最小差分和,記錄其方向,該方向即為當(dāng)前塊紋理方向。利用此方向?qū)K進(jìn)行模式選擇。
圖5為foreman序列第0幀中典型的135°和水平紋理的圖像塊。表2是圖5中各圖像塊對(duì)應(yīng)的4個(gè)方向差分和,由表可見(jiàn)最小差分和對(duì)應(yīng)的方向即為塊紋理方向。
表2 塊差分和
新算法中,引入兩個(gè)閾值Kmin和Kmax判定宏塊的類(lèi)型。計(jì)算4個(gè)方向的絕對(duì)差分和,在宏塊類(lèi)型選擇中,將3.2節(jié)中最大差分別與閾值Kmin和Kmax比較,若小于Kmin判定為平坦宏塊,采用16×16塊預(yù)測(cè);若大于Kmax判定為非平坦宏塊,采用4×4塊預(yù)測(cè);否則,按H.264標(biāo)準(zhǔn)算法計(jì)算。對(duì)判定為Intra_4×4預(yù)測(cè)的塊,同樣計(jì)算4個(gè)方向絕對(duì)差分和,選擇最小差分和對(duì)應(yīng)的方向?yàn)樵?×4塊紋理方向,將與此方向?qū)?yīng)的模式及其相鄰的兩個(gè)模式加上DC模式共4個(gè)模式作為候選預(yù)測(cè)模式,進(jìn)行RDO計(jì)算,從中選出最佳模式。
兩個(gè)閾值的選擇對(duì)編碼的性能影響很大。經(jīng)過(guò)大量實(shí)驗(yàn),取Kmax=500,Kmin=300獲得的效果較好。
新算法具體步驟如下:1)獲取16×16宏塊的亮度數(shù)據(jù),設(shè)定兩個(gè)閾值Kmax和Kmin。2)計(jì)算4個(gè)方向的絕對(duì)差分和,并計(jì)算最大差分和Maxdiff與最小差分和Mindiff及其差值 diff。 3)若 diff
為了驗(yàn)證本算法的性能,基于JVT提供的參考軟件JM14.2對(duì)全搜索算法進(jìn)行了改進(jìn),并作了大量測(cè)試與全搜索算法比較。
測(cè)試環(huán)境如下:編碼配置中,幀率為30 f/s(幀/秒),全I(xiàn)幀序列,每個(gè)標(biāo)準(zhǔn)測(cè)試圖像序列測(cè)100幀,RDO使能,CAVLC使能;硬件配置采用Inter Pentium Dual T23901.86 GHz和2.0 Gbyte RAM。
表3是所選11個(gè)QCIF標(biāo)準(zhǔn)視頻序列在L=1和L=2時(shí)的新算法與全搜索算法的測(cè)試結(jié)果比較。結(jié)果獲取采用對(duì)各個(gè)視頻序列進(jìn)行大量測(cè)試取平均值的方法。L=1時(shí)各項(xiàng)指標(biāo)的平均值為:PSNRY降低了0.06 dB,速度提高了38.94%,碼率提高了1.63%。L=2時(shí)各項(xiàng)指標(biāo)平均值為:PSNRY降低了0.07 dB,速度提高了40.79%,碼率提高了2.01%。
從表3可以看出,由于本算法充分考慮了宏塊本身的特性,在進(jìn)行預(yù)測(cè)前對(duì)宏塊特性預(yù)判,避免了全搜索算法的窮舉搜索方式,降低了復(fù)雜度,節(jié)省了時(shí)間。同時(shí),試驗(yàn)對(duì)各測(cè)試序列的PSNR值的影響非常小,對(duì)視頻序列的視覺(jué)影響極小。
分析了宏塊紋理特征與候選預(yù)測(cè)模式的關(guān)系,對(duì)于紋理特征明顯的宏塊,直接從兩種預(yù)測(cè)模式(Intra_16×16和Intra_4×4)中選取一種,從而避免對(duì)每一個(gè)宏塊都進(jìn)行兩種模式的預(yù)測(cè)。對(duì)于那些特征不明顯的宏塊,則用標(biāo)準(zhǔn)算法進(jìn)行判斷,以保證用最佳的模式來(lái)編碼。并且對(duì)Intra_4×4模式利用紋理方向預(yù)測(cè)來(lái)排除可能性小的預(yù)測(cè)模式。試驗(yàn)證明,在PSNR和碼率變化很小的情況下,提高了編碼速度。
表3 QCIF標(biāo)準(zhǔn)視頻序列測(cè)試結(jié)果(以全搜索算法為基準(zhǔn))
文中對(duì)宏塊模式判定使用雙閾值,閾值大小將會(huì)直接影響編碼性能,而紋理復(fù)雜度不同的視頻差分和的差別也很大,在下一步工作中將考慮采用自適應(yīng)的閾值,來(lái)代替本文中的固定值。
[1]ITU-T Recommendation H.264&ISO/IEC 14496-10 (MPEG-4)AVC,Advanced video coding for generic audiovisual services[S].version 3.2005.
[2]滑斌杰,張有會(huì),王志巍,等.一種快速H.264/AVC塊幀內(nèi)預(yù)測(cè)模式選擇算法[J].微計(jì)算機(jī)應(yīng)用,2009,30(4):12-17.
[3]王超,于洪珍,厲丹,等.H.264幀內(nèi)預(yù)測(cè)編碼的優(yōu)化與實(shí)現(xiàn)[J].電視技術(shù),2009,33(12):21-23.
[4]王海勇,孫雁飛,吳啟宗.H.264編碼中幀內(nèi)預(yù)測(cè)算法研究[J].電視技術(shù),2009,33(8):11-12.
[5]SULLIVAN G,WIEGAND T.Rate distortion optimization for video compression[J].IEEE Signal Processing Magazine,1998(15):74-90.
[6]KIM J,JEONG J.Fast intra-mode decision in H.264 video coding using simple directional masks[J].Proceedings of SPIE,2005,5960:1071-1079.
[7]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)——H.264/AVC[M].北京:人民郵電出版社,2005:210-218.
[8]PAN F,LIN X,RAHARDJA S,et al.A directional field based fast intra mode decision algorithm for h.264 video coding[C]//Proc.IEEE International Conference on Multimedia and Expo.Taipei,China:IEEE Press,2004,2:1147-1150.
[9]曾煥強(qiáng),蔡燦輝.H.264/AVC快速幀內(nèi)預(yù)測(cè)模式選擇算法[J].中國(guó)圖象圖形學(xué)報(bào),2007,12(2):189-194.
[10]賈克斌,謝晶,方晟.一種基于自相關(guān)法的H.264/AVC高效幀內(nèi)壓縮算法[J].電子學(xué)報(bào),2006,34(1):152-154.
[11]WIEGAND T,SULLIVAN G,BJNTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):560-576.
[12]RICHARDSON I E G.H.264 and MPEG4 video compression:video coding for next generation multimedia[M].Aberdden,UK:John Wiley and Sons,2003.
[13]黃坤,李見(jiàn)為,吳心紅.一種求取指紋圖像方向的方法[J].計(jì)算機(jī)工程,2007,33(5):166-167.