周 洋 蔣剛毅 郁 梅 胡方寧 王海泉
?
面向HBP編碼格式的立體視頻B幀整幀丟失分層錯誤隱藏算法
周 洋*①②蔣剛毅②③郁 梅②③胡方寧①王海泉①
①(杭州電子科技大學通信工程學院 杭州 310018)②(寧波大學信息科學與工程學院 寧波 315211)③(南京大學計算機軟件新技術國家重點實驗室 南京 210093)
針對分層B幀(HBP)編碼格式的立體視頻B幀整幀丟失的問題,該文分析了雙視點視頻中存在的視點間運動矢量相關性,提出一種分層錯誤隱藏算法。該算法與當前主流的方法有兩大不同:一是該算法采用分級隱藏,根據B幀的重要性等級不同采用不同的錯誤隱藏方法;二是該算法考慮了相鄰視點序列之間的宏塊運動矢量相關性。實驗表明,該算法的性能優于當前常用的H.264多視點視頻整幀丟失錯誤隱藏方法。
立體視頻編碼;錯誤隱藏;分層B幀;視點間相關性
多視點視頻能夠提供靈活的場景描述形式,可用于立體視頻、自由視點視頻等新興視頻服務中。立體視頻僅需兩個視點即可實現,能讓用戶對觀測到的視頻場景具有一種3維深度感。但是,當立體視頻流通過無線網絡等易錯信道傳輸時,由于網絡阻塞和信道擾動,會不可避免地出現數據包丟失或部分比特出錯的問題。對基于分層B幀(Hierarchical B Pictures, HBP)預測結構的多視點視頻編碼,由于B幀采用雙向預測和視點間預測,能比單視點P幀圖像達到更高的壓縮率,即可以將中/低分辨率的B幀圖像壓縮后封裝到一個數據包中進行傳輸,但該方法造成丟失一個數據包將導致整幀圖像丟失的問題。此外,基于網絡的視頻流傳輸通常采用RTP/UDP/IP,其丟包率可能高達20%[1],會發生多個RTP數據包同時丟失的現象,從而導致整幀圖像丟失。因此,有必要設計專門針對整幀丟失的錯誤隱藏方法。

由于HBP預測結構采用分層預測,不同時刻的丟失B幀與該視點內參考幀存在不同的時域相關性。另一方面,從錯誤圖像的差錯傳遞角度來看,不同時刻的B幀丟失對后續幀的影響也不同,對不同時刻的丟失B幀采用相同的錯誤隱藏方法并不能取得滿意的效果。因此,本文提出了一種面向HBP結構的分層B幀整幀丟失錯誤隱藏算法。該算法的主要貢獻在于:(1)鑒于HBP預測結構的分層特征,對不同層的B幀丟失采用不同的錯誤隱藏方法;(2)分析多視點視頻序列間的視點間運動相關性和視差相關性,并依據相關性大小等信息對出錯圖像進行分區,對不同區域采用不同的隱藏策略。
基于HBP的立體視頻編碼結構如圖1所示。本文在運動/視差矢量估計中,聯合不同視點間對象的運動矢量和視差矢量相關性,設計了一種結合相關性分析的分層錯誤隱藏算法,如表1所示。

表1 B幀整幀丟失分層錯誤隱藏算法步驟

圖1 基于HBP結構的立體視頻編碼預測結構

在步驟3中,根據立體視頻解碼時各宏塊的參考關系,以及同一視點時域幀差值大小,對立體視頻序列進行分類并對丟失幀區域進行分割,將丟失幀分割成強視點間相關性的背景區域和前景區域,以及強時域相關性的背景區域和前景區域;然后,依據左右視點的運動矢量相關性大小,將前景區域進一步劃分為強運動相關性的前景區域和弱運動相關性的前景區域。
由于雙/多視點視頻序列是由間隔相近的雙/多個攝像機對同一場景拍攝得到的,一般來說,左右相鄰的兩臺攝像機拍攝到的運動物體之間存在一定的運動相似性。下文取多視點視頻序列中的“0”和“1”兩個視點的各幀圖像進行分析,具體步驟如下:
(1)在解碼端獲取各幀圖像的運動矢量和視差矢量;



丟失幀劃分主要有兩個步驟:步驟1,根據立體視頻解碼時各宏塊的參考關系和同一視點各幀圖像的時域幀差值大小,先對立體視頻序列進行分類,然后對丟失幀進行區域劃分,將丟失幀分割成強視點間相關性的背景區和前景區,或強時域相關性的背景區和前景區;步驟2,依據左右視點的運動矢量相關性大小,將前景區域進一步劃分為強運動相關性的前景區域和弱運動相關性的前景區域。
步驟1的具體過程如下:
(1)依據右視點B幀解碼時,時域參考宏塊數目和視點間參考宏塊數目的大小,將立體視頻序列各幀圖像劃分成強時域相關性圖像和強視點間相關性圖像。一般來說,立體視頻序列各幀圖像的時域相關性強于視點間相關性,但當場景發生大規模改變的情況下除外。



需要指出的是,在解碼過程中,當核心幀發生丟失時,其運動矢量也發生丟失,則對核心幀丟失無法進行運動矢量相關性分析,只能對其進行背景區域和前景區域劃分。

2.3.1核心幀重建 對于左視點圖像的核心幀丟失,將其劃分成背景區域和前景區域,對背景區域采用從參考幀直接拷貝的方法;對前景區域,由于右視點圖像尚未解碼,在錯誤隱藏時采用基于Skip模式的錯誤隱藏法。

圖2 運動矢量相關性分布圖(Exit序列)
對于右視點圖像的核心幀丟失,對劃分后的背景區域也采用直接拷貝法進行修復。但對于前景區域,以宏塊為單位,利用左右視點的運動矢量相關性分成4個8′8的塊逐個進行隱藏。修復塊定義如下:


由2.1節分析可知,左右視點圖像之間存在一定的運動相關性,可將視差補償后的左視點圖像塊的運動矢量作為右視點對應塊的運動矢量,但對于部分宏塊,左右視點運動矢量存在一定差異。受文獻[12]啟發,我們在解碼器中增加一個指針數組,將該視點上一個核心幀解碼時的后向運動矢量保存下來,用來提高丟失塊運動矢量估計的精度。丟失塊的前向運動矢量估計步驟如下:

表2比較過程偽代碼

for if ( or )不成立作為當前丟失塊的運動矢量估計值,即=;else利用四周丟失塊運動矢量估計值的中值作為該丟失塊的運動矢量;end
2.3.2次核心幀重建 對于左視點圖像的次核心幀丟失,首先將丟失幀劃分成背景區域和前景區域。對背景區域采用直接拷貝的方法進行錯誤隱藏。對于前景區域,采用基于時域運動矢量相關性的錯誤隱藏法,計算公式定義為

對于右視點圖像的次核心幀發生丟失,首先采用2.2節的方法將其劃分成背景區域,強運動相關性的前景區域和弱運動相關性的前景區域,對背景區域同樣采用直接拷貝的方法進行錯誤隱藏。對于強運動相關性的前景區域,利用左右視點圖像的運動矢量相關性,先對右視點圖像中的待恢復宏塊進行視差補償,在左視點圖像中找到相應宏塊;然后取該宏塊中每個8′8塊的運動矢量作為丟失宏塊的運動矢量估計值;最后,利用式(7)進行基于四分之一像素等級的運動補償恢復出強運動相關性的前景區域。

2.3.3普通幀重建 對于普通幀,其出錯不會產生幀間差錯傳遞,也不會影響后續幀的解碼(除了左視點圖像中占極小部分的用作視點間預測的宏塊)。對于普通幀的重建,可以在略微降低修復質量的基礎上降低其錯誤隱藏算法的復雜度。因此,普通幀重建的具體過程類同于2.3.2節中描述的次核心幀重建過程,但在采用式(6)或(7)進行運動補償時,采用1/2像素等級進行補償計算來降低算法復雜度,其計算公式參見文獻[13]。
本文選用典型的多視點視頻序列“Exit”和“Ballroom”[14]來評估所提出算法的性能,其中“Exit”序列背景區域較大,“Ballroom”序列運動信息較豐富,圖像分辨率為640′480,幀率為25 fps,測試序列選用視點0和1。實驗中的立體視頻編碼結構如圖1所示,具體編碼參數設置如表3所示。在進行算法性能比較時,由于針對面向HBP結構的B幀整幀丟失錯誤隱藏算法的相關研究尚處于起步階段,本文選用多視點編碼校驗平臺JMVC中提供的兩種整幀丟失錯誤隱藏算法:直接拷貝法和基于SKIP模式的錯誤隱藏法。此外,還與文獻[11]中提出的運動預測法進行了性能比較。對比算法有4種:(1)直接拷貝法1(DC1),該算法采用同一視點中,相鄰的前向參考幀來填補丟失幀;(2)直接拷貝法2(DC2),該算法采用同一時刻,相鄰視點的參考幀來填補丟失幀;(3)基于Skip模式的錯誤隱藏法(SKIP), 它是多視點視頻編碼標準H.264/MVC的校驗平臺JMVC中自帶的一種錯誤隱藏方法。“SKIP”法在算法實現中先將丟失宏塊的編碼模式設為Skip模式,利用Skip編碼模式下宏塊運動矢量為零的特征在前后參考幀中找到匹配塊,然后對匹配塊進行殘差補償,最后將補償后的前后匹配塊像素值相加取平均來完成丟失塊的錯誤掩蓋;(4)運動預測法(Motion Prediction, MP)[11]。
在進行錯誤隱藏仿真時,設定圖像的分量發生丟失,,分量能正常解碼。為了精確比較并顯示HBP結構下出錯幀的錯誤傳遞情況,采用逐幀比較的方法,通過3組實驗分別對核心幀、次核心幀和普通幀丟失進行比較。在各組實驗中,設每個GOP中的該類幀發生整幀丟失,先前解碼幀正確解碼。
表4給出了核心幀、次核心幀和普通幀經不同算法隱藏后的分量平均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的實驗結果可發現,利用同一視點內各幀圖像時域相關性的“DC1”法優于利用視點間相關性的“DC2”法,這說明同一視點內的時域相關性明顯強于同一時刻的視點間相關性。
圖3(a)和圖3(b)分別給出了“Exit”右視點序列碼流傳輸中發生核心幀和次核心幀丟失后,經不同算法錯誤隱藏后的各幀圖像客觀質量性能曲線(PSNR曲線),幀數為前57幀。圖中,“Free”表示正確解碼后的圖像PSNR值,“No_EC”表示未經錯誤隱藏的出錯圖像。從圖中可以看出,本文方法和MP法明顯優于 DC1, DC2和SKIP法,但由于本文方法在視點間運動相關性利用中考慮了物體在時域方向的運動連續性,以及在次核心幀隱藏中根據視點間運動相關性的強弱對不同區域采用不同的方法,比MP法進一步提高了錯誤隱藏性能。SKIP法由于進行了殘差補償,并對前后向參考幀求均值,其性能優于DC1法和DC2法。
圖4分別給出了“Exit”序列某個次核心幀(第30幀)丟失后經MP法,SKIP法和本文方法修復后的主觀質量圖。MP法先根據全局視差運動對當前宏塊作視差補償,接著利用相鄰視點中對應塊的運動信息進行運動補償,但全局視差矢量不能準確描述各個宏塊的視差矢量,且各圖像塊的視點間相關性存在差異,錯誤隱藏后的圖像有較大區域存在塊模糊現象,如圖4(a)中的白框區域;SKIP法由于采用前后向拷貝而導致重影(圖4(b)白框區域),并會導致后續幀解碼時出現嚴重的錯誤傳遞;而本文方法取得了良好的主觀質量。
表3編碼參數設置

編碼參數預測結構GOPQP幀率搜索范圍搜索模式參考幀數 參數值HBP83225 fps32′32快速3
表4各類幀發生整幀丟失后經不同算法隱藏后的平均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
從算法復雜度分析來看,本文方法算法復雜度的增加部分主要來自圖像分區與丟失運動矢量估計方面。本文對核心幀、次核心幀和普通幀分別進行了不同隱藏算法的運行時間統計,實驗硬件環境采用2.53 GHz Intel Core2 Duo 處理器,3 G內存的筆記本電腦,統計結果如表5所示。DC1法由于直接采用緩沖區里的先前解碼幀替換丟失幀,執行時間最短;SKIP法將丟失幀的各宏塊直接設定為Skip模式,比宏塊正常解碼的執行時間更低。本文方法由于對圖像進行了分區,對平滑的背景區采用了直接拷貝的方法,對運動區采用基于運動視差補償的方法,因此核心幀、次核心幀的修復時間比正常解碼的執行時間略長,對解碼一幀來說大概有2%左右的增加,可滿足實際應用的需要。對于普通幀,由于采用1/2像素等級的運動視差補償,執行時間降低。
鑒于此前的錯誤隱藏算法主要面向IPPP編碼格式下的I幀或P幀解碼出錯,為此本文提出了針對HBP編碼結構的雙視點視頻B幀整幀丟失分層錯誤隱藏方法。該方法的主要特點是:(1)根據解碼中B幀的位置不同,將B幀劃分成核心幀、次核心幀和普通幀,并采用不同的錯誤隱藏方法對不同類型的丟失幀進行分層錯誤隱藏,避免了先前B幀錯誤隱藏法對重要性等級不同的B幀僅采用單一方法的缺點;(2)分析了雙視點視頻中,左右視點各編碼塊間存在的運動矢量相關性,并將其應用到錯誤隱藏算法中,提高了差錯掩蓋的性能。實驗表明,本文算法相對于H.264/JMVC校驗軟件中自帶的SKIP法最多能提高平均PSNR值8.0 dB。下階段工作中,我們將繼續挖掘多視點視頻編碼中存在的視點間相關性,將本文算法擴展到兩個視點以上的多視點視頻編碼中。

圖3 “Exit”序列右視點幀丟失經不同算法恢復后各幀PSNR曲線

圖4 “Exit”序列次核心幀(第30幀)丟失后經不同算法修復后的主觀質量圖
表5不同算法下各出錯幀的平均修復耗時(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]. 電子與信息學報, 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改回
國家自然科學基金(61271270)和浙江省自然科學基金(Y111019)資助課題