何驥鳴,何石軒,陳昭明,黃 昱
(重慶綠色智能技術(shù)研究院智能制造技術(shù)研究所,重慶 401122)
責(zé)任編輯:魏雨博
H.264/AVC是由兩大標(biāo)準(zhǔn)化組織ISO與ITU-T共同成立的聯(lián)合視頻組(JVT),于2003年共同制定的新數(shù)字視頻通信標(biāo)準(zhǔn),具有更高的數(shù)據(jù)壓縮比,同時提供不同的基線和檔次,以滿足不同的網(wǎng)絡(luò)應(yīng)用需求[1]。該標(biāo)準(zhǔn)獲得了更好的編碼效率及視頻質(zhì)量,但冗余量降低使其抗誤碼能力更加脆弱,誤碼擴(kuò)散導(dǎo)致重構(gòu)圖像質(zhì)量急劇下降。錯誤隱藏技術(shù)就是充分利用視頻數(shù)據(jù)之間的相關(guān)性和人類視覺特性,對丟失的數(shù)據(jù)進(jìn)行恢復(fù),即對錯誤進(jìn)行隱藏。
H.264錯誤隱藏算法分為幀內(nèi)與幀間錯誤隱藏。幀內(nèi)錯誤使用空間像素加權(quán)平均算法[2],由于采用邊界像素進(jìn)行加權(quán)平均,隱藏后的圖像能夠取得較好的平滑性,但對有邊緣信息的丟失塊隱藏效果較差。
本文根據(jù)文獻(xiàn)[3-9]的不同錯誤隱藏算法的優(yōu)勢與不足,改進(jìn)傳統(tǒng)的邊緣檢測算法,提出了基于相鄰塊邊緣信息的方向加權(quán)算法。通過對相鄰塊的邊緣檢測來確定丟失塊的類型,如果是邊緣信息較弱的丟失塊,為降低復(fù)雜度,直接使用空間像素加權(quán)平均算法,以獲取較好的平滑性。如果丟失塊是邊緣信息較強(qiáng)的丟失塊,則采用改進(jìn)算法。通過區(qū)域選擇、亮度信號插值、塊位置檢測等方式,在H.264官方測試代碼JM86中進(jìn)行移植。分別在MATLAB與JM86平臺下,對該算法進(jìn)行了性能測試及分析。
空間像素平均算法如圖1所示,計(jì)算公式如下。
圖1 空間像素加權(quán)平均算法
其中P為丟失塊中某1個點(diǎn)的像素值,p1,p2,p3,p4分別為此像素點(diǎn)水平、垂直方向上在相鄰塊邊界上的像素值,d1,d2,d3,d4為此像素點(diǎn)到 p1,p2,p3,p4的距離。
該算法首先對丟失塊與相鄰塊的鄰接區(qū)域使用Sobel算子進(jìn)行檢測,獲取相鄰區(qū)域每個相關(guān)像素[3]的梯度幅度及方向。通過這些相關(guān)像素確定相鄰塊的方向,使用相鄰塊方向及丟失像素空間位置進(jìn)行加權(quán),確定最終的插值方向。最后,根據(jù)丟失塊的位置,選取可用的像素及正確的插值方法,以適應(yīng)實(shí)際工程應(yīng)用。
與文獻(xiàn)[3]不同,本文對相鄰塊的像素分別進(jìn)行邊緣檢測。丟失塊周圍一共有8個相鄰塊,其中與丟失塊最鄰近的像素,能夠很好地反映丟失塊邊緣信息,如圖2黑色區(qū)域所示。為減少計(jì)算量,選擇該區(qū)域像素做邊緣檢測。H.264的彩色信號由亮度(Y)信號及色度(U,V)信號組成,空間像素平均算法能夠?qū)⑸刃盘柣謴?fù)到30 dB以上,為降低運(yùn)算量及復(fù)雜度,只對亮度信號進(jìn)行插值處理。
圖2 丟失塊與相鄰塊的關(guān)系
由于Sobel算子能簡單正確地反映邊緣方向,選擇該算子進(jìn)行計(jì)算,包含水平算子Sx及垂直算子Sy。
垂直和水平梯度計(jì)算公式分別為
Y(i,j)為圖像中的某一像素點(diǎn)的亮度值,其梯度的幅度及方向?yàn)?/p>
0~-π的方向取正補(bǔ)角到0~π之間,每隔π/8劃分為一個方向,每個方向依次編號為k=1~8,如圖3所示。
圖3 邊緣的8個方向的劃分及編號
將梯度幅度值總和最大的方向定義為此相鄰塊的方向。由于CCD成像特點(diǎn),即使感應(yīng)相同顏色,在圖像中也可能有不同的灰度值,具有一定的梯度幅度,這些像素實(shí)際上并沒有邊緣信息,因此不需要對它們進(jìn)行統(tǒng)計(jì),該算法統(tǒng)計(jì)梯度幅度值在60以上的像素。同時,只有那些在其方向下延伸后通過丟失塊的像素才能稱之為相關(guān)像素。如圖4所示,P1坐標(biāo)為(x1,y1)與 P2坐標(biāo)為(x2,y2),P1在其邊緣方向下延伸后不能經(jīng)過丟失塊,不能反映丟失塊的邊緣信息,不是相關(guān)像素,而P2則是相關(guān)像素。式(7) ~(10)用來判斷相關(guān)像素,X1,X2,Y1,Y2 為其他相鄰塊中像素點(diǎn)在其方向下與丟失塊邊界相交的坐標(biāo)位置。如果為相關(guān)像素,則相交位置的坐標(biāo)范圍是0~15。
圖4 檢測像素點(diǎn)延伸與丟失塊相交示意圖
確定為相關(guān)像素后,統(tǒng)計(jì)某方向下的相關(guān)像素梯度值總和。
Dn[k]統(tǒng)計(jì)相鄰塊n在方向k下的所有相關(guān)像素幅度總值。最大Dn[k]值的方向k為該相鄰塊的方向。
按式(12)通過相鄰塊方向下的梯度幅度總值Dn[k]及丟失像素到相鄰塊的距離dn進(jìn)行加權(quán)計(jì)算,如圖5所示,取加權(quán)結(jié)果最大值的相鄰塊方向?yàn)樽詈蟮膩G失像素插值方向。加權(quán)后最大值為D′n[k],則P1像素的插值方向?yàn)閗,P1像素值按式(13)進(jìn)行插值計(jì)算,p1和p2的坐標(biāo)可由式(14)~(17)計(jì)算,p1,p2為邊界點(diǎn),某一坐標(biāo)已知,另一坐標(biāo)位置由X1,X2,Y1和Y2中取值范圍為0~15的值確定其所屬邊界及位置。
圖5 P1像素的方向加權(quán)
幀內(nèi)錯誤隱藏流程如圖6所示,通過JM86中塊位置檢測,判斷哪些塊接收到,只用可接收到的塊進(jìn)行插值。當(dāng)只有1個可用塊時,取接收到的相鄰塊邊界像素進(jìn)行加權(quán)插值
當(dāng)相鄰塊不存在或沒有正確接收時,仍然使用這些塊中的像素值進(jìn)行插值就會出現(xiàn)錯誤。對于這種情況則使用JM86自帶的空間像素加權(quán)平均算法來避免運(yùn)行錯誤或插值錯誤。因此,該算法不需要成對接收塊,即使只收到1個相鄰塊也能充分利用其邊緣信息對丟失塊的部分信息進(jìn)行有效隱藏。
圖6 幀內(nèi)錯誤隱藏流程
本文通過相鄰塊中的相關(guān)像素數(shù)總梯度值來選擇丟失塊的插值方法,將所接收到的相鄰塊中所有方向下的相關(guān)像素數(shù)總梯度值進(jìn)行統(tǒng)計(jì),通過這些方向下的相關(guān)像素數(shù)總梯度值與所有相關(guān)像素數(shù)總梯度值進(jìn)行比較。當(dāng)這個比值小于0.1時,說明此丟失塊邊緣信息較弱,采用空間像素加權(quán)平均算法;當(dāng)這個值大于0.1時,說明此塊的邊緣信息較強(qiáng),為了較好的保留邊緣信息,則采用改進(jìn)的錯誤隱藏算法。
本文首先在仿真軟件MATLAB上對四類圖片進(jìn)行仿真測試,如圖7所示。
圖7 測試圖片
圖片丟失設(shè)置如圖8所示。
圖8 宏塊丟失設(shè)置
圖像特點(diǎn)為:Lena邊緣信息比較豐富,局部紋理比較復(fù)雜;Peppers邊緣信息豐富,紋理比較復(fù)雜;Baboon邊緣信息較少,紋理復(fù)雜;Foreman邊緣信息豐富,紋理較少。
測試結(jié)果如表1所示。
表1 改進(jìn)算法MATLAB仿真結(jié)果
從表1可以看出,由于紋理、邊緣等圖像特點(diǎn)不同,各種算法的效果有較大區(qū)別,同時圖像的尺寸大小也對隱藏效果有較大影響,因?yàn)閳D像尺寸越大,代表不同圖像特點(diǎn)的所有丟失塊區(qū)別越小,隱藏結(jié)果約接近,PSNR值也約接近。對于邊緣信息比較豐富的圖片如Lena和Pepper,這3種改進(jìn)的算法能夠取得一定的錯誤隱藏效果,基于單一方向下的錯誤隱藏效果與自適應(yīng)錯誤隱藏效果幾乎相同,要高于頻域外推法。對于Baboon這種紋理信息比較復(fù)雜的圖片的恢復(fù)效果較差,單一方向下的錯誤隱藏算法和頻域外推法的隱藏效果還略低于空間像素平均算法。對于Foreman這種邊緣信息豐富,紋理較少的圖片,這3種錯誤隱藏算法能夠更好的改善圖像質(zhì)量,自適應(yīng)算法明顯優(yōu)于其它錯誤隱藏算法。
Lena(256×256)和Foreman(174×144)圖像隱藏后的主觀效果如圖9所示。
圖9 改進(jìn)算法主觀效果結(jié)果比較
通過主觀效果比較可以看出,由于單一方向插值算法是根據(jù)圖像的邊緣信息在一個方向下進(jìn)行插值,因此對邊緣信息比較單一的丟失塊隱藏效果較好。對于紋理復(fù)雜的丟失塊,空間像素加權(quán)平均算法能夠取得較好的效果。自適應(yīng)錯誤隱藏算法能夠結(jié)合兩者的優(yōu)點(diǎn),因此能夠取得很好的隱藏效果。頻域外推法也是根據(jù)邊緣信息進(jìn)行插值的,因此對邊緣信息比較簡單的丟失塊能夠取得較好的效果,但是由于高頻系數(shù)恢復(fù)較為困難,因此,圖像細(xì)節(jié)部分隱藏效果較差。
為了得到實(shí)際應(yīng)用情況下的測試效果,在H.264標(biāo)準(zhǔn)測試平臺JM86上進(jìn)行驗(yàn)證,在編碼端選擇編碼幀為200幀,IPPPP格式,靈活宏塊重排(FMO)選擇分散模式,兩片組,片1取前30個宏塊,其余為片2,片組丟失情況圖10a所示,該方法模擬了各種可能的相鄰塊接收情況,同時符合分片傳輸?shù)膶?shí)際情況??陀^仿真結(jié)果如表2所示,主觀效果如圖10b~10d所示。經(jīng)工程移植后各算法的主客觀效果與MATLAB仿真結(jié)果區(qū)別更加明顯。
圖10 某幀丟失一個片的錯誤情況
從客觀比較結(jié)果來看,基于邊緣檢測的單一方向插值算法要大大優(yōu)于空間像素加權(quán)平均算法,本文的自適應(yīng)錯誤隱藏算法優(yōu)于單一方向插值算法。從主觀效果來看,空間像素加權(quán)平均算法能夠使丟失塊獲得較好的平滑性,但是對于邊緣信息較強(qiáng)的丟失塊產(chǎn)生了錯誤的恢復(fù)效果,如圖10b上方的邊緣信息較強(qiáng)丟失塊。單一方向插值算法對邊緣信息較強(qiáng)的丟失塊取得了較好的隱藏效果,對于邊緣信息復(fù)雜的丟失塊中部分像素采用了錯誤的插值方向,如圖10b右眼區(qū)域。改進(jìn)算法克服了以上算法的缺點(diǎn),并且在丟失塊與相鄰塊連接區(qū)域獲取了正確的插值方向及更加平滑的隱藏效果。與其他算法相比,改進(jìn)的自適應(yīng)錯誤隱藏算法在主、客觀效果都有較大的提高。
表2 JM86仿真結(jié)果
本文采用了自適應(yīng)幀內(nèi)錯誤隱藏算法,對不同類型的丟失塊采用更為有效的隱藏算法。對邊緣信息豐富的丟失塊,克服了空間像素加權(quán)平均算法對邊緣信息恢復(fù)較差的缺點(diǎn)。相鄰塊對距離越近的丟失像素插值權(quán)重越大,避免了文獻(xiàn)[3]中鄰接區(qū)域平滑性差、插值方向單一等缺點(diǎn)。方向加權(quán)不依賴信息匹配,克服了文獻(xiàn)[5]需要接收到匹配丟失塊的制約。自適應(yīng)方法對邊緣信息不強(qiáng)的丟失塊保留了像素加權(quán)平均算法的優(yōu)點(diǎn)。通過區(qū)域選擇、亮度信號插值、塊位置檢測等方式解決了實(shí)際應(yīng)用中的難點(diǎn)。該算法運(yùn)用于JM86實(shí)際應(yīng)用中,測試結(jié)果表明,該算法比一般傳統(tǒng)算法高出3 dB,改善了圖像質(zhì)量,滿足實(shí)際應(yīng)用需求,具有較高的工程價值。
[1]WIEGAND T,SULIVAN G J,BJONTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits Systems for Video Technology,2003,13(7):560-576.
[2]SUN Mingting,REIBMAN A R.Compressed video over networks:signal processing and communications series,2001[C].New York:E.M.Halliday,2001.
[3]SUH J W,HO Y S.Error concealmentbased on directionalinterpolation[J].IEEE Trans.Consumer Electronics,1997,43(3):295-302.
[4]SUN H,KWOK W.Concealmentofdamaged block transform coded images using projections onto convex sets[J].IEEE Trans.Image Processing,1995,4(4):470-477.
[5]HUANG S C,KUO S Y.Optimization of hybridized error concealment for H.264[J].IEEE Trans.Broadcasting,2008,54(3):499-516.
[6]KIM W,KOO J,JEONG J.Fine directional interpolation for spatial error concealment[J].IEEE Trans.Consumer Electronics,2006,52(3):1050-1056.
[7]HUANG S C ,KUO S Y.Optimization of hybridized error concealment for H.264[J].IEEE Trans.Broadcasting,2008,54(3):499-516.
[8]CHEN Siyue,LEUNG H.A temporalapproach for improving intra-frame concealment performance in H.264/AVC[J].IEEE Trans.Circuits Systems for Video Technology,2009,19(3):422-426.
[9]KAUP A,MEISINGER K ,AACH T.Frequency selective signalextrapolation with applications to error concealment in image communication[J].AEU-International Journal of Electronics and Communications,2005,59(3):147-156.