周 洋 蔣剛毅 郁 梅 胡方寧 王海泉
?
面向HBP編碼格式的立體視頻B幀整幀丟失分層錯誤隱藏算法
周 洋*①②蔣剛毅②③郁 梅②③胡方寧①王海泉①
①(杭州電子科技大學(xué)通信工程學(xué)院 杭州 310018)②(寧波大學(xué)信息科學(xué)與工程學(xué)院 寧波 315211)③(南京大學(xué)計算機軟件新技術(shù)國家重點實驗室 南京 210093)
針對分層B幀(HBP)編碼格式的立體視頻B幀整幀丟失的問題,該文分析了雙視點視頻中存在的視點間運動矢量相關(guān)性,提出一種分層錯誤隱藏算法。該算法與當(dāng)前主流的方法有兩大不同:一是該算法采用分級隱藏,根據(jù)B幀的重要性等級不同采用不同的錯誤隱藏方法;二是該算法考慮了相鄰視點序列之間的宏塊運動矢量相關(guān)性。實驗表明,該算法的性能優(yōu)于當(dāng)前常用的H.264多視點視頻整幀丟失錯誤隱藏方法。
立體視頻編碼;錯誤隱藏;分層B幀;視點間相關(guān)性
多視點視頻能夠提供靈活的場景描述形式,可用于立體視頻、自由視點視頻等新興視頻服務(wù)中。立體視頻僅需兩個視點即可實現(xiàn),能讓用戶對觀測到的視頻場景具有一種3維深度感。但是,當(dāng)立體視頻流通過無線網(wǎng)絡(luò)等易錯信道傳輸時,由于網(wǎng)絡(luò)阻塞和信道擾動,會不可避免地出現(xiàn)數(shù)據(jù)包丟失或部分比特出錯的問題。對基于分層B幀(Hierarchical B Pictures, HBP)預(yù)測結(jié)構(gòu)的多視點視頻編碼,由于B幀采用雙向預(yù)測和視點間預(yù)測,能比單視點P幀圖像達到更高的壓縮率,即可以將中/低分辨率的B幀圖像壓縮后封裝到一個數(shù)據(jù)包中進行傳輸,但該方法造成丟失一個數(shù)據(jù)包將導(dǎo)致整幀圖像丟失的問題。此外,基于網(wǎng)絡(luò)的視頻流傳輸通常采用RTP/UDP/IP,其丟包率可能高達20%[1],會發(fā)生多個RTP數(shù)據(jù)包同時丟失的現(xiàn)象,從而導(dǎo)致整幀圖像丟失。因此,有必要設(shè)計專門針對整幀丟失的錯誤隱藏方法。
由于HBP預(yù)測結(jié)構(gòu)采用分層預(yù)測,不同時刻的丟失B幀與該視點內(nèi)參考幀存在不同的時域相關(guān)性。另一方面,從錯誤圖像的差錯傳遞角度來看,不同時刻的B幀丟失對后續(xù)幀的影響也不同,對不同時刻的丟失B幀采用相同的錯誤隱藏方法并不能取得滿意的效果。因此,本文提出了一種面向HBP結(jié)構(gòu)的分層B幀整幀丟失錯誤隱藏算法。該算法的主要貢獻在于:(1)鑒于HBP預(yù)測結(jié)構(gòu)的分層特征,對不同層的B幀丟失采用不同的錯誤隱藏方法;(2)分析多視點視頻序列間的視點間運動相關(guān)性和視差相關(guān)性,并依據(jù)相關(guān)性大小等信息對出錯圖像進行分區(qū),對不同區(qū)域采用不同的隱藏策略。
基于HBP的立體視頻編碼結(jié)構(gòu)如圖1所示。本文在運動/視差矢量估計中,聯(lián)合不同視點間對象的運動矢量和視差矢量相關(guān)性,設(shè)計了一種結(jié)合相關(guān)性分析的分層錯誤隱藏算法,如表1所示。
表1 B幀整幀丟失分層錯誤隱藏算法步驟
圖1 基于HBP結(jié)構(gòu)的立體視頻編碼預(yù)測結(jié)構(gòu)
在步驟3中,根據(jù)立體視頻解碼時各宏塊的參考關(guān)系,以及同一視點時域幀差值大小,對立體視頻序列進行分類并對丟失幀區(qū)域進行分割,將丟失幀分割成強視點間相關(guān)性的背景區(qū)域和前景區(qū)域,以及強時域相關(guān)性的背景區(qū)域和前景區(qū)域;然后,依據(jù)左右視點的運動矢量相關(guān)性大小,將前景區(qū)域進一步劃分為強運動相關(guān)性的前景區(qū)域和弱運動相關(guān)性的前景區(qū)域。
由于雙/多視點視頻序列是由間隔相近的雙/多個攝像機對同一場景拍攝得到的,一般來說,左右相鄰的兩臺攝像機拍攝到的運動物體之間存在一定的運動相似性。下文取多視點視頻序列中的“0”和“1”兩個視點的各幀圖像進行分析,具體步驟如下:
(1)在解碼端獲取各幀圖像的運動矢量和視差矢量;
丟失幀劃分主要有兩個步驟:步驟1,根據(jù)立體視頻解碼時各宏塊的參考關(guān)系和同一視點各幀圖像的時域幀差值大小,先對立體視頻序列進行分類,然后對丟失幀進行區(qū)域劃分,將丟失幀分割成強視點間相關(guān)性的背景區(qū)和前景區(qū),或強時域相關(guān)性的背景區(qū)和前景區(qū);步驟2,依據(jù)左右視點的運動矢量相關(guān)性大小,將前景區(qū)域進一步劃分為強運動相關(guān)性的前景區(qū)域和弱運動相關(guān)性的前景區(qū)域。
步驟1的具體過程如下:
(1)依據(jù)右視點B幀解碼時,時域參考宏塊數(shù)目和視點間參考宏塊數(shù)目的大小,將立體視頻序列各幀圖像劃分成強時域相關(guān)性圖像和強視點間相關(guān)性圖像。一般來說,立體視頻序列各幀圖像的時域相關(guān)性強于視點間相關(guān)性,但當(dāng)場景發(fā)生大規(guī)模改變的情況下除外。
需要指出的是,在解碼過程中,當(dāng)核心幀發(fā)生丟失時,其運動矢量也發(fā)生丟失,則對核心幀丟失無法進行運動矢量相關(guān)性分析,只能對其進行背景區(qū)域和前景區(qū)域劃分。
2.3.1核心幀重建 對于左視點圖像的核心幀丟失,將其劃分成背景區(qū)域和前景區(qū)域,對背景區(qū)域采用從參考幀直接拷貝的方法;對前景區(qū)域,由于右視點圖像尚未解碼,在錯誤隱藏時采用基于Skip模式的錯誤隱藏法。
圖2 運動矢量相關(guān)性分布圖(Exit序列)
對于右視點圖像的核心幀丟失,對劃分后的背景區(qū)域也采用直接拷貝法進行修復(fù)。但對于前景區(qū)域,以宏塊為單位,利用左右視點的運動矢量相關(guān)性分成4個8′8的塊逐個進行隱藏。修復(fù)塊定義如下:
由2.1節(jié)分析可知,左右視點圖像之間存在一定的運動相關(guān)性,可將視差補償后的左視點圖像塊的運動矢量作為右視點對應(yīng)塊的運動矢量,但對于部分宏塊,左右視點運動矢量存在一定差異。受文獻[12]啟發(fā),我們在解碼器中增加一個指針數(shù)組,將該視點上一個核心幀解碼時的后向運動矢量保存下來,用來提高丟失塊運動矢量估計的精度。丟失塊的前向運動矢量估計步驟如下:
表2比較過程偽代碼
for if ( or )不成立作為當(dāng)前丟失塊的運動矢量估計值,即=;else利用四周丟失塊運動矢量估計值的中值作為該丟失塊的運動矢量;end
2.3.2次核心幀重建 對于左視點圖像的次核心幀丟失,首先將丟失幀劃分成背景區(qū)域和前景區(qū)域。對背景區(qū)域采用直接拷貝的方法進行錯誤隱藏。對于前景區(qū)域,采用基于時域運動矢量相關(guān)性的錯誤隱藏法,計算公式定義為
對于右視點圖像的次核心幀發(fā)生丟失,首先采用2.2節(jié)的方法將其劃分成背景區(qū)域,強運動相關(guān)性的前景區(qū)域和弱運動相關(guān)性的前景區(qū)域,對背景區(qū)域同樣采用直接拷貝的方法進行錯誤隱藏。對于強運動相關(guān)性的前景區(qū)域,利用左右視點圖像的運動矢量相關(guān)性,先對右視點圖像中的待恢復(fù)宏塊進行視差補償,在左視點圖像中找到相應(yīng)宏塊;然后取該宏塊中每個8′8塊的運動矢量作為丟失宏塊的運動矢量估計值;最后,利用式(7)進行基于四分之一像素等級的運動補償恢復(fù)出強運動相關(guān)性的前景區(qū)域。
2.3.3普通幀重建 對于普通幀,其出錯不會產(chǎn)生幀間差錯傳遞,也不會影響后續(xù)幀的解碼(除了左視點圖像中占極小部分的用作視點間預(yù)測的宏塊)。對于普通幀的重建,可以在略微降低修復(fù)質(zhì)量的基礎(chǔ)上降低其錯誤隱藏算法的復(fù)雜度。因此,普通幀重建的具體過程類同于2.3.2節(jié)中描述的次核心幀重建過程,但在采用式(6)或(7)進行運動補償時,采用1/2像素等級進行補償計算來降低算法復(fù)雜度,其計算公式參見文獻[13]。
本文選用典型的多視點視頻序列“Exit”和“Ballroom”[14]來評估所提出算法的性能,其中“Exit”序列背景區(qū)域較大,“Ballroom”序列運動信息較豐富,圖像分辨率為640′480,幀率為25 fps,測試序列選用視點0和1。實驗中的立體視頻編碼結(jié)構(gòu)如圖1所示,具體編碼參數(shù)設(shè)置如表3所示。在進行算法性能比較時,由于針對面向HBP結(jié)構(gòu)的B幀整幀丟失錯誤隱藏算法的相關(guān)研究尚處于起步階段,本文選用多視點編碼校驗平臺JMVC中提供的兩種整幀丟失錯誤隱藏算法:直接拷貝法和基于SKIP模式的錯誤隱藏法。此外,還與文獻[11]中提出的運動預(yù)測法進行了性能比較。對比算法有4種:(1)直接拷貝法1(DC1),該算法采用同一視點中,相鄰的前向參考幀來填補丟失幀;(2)直接拷貝法2(DC2),該算法采用同一時刻,相鄰視點的參考幀來填補丟失幀;(3)基于Skip模式的錯誤隱藏法(SKIP), 它是多視點視頻編碼標準H.264/MVC的校驗平臺JMVC中自帶的一種錯誤隱藏方法?!癝KIP”法在算法實現(xiàn)中先將丟失宏塊的編碼模式設(shè)為Skip模式,利用Skip編碼模式下宏塊運動矢量為零的特征在前后參考幀中找到匹配塊,然后對匹配塊進行殘差補償,最后將補償后的前后匹配塊像素值相加取平均來完成丟失塊的錯誤掩蓋;(4)運動預(yù)測法(Motion Prediction, MP)[11]。
在進行錯誤隱藏仿真時,設(shè)定圖像的分量發(fā)生丟失,,分量能正常解碼。為了精確比較并顯示HBP結(jié)構(gòu)下出錯幀的錯誤傳遞情況,采用逐幀比較的方法,通過3組實驗分別對核心幀、次核心幀和普通幀丟失進行比較。在各組實驗中,設(shè)每個GOP中的該類幀發(fā)生整幀丟失,先前解碼幀正確解碼。
表4給出了核心幀、次核心幀和普通幀經(jīng)不同算法隱藏后的分量平均PSNR值,從表中可以看出,對于“Exit”序列核心幀,本文提出的方法相比MP, SKIP, DC1和DC2法,能提高平均PSNR值0.51 dB到14.58 dB;對次核心幀,能提高0.56 dB到13.29 dB;對普通幀,能提高0.17 dB到9.94 dB。對于“Ballroom”序列的核心幀,次核心幀和普通幀,本文方法比上述4種方法能分別提高0.63 dB到12.15 dB, 0.95 dB到11.72 dB和0.4 dB到8.31 dB。從表4的實驗結(jié)果可發(fā)現(xiàn),利用同一視點內(nèi)各幀圖像時域相關(guān)性的“DC1”法優(yōu)于利用視點間相關(guān)性的“DC2”法,這說明同一視點內(nèi)的時域相關(guān)性明顯強于同一時刻的視點間相關(guān)性。
圖3(a)和圖3(b)分別給出了“Exit”右視點序列碼流傳輸中發(fā)生核心幀和次核心幀丟失后,經(jīng)不同算法錯誤隱藏后的各幀圖像客觀質(zhì)量性能曲線(PSNR曲線),幀數(shù)為前57幀。圖中,“Free”表示正確解碼后的圖像PSNR值,“No_EC”表示未經(jīng)錯誤隱藏的出錯圖像。從圖中可以看出,本文方法和MP法明顯優(yōu)于 DC1, DC2和SKIP法,但由于本文方法在視點間運動相關(guān)性利用中考慮了物體在時域方向的運動連續(xù)性,以及在次核心幀隱藏中根據(jù)視點間運動相關(guān)性的強弱對不同區(qū)域采用不同的方法,比MP法進一步提高了錯誤隱藏性能。SKIP法由于進行了殘差補償,并對前后向參考幀求均值,其性能優(yōu)于DC1法和DC2法。
圖4分別給出了“Exit”序列某個次核心幀(第30幀)丟失后經(jīng)MP法,SKIP法和本文方法修復(fù)后的主觀質(zhì)量圖。MP法先根據(jù)全局視差運動對當(dāng)前宏塊作視差補償,接著利用相鄰視點中對應(yīng)塊的運動信息進行運動補償,但全局視差矢量不能準確描述各個宏塊的視差矢量,且各圖像塊的視點間相關(guān)性存在差異,錯誤隱藏后的圖像有較大區(qū)域存在塊模糊現(xiàn)象,如圖4(a)中的白框區(qū)域;SKIP法由于采用前后向拷貝而導(dǎo)致重影(圖4(b)白框區(qū)域),并會導(dǎo)致后續(xù)幀解碼時出現(xiàn)嚴重的錯誤傳遞;而本文方法取得了良好的主觀質(zhì)量。
表3編碼參數(shù)設(shè)置
編碼參數(shù)預(yù)測結(jié)構(gòu)GOPQP幀率搜索范圍搜索模式參考幀數(shù) 參數(shù)值HBP83225 fps32′32快速3
表4各類幀發(fā)生整幀丟失后經(jīng)不同算法隱藏后的平均PSNR值(dB)
視頻序列 幀類正確解碼未隱藏DC1DC2SKIPMP本文方法 Exit核心幀PSNR增量37.5516.5131.5022.0432.7736.1136.62 20.19 5.1214.58 3.85 0.51 次核心幀PSNR增量37.5519.0532.8523.6834.2036.4136.97 17.92 4.1213.29 2.57 0.56 普通幀PSNR增量37.5523.5734.7626.7635.9436.5336.70 13.13 1.94 9.94 0.76 0.17 Ballroom核心幀PSNR增量35.6915.3424.2821.3625.5132.8833.51 17.98 9.1312.15 8.00 0.63 次核心幀PSNR增量35.6917.6925.9822.6127.4133.3834.33 16.64 8.3511.72 6.92 0.95 普通幀PSNR增量35.6922.2029.1625.5830.6433.4933.89 11.69 4.73 8.31 3.25 0.40
從算法復(fù)雜度分析來看,本文方法算法復(fù)雜度的增加部分主要來自圖像分區(qū)與丟失運動矢量估計方面。本文對核心幀、次核心幀和普通幀分別進行了不同隱藏算法的運行時間統(tǒng)計,實驗硬件環(huán)境采用2.53 GHz Intel Core2 Duo 處理器,3 G內(nèi)存的筆記本電腦,統(tǒng)計結(jié)果如表5所示。DC1法由于直接采用緩沖區(qū)里的先前解碼幀替換丟失幀,執(zhí)行時間最短;SKIP法將丟失幀的各宏塊直接設(shè)定為Skip模式,比宏塊正常解碼的執(zhí)行時間更低。本文方法由于對圖像進行了分區(qū),對平滑的背景區(qū)采用了直接拷貝的方法,對運動區(qū)采用基于運動視差補償?shù)姆椒ǎ虼撕诵膸?、次核心幀的修?fù)時間比正常解碼的執(zhí)行時間略長,對解碼一幀來說大概有2%左右的增加,可滿足實際應(yīng)用的需要。對于普通幀,由于采用1/2像素等級的運動視差補償,執(zhí)行時間降低。
鑒于此前的錯誤隱藏算法主要面向IPPP編碼格式下的I幀或P幀解碼出錯,為此本文提出了針對HBP編碼結(jié)構(gòu)的雙視點視頻B幀整幀丟失分層錯誤隱藏方法。該方法的主要特點是:(1)根據(jù)解碼中B幀的位置不同,將B幀劃分成核心幀、次核心幀和普通幀,并采用不同的錯誤隱藏方法對不同類型的丟失幀進行分層錯誤隱藏,避免了先前B幀錯誤隱藏法對重要性等級不同的B幀僅采用單一方法的缺點;(2)分析了雙視點視頻中,左右視點各編碼塊間存在的運動矢量相關(guān)性,并將其應(yīng)用到錯誤隱藏算法中,提高了差錯掩蓋的性能。實驗表明,本文算法相對于H.264/JMVC校驗軟件中自帶的SKIP法最多能提高平均PSNR值8.0 dB。下階段工作中,我們將繼續(xù)挖掘多視點視頻編碼中存在的視點間相關(guān)性,將本文算法擴展到兩個視點以上的多視點視頻編碼中。
圖3 “Exit”序列右視點幀丟失經(jīng)不同算法恢復(fù)后各幀PSNR曲線
圖4 “Exit”序列次核心幀(第30幀)丟失后經(jīng)不同算法修復(fù)后的主觀質(zhì)量圖
表5不同算法下各出錯幀的平均修復(fù)耗時(ms)
測試序列出錯幀類型正常解碼DC2SKIPMP本文方法 Exit核心幀63.2524.6560.8763.6764.31 次核心幀63.2724.3160.5263.8964.89 普通幀63.1524.3760.3563.5362.77 Ballroom核心幀66.7126.2465.2567.1667.79 次核心幀66.3326.1664.9666.8367.83 普通幀65.8925.4263.5366.3665.26
[1] Wan Shuai and Ebroul I. Rate-distortion optimized motion-compensated prediction for packet loss resilient video coding[J]., 2007, 16(5): 1327-1338.
[2] Zhang Yong-bing, Xiang Xin-guang, Zhao De-bin,.. Packet video error concealment with auto regressive model[J]., 2012, 22(1): 12-27.
[3] Song K, Chung T, and Kim C S. Error concealment of multi-view video sequences using inter-view and intra-view correlations[J]., 2009, 20(4): 281-292.
[4] Vetro A, Wiegand T, and Sullivan G J. Overview of the stereo and multiview video coding extensions of the H.264/MPEG-4 AVC standard[J]., 2011, 99(4): 626-642.
[5] Xiang Xin-guang, Zhao De-bin, Wang Qiang,.. A joint encoder-decoder error control framework for stereoscopic video coding[J]., 2010, 21(8): 975-985.
[6] 郭繼昌, 趙俊杰. 基于運動特性分析的立體視頻差錯掩蓋[J]. 電子與信息學(xué)報, 2012, 34(12): 2809-2815.
Guo Ji-chang and Zhao Jun-jie. Stereoscopic error concealment based on motion characteristic analysis[J].&, 2012, 34(12): 2809-2815.
[7] Zhou Yang, Jiang Gang-yi, Yu Mei,.. Region-based error concealment of right-view for stereoscopic video transmission[J]., 2012, 38(1): 217-230.
[8] Liu Yun-qiang, Wang Jin, and Zhang Huan-huan. Depth image-based temporal error concealment for 3-D video transmission[J]., 2010, 20(4): 600-604.
[9] Hewage C T E R, Worrall S, Dogan S,.. Frame concealment algorithm for stereoscopic video using motion vector sharing[C]. Proceedings of 2008 IEEEInternational Conference on Multimedia and Exposition, Hannover, Germany, 2008: 485-488.
[10] Liu Xiang-kai, Peng Qiang, and Fan Xiao-jiu. Frame loss concealment for multi-view video plus depth[C]. Proceedings of 2011 15th IEEE International Symposium on Consumer Electronics, Singapore, 2011: 208-211.
[11] Liu Shu-jie, Chen Ying, Wang Ye-kui,.. Frame loss error concealment for multiview video coding[C]. Proceedings of 2008 IEEE International Symposium on Circuits and System, Berlin, 2008: 3470-3473.
[12] Tsai Wen-jin and Liu Wan-han. Error resilient video coding using hybrid hierarchical B pictures[C]. Proceedings of IEEE International Conference on ImageProcessing, Florida, USA, 2012: 1641-1644.
[13] Lu L, McCanny J V, and Sezer S. Multi-standard sub-pixel interpolation architecture for video motion estimation[C].Proceedings of 2008 IEEE International System on Chip Conference, California, USA, 2008: 229-232.
[14] ftp [OL]. ftp.merl.com/pub/avetro/mvc-testseq, 2009.
周 洋: 男,1979年生,博士,講師,研究方向為3維視頻編解碼、視頻傳輸差錯控制.
蔣剛毅: 男,1964年生,教授,主要研究方向為多媒體信息通信、圖像處理.
郁 梅: 女,1968年生,教授,主要研究方向為多媒體信號處理、視頻編碼.
A Hierarchical Error Concealment Algorithm for Entire B-frame Loss in Stereoscopic Video Coding with Hierarchical B Pictures
Zhou Yang①②Jiang Gang-yi②③Yu Mei②③Hu Fang-ning①Wang Hai-quan①
①(,,310018,)②(,,315211,)③(,,210093,)
To deal with the problem of entire B-frame loss in stereoscopic video coding with Hierarchical B Pictures (HBP) predict structure, this paper analyzes the motion vector correlations in the frames of adjacent views in a double-view sequence, and proposes a hierarchical Error Concealment (EC) algorithm. This algorithm possesses two features distinct from the popular methods. First, the algorithm applies hierarchical concealment technique, which uses different error concealment methods according to the important level of the B frames. Second, the macroblock’s motion vector correlations in adjacent-view sequence are taken into account. Experiments show that the proposed method outperforms state-of-the-art EC algorithms used in the H.264/MVC for entire frame loss.
Stereoscopic video coding;Error concealment; Hierarchical B Pictures (HBP); Inter-view correlation
TN919.82
A
1009-5896(2014)02-0377-07
10.3724/SP.J.1146.2013.00528
周洋 zhouyang_hz@126.com
2013-04-19收到,2013-10-08改回
國家自然科學(xué)基金(61271270)和浙江省自然科學(xué)基金(Y111019)資助課題