引言
隨著寬帶網(wǎng)和無線網(wǎng)的發(fā)展,分布式多媒體廣泛應用在視頻點播系統(tǒng)、視頻廣播系統(tǒng)、視頻會議系統(tǒng)和監(jiān)視系統(tǒng)等方面,這對多媒體信息提出了不同程度的安全要求⑴。其圖像和視頻信息有固定的格式、海量數(shù)據(jù)特點和播放或傳輸?shù)膶崟r性要求,都使得釆用通用的數(shù)據(jù)加密方法遇到了巨大的困難,特別是對于視頻信息,目前的加密方案還有待進一步提高。
早期的安全方法主要依賴于對媒體訪問者的身份認證,而視頻數(shù)據(jù)本身并沒有被加密,因此,存在著傳輸過程中易被竊取、解碼、播放的問題。針對這種情況,尤其是軍事、政治、經濟等敏感場合對保密性和安全性的特殊要求,促進了對視頻加密算法的研究。
本文提出了一種基于廣義貓映射和H.264的視頻加密方案,利用貓映射的拉抻與折疊和具有初值敏感的特性,實現(xiàn)對每一幀原始視頻圖像進行置亂,然后對加密后的視頻流進行H.264編碼,從而獲得了在較低比特率下的高質量視頻。
1 H.264算法
1.1 算法特點
H.264在1997年ITU的視頻編碼專家組(Vid-eoCodingExpertsGroup)提出時被稱為H.26L,在ITU與ISO合作研究后被稱為MPEG4Parti0(MPEG4AVC)或H.264(JVT)。該算法既保留了以往壓縮技術的優(yōu)點和精華,又具有其他壓縮技術無法比擬的許多優(yōu)點:其中低碼流(LowBitRate)是其優(yōu)點之一,與MPEG2和MPEG4ASP等壓縮技術相比,在同等圖像質量下,采用H.264技術壓縮后的數(shù)據(jù)量只有MPEG2的1/8和MPEG4的1/3;其次是高質量的圖像,H.264能提供連續(xù)、流暢的高質量圖像(DVD質量);另外,H.264的容錯能力強,H.264提供有解決在不穩(wěn)定網(wǎng)絡環(huán)境下容易發(fā)生的丟包等錯誤的必要工具;而且網(wǎng)絡適應性強,H.264提供有網(wǎng)絡適應層(NetworkAdaptationLayer),該特點使得H.264的文件能容易地在不同的網(wǎng)絡上傳輸。
1.2 H.264編碼器
H.264編碼模塊的結構如圖1所示。編碼器采用的是預測和變換的混合編碼方式。編碼器處理輸入的幀或場F.以宏塊編碼為單位來進行幀內編碼或幀間編碼。采用幀間預測編碼的預測值PREDC圖中用P表示)是由當前片中已編碼的參考圖像經運動補償(MC)后得出的。
為了提高預測精度,以提高壓縮比,實際的參考圖像可在過去或未來(指顯示次序上)已編碼解碼重建和濾波的幀中進行選擇。預測值F和當前塊相減后,可產生一個殘差塊D,經塊變換、量化后產生一組量化后的變換系數(shù)”,再經嫡編碼與解碼所需的一些邊信息(預測模式量化參數(shù)、運動矢量等)一起組成一個壓縮后的碼流,經NAL(網(wǎng)絡自適應層)后供傳輸和存儲用。采用幀內預測編碼的預測值可由已編碼的宏塊得到。
1.3 H.264解碼器
H.264的解碼模塊結構圖如圖2所示,圖中,由編碼器的NAL輸出一個壓縮后的H.264壓縮比特流,經嫡解碼得到量化后的一組變換系數(shù)X,再經反量化、反變換,得到殘差D”。利用從該比特流中解碼出的頭信息,解碼器就可產生一個預測塊PRED,它和編碼器中的原始PRED是相同的。當該解碼器產生的PRED與殘差D”相加后,就會產生uFn,再經濾波,最后得到重建的F”,這個F?就是最后的解碼輸出圖像。
2 貓映射
貓映射最早是由Arnold引入的,因為經常用一張貓臉演示而得名,其方程如下:
(1)式中,行列式C的值為1,即該映射是一個二維保面積、可逆映射,沒有吸引子「町。實際上,貓映射包括拉伸和折疊兩個過程,乘以矩陣C,使*、了變大,相當于拉伸,取模使了、J又折回單位矩陣內,相當于折疊,矩陣C的特征值為:
相應的李氏指數(shù)為:
因此,該系統(tǒng)是混沌的。
從幾何方面考慮,可將貓映射作以推廣,稱為廣義貓映射。首先將相空間推廣為:
{0,l,2,?“,N—l}X{0,l,2,“?,N—l}
即只取0到N-1的正整數(shù),其次將方程推廣為最一般的二維可逆保面積方程,如式(2)所示:
式中a,b,c,d為正整數(shù),其保面積性要求
是:ad-bc=1
廣義貓映射實際上是對一個最一般的二維可逆保面積映射加了取正整數(shù)的限制,這樣,其很可能不再是混沌的,因為狀態(tài)空間變成有限的了。但從幾何上看,仍然具有貓映射的拉伸和折疊的性質,這個性質導致原來相鄰的兩點(i,j)和(i,j+1)經迭代幾次后不再相鄰了,即仍然具有一定程度的初值敏感性,利用這一點,一幅圖像經迭代若干次之后,就可達到保密效果。
廣義貓映射的逆映射如下式所示:
需要注意的是,只要正映射的系統(tǒng)取整數(shù),則逆映射的系數(shù)也取整數(shù),這是一個明顯的優(yōu)點。它保證了加、解密都是整數(shù)運算,因而不會引入誤差,只需要把加密了的圖像按逆映射迭代相應次數(shù)就可以解密。
3 貓映射視頻加密、解密流程
貓映射的視頻加密流程如圖3所示。加密時,首先獲取YUV420視頻流;然后將其分解成幀數(shù)據(jù);再通過加密算法得到加密后的幀數(shù)據(jù);最后把加密后的幀數(shù)據(jù)送往H,264編碼器,得到H.264碼流。解密流程是個相反的過程:即先將H.264碼流通過H.264解碼器得到加密后的幀數(shù)據(jù);再將加密后的幀數(shù)據(jù)通過解密算法得到解密后的幀數(shù)據(jù);最后將得到的每一幀數(shù)據(jù)組合成YUV420數(shù)據(jù)。
加密算法采用的是廣義貓映射,根據(jù)公式(2),可對每一幀圖像進行像數(shù)點置亂,(xn,yn)代表著像數(shù)點坐標,而(xn+1,yn+1)代表著(xn,yn)貓映射后的新坐標。解密算法則采用廣義貓映射的逆映射。
4 實驗結果及分析
實驗平臺可以在linuxFedora13操作系統(tǒng)下,H.264編碼器采用開源代碼x264,H.264解碼器采用開源代碼ffmpeg-O.6,測試序列采用的是akiyo_qcif.yuv,根據(jù)公式(2)要求,其相空間為{0,1,2,…,N—1}X{0,1,2,…,N~1},所以,用工具把akiyo_qcif.yuv裁剪為y空間,大小為128X128,“、p空間都為64X64。設定x64幀率25f/s,碼率為256kb/s,幀數(shù)為300幀,a=l,b=19a
原始視頻流可以直接由H.264編碼器編碼得到H.264視頻流,文件大小為316.5KB,編碼時間為5.497s。原始視頻流第一幀圖像y分量圖像如圖4所示。原始視頻流經過加密后得到的H.264視頻流文件大小為316.5KB,編碼時間為5.5s,直接送入解碼器得到的第一幀了分量圖像如圖5所示,通過解密流程后的第一幀y分量圖像如圖6所示,當參數(shù)失配時(如a=l,b=l),則通過解密流程后的第一幀夕分量圖
從實驗結果得知,解密算法可以很好的解密原始圖像,在錯誤密鑰的情況下(即參數(shù)失配的情況下),從圖7可以看出,不能正確解密原始圖像。從H.264文件大小上看,在相同碼流情況下,通過加密算法并沒有加大文件大小,從而保證了壓縮比。而且編碼時間接近,算法簡單。但由于H.264編碼算法是基于消除空間相關性和時間相關性的算法,而貓映射打亂了原來圖像的時間和空間的相關性,因此,不可避免地會帶來圖像更大的失真。為了客觀地評價解密圖像的性能,設計引入了均方誤差MSE,定義如下:
式⑷中,p(x,y)代表原始圖像在(z,y)處的灰度值”(w)代表解密圖像在3以)處的灰度值,M,N代表圖像大小,對上述密鑰的實驗結果是:MSE=20。
5 結語
在信息高速流通的時代,不僅要大量存儲和傳輸圖像,而且往往要求在保證質量和安全性的前提下,以較小的空間存儲圖像,并以較少的比特率傳輸圖像。本文將H.264協(xié)議和貓映射結合起來實現(xiàn)視頻壓縮,不但可以實現(xiàn)視頻加密,而且加密算法十分簡單。