視頻壓縮加密方案中小波變換的應(yīng)用

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

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

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

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

二、視頻壓縮加密方案

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

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

(1)加密算法

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

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

具體步驟是:

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

2)對(duì)LL子帶獨(dú)立編碼。

3)對(duì)剩下的高頻分量用零樹(shù)編碼的方法進(jìn)行編碼,LH1,HLi, HH1作為可能的最高級(jí)樹(shù)根。

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

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

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

7)對(duì)每一個(gè)有子節(jié)點(diǎn)的節(jié)點(diǎn),對(duì)其4個(gè)子節(jié)點(diǎn)對(duì)應(yīng)的小波樹(shù)用2X2的置換表T3進(jìn)行置換見(jiàn)圖4)。

其示意圖如圖3所示。

(2)性能分析

1)安全性

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

若I=11,J=9對(duì)應(yīng)的圖像做4級(jí)小波變換)。則:

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

2)對(duì)編碼效率的影響

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

3)計(jì)算復(fù)雜度和密鑰量的考慮

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

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

(1)加密算法

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

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

具體的分級(jí)加密步驟是以四個(gè)加密等級(jí)為例):

1)首先生成4個(gè)不同的密鑰序列,分別對(duì)應(yīng)于4種加密級(jí)別。

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

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

4)對(duì)其他高頻分量的符號(hào)位,用密鑰序列3對(duì)其進(jìn)行異或。

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

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

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

(2)加密方法性能分析

1)安全性

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

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

2)對(duì)編碼效率的影響

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

3)計(jì)算復(fù)雜度的考慮

從加密的方案和上一部分提到的編碼過(guò)程可以看出,這里的加密方案完全是按照編碼的順序進(jìn)行的,加密完全可以在編碼中進(jìn)行,幾乎不增加編碼復(fù)雜度的開(kāi)銷(xiāo)。

3、對(duì)運(yùn)動(dòng)矢量的洗牌和運(yùn)動(dòng)矢量符號(hào)的翻轉(zhuǎn)

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

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

三、實(shí)驗(yàn)結(jié)果

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

1、可伸縮性的驗(yàn)證

在空間可伸縮性的驗(yàn)證上,選擇了akyio作為原始的視頻幀,將一幀的數(shù)據(jù)通過(guò)編碼器對(duì)其編碼,然后把輸出的碼流人為的截?cái)?,每次在保留部分碼流的情況下用解碼器對(duì)其解碼,得到恢復(fù)出的圖像。將其一幀編碼后的數(shù)據(jù)人為的截?cái)啵媒獯a器試圖在部分?jǐn)?shù)據(jù)的情況下解碼。在編碼碼不完全接收的情況下解碼的視頻幀如圖5所示。

解碼的PSNR值如表1所示。

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

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

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

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

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

2、加密方案的驗(yàn)證

實(shí)驗(yàn)選用akiyo標(biāo)準(zhǔn)序列對(duì)加密方案進(jìn)行驗(yàn)證,分別對(duì)小波樹(shù)結(jié)構(gòu)的置換,分級(jí)加密和運(yùn)動(dòng)矢量加密相結(jié)合作了測(cè)試。圖7表示了不同加密方案的主觀視覺(jué)效果。

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

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

3、幾種加密方案的比較

表4是本文置換方法與其他三種方法在對(duì)壓縮率的影響和對(duì)編碼時(shí)間的影響的測(cè)試。

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

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

對(duì)一個(gè)給定信號(hào)進(jìn)行小波變換,就是將該信號(hào)按某一小波函數(shù)簇展開(kāi),即將信號(hào)表示為一系列不同尺度和不同時(shí)移的小波函數(shù)的線性組合,其中每一項(xiàng)的系數(shù)稱(chēng)為小波系數(shù),而同一尺度下所有不同時(shí)移的小波函數(shù)的線性組合稱(chēng)為信號(hào)在該尺度下的小波分量。

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

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