羅 平,魯 琴,葉湘濱
(國防科學(xué)技術(shù)大學(xué)機電工程與自動化學(xué)院,湖南長沙 410073)
近10年來,隨著工業(yè)、商業(yè)和軍事等領(lǐng)域?qū)Χ嗝襟w通信技術(shù)的需求增長,視頻壓縮編碼技術(shù)及其無線傳輸技術(shù)得到了廣泛的研究和應(yīng)用.其中,2003年推出的H.264標(biāo)準(zhǔn),因其良好的壓縮性能和網(wǎng)絡(luò)友好的句法結(jié)構(gòu)適用于安全監(jiān)控、數(shù)字衛(wèi)星廣播、手機電視、視頻電話等領(lǐng)域.壓縮后的視頻信號碼流之間具有高度的相關(guān)性,對傳輸錯誤十分敏感,而無線網(wǎng)絡(luò)傳輸環(huán)境惡劣,受信號衰減、多徑效應(yīng)、電磁信號干擾、信道噪聲等影響,容易產(chǎn)生隨機和突發(fā)誤碼,導(dǎo)致解碼端不能正確解碼并造成錯誤擴散,解碼視頻質(zhì)量急劇下降.
傳統(tǒng)的信道編碼差錯控制技術(shù)如前向糾錯、錯誤控制編碼等,需要知道信道的統(tǒng)計特性,在無線信道中不適用.編碼端進行的容錯編碼,如魯棒熵編碼采用可逆變長編碼或插入同步標(biāo)記,或者利用容錯預(yù)測防止誤碼擴散,如周期intra幀刷新或限定預(yù)測區(qū)域等,在抑制傳輸差錯的同時,也降低了編碼效率[1-2].即使采用了分層編碼與不等差錯保護技術(shù)或多描述編碼方案,仍然不能保證解碼端接收到無差錯的碼流信號.因此,研究基于無線信道中壓縮視頻碼流的錯誤隱藏算法具有重要意義.人眼對視頻中的部分信息并不敏感,因此可以利用人眼的這種遮蔽特性,用一些相關(guān)數(shù)據(jù)對出錯的部分進行替代,使人眼接受相對較好的圖像,甚至察覺不出錯誤.視頻解碼器必須檢測出傳輸碼流中是否存在誤碼及其存在的位置,位置越精確越好;然后利用誤碼隱藏算法來降低對圖像播放質(zhì)量的影響.
為了提高壓縮編碼效率,H.264視頻壓縮編碼標(biāo)準(zhǔn)采用了CABAC熵編碼、幀內(nèi)預(yù)測、幀間運動估計、變換編碼等一系列壓縮技術(shù)去除了時間與空間上的冗余,使得碼流在句法結(jié)構(gòu)上存在很強的依賴性,需要根據(jù)上下文進行解碼,即使是單個誤碼,也可能在幀內(nèi)或幀間大面積擴散,嚴重影響視頻質(zhì)量.
在H.264中,解碼是以條帶為單位進行的,一個比特的錯誤會導(dǎo)致從出錯點到本條帶結(jié)束的數(shù)據(jù)不可用,B幀和P幀是直接或間接以I幀為參考的,I幀中的錯誤可能會擴散到整個序列,直到下一個同步.如圖1所示,左圖邊緣清晰的塊就是丟失的條帶,后面兩圖的塊邊緣模糊,屬于錯誤擴散[3].
差錯控制技術(shù)大體可以分成兩類:第一類是加強碼流對傳輸?shù)聂敯粜?叫做抗誤碼編碼技術(shù)(Error Resilient Encoding),通過在編碼碼流中加入冗余信息,利用這些冗余數(shù)據(jù)和有效數(shù)據(jù)之間的關(guān)系來減小誤碼帶來的影響[4-5].通常是在信源或信道進行編碼,如編碼端的容錯編碼,包括魯棒熵編碼、容錯預(yù)測、分層碼流與不等差錯保護、多描述編碼;信道編碼的FEC、ARQ、不等錯誤保護;交互式抗誤碼技術(shù)、信源信道聯(lián)合編碼等.第二類是基于圖像的時間和空間相關(guān)性的錯誤隱藏技術(shù)[6](Error Concealment),這類方法主要是利用了圖像的局部平滑特性或者幾何特征來推斷丟失的內(nèi)容,通過對圖像的交織傳輸,保證一個丟失的宏塊被一些正確的宏塊包圍,然后利用這些宏塊提供的相關(guān)信息(像素值、運動向量、編碼模式等)通過時域預(yù)測和空域插值等方法恢復(fù)丟失的宏塊.它的優(yōu)點是不需在編碼端增加額外的比特率,僅僅增加了解碼器的復(fù)雜度.
錯誤隱藏技術(shù)提倡利用視頻信號在空間或時間上的相關(guān)性.空間上,利用丟失塊同一幀內(nèi)相鄰像素值進行線性插值或方向插值,會導(dǎo)致邊緣模糊[7];時域插值利用相鄰幀信息,估計幀間運動,在變化緩慢的情況下效果較好,利用雙邊插值甚至可以恢復(fù)整幀丟失的情況[8].
總體說來,傳統(tǒng)的錯誤隱藏方法更偏重于策略的選擇,原理直觀,效果因視頻運動和紋理特性而異.例如時間域錯誤隱藏技術(shù),一是直接用上一幀相應(yīng)位置的像素塊代替,計算簡單,但圖像運動劇烈時,視頻恢復(fù)效果不好;二是針對運動物體,根據(jù)相鄰塊運動向量估算丟失塊運動向量,但會帶來邊緣塊效應(yīng).空間域的方法通過同一幀相鄰像素點來計算丟失塊數(shù)據(jù),最簡單的是取丟失塊左方、上方、右方或其加權(quán)值來計算,由于考慮了視頻圖像的連續(xù)性和平滑特性,這種方法對丟失塊邊緣的像素恢復(fù)效果較好,但是塊中心的像素由于距正確接收的像素較遠,掩藏效果并不令人滿意.為此,一些學(xué)者提出了基于紋理的方向性插值,但是由于圖像紋理的判斷是基于邊緣的突變點,容易受到噪點的干擾.
圖1 錯誤擴散(carphone序列的第4、5、6幀)Fig.1 Error p roliferation(the 4th,5th,6th frame in carphone sequence)
David levine在文獻[9]中提出了一種基于信源語義進行錯誤隱藏的方法(error concealment using source semantics,ECSS),使用模糊比特(soft-bits)信息產(chǎn)生候選片(slice candidates),從候選片中選出最優(yōu)者產(chǎn)生輸出碼流.其基本流程如圖2所示.
由于視頻傳輸中通常是以片(slice)為單位對數(shù)據(jù)進行打包傳輸,因此 ESCC以片為單位進行分析.頭文件攜帶著視頻解碼的關(guān)鍵信息,一旦丟失將導(dǎo)致視頻不可恢復(fù),而且數(shù)據(jù)量較小,傳輸中往往采用較強的保護措施和重傳機制來保證其可靠傳輸,因此 ESCC中假設(shè)頭文件在傳輸過程中不會發(fā)生錯誤.首先將壓縮視頻分成頭文件流和數(shù)據(jù)流,頭文件在傳輸過程中不發(fā)生錯誤,視頻流則通過高斯噪聲信道進行傳輸.在解碼端,將頭文件和數(shù)據(jù)進行混合,通過被噪聲污染的模糊數(shù)據(jù)產(chǎn)生候選片,通過源語義判斷選出最優(yōu)候選并進行解碼后輸出.
其中關(guān)鍵的是候選片的產(chǎn)生和源語義判斷.從理論上講,一個長為N比特的片就會有2N個候選片,其中有一個目標(biāo)片是和編碼端的原始片信號完全相同的,對于通常的視頻信號而言,2N是一個巨大的數(shù)目,其實這2N個候選片是目標(biāo)片的可能性不一樣.解碼端接收到的視頻信號稱為接收片,由于噪聲或干擾的影響,其中可能會有一個或幾個比特發(fā)生錯誤,錯誤的比特數(shù)與信道狀況有關(guān),但超過 N/2的比特發(fā)生錯誤的情況是較為少見的,這意味著信道非常差,其他片和幀的接收也會發(fā)生嚴重錯誤,恢復(fù)起來十分困難,此時應(yīng)當(dāng)采用重傳等機制進行差錯控制.由于不能確知發(fā)生錯誤的是哪個比特,因此將接收片里的數(shù)據(jù)稱為模糊比特,它可能就是目標(biāo)片,也可能是目標(biāo)片某些比特發(fā)生錯誤后的情況.文獻中用復(fù)雜的方法產(chǎn)生了 nsc個可能性更大的候選片,并用不完全部分和算法(incomp lete partial sums algorithm,IPSA)對這些候選片進行了排序,在此基礎(chǔ)上用源語義判斷選出目標(biāo)片.這種方法為差錯隱藏提供了一種新的思路,但是計算復(fù)雜,不易實現(xiàn),而且有時沒有候選片勝出.本文依據(jù)壓縮感知算法的思想提出一種改進的錯誤隱藏技術(shù),不需要對候選片進行排序,通過模糊匹配得到目標(biāo)片.
無線信道與因特網(wǎng)不同,因特網(wǎng)發(fā)生錯誤常表現(xiàn)為丟包的形式,其差錯控制在數(shù)據(jù)包層面,無線信道多發(fā)的是隨機和突發(fā)誤碼,其糾錯和掩藏在碼流層面.由于無線網(wǎng)絡(luò)的特點,單個比特的錯誤較多.記接收片為a,a為長為N的二進制碼流.
候選片按照發(fā)生錯誤的比特數(shù)不同依次記為
圖2 信源語義錯誤隱藏算法的流程Fig.2 A lgorithm flow of er ror con cealment using source concealment
其中,比特位 Ai表示位ai的反轉(zhuǎn),候選片 aij中i表示發(fā)生錯誤的比特,也反映了信道的通信狀況.例如,候選片a00即為原接收片,候選片a1j表示接收片中第j比特發(fā)生了錯誤,a2j表示有兩個比特發(fā)生了錯誤.
這里采用壓縮感知(comp ressed sensing,CS)的思想通過模糊匹配的方法得到目標(biāo)片.Emmanuel Candès在研究充滿噪聲,質(zhì)量非常差的Shepp-Logan Phantom圖像時,使用壓縮感知中的 L1-minim ization算法去除掉噪聲條紋,并且得到了出人意料完美的圖像細節(jié),后來的許多學(xué)者進一步地研究表明,在恢復(fù)Ax=y時如果測量向量y受到噪聲污染,用L1-m inim ization效果較差,得到的x與原來的x差別非常大,但是用 ‖Ax-y‖2≤δ而不是Ax=y來求解就可以得到對噪聲穩(wěn)定的解[10].接收片 a=[a0,a1,…,aN-1]可以看做是被噪聲污染的原始片.因此,用壓縮感知的方法可以得到解析解.這里將原始片,也就是要求解的目標(biāo)片看做 x,將接收片 y=[a0,a1,…,aN-1]作為被污染的測量信號,用候選片 aij構(gòu)成測量矩陣,即可解出目標(biāo)片 x,這里 δ取經(jīng)驗值.
x=[x0,x1,…,xN-1]為長為 N的目標(biāo)片.
在信道情況較好時,可以認為發(fā)生錯誤的比特較少,發(fā)生錯誤比特較多的候選片可以自動丟棄,因此首先根據(jù)之前接收到的數(shù)據(jù)情況進行分析,合理確定候選片取到多少位錯誤的情況,當(dāng)認為發(fā)生錯誤比特較多,進行錯誤隱藏計算代價太大時可以考慮放棄隱藏,采用重傳請求等方式改善視頻質(zhì)量.
以標(biāo)準(zhǔn)序列hall_cif 和football_cif_gray 作為測試視頻,視頻hall_cif紋理復(fù)雜度一般,運動劇烈程度中等,而視頻football_cif_gray有復(fù)雜的運動背景和劇烈的運動.將本文所提方法與原信源語義錯誤隱藏技術(shù)進行比較,每次仿真中產(chǎn)生300個候選片,在不同的信道信噪比下運行10次取平均值.由圖3可知,在同樣條件下,采用兩種差錯隱藏方法均可以比直接采用接收端數(shù)據(jù)得到客觀質(zhì)量更好的解碼視頻,本文所提方法在信道信噪比較低的情況下差錯隱藏效果優(yōu)于信源語義差錯隱藏技術(shù),而且計算更為簡單.
為了更一般地說明問題,本文選取了多個測試視頻用同樣的方法進行實驗,結(jié)果如表1所示.從表中可以看出,在信道較為惡劣的情況下,本文所提錯誤隱藏技術(shù)較ECSS方法性能有明顯提高,特別是對于運動劇烈的視頻序列,在信道狀況良好時本文所提方法優(yōu)勢并不明顯,甚至有時略有下降.
表1 本文所提錯誤隱藏技術(shù)與ECSS方法對比Tab.1 Comparison o f the proposed error concealm en t algorithm and ECSS algorithm
圖3 所提方法與信源語義錯誤隱藏算法及無錯誤隱藏算法效果比較(上hall_ci f ,下footbal l_cif)Fig.3 Comparison of proposed algorithm and ECSS,non-concealm en t
在分析已有差錯控制技術(shù)和錯誤隱藏技術(shù)的基礎(chǔ)上,提出了一種新的方法進行信源語義錯誤隱藏技術(shù)中候選片的產(chǎn)生和目標(biāo)片的選取,該方法采用了壓縮感知技術(shù)中模糊匹配的思路,去除了計算繁瑣的候選片排序的環(huán)節(jié),通過解析的方法得到目標(biāo)片,計算簡單,不會出現(xiàn)無候選片勝出的情況,客觀視頻恢復(fù)質(zhì)量較好,并且可以對信道質(zhì)量得出量化指標(biāo)供重傳等策略選擇.
[1] 桑亞林.基于H.264的無線傳輸差錯控制及解碼器的ARM實現(xiàn)[D].江蘇:揚州大學(xué),2009.
[2] Thomas Stockhammer,Miska M Hannuksela,ThomasW iegand.H.264/AVC in Wireless Environments[J].IEEE Transctions on Circuits and Systems for Video Technology,2003,13(7):657-673.
[3] 楊觀華.無線信道中的H.264錯誤隱藏技術(shù)[D].武漢:中南民族大學(xué),2008.
[4] Thomos N,Argy ropou los S,Bou lgouris N V,et al.Error-resilient transmission of H.264/AVC streams using flexib lemacroblock ordering[C].Integration of Know ledge,Semantics and DigitalMedia Technology,December,2005.
[5] Chang Paochi,Lee Tienhsu.Precise and fasterror tracking forerror-resilient transm ission of H.263 video[J].IEEE Transaction on Circuits and Systems for Video Technology,2000,10(4):600-606.
[6] Kang Liwei,Leou Jinjang Leou,An error resilient coding scheme for H.264/AVC video transm ission based on dataembedding[J].J.Vis.Commun.Image R,2005,93(16):93-114.
[7] Sunil Kumar,Liyang Xu,M rinal K Mandal.Error resiliency schemesin H.264/AVC standard[J].J.Vis.Commun.Image R.17,2006(1):425-450.
[8] Chen Yu,Yu Keman,Li Jiang,et al.An error concealment algorithm for entire frame loss in video transmission[C].in Proc:PCS,December,2004.
[9] David Levine.Error resilient transm ission of H.264 comp ressed video using CABAC entropy coding[D].Quebec,Cannada:science concordia university,2007:58-70.
[10] David L.Donoho,Jared Tanner.Precise Undersamp ling Theorems[J].Proceedings of the IEEE,2010,98(6):913-923.