陳 錚,于鴻洋,張 萍
(電子科技大學(xué)電子工程學(xué)院,四川 成都 610054)
數(shù)字視頻業(yè)務(wù)隨著多媒體通信技術(shù)的發(fā)展,在現(xiàn)實生活中受到越來越多的重視。但是數(shù)字視頻通信信道受外界環(huán)境影響很大,網(wǎng)絡(luò)傳輸也受網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)擁塞等因素影響,導(dǎo)致傳輸過程中可能會出現(xiàn)誤碼或者數(shù)據(jù)包的丟失。視頻傳輸中的誤碼通常包含兩類,一類是隨機比特錯誤,比如比特跳轉(zhuǎn)、刪除、插入等,這是由于信道的物理缺陷產(chǎn)生。另一類是突發(fā)錯誤,集中或連續(xù)突發(fā)產(chǎn)生錯誤,比如網(wǎng)絡(luò)中數(shù)據(jù)包的丟失。
視頻解碼端錯誤隱藏是解決丟包現(xiàn)象較好的途徑之一,主要利用圖像內(nèi)的空間冗余和圖像間的時間冗余對解碼端的錯誤宏塊進行恢復(fù),完全不影響編碼端。
AVS作為我國自主知識產(chǎn)權(quán)的視頻編解碼標準,可以廣泛運用到各種視頻場合,支持地面廣播、有線電視、IP網(wǎng)絡(luò)等傳輸協(xié)議?,F(xiàn)階段AVS官方標準參考代碼中,還沒有加入解碼端錯誤隱藏算法。筆者根據(jù)AVS視頻編解碼特點,參考傳統(tǒng)的解碼端空域錯誤隱藏算法,利用雙線性插值結(jié)果,進一步得到多個參考像素,提出改進的空域錯誤隱藏算法,在AVS平臺上進行實驗仿真。算法復(fù)雜度低,能夠得到良好的恢復(fù)效果。
AVS工作組成立于2002年,建立了中國自主知識產(chǎn)權(quán)的音視頻國家標準[1]。其視頻方面包括兩個內(nèi)容,AVSP2,即第2部分,主要運用于高清廣播和數(shù)字存儲領(lǐng)域;AVS-P7,即第7部分,主要運用于移動視頻等低碼率領(lǐng)域。和AVC/H.264具有相同的編解碼結(jié)構(gòu),如圖1所示。
圖1 AVS解碼結(jié)構(gòu)圖
錯誤隱藏技術(shù)是在檢測到損失宏塊后進行處理以盡量隱藏對視覺的影響。因此錯誤隱藏技術(shù)并不是真正消除傳輸中的丟包現(xiàn)象,只是盡可能的彌補其帶來視覺損傷。
解碼端錯誤隱藏流程如圖2所示,解碼端的錯誤隱藏技術(shù)分為時域誤碼掩蓋和空域誤碼掩蓋。現(xiàn)在常用的空域誤碼掩蓋方法包括最優(yōu)平滑恢復(fù)、凸集投影法、最小化相鄰像素方差、利用周圍臨近像素插值等。
圖2 解碼端錯誤隱藏流程圖
信道上接收到的壓縮視頻碼流首先送到碼流語法分析單元,進行相應(yīng)的碼流語法分析。如果沒有丟包,則送到視頻解碼單元,然后將正確解碼的圖像送入幀存儲器,最后到顯示器去現(xiàn)實解碼圖像。如果信道有丟包,則語法分析程序給出錯誤指示,立刻停止當(dāng)前解碼,將錯誤數(shù)據(jù)送入錯誤定位單元,得到錯誤位置信息,并送入錯誤掩蓋單元。
一旦檢測出錯誤,就開始進行錯誤隱藏的過程。錯誤掩蓋單元在幀存儲器中,按照算法設(shè)計尋找到與丟失宏塊圖像最相似的圖像塊來替代丟失的部分,以達到錯誤隱藏的目的。
AVS的語法層次分為塊、宏塊、條帶、圖像、序列。條帶結(jié)構(gòu)為一行或者多行宏塊。對于條帶、圖像、序列這3層,都有再同步碼,發(fā)生錯誤時能夠通過重定位至下一個同步碼來避免錯誤的傳遞,但是塊和宏塊層沒有再同步碼,因此一旦發(fā)生錯誤,當(dāng)前條帶的數(shù)據(jù)將全部丟失。AVS所采用的VLC編碼導(dǎo)致當(dāng)前錯誤可能影響到整幀或者后續(xù)解碼圖像中,因此進行錯誤隱藏十分必要。
語法語義檢測錯誤檢查包括無效碼值、無效VLC值、運動矢量超出圖像外界、量化信息越界、無效的DC直流系數(shù)、DCT系數(shù)個數(shù)超出等。
空域錯誤隱藏技術(shù)主要是利用視頻空域的冗余信息,從相鄰宏塊的臨近像素中對解碼端錯誤圖像進行恢復(fù)。適用于運動矢量不存在的幀內(nèi)編碼幀(I幀)和運動復(fù)雜的幀間編碼幀(P幀)。
對于I幀,由于缺少參考幀,因此在幀內(nèi)進行空域錯誤掩蓋,利用出錯宏塊上下左右相鄰宏塊的邊界像素值插值出丟失宏塊的像素值[2]。
對于丟失宏塊內(nèi)的每一個像素,首先利用水平和垂直方向上的相鄰宏塊的邊界像素,通過加權(quán)插值得到此像素值,權(quán)值與像素到邊界像素的距離成反比,如圖3所示。
可以得到雙線性插值算法公式
式中:R為第1步恢復(fù)的像素值,也即傳統(tǒng)雙線性插值恢復(fù)的像素值;Y1,Y2,Y3,Y4為圖中對應(yīng)的邊界像素值,也即與受損宏塊相鄰水平和垂直宏塊的邊界像素值;D1,D2,D3,D4為恢復(fù)像素值與邊界像素值的距離。
通過第1步傳統(tǒng)的雙線性插值,得到待恢復(fù)像素的值。接下來進行進一步匹配,確定需要恢復(fù)的像素值。
圖3 雙線性插值示意圖
第2步在第一步插值的基礎(chǔ)上面進行更加精確的恢復(fù)像素值,在給定像素誤差范圍E內(nèi),逐步搜索水平和垂直宏塊的臨近像素值,得到與第1步預(yù)測像素值在該誤差范圍內(nèi)的臨近像素點,并記錄這些像素點的像素值。利用更多實際的臨近像素點去預(yù)測損失像素的值,最終像素值的大小為相似像素點均值。
經(jīng)過反復(fù)試驗,誤差E取值為15左右能夠得到比較滿意的結(jié)果。算法流程圖如圖4所示。線性插值之后,再進一步運用更多實際臨近像素點進行預(yù)測,能夠得到更加精確的恢復(fù)像素點。并且其方法簡單,容易實現(xiàn)。
圖4 雙線性兩步算法流程圖
所提出的解碼端錯誤隱藏算法在AVS平臺上進行圖像的恢復(fù),對不同的視頻序列進行了大量仿真試驗。AVS版本為RM 52g,測試序列為經(jīng)典Forman YUV文件測試序列,格式為CIF(352×288)。編碼方式為全I幀編碼。利用AVS編碼Forman圖像序列30幀,通過隨機掉包,產(chǎn)生數(shù)據(jù)丟失。對序列進行10%的隨機加錯后,得到的錯誤恢復(fù)效果圖如圖5~7所示。
圖5 Forman原始第3幀
圖6 Forman第3幀出錯
圖7 Forman第3幀錯誤掩蓋
由圖5~7可見,雙線性兩步算法對于全I幀出錯情況具有良好的掩蓋效果。表1客觀反應(yīng)了前10幀Y,U,V分量的評價信噪比,可以看出雙線性兩步法對于出錯圖像進行空域掩蓋之后,各個分量平均信噪比增加了約4 dB。
表1 Forman掩蓋序列前30幀平均信噪比表
AVS視頻編解碼標準正在繼續(xù)發(fā)展之中,以后肯定會增加標準工作組制定的錯誤隱藏算法部分。
筆者通過研究視頻解碼端錯誤隱藏算法,并將改進的雙線性插值法在AVS平臺上進行仿真實驗,得到了良好的錯誤恢復(fù)結(jié)果。此算法保留了雙線性插值法的簡潔性,易于實現(xiàn)。能夠有效恢復(fù)出損失宏塊的像素值,具有可移植性,能廣泛運用到視頻通信之中。
[1]GB/T 200090.2-2006.信息技術(shù)先進音視頻編碼第2部分:視頻[S].北京:中國標準出版社,2006.
[2]SULLIVAN G,WIEGAND T,LIM K P.Joint model reference encoding methods and decoding concealment methods.Doc.JVT-I049[R].[S.l.]:JVT,2003.
[3]畢厚杰.新一代視頻壓縮編碼標準——H.264/AVC[M].北京:人民郵電出版社,2005.