基于脆弱水印的錯(cuò)誤檢測(cè)技術(shù)在H.264中的應(yīng)用
摘 要:針對(duì)H.264編碼比特流,本文提出了一種在壓縮比特流中使用脆弱水印技術(shù)來(lái)檢測(cè)傳輸中錯(cuò)誤宏塊的檢測(cè)方案。在編碼端的DCT非零系數(shù)的最低有效位(LSB)以數(shù)字水印的形式嵌入特定的信息,然后在解碼端提取這些信息來(lái)判斷所接收的比特流是否出錯(cuò)。
關(guān)鍵詞:錯(cuò)誤檢測(cè);脆弱水??;最低有效位;比特流
引言
在壓縮視頻流中,每個(gè)比特都是非常重要的,在傳輸過(guò)程中發(fā)生的錯(cuò)誤會(huì)嚴(yán)重影響解碼后的視頻效果。所以,在所接收的視頻流中進(jìn)行錯(cuò)誤檢測(cè)在實(shí)際工作中是非常重要的。只有解碼器在所接收的比特流中檢測(cè)到誤碼,才能采用相應(yīng)的策略對(duì)它進(jìn)行錯(cuò)誤恢復(fù)和錯(cuò)誤隱藏,因此,選擇一種行之有效的誤碼檢測(cè)方法是致關(guān)重要的。
數(shù)字水印技術(shù)在近年來(lái)發(fā)展很快,已發(fā)展出用于數(shù)據(jù)監(jiān)控的脆弱水印,以檢驗(yàn)數(shù)據(jù)的完整性。本文提出了一種基于脆弱水印的錯(cuò)誤檢測(cè)方法。
錯(cuò)誤檢測(cè)方案
為了克服傳統(tǒng)檢測(cè)方法的不足,本文采用在編碼端嵌入水印信息的辦法,并使水印信息和視頻數(shù)據(jù)之間建立某些強(qiáng)制關(guān)系。如果在解碼時(shí)發(fā)現(xiàn)這些約定關(guān)系不被滿(mǎn)足,則可判斷接收到的數(shù)據(jù)遭到篡改,即發(fā)生傳輸錯(cuò)誤。本文根據(jù)H.264的協(xié)議語(yǔ)句設(shè)計(jì)水印信息,并把水印信息嵌入到非零DCT系數(shù)中。
檢測(cè)原理
在H.264視頻壓縮標(biāo)準(zhǔn)中,一個(gè)宏塊的壓縮數(shù)據(jù)可以分為兩個(gè)部分。第一部分包括圖像頭、宏塊類(lèi)型、幀內(nèi)預(yù)測(cè)模式以及運(yùn)動(dòng)矢量等;第二部分包括塊編碼模式(CBP,Coded Block Pattern)和該塊的所有DCT系數(shù)。如果第一部分?jǐn)?shù)據(jù)發(fā)生錯(cuò)誤,將對(duì)解碼端的圖像解碼過(guò)程造成非常嚴(yán)重的影響,甚至不能解碼。但值得慶幸的是,第一部分的數(shù)據(jù)與CBP數(shù)據(jù)在碼流中的比特?cái)?shù)非常少,所以其發(fā)生錯(cuò)誤的概率與DCT系數(shù)相比非常小。數(shù)字水印檢測(cè)技術(shù)正是針對(duì)每個(gè)DCT變換塊進(jìn)行一些特殊處理,使編碼后的碼流數(shù)據(jù)攜帶一些特定的特征,即水印。而碼流中的這些特征對(duì)信道的干擾非常敏感,在信號(hào)傳輸過(guò)程中,即使遇到輕微的信道干擾,這些特征也會(huì)丟失。解碼端通過(guò)檢測(cè)解碼數(shù)據(jù)是否存在水印,就能達(dá)到錯(cuò)誤檢測(cè)的目的。
圖1 嵌入水印流程圖
水印設(shè)計(jì)和嵌入位置
在編碼端,首先對(duì)每個(gè)DCT塊內(nèi)的非零系數(shù)的最低有效位進(jìn)行判別,DCT塊經(jīng)過(guò)字變換(zia-zia)掃描之后,如果非零系數(shù)在偶數(shù)位置,則將最低有效位置0,即LSB=0;如果非零系數(shù)在奇數(shù)位置,則將最低有效位置1,即LSB=1。因?yàn)镈CT系數(shù)中直流分量攜帶的信息量很大,如果對(duì)直流分量進(jìn)行處理,將會(huì)導(dǎo)致圖像的PSNR值急劇下降,嚴(yán)重影響解碼后的圖像效果,所以,本文只對(duì)交流系數(shù)進(jìn)行處理。在解碼端,對(duì)這些位置的交流系數(shù)進(jìn)行檢查。在奇數(shù)位置,如果DCT系數(shù)為偶數(shù),則說(shuō)明該編碼塊出錯(cuò);在偶數(shù)位置,如果DCT系數(shù)為奇數(shù),則說(shuō)明該編碼塊出錯(cuò)。其方法如下:
非零DCT交流系數(shù)在偶數(shù)位置時(shí):
非零DCT交流系數(shù)在奇數(shù)位置時(shí):
AC為DCT變換后的交流系數(shù),ACW為加載脆弱數(shù)字水印后的DCT交流系數(shù),為符號(hào)函數(shù)。本方案采用在最低有效位嵌入水印模式,因此不需要額外的比特進(jìn)行編碼。圖1即為幀內(nèi)宏塊嵌入水印模式的流程圖。
由于H.264標(biāo)準(zhǔn)采用了幀內(nèi)和幀間預(yù)測(cè)來(lái)參與對(duì)某一宏塊的編解碼。為了保證編解碼端參與預(yù)測(cè)的數(shù)據(jù)一致性(因?yàn)榻獯a端不可能使用未嵌入水印的原始數(shù)據(jù)參與預(yù)測(cè)),避免數(shù)據(jù)失配造成圖像質(zhì)量惡化,水印嵌入操作必須放到運(yùn)動(dòng)補(bǔ)償循環(huán)內(nèi),即量化之后、熵編碼之前進(jìn)行,如圖2所示。
圖2 數(shù)字水印檢測(cè)編碼器的實(shí)現(xiàn)流程圖
實(shí)驗(yàn)結(jié)果
本文的編解碼系統(tǒng)以H.264的標(biāo)準(zhǔn)測(cè)試模型JM86為測(cè)試平臺(tái),在編碼端加入了數(shù)字水印,加入起始點(diǎn)為DCT系數(shù)的第6個(gè)數(shù)。本文采用VCEG模擬信道傳輸模型來(lái)模擬碼流錯(cuò)誤。
圖3為取標(biāo)準(zhǔn)測(cè)試集foreman.yuv的前30幀,在碼率為128Kbps、逐幀編碼條件下,對(duì)嵌入數(shù)字水印和未嵌入數(shù)字水印這兩種情況下在沒(méi)有傳輸錯(cuò)誤時(shí)重建圖像PSNR值的對(duì)比圖。由圖可見(jiàn),水印對(duì)圖像質(zhì)量的影響很小。
表1和表2為標(biāo)準(zhǔn)測(cè)試序列在不同編碼比特率下對(duì)兩種錯(cuò)誤檢測(cè)方案的對(duì)比。每個(gè)序列選取30幀,圖像格式為QCIF(采樣比率為4:2:0)。首先用嵌入水印后的編碼器得到一個(gè)基準(zhǔn)碼流,然后用VCEG模擬信道引入錯(cuò)誤,最后在解碼端提取這些信息來(lái)判斷相應(yīng)的語(yǔ)法元素是否滿(mǎn)足語(yǔ)法結(jié)構(gòu)或約定關(guān)系。
由表1和表2可以看出,基于脆弱水印方法和基于語(yǔ)法的錯(cuò)誤檢測(cè)相比,前者在付出較小的PSNR值代價(jià)的情況下,其錯(cuò)誤檢測(cè)率提高了近一倍。但隨著編碼序列運(yùn)動(dòng)復(fù)雜度的增加,細(xì)節(jié)更多的情況下,數(shù)字水印的PSNR值會(huì)下降。
圖3 無(wú)錯(cuò)情形下PSNR值對(duì)比
結(jié)語(yǔ)
通過(guò)對(duì)編碼端的非零DCT系數(shù)加入脆弱水印信息,形成傳輸數(shù)據(jù)與加入信息的特定強(qiáng)制關(guān)系,在解碼端校驗(yàn)約定的強(qiáng)制關(guān)系來(lái)判斷數(shù)據(jù)的完整性這種錯(cuò)誤檢測(cè)方法,相對(duì)基于語(yǔ)法的傳統(tǒng)錯(cuò)誤檢測(cè)方法有更高的錯(cuò)誤檢測(cè)率,而且這種檢測(cè)方法在傳輸比特流中不會(huì)增加額外的開(kāi)銷(xiāo)而影響傳輸效率,但該方法的PSNR值會(huì)有少量降低,若從人眼視覺(jué)分辨能力考慮,少量的PSNR值降低不會(huì)影響視頻效果。
參考文獻(xiàn):
1畢厚杰,新一代視頻壓縮編碼標(biāo)準(zhǔn)-H264/AVC[M].人民郵電出版社,2005.
2 余兆明,查日勇等,圖像編碼標(biāo)準(zhǔn)袶.264技術(shù)[M].人民郵電出版社,2006.
3 范文杰,H.264數(shù)字視頻差錯(cuò)控制技術(shù)的研究[D].成都,成都理工大學(xué)檔案館,2006.