何驥鳴,何石軒,陳昭明,黃 昱
(重慶綠色智能技術研究院智能制造技術研究所,重慶 401122)
責任編輯:魏雨博
H.264/AVC是由兩大標準化組織ISO與ITU-T共同成立的聯合視頻組(JVT),于2003年共同制定的新數字視頻通信標準,具有更高的數據壓縮比,同時提供不同的基線和檔次,以滿足不同的網絡應用需求[1]。該標準獲得了更好的編碼效率及視頻質量,但冗余量降低使其抗誤碼能力更加脆弱,誤碼擴散導致重構圖像質量急劇下降。錯誤隱藏技術就是充分利用視頻數據之間的相關性和人類視覺特性,對丟失的數據進行恢復,即對錯誤進行隱藏。
H.264錯誤隱藏算法分為幀內與幀間錯誤隱藏。幀內錯誤使用空間像素加權平均算法[2],由于采用邊界像素進行加權平均,隱藏后的圖像能夠取得較好的平滑性,但對有邊緣信息的丟失塊隱藏效果較差。
本文根據文獻[3-9]的不同錯誤隱藏算法的優勢與不足,改進傳統的邊緣檢測算法,提出了基于相鄰塊邊緣信息的方向加權算法。通過對相鄰塊的邊緣檢測來確定丟失塊的類型,如果是邊緣信息較弱的丟失塊,為降低復雜度,直接使用空間像素加權平均算法,以獲取較好的平滑性。如果丟失塊是邊緣信息較強的丟失塊,則采用改進算法。通過區域選擇、亮度信號插值、塊位置檢測等方式,在H.264官方測試代碼JM86中進行移植。分別在MATLAB與JM86平臺下,對該算法進行了性能測試及分析。
空間像素平均算法如圖1所示,計算公式如下。

圖1 空間像素加權平均算法

其中P為丟失塊中某1個點的像素值,p1,p2,p3,p4分別為此像素點水平、垂直方向上在相鄰塊邊界上的像素值,d1,d2,d3,d4為此像素點到 p1,p2,p3,p4的距離。
該算法首先對丟失塊與相鄰塊的鄰接區域使用Sobel算子進行檢測,獲取相鄰區域每個相關像素[3]的梯度幅度及方向。通過這些相關像素確定相鄰塊的方向,使用相鄰塊方向及丟失像素空間位置進行加權,確定最終的插值方向。最后,根據丟失塊的位置,選取可用的像素及正確的插值方法,以適應實際工程應用。
與文獻[3]不同,本文對相鄰塊的像素分別進行邊緣檢測。丟失塊周圍一共有8個相鄰塊,其中與丟失塊最鄰近的像素,能夠很好地反映丟失塊邊緣信息,如圖2黑色區域所示。為減少計算量,選擇該區域像素做邊緣檢測。H.264的彩色信號由亮度(Y)信號及色度(U,V)信號組成,空間像素平均算法能夠將色度信號恢復到30 dB以上,為降低運算量及復雜度,只對亮度信號進行插值處理。

圖2 丟失塊與相鄰塊的關系
由于Sobel算子能簡單正確地反映邊緣方向,選擇該算子進行計算,包含水平算子Sx及垂直算子Sy。

垂直和水平梯度計算公式分別為

Y(i,j)為圖像中的某一像素點的亮度值,其梯度的幅度及方向為

0~-π的方向取正補角到0~π之間,每隔π/8劃分為一個方向,每個方向依次編號為k=1~8,如圖3所示。

圖3 邊緣的8個方向的劃分及編號
將梯度幅度值總和最大的方向定義為此相鄰塊的方向。由于CCD成像特點,即使感應相同顏色,在圖像中也可能有不同的灰度值,具有一定的梯度幅度,這些像素實際上并沒有邊緣信息,因此不需要對它們進行統計,該算法統計梯度幅度值在60以上的像素。同時,只有那些在其方向下延伸后通過丟失塊的像素才能稱之為相關像素。如圖4所示,P1坐標為(x1,y1)與 P2坐標為(x2,y2),P1在其邊緣方向下延伸后不能經過丟失塊,不能反映丟失塊的邊緣信息,不是相關像素,而P2則是相關像素。式(7) ~(10)用來判斷相關像素,X1,X2,Y1,Y2 為其他相鄰塊中像素點在其方向下與丟失塊邊界相交的坐標位置。如果為相關像素,則相交位置的坐標范圍是0~15。


圖4 檢測像素點延伸與丟失塊相交示意圖
確定為相關像素后,統計某方向下的相關像素梯度值總和。

Dn[k]統計相鄰塊n在方向k下的所有相關像素幅度總值。最大Dn[k]值的方向k為該相鄰塊的方向。

按式(12)通過相鄰塊方向下的梯度幅度總值Dn[k]及丟失像素到相鄰塊的距離dn進行加權計算,如圖5所示,取加權結果最大值的相鄰塊方向為最后的丟失像素插值方向。加權后最大值為D′n[k],則P1像素的插值方向為k,P1像素值按式(13)進行插值計算,p1和p2的坐標可由式(14)~(17)計算,p1,p2為邊界點,某一坐標已知,另一坐標位置由X1,X2,Y1和Y2中取值范圍為0~15的值確定其所屬邊界及位置。

圖5 P1像素的方向加權

幀內錯誤隱藏流程如圖6所示,通過JM86中塊位置檢測,判斷哪些塊接收到,只用可接收到的塊進行插值。當只有1個可用塊時,取接收到的相鄰塊邊界像素進行加權插值

當相鄰塊不存在或沒有正確接收時,仍然使用這些塊中的像素值進行插值就會出現錯誤。對于這種情況則使用JM86自帶的空間像素加權平均算法來避免運行錯誤或插值錯誤。因此,該算法不需要成對接收塊,即使只收到1個相鄰塊也能充分利用其邊緣信息對丟失塊的部分信息進行有效隱藏。

圖6 幀內錯誤隱藏流程
本文通過相鄰塊中的相關像素數總梯度值來選擇丟失塊的插值方法,將所接收到的相鄰塊中所有方向下的相關像素數總梯度值進行統計,通過這些方向下的相關像素數總梯度值與所有相關像素數總梯度值進行比較。當這個比值小于0.1時,說明此丟失塊邊緣信息較弱,采用空間像素加權平均算法;當這個值大于0.1時,說明此塊的邊緣信息較強,為了較好的保留邊緣信息,則采用改進的錯誤隱藏算法。
本文首先在仿真軟件MATLAB上對四類圖片進行仿真測試,如圖7所示。

圖7 測試圖片
圖片丟失設置如圖8所示。

圖8 宏塊丟失設置
圖像特點為:Lena邊緣信息比較豐富,局部紋理比較復雜;Peppers邊緣信息豐富,紋理比較復雜;Baboon邊緣信息較少,紋理復雜;Foreman邊緣信息豐富,紋理較少。
測試結果如表1所示。

表1 改進算法MATLAB仿真結果
從表1可以看出,由于紋理、邊緣等圖像特點不同,各種算法的效果有較大區別,同時圖像的尺寸大小也對隱藏效果有較大影響,因為圖像尺寸越大,代表不同圖像特點的所有丟失塊區別越小,隱藏結果約接近,PSNR值也約接近。對于邊緣信息比較豐富的圖片如Lena和Pepper,這3種改進的算法能夠取得一定的錯誤隱藏效果,基于單一方向下的錯誤隱藏效果與自適應錯誤隱藏效果幾乎相同,要高于頻域外推法。對于Baboon這種紋理信息比較復雜的圖片的恢復效果較差,單一方向下的錯誤隱藏算法和頻域外推法的隱藏效果還略低于空間像素平均算法。對于Foreman這種邊緣信息豐富,紋理較少的圖片,這3種錯誤隱藏算法能夠更好的改善圖像質量,自適應算法明顯優于其它錯誤隱藏算法。
Lena(256×256)和Foreman(174×144)圖像隱藏后的主觀效果如圖9所示。

圖9 改進算法主觀效果結果比較
通過主觀效果比較可以看出,由于單一方向插值算法是根據圖像的邊緣信息在一個方向下進行插值,因此對邊緣信息比較單一的丟失塊隱藏效果較好。對于紋理復雜的丟失塊,空間像素加權平均算法能夠取得較好的效果。自適應錯誤隱藏算法能夠結合兩者的優點,因此能夠取得很好的隱藏效果。頻域外推法也是根據邊緣信息進行插值的,因此對邊緣信息比較簡單的丟失塊能夠取得較好的效果,但是由于高頻系數恢復較為困難,因此,圖像細節部分隱藏效果較差。
為了得到實際應用情況下的測試效果,在H.264標準測試平臺JM86上進行驗證,在編碼端選擇編碼幀為200幀,IPPPP格式,靈活宏塊重排(FMO)選擇分散模式,兩片組,片1取前30個宏塊,其余為片2,片組丟失情況圖10a所示,該方法模擬了各種可能的相鄰塊接收情況,同時符合分片傳輸的實際情況??陀^仿真結果如表2所示,主觀效果如圖10b~10d所示。經工程移植后各算法的主客觀效果與MATLAB仿真結果區別更加明顯。

圖10 某幀丟失一個片的錯誤情況
從客觀比較結果來看,基于邊緣檢測的單一方向插值算法要大大優于空間像素加權平均算法,本文的自適應錯誤隱藏算法優于單一方向插值算法。從主觀效果來看,空間像素加權平均算法能夠使丟失塊獲得較好的平滑性,但是對于邊緣信息較強的丟失塊產生了錯誤的恢復效果,如圖10b上方的邊緣信息較強丟失塊。單一方向插值算法對邊緣信息較強的丟失塊取得了較好的隱藏效果,對于邊緣信息復雜的丟失塊中部分像素采用了錯誤的插值方向,如圖10b右眼區域。改進算法克服了以上算法的缺點,并且在丟失塊與相鄰塊連接區域獲取了正確的插值方向及更加平滑的隱藏效果。與其他算法相比,改進的自適應錯誤隱藏算法在主、客觀效果都有較大的提高。

表2 JM86仿真結果
本文采用了自適應幀內錯誤隱藏算法,對不同類型的丟失塊采用更為有效的隱藏算法。對邊緣信息豐富的丟失塊,克服了空間像素加權平均算法對邊緣信息恢復較差的缺點。相鄰塊對距離越近的丟失像素插值權重越大,避免了文獻[3]中鄰接區域平滑性差、插值方向單一等缺點。方向加權不依賴信息匹配,克服了文獻[5]需要接收到匹配丟失塊的制約。自適應方法對邊緣信息不強的丟失塊保留了像素加權平均算法的優點。通過區域選擇、亮度信號插值、塊位置檢測等方式解決了實際應用中的難點。該算法運用于JM86實際應用中,測試結果表明,該算法比一般傳統算法高出3 dB,改善了圖像質量,滿足實際應用需求,具有較高的工程價值。
[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.