視頻壓縮加密方案中小波變換的應用

針對可伸縮性視頻流的安全性問題,我們提出了一種可伸縮性的視頻壓縮加密的方案,同時考慮壓縮加密。采用小波變換的壓縮方案,保證生成的碼流具有可伸縮性,并根據(jù)重要系數(shù)優(yōu)先編碼的原則,采用樹型編碼。在加密部分的設(shè)計上,在完全保持了壓縮后碼流的可伸縮性的基礎(chǔ)上,充分利用了編碼的樹型結(jié)構(gòu),并且通過對壓縮加密的綜合考慮使得加密對壓縮效率的影響幾乎可以忽略,并且保證了安全性。

一、視頻壓縮加密方案系統(tǒng)結(jié)構(gòu)及可伸縮性分析

為了實現(xiàn)安全的適合于網(wǎng)絡(luò)應用的視頻服務的視頻壓縮加密方案,我們首先需要搭建了一個可伸縮性的視頻壓縮加密的平臺。該方案的編碼端示意圖如圖1所示。如果當前編碼幀是I幀,則輸入的數(shù)據(jù)先通過小波變換和量化,得到的小波系數(shù)按照重要性優(yōu)先的原則經(jīng)過熵編碼后輸出;如果當前編碼幀是P幀,則輸入的數(shù)據(jù)首先經(jīng)過運動估計和運動補償,得到運動矢量經(jīng)過熵編碼后輸出,殘差信號通過小波變換后編碼輸出。

為了實現(xiàn)碼流在任意位置可以截斷,編碼采用了重要系數(shù)先編碼的原則。具體過程是,每一幀中的YUV分量低頻系數(shù)的最高位首先被編碼,然后高頻系數(shù)的最高位依次通過零樹編碼,接著是次高位,一直到所有系數(shù)的所有位都被編碼,則一幀的小波系數(shù)編碼完成。如圖2所示,這就保證了空間可伸縮性。為了實現(xiàn)時間可伸縮性,這里采用了指定一幀作為后面幾幀的參考幀的方法,這樣雖然犧牲了一定的壓縮比,但是在發(fā)生丟幀的時候可以避免以后幀都不能正常解碼的情況,實現(xiàn)了一定的時間可伸縮性。通過第四部分的實驗可以看出,這種方法能保證后面的碼流不受前面丟幀的影響,可以網(wǎng)絡(luò)條件不好的情況下作為可選項使用。

二、視頻壓縮加密方案

視頻壓縮加密方案包括對小波樹結(jié)構(gòu)位置的置換,對小波系數(shù)重要位置的異或,對運動矢量的洗牌和對運動矢量符號的翻轉(zhuǎn)。

1、對小波樹結(jié)構(gòu)的置換

(1)加密算法

對小波變換后的系數(shù)進行加密是在基于小波變換的加密中普遍用到的一種方法。最簡單也可行的方法是對小波變換后的系數(shù)位置進行置換。文獻函黽出了可以將全部小波系數(shù)用一個大置換表進行置換的方法(CWW),這種方法算法簡單、安全性高,但是這種置換打亂了小波系數(shù)高低頻的分布特性,破壞了小波變換后能量的分布,對壓縮效率影響很大。對小波系數(shù)的置換改成了在一個子帶內(nèi)進行(CWF),進行塊洗牌和塊旋轉(zhuǎn)操作,這樣就保持了小波變換后的能量分布情況,降低了對壓縮效率的影響。提出了CWQ算法,低頻的四個子帶按CWF的方法加密,高頻的子帶每以2的小塊為一個單位,按照對應的低一級頻率的子帶的置換方法進行置換,CWQ算法進一步保持了編碼的樹型結(jié)構(gòu),進一步降低了對壓縮率的影響。

通過前面的分析可以看出直接對小波變換后的系數(shù)位置進行置換的話,會破環(huán)原有的零樹結(jié)構(gòu),影響編碼效率。本文提出了一種小波變換零樹編碼加密的方法,該方法對小波變換后的系數(shù)通過零樹編碼,然后對小波樹結(jié)構(gòu)的位置進行置換。

具體步驟是:

1)對M*n的數(shù)據(jù)進行L級小波變換(變換后LL子帶的大小為I*J)。

2)對LL子帶獨立編碼。

3)對剩下的高頻分量用零樹編碼的方法進行編碼,LH1,HLi, HH1作為可能的最高級樹根。

4)根據(jù)密鑰生成3個置換表T1,T2,T3,大小分別為I*J,3*I*J, 2*2。

5)對LL子帶的系數(shù)采用I*J的置換表T1進行置換。

6)對LH1,HLi, HH1子帶的系數(shù)對應的小波樹,用3*I*J的置換表T2對其進行置換。

7)對每一個有子節(jié)點的節(jié)點,對其4個子節(jié)點對應的小波樹用2X2的置換表T3進行置換見圖4)。

其示意圖如圖3所示。

(2)性能分析

1)安全性

由于采用了3個置換表,大小分別為I*J,3*I*J, 2*2,則該方法的密鑰空間為:

若I=11,J=9對應的圖像做4級小波變換)。則:

并且由于是對YUV同時編碼,而且是按位平面編碼,因此對不同YUV分量的不同位平面采用不同的置換表,密鑰空間就可以達到Kc'=Kc24。由此可以看出本文的方法安全性完全能滿足要求。

2)對編碼效率的影響

由于本文提出的方法完整地保持了零樹的結(jié)構(gòu),因此該方法對編碼效率的影響完全在于LL子帶獨立編碼對編碼效率的影響上。假設(shè)U。子帶的某個節(jié)點是零樹根的話,編碼需要一個零樹根符號,若對LL子帶獨立編碼,則需要3個零樹根符號和一個零點。由于LL節(jié)點作為最低頻節(jié)點,其本身作為零樹根的可能性很小,因此該方法對編碼效率的影響極小。

3)計算復雜度和密鑰量的考慮

由于只采用了3個置換表,生成置換表的開銷和密鑰的開銷都比較小。而且是對整個小波樹作置換,這比對每個小波系數(shù)做置換的計算復雜度要低很多。

2、對小波系數(shù)重要位的異或

(1)加密算法

對小波樹位置的置換僅僅改變了小波系數(shù)的空間分布,并不改變小波系數(shù)的值。如果結(jié)合對小波系數(shù)的重要位如最高有效位,符號位)的異或,可以進一步增強其安全性。

這里可以選擇對小波系數(shù)的不同重要位加密來實現(xiàn)分級加密。這樣在解碼端如果擁有全部的密鑰,則可以得到完全解密的清晰圖像,如果只有對重要系數(shù)加密的密鑰,則解碼后可以得到相對清晰的圖像,如果只有非重要系數(shù)加密的密鑰,則解碼后只能得到相對粗糙的圖像。這就適合對不同等級的用戶提供不同質(zhì)量的服務。

具體的分級加密步驟是以四個加密等級為例):

1)首先生成4個不同的密鑰序列,分別對應于4種加密級別。

2)對最低頻分量的LL,LH1,HL1,HH1子帶的非零系數(shù)的最高有效位,密鑰序列1對其進行異或。

3)對最低頻分量LL,LH1,HL1,HH1子帶的非零系數(shù)符號位,用密鑰序列2對其進行異或。

4)對其他高頻分量的符號位,用密鑰序列3對其進行異或。

5)對其他高頻分量的非零系數(shù)最高有效位用密鑰序列4進行異或。

6)這4種方案中,方案l的加密程度最高,方案4的加密程度最低,可以控制不同的用戶擁有不同的密鑰來對他們提供不同質(zhì)量的服務。

以此類推,將這種方法用于系數(shù)的其他位,可以得到更多等級的分級加密方案。

(2)加密方法性能分析

1)安全性

用密鑰對系數(shù)直接異或的加密方法的安全性完全取決于密鑰的長度。選定的密鑰長度為64位,則每一級加密的密鑰空間:

與小波樹置換相結(jié)合,總的密鑰空間為:

2)對編碼效率的影響

顯然這種加密方案不破環(huán)原有的零樹結(jié)構(gòu),只是符號位和位平面編碼的時候的數(shù)據(jù)在統(tǒng)計特性上的改變對自適應算術(shù)編碼有一點影響。由此可見這種加密方法對編碼效率的影響是很低的。

3)計算復雜度的考慮

從加密的方案和上一部分提到的編碼過程可以看出,這里的加密方案完全是按照編碼的順序進行的,加密完全可以在編碼中進行,幾乎不增加編碼復雜度的開銷。

3、對運動矢量的洗牌和運動矢量符號的翻轉(zhuǎn)

對運動矢量的洗牌和運動矢量符號的翻轉(zhuǎn)結(jié)合起來可以增加P幀的安全性。由于運動矢量的個數(shù)不多,但是對編碼的影響卻很大,所以對運動矢量的加密有主觀效果好,加密復雜度低的優(yōu)點。

具體加密過程是:先確定運動矢量的個數(shù),然后生成一個置換表對運動矢量進行置換,再將運動矢量的符號位與密鑰序列異或即可。對運動矢量的加密在P幀對小波系數(shù)進行加密的基礎(chǔ)上,進一步提高了安全性。

三、實驗結(jié)果

為了驗證該方案,設(shè)計了三個實驗,分別對該方案的可伸縮性,加密效果進行了驗證,并與第2部分提到的部分加密算法性能上作了比較。

1、可伸縮性的驗證

在空間可伸縮性的驗證上,選擇了akyio作為原始的視頻幀,將一幀的數(shù)據(jù)通過編碼器對其編碼,然后把輸出的碼流人為的截斷,每次在保留部分碼流的情況下用解碼器對其解碼,得到恢復出的圖像。將其一幀編碼后的數(shù)據(jù)人為的截斷,用解碼器試圖在部分數(shù)據(jù)的情況下解碼。在編碼碼不完全接收的情況下解碼的視頻幀如圖5所示。

解碼的PSNR值如表1所示。

從結(jié)果中看出在只收到部分碼流的情況下,這種編碼方案也可以很好地恢復出原來的視頻幀,表明該方案具有良好的空間可伸縮性。

這里也設(shè)計了實驗對時間可伸縮性做了驗證,選用football作為原始的視頻幀,首先驗證在指定參考幀的情況下如果發(fā)生丟幀的情況對以后的視頻幀解碼的影響,然后分別用指定參考幀和前一幀做下一幀的參考幀兩種方法編碼,比較指定參考幀的情況下對編碼效率的影響。

可以看出,通過指定參考幀實現(xiàn)了一定的時間可伸縮性。

而指定參考幀對編碼效率的影響如表2所示。

這里通過指定參考幀的方法實現(xiàn)時間可伸縮性,對編碼效率帶來了一定的影響。但是在網(wǎng)絡(luò)條件不好的情況下,仍然可以作為一個可選項,保證發(fā)生丟幀后以后的碼流也能夠正常解碼。

2、加密方案的驗證

實驗選用akiyo標準序列對加密方案進行驗證,分別對小波樹結(jié)構(gòu)的置換,分級加密和運動矢量加密相結(jié)合作了測試。圖7表示了不同加密方案的主觀視覺效果。

圖7a為經(jīng)過小波樹置換后的加密效果,b至e為分級加密的效果圖,分別對應于對小波系數(shù)重要位的異或的加密算法中的4級加密方案,f為完整的加密方案的主觀效果圖,包括小波樹的置換,分級加密1~4,運動矢量的洗牌和符號翻轉(zhuǎn)。

從圖7可以看出,完整加密方案和采用小波數(shù)置換的方法加密的主觀加密效果良好,可以保證未授權(quán)用戶不能竊取其內(nèi)容。而分級加密則實現(xiàn)了從模糊(level1)到清晰完全解密)的解碼圖像質(zhì)量逐步提高的數(shù)個加密級別。可以使授權(quán)用戶在擁有小波系數(shù)置換的密鑰的基礎(chǔ)上,通過擁有不同的分級加密的密鑰來使得不同等級的用戶擁有不同等級質(zhì)量的服務。以下是各個加密方案對壓縮效率的影響統(tǒng)計:

3、幾種加密方案的比較

表4是本文置換方法與其他三種方法在對壓縮率的影響和對編碼時間的影響的測試。

通過比較,可以看出,cww方案對壓縮效率的影響極大,幾乎完全破壞了原來編碼的特性,CWF方案,CWQ方案差別不大,而提出的方案比以前的算法無論是對壓縮效率的影響和編碼時間的影響都要小,性能更好。

小知識之小波系數(shù)

對一個給定信號進行小波變換,就是將該信號按某一小波函數(shù)簇展開,即將信號表示為一系列不同尺度和不同時移的小波函數(shù)的線性組合,其中每一項的系數(shù)稱為小波系數(shù),而同一尺度下所有不同時移的小波函數(shù)的線性組合稱為信號在該尺度下的小波分量。

要求φ(t)時頻2個域內(nèi)都具有好的緊支性,才可以反映f(t)在以(u,ηs)(η為母小波的中心頻率)為中心,能量集中的時頻盒上的值Wf(u,s),稱為小波系數(shù)。利用小波系數(shù)的位置和尺度可以很好地探測到信號的時頻變化。

Wf(a,b)稱為小波系數(shù),它隨a、b而變,其實質(zhì)是對f(t)用不同濾波器進行濾波。a是尺度函數(shù),在一定意義上a對應于頻率w。