文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)01-0133-03
2003年3月發(fā)布的H.264是目前最新的視頻編碼標(biāo)準(zhǔn),。它采用了1/8精度的運(yùn)動(dòng)估計(jì)、4×4整數(shù)變換,、CAVLC和CABAC等新技術(shù),使得壓縮效率和圖像播放質(zhì)量有了顯著提高,。與以往標(biāo)準(zhǔn)相比,在相同率失真的條件下,,編碼效率提高了50%左右,。H.264應(yīng)用范圍非常廣闊,包括視頻會(huì)議,、可視電話,、會(huì)議電視等即時(shí)通信,以及數(shù)字電視廣播、數(shù)字存儲(chǔ),、流媒體等方面,。
隨著視頻應(yīng)用的日益廣泛,視頻的安全性變得越來越重要,?;谝酝臉?biāo)準(zhǔn),人們研究了許多加密算法:有用傳統(tǒng)密碼技術(shù)進(jìn)行全部加密的方法,,如DES算法,、CSC算法和VEA算法,這類算法雖然有較高的安全性并且不改變壓縮比,,但是計(jì)算復(fù)雜度很高,;有對DCT系數(shù)進(jìn)行加密的方法,如分段置亂算法,,這類算法雖然有較低的計(jì)算復(fù)雜度,,但是安全性低于全部加密的算法,,壓縮比也有所改變;有在熵編碼過程中進(jìn)行加密的方法,,如多狀態(tài)索引方法,,這類算法雖然計(jì)算復(fù)雜度低,對壓縮比的影響較小,,但在已知明文攻擊情況下是不安全的,。上述方法各有優(yōu)缺點(diǎn),而且大多針對MPEG標(biāo)準(zhǔn),,因此研究適合H.264特點(diǎn)的安全加密技術(shù)成為目前研究的熱點(diǎn),。
針對現(xiàn)有視頻加密算法的不足,本文提出一種基于H.264的可感知加密算法,。
1 加密數(shù)據(jù)元素的分析與選取
對H.264編碼宏塊語義層進(jìn)行分析,,決定提取幀內(nèi)預(yù)測模式字(Intra Prediction Mode)、運(yùn)動(dòng)向量差值(Motion Vector Differ_ence)和殘差系數(shù)(Residual Coefficient)三類定長語法元素(fix-length code)進(jìn)行加密操作[1],。
1.1 幀內(nèi)預(yù)測模式字
根據(jù)每個(gè)宏塊所屬片組的不同,,每一個(gè)宏塊都有幾種編碼預(yù)測模式。但幀內(nèi)預(yù)測編碼是所有片組編碼類型中都支持的,。對亮度像素塊而言,,存在有Intra_4×4, Intra_8×8、Intra_16×16三種預(yù)測模式,。Intra_4×4模式下有9種預(yù)測模式,適用于對圖像細(xì)節(jié)部分進(jìn)行編碼,,Intra_16×16有4種預(yù)測模式,適用于對平坦區(qū)域進(jìn)行圖像編碼[2],。
采用Intra_4×4的編碼模式字進(jìn)行加密操作,。每一個(gè)4×4塊都是通過上方和左方像素預(yù)測而來,如圖1所示,,a-p為待預(yù)測像素,,它利用相鄰塊中已經(jīng)解碼的A-Q像素來進(jìn)行預(yù)測。對每一個(gè)4×4塊,,總共有9種模式供選擇[2],,其中除了DC模式,另外8種預(yù)測模式的方向也在圖1中,。
Intra_4×4的編碼預(yù)測模式總共有9種預(yù)測模式,,至少需要4個(gè)bit位來進(jìn)行編碼。在H.264的標(biāo)準(zhǔn)中,,利用一個(gè)“prev_ Intra_4×4_pred_mode”字段來排除一種預(yù)測方式,,用另外3個(gè)bit位來表示余下的8種預(yù)測模式。因此,只對后3個(gè)bit位進(jìn)行加密擾亂,這樣的加密過程中,,不會(huì)影響到其他字段,,也不會(huì)產(chǎn)生額外的碼流。
1.2 運(yùn)動(dòng)向量差值
如圖2所示,,在P幀或B幀中,,每個(gè)宏塊(16×16像素)可以有4種方式來進(jìn)行分割:16×16、8×16,、16×8,、8×8。如圖2(d)是采用8×8模式,,分為4個(gè)子宏塊(8×8像素),。每個(gè)字宏塊可以進(jìn)一步進(jìn)行分割:8×8、4×8,、8×4,、4×4。
每一個(gè)分區(qū)或者子宏塊都有一個(gè)單獨(dú)的運(yùn)動(dòng)向量MV(Motion Vector),,用于引用前面參考幀的對應(yīng)區(qū)域來對當(dāng)前塊進(jìn)行預(yù)測編碼,。每個(gè)預(yù)測區(qū)的MV都需要相當(dāng)數(shù)目的比特位來進(jìn)行編碼。為了進(jìn)一步減少比特?cái)?shù),,可以利用鄰近的MV之間的相關(guān)性進(jìn)行預(yù)測編碼,。后一個(gè)MV可由前面已經(jīng)編碼的MV預(yù)測得到,只需要對它們的差值MVD(Motion Vector Difference)進(jìn)行編碼,。在H.264中,,MVD值是采用指數(shù)哥倫布(Exp-Golomb)進(jìn)行編碼的,這是一種變長編碼[3],。
本文只對MVD的符號(hào)位進(jìn)行加密,對于每一個(gè)MVD值,,只需要對一個(gè)bit位進(jìn)行加密操作。
1.3 殘差系數(shù)
在H.264中,殘差塊系數(shù)通過CAVLC和CABAC進(jìn)行編碼[4],。在進(jìn)行CAVLC編碼的過程中,,涉及到以下幾個(gè)語義字段[2]:非零系數(shù)數(shù)目(Total Coeffs)、拖尾系數(shù)數(shù)目(TrailingOnes),、非零系數(shù)幅值(Level)以及最后一個(gè)非零系數(shù)前零的個(gè)數(shù)(TotalZero)和每個(gè)非零系數(shù)前零的個(gè)數(shù)(RunBefore),。 經(jīng)過分析,只有TrailingOnes和Level的符號(hào)位是屬于定長字段[6],,因此提取這兩個(gè)字段的符號(hào)位進(jìn)行加密操作,。如圖3所示。
2 算法設(shè)計(jì)
分別引入三個(gè)不同的控制參數(shù)P1,、P1,、P3對預(yù)測模式字IPM、運(yùn)動(dòng)向量MVD和殘差系數(shù)Residual Coefficient的加密強(qiáng)度進(jìn)行控制[1],,具體方案為:以P1,、P2的概率分別對IPM,、MVD進(jìn)行加密,當(dāng)P1,、P2從0到1進(jìn)行變化時(shí),,相應(yīng)地進(jìn)行不加密到完全加密;以P3對Residual Coefficients 系數(shù)符號(hào)位進(jìn)行不加密到完全加密控制,。
下面是算法的具體偽代碼描述:
While( syntax element)
{
Switch(syntax element_type)
{
Case: IPM read 3bits from pseudo random sequence;
new_mode=original_mode XOR 3_bits;
break;
Case:MVD Read 1bits from pseudo random sequence;
new_sign=original_sign XOR 1_bits;
break;
Case:DCT coefficients for each none zero coefficients
read 1 bits from pseudo random sequence;
new_sign=original_sign XOR 1_bits;
break;
}
scan for next syntax element;
}
3 仿真結(jié)果與分析
3.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)測試條件:H.264/AVC標(biāo)準(zhǔn),,JM10.2版本,以IPPP方式進(jìn)行編碼,,I幀刷新率為10,幀率為30 F/s,,2 GB內(nèi)存,Intel T5670處理器,并用VS2008完成對JM10.2代碼的調(diào)試,。實(shí)驗(yàn)中采用CIF格式的352288的foreman作為視頻序列,。
3.2 加密效果分析
單獨(dú)加密IPM字段,只是對亮度信息進(jìn)行加密,,如圖4中人臉和輪廓信息清晰可見,;單獨(dú)進(jìn)行MVD加密的過程中,如圖5中,,I幀圖像完全不受任何影響,,B、P幀的I bock也完全不受影響,,關(guān)鍵信息很容易泄露,。單獨(dú)對殘差系數(shù)進(jìn)行加密,如圖6,,與IPM一樣,,圖像的輪廓信息沒有很好的隱藏。另外,,從對抗解密攻擊能力上來看,,單獨(dú)對一種加密元素進(jìn)行分析加密空間更小,也更容易實(shí)施破解,。因此,,在視覺安全性要求比較高的場合,應(yīng)該聯(lián)合對所有三種元素進(jìn)行加密,,從圖7可以看到,,隨著加密強(qiáng)度不斷提高,視頻圖像可感知性不斷下降,,在最強(qiáng)的加密強(qiáng)度下,,整幅圖像完全被擾亂有很高的視覺安全性。各種方漢加密后PSNR值如表1所示。
3.3安全性分析
在加密方案中,,保持視頻格式的語義兼容性,,加密操作并不改變相關(guān)字段的長度。攻擊者會(huì)很自然地通過單獨(dú)猜解每個(gè)字段元素的值來進(jìn)行Cipher-only Attacks[7],。
3.4 性能分析
一個(gè)加密算法的計(jì)算復(fù)雜度主要取決于它要進(jìn)行加密的數(shù)據(jù)量,。本文加密的數(shù)據(jù)量主要包括IPM、MVD和殘差系數(shù),。在一個(gè)宏塊中,,IPM和MVD符號(hào)位,還有Residual Coefficient的符號(hào)位需要加密,,因此,,要加密的數(shù)據(jù)量同整個(gè)視頻數(shù)據(jù)相比,只占很小的部分,。所采用的加密操作也僅僅是對相關(guān)的bit位進(jìn)行“異或”操作,,所需的系統(tǒng)開銷極小,基本上不會(huì)對編解碼帶來影響,。
本文研究了一種在H.264編碼下進(jìn)行Perceptual Encryption的方法,,通過對語法元素的分析和編碼方式的研究,選取了IPM,、MVD和Residual Coefficient這三種定長字段的元素進(jìn)行加密,。通過引入概率參數(shù)來對每種類型的字段加密強(qiáng)度進(jìn)行控制,分析加密不同元素所帶來的視頻加密效果,。實(shí)驗(yàn)結(jié)果表明,,單獨(dú)加密其中任何一種元素,都能對圖像帶來很大的干擾,。但要獲得很好的安全性,,必須聯(lián)合加密三種元素,。這種加密方案具有很好的安全性和實(shí)時(shí)性,,而且不會(huì)帶來額外的碼流,保持了視頻的壓縮比不變,,并且可以調(diào)整不同的加密強(qiáng)度,,適用于各種應(yīng)用的需求。
參考文獻(xiàn)
[1] 劉蕭.基于H.264編碼的視頻加密研究[D].杭州:浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,,2010:18-29.
[2] 畢厚杰. 新一代視頻壓縮編碼標(biāo)準(zhǔn): H.264/AVC[M]. 北京:人民郵電出版社,,2005.
[3] 李曉舉,馮戰(zhàn)申,,胡友情.基于H.264 CAVLC熵編碼的視頻加密方案[J].計(jì)算機(jī)工程與應(yīng)用,,2009,45(34):114-117.
[4] 包先雨,蔣建國,袁煒,,等.H.264/AVC標(biāo)準(zhǔn)中基于CABAC的數(shù)字視頻加密研究[J].通信學(xué)報(bào),,2007,28(6):24-29.
[5] QAO L,NAHRSTEDT K. A new algorithm for MPEG video encryption[C]. In:Proceeding of the Frist International Conference on Imaging Science,Systems and Technology(CISST’ 97),LasVegas,Nevada,1997:21-29.
[6] LIAN S G,LIU Z, REN Z. Secure advanced video coding based on selection algorithms[J]. IEEE Transactions on Consumer Electronics,2006,52(2):621-629.
[7] 李曉舉,忽海娜,,劉麗.一種基于H.264CABAC的視頻加密方案[J].電信科學(xué),2010,26(7):80-83.