專利名稱:一種抗幾何攻擊的實時視頻水印方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體信息安全技術(shù)領(lǐng)域,具體涉及一種抗幾何攻擊的實時視頻數(shù)字水印方法。
背景技術(shù):
隨著信息技術(shù)和計算機網(wǎng)絡(luò)的飛速發(fā)展,數(shù)字多媒體信息(圖像、文本、音頻、視頻)的存儲、復(fù)制與傳播變得非常方便。人們不但可以通過互聯(lián)網(wǎng)絡(luò)和CD-ROM方便快捷地獲得多媒體信息,還可以得到與原始數(shù)據(jù)完全相同的復(fù)制品。但是由此引發(fā)的盜版問題和版權(quán)紛爭已成為日益嚴(yán)重的社會問題。
許多數(shù)字版權(quán)管理(DRM)框架采用端到端的加密來保護數(shù)字媒體的版權(quán)。但一旦加密媒體數(shù)據(jù)被解密后,這種保護機制就不再有效了。數(shù)字水印方法作為解決這類問題的一種有效和最具潛力的方法,已成為研究的熱點。近年來,盡管魯棒水印方法的研究與應(yīng)用取得了很大的進展,但如何抵抗幾何攻擊仍然是這個領(lǐng)域所面臨的最大困難,也是研究的熱點之一。攻擊者即使只對目標(biāo)圖像做輕微的幾乎不可察覺的幾何攻擊如旋轉(zhuǎn)、縮放、變換等。盡管水印信號還殘留在水印圖像中,但是大多數(shù)水印檢測器卻不能正確提取水印信息,這是因為幾何攻擊破壞了載體數(shù)據(jù)和水印的同步性。如果需要在圖像中嵌入多比特水印信息,則這個問題顯得更加突出。
目前,抗幾何攻擊的水印方法大致分為兩類全局水印方法主要是在像素、頻率或者其他變換系數(shù)中嵌入信息,該類又可劃分為基于圖像校準(zhǔn)的、基于窮舉搜索的、基于同步模板的、基于自參考水印的和基于不變量的五類方法。其中有代表性的方法是基于不變量的方法,文獻(xiàn)“Rotation,scale and translation invariant spread spectrum digital image watermarking”(O′Ruanaidh,J.and T.Pun.Signal Processing,1998,66(3)303-317)提出一種基于Fourier-Mellin變換的水印方法,盡管能夠抵抗RST(旋轉(zhuǎn)、縮放和平移)攻擊,但是依然不能同時抵抗裁剪、縱橫比改變和RST聯(lián)合攻擊中常伴隨的剪切等其它攻擊,文獻(xiàn)“Invariant Image Watermark Using ZernikeMoments”.(Kim,H.S.and H.-K.Lee.IEEE Transactions on Circuits andSystems for Video Technology,2003,13(8)766-775)提出基于Zernike矩的抗幾何攻擊水印方法,該方法的缺陷是計算復(fù)雜度高,并且不能抵抗裁剪和縱橫比改變等攻擊。一般來說,全局?jǐn)?shù)字水印方法存在以下缺陷如果屬于空間域方法,則對壓縮、噪聲、濾波等處理的魯棒性差;如果屬于頻域方法,并且在整幅圖像的頻率中嵌入水印,則很難抵抗裁剪攻擊(如中心裁剪)。因為如果只有部分圖像,且在無法獲得原始圖像大小,以及這部分圖像在原始圖像的位置情況未知情況下,很難定位水印的嵌入位置。
針對全局?jǐn)?shù)字水印的缺點,許多學(xué)者開始探討能抵抗裁剪的數(shù)字水印方法,這類方法通常稱為基于特征的局部水印方法,是一種基于圖像內(nèi)容的局部化數(shù)字水印方案,能夠抵抗裁剪等局部幾何攻擊。一般來說,局部化數(shù)字水印就是將水印信息嵌入圖像的多個局部位置,水印檢測器通過局部圖像就可以提取水印,并判斷水印的存在性。文獻(xiàn)“A feature-based robustdigital image watermarking scheme”(Tang.C.-W.and H.M.Hang.IEEETransactions on Signal Processing,2003,51(4)950-959)提出一種結(jié)合圖像特征提取和圖像規(guī)范化的水印方案,利用Mexican Hat小波尺度交互方法提取特征點,以特征點為中心構(gòu)造圓盤,將圓盤內(nèi)的圖像進行規(guī)范化,在圓盤中定義兩個32×32正方形框,將水印信號嵌入到該方形框內(nèi)的圖像的DFT幅度值中。該方案可抵御Stirmark工具中的大多數(shù)等攻擊。最近幾年,研究者開始將模式識別領(lǐng)域中基于尺度空間思想的而尺度不變特征,如SIFT、Harris-Laplace,用來同步水印。文獻(xiàn)“Robust image watermarking using localinvariant features”(Hae-Yeoun Lee,Kim Hyungshin,Heung-Kyu Lee.OpticalEngineering,2006,45(3)037002)利用SIFT特征來構(gòu)造圓形的水印嵌入?yún)^(qū)域,該方案可以抵抗Stirmark工具中的大多數(shù)攻擊,文獻(xiàn)“Localized imagewatermarking based on feature points of scale-space representation”(Seo Jin S.,Yoo Chang D.Pattern Recognition,2004,37(7)1365-1375)中利用Harris-Laplace點作為同步水印的特征點,在每個Harris-Laplace點處,水印依據(jù)特征尺度和特征角度進行仿射標(biāo)準(zhǔn)化后的嵌入,通過將水印和圖像的局部特征綁定在一起,可以獲得對仿射變換的抵抗能力。
綜上所述,全局?jǐn)?shù)字水印很難抵抗裁剪攻擊,局部數(shù)字水印方法需要巨大的計算量,如果直接應(yīng)用到視頻水印的應(yīng)用,則滿足不了視頻水印應(yīng)用的實時性和接近于實時性的需求。這是因為,大多數(shù)局部數(shù)字水印系統(tǒng)中的特征提取和水印嵌入與檢測方法運行在空間域中,或者將空間域轉(zhuǎn)換后的頻域中。水印嵌入后還需要逆變換操作,將信號恢復(fù)到空間域中。這些都需要非常大的計算量。并且大多數(shù)情況下特征提取和水印嵌入與檢測運行在不同的轉(zhuǎn)換域中,這需要更大的計算量。
在現(xiàn)有的實時視頻水印方法中,DCT域水印和運動矢量水印出于較低的復(fù)雜性以及與編碼標(biāo)準(zhǔn)良好的兼容性,得到了深入的研究,盡管如此,每種方案都有它自身的優(yōu)點與缺點,往往不能同時兼顧實時性和抗幾何攻擊。因此研究既能抗幾何攻擊,又能滿足實時性要求的視頻水印方法成為研究難點中的難點,也是視頻水印研究中亟待解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種抗幾何攻擊的實時視頻數(shù)字水印方法,該方法具有很強的魯棒性、安全性和透明性,能抵抗普通信號處理和常規(guī)幾何攻擊,而且可以抵抗視頻編碼格式轉(zhuǎn)換攻擊。
為實現(xiàn)上述發(fā)明目的,本發(fā)明提供的抗幾何攻擊的實時視頻水印嵌入方法,包括下述步驟 第A1步 預(yù)處理 對壓縮的視頻序列進行變長碼解碼及反量化操作,得到視頻序列亮度分量的分塊DCT系數(shù),每個視頻幀表示為分塊DCT系數(shù)的集合; 第A2步 獲取水印的嵌入域 在預(yù)處理后的視頻序列中,隨機選取連續(xù)的、偶數(shù)個的視頻幀作為最小水印嵌入單位,記為WMS;其中,設(shè)WMS中包含的視頻幀幀數(shù)為Fn,2≤Fn≤10;將WMS中的任一視頻幀Xk的行和列表示為兩個整數(shù)的乘積,定義Xk的大小為L×S行和M×S列,其中,k表示視頻幀中WMS中的序號,k=1,…,F(xiàn)n;Xk將表示為L×M個子塊,每一子塊表示為Sbij,i=1,2,…,L,j=1,2,…,M;利用式(I)計算每個視頻幀Xk左上角E×E塊的左上對角區(qū)域的整體DCT系數(shù)Cfull,其它區(qū)域的整體DCT系數(shù)均設(shè)定0;
其中,B1是塊Sbij的DCT變換系數(shù)矩陣,B2和B3是視頻幀Xk的整體DCT變換系數(shù)矩陣;Cpart代表所有子塊Sbij的分塊DCT系數(shù)集合;從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),N為正整數(shù),F(xiàn)n幅視頻幀的所選整體DCT系數(shù)構(gòu)成了一個大小為Fn×N的矩陣C,即為一個WMS的嵌入域,表示為 第A3步 對于設(shè)定的置亂密鑰K′,利用種子函數(shù)產(chǎn)生N個種子,構(gòu)成種子序列SK;對于矩陣C的任一列f的整體DCT系數(shù),用第f個種子skf進行置亂,產(chǎn)生一個置亂后的系數(shù)矩陣,記為 第A4步 設(shè)置
個由Fn個比特組成的序列,各比特的值是“+1”或“-1”,并且各序列中“+1”和“-1”的個數(shù)相等,由這些序列組成集合G,記為 Gr的序號r為該元素在G中的索引值;然后根據(jù)設(shè)置的水印密鑰Key產(chǎn)生一個由N個字符組成的字符串信息,記為H,每個字符Hf由十六進制數(shù)字表示;依據(jù)每一位字符Hf到G中查找相對應(yīng)的元素Gr,查找公式如下 查找出來的N個元素Gr構(gòu)成Fn×N比特的二進制水印信號,記為W; 第A5步 在系數(shù)矩陣Ch中,在各列中的每一個整體DCT系數(shù)中對應(yīng)嵌入二進制水印信號W中的一個比特,得到嵌入后的整體DCT系數(shù)矩陣Chw,根據(jù)置亂密鑰K′將Chw中所有整體DCT系數(shù)逆置亂,恢復(fù)到原始位置,得到系數(shù)矩陣Cw; 第A6步 設(shè)置大小為(L×S)×(M×S)的差值矩陣Dfull,其左上角區(qū)域的值對應(yīng)于系數(shù)矩陣Cw與C的差值,其它部分均為零;再利用式(VI)將差值矩陣Dfull變換到分塊DCT系數(shù)的差值矩陣,記為Dpart
將Dpart與Cpart相加,得到嵌入水印后的分塊DCT系數(shù); 第A7步 根據(jù)嵌入水印后的分塊DCT系數(shù)進行與步驟(A1)相對應(yīng)的量化和變長碼編碼操作,得到嵌入水印后的視頻序列。
本發(fā)明提供的抗幾何攻擊的實時視頻水印檢測方法,包括下述步驟 第B1步 利用滑動窗口在已解碼的視頻序列中選取一個WMS,對WMS的所有視頻幀做旋轉(zhuǎn)補償,利用補償角度θ對應(yīng)的旋轉(zhuǎn)位置置換矩陣將WMS的所有視頻幀近似的恢復(fù)到原始位置; 第B2步 從空域中計算恢復(fù)后的視頻幀左上角E×E塊的左上對角區(qū)域的整體DCT系數(shù),其它區(qū)域的整體DCT系數(shù)均設(shè)定0,然后從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),N為正整數(shù),F(xiàn)n幅視頻幀的所選整體DCT系數(shù)構(gòu)成了一個大小為Fn×N的矩陣Ct; 第B3步 對于矩陣Ct的任一列f的整體DCT系數(shù),采用密鑰K′置亂,得到系數(shù)矩陣Ct′; 第B4步 根據(jù)式①計算Ct′的任一列的平均值
① 然后利用式②比較Ct′的每一個整體DCT系數(shù)與對應(yīng)列的平均值來提取水印信號
② 然后將所有水印信號
組成的水印
轉(zhuǎn)化成一維序列We; 第B5步利用式③計算We與原始水印信號W的一維序列Wo的歸一化相關(guān)值znc ③ 其中|Wo|是水印Wo的長度;如果znc小于歸一化相關(guān)檢測閾值TW,那么該WMS里面不存在水印W,滑動窗口向右滑動一幀,組成一個新的WMS,否則該WMS里存在水印W。
本發(fā)明提出的具有實時性的魯棒視頻水印方法主要適用于基于離散余弦變換(discrete cosine transform,DCT)編碼的視頻文件,包括MEPG-2,MPEG-4,H.264等。因為該方法充分利用壓縮數(shù)據(jù)格式,能夠直接運行于DCT塊數(shù)據(jù)上。在嵌入過程中,引入了分塊DCT系數(shù)與整體DCT系數(shù)的快速轉(zhuǎn)換,實現(xiàn)高效的計算整體DCT系數(shù),大大降低計算開銷,而且提高了水印方法的魯棒性,因為整體DCT系數(shù)比分塊DCT系數(shù)更加魯棒。為了減低嵌入造成的視覺誤差,并不是直接將嵌入水印后的整體DCT系數(shù)轉(zhuǎn)換成分塊DCT系數(shù),而是將嵌入水印后的整體DCT系數(shù)與原始整體DCT系數(shù)的差值轉(zhuǎn)換為分塊DCT系數(shù)差值,并加到原始分塊DCT系數(shù)上;檢測水印的過程是伴隨著視頻播放同時進行,視頻已完全解碼,因此該水印方法能抵抗視頻編碼格式轉(zhuǎn)換攻擊,在檢測水印之前,在空域中創(chuàng)新性的引入旋轉(zhuǎn)攻擊補償模塊得到視頻序列受旋轉(zhuǎn)攻擊的幅度,然后根據(jù)它將視頻序列還原,增強了水印方法針對旋轉(zhuǎn)攻擊的魯棒性。因此,本發(fā)明中的視頻水印方法不僅具有較好的感知透明性,而且對一些普通的數(shù)字信號處理攻擊(如高斯噪聲、低通濾波、JPEG壓縮、增減亮度等)和常規(guī)的幾何攻擊(行列刪除、旋轉(zhuǎn)、裁剪、縱橫比變換等)具有較好的魯棒性。
圖1為本發(fā)明方法的整體框架圖; 圖2為本發(fā)明的視頻水印自適應(yīng)嵌入過程圖; 圖3為分塊DCT系數(shù)與整體DCT系數(shù)的快速轉(zhuǎn)換示意圖其中(a)圖為大小為LS×MS的視頻幀,(b)圖為LS×MS整體DCT系數(shù),(c)圖為(a)圖的LM個S×S像素分塊,(d)圖為LM個S×S分塊DCT系數(shù)矩陣; 圖4為系數(shù)矩陣置亂過程圖; 圖5為本發(fā)明的視頻水印檢測過程圖; 圖6為旋轉(zhuǎn)補償實例圖,其中(a)圖為原始圖像,(b)圖為旋轉(zhuǎn)后的圖像,(c)圖為旋轉(zhuǎn)補償后的圖像; 圖7為水印檢測時搜索補償角度的過程圖; 圖8為測試視頻序列,其中(a)圖為“Flower-Garden”視頻序列,(b)圖為“Cutthroat”視頻序列,(c)圖為“Tennis”視頻序列,(d)圖為“Farmer”視頻序列; 圖9為嵌入水印后測試視頻的PSNR(峰值信噪比)分布曲線圖,其中(a)圖為嵌入水印后的“Flower-Garden”視頻序列的PSNR分布曲線圖,(b)圖為嵌入水印后的“Cutthroat”視頻序列的PSNR分布曲線圖,(c)圖為嵌入水印后的“Tennis”視頻序的PSNR分布曲線圖,(d)圖為嵌入水印后的“Farmer”視頻序列的PSNR分布曲線圖; 圖10為不同數(shù)字信號處理攻擊下本發(fā)明中方法的魯棒性,其中(a)圖為方法抗高斯噪聲攻擊的魯棒性,(b)圖為方法抗低通濾波攻擊的魯棒性,(c)圖為方法抗改變視頻碼流比特率的魯棒性,(d)圖為方法抗亮度縮放攻擊的魯棒性。
具體實施例方式 以下結(jié)合附圖和具體實例對本發(fā)明的技術(shù)方案做進一步詳細(xì)說明。
本發(fā)明中的方法如圖1所示,在預(yù)處理后的原始視頻中,直接從分塊DCT系數(shù)變換到整體DCT系數(shù),通過修改置亂后的整體DCT系數(shù)將調(diào)制好的水印嵌入,然后將修改后的DCT系數(shù)逆置亂并逆變換到分塊DCT系數(shù),最后進行逆預(yù)處理得到嵌入水印的視頻;而水印檢測則是在對完全解碼的測試視頻進行選擇補償后,從空域中直接計算整體DCT系數(shù),按照嵌入的規(guī)則進行水印提取,最后通過計算提取的水印與原始水印的歸一化相關(guān)值來判定測試視頻中是否含有原始水印。下面具體說明水印嵌入過程和水印檢測過程的具體實施步驟。
(一)水印自適應(yīng)嵌入 本發(fā)明中將均衡調(diào)制后的水印信號自適應(yīng)嵌入在視頻壓縮域中,通過修改整體DCT系數(shù)來實現(xiàn)。水印嵌入過程如圖2所示,首先在預(yù)處理后的視頻中,利用快速方法在連續(xù)若干視頻幀中從分塊DCT系數(shù)計算得到整體DCT系數(shù)的左上角E×E塊的左上對角區(qū)域數(shù)據(jù),接著在這些幀中從zigzag掃描后的系數(shù)中選取低頻DCT系數(shù)并置亂后進行水印自適應(yīng)嵌入,然后將修改后的整體DCT系數(shù)逆置亂恢復(fù)到原來的位置,最后將它們與原始整體DCT系數(shù)的差值轉(zhuǎn)換回到分塊DCT系數(shù)差值,并附加到原始分塊DCT系數(shù),最后進行逆預(yù)處理,得到嵌入水印后的視頻序列。參照圖2、圖3、圖4,本發(fā)明的自適應(yīng)水印嵌入的具體步驟為 第一步預(yù)處理。本發(fā)明的水印方法基于整體DCT頻域,因此在水印嵌入前,需對壓縮的視頻序列做部分解碼的預(yù)處理,即經(jīng)過變長碼解碼,及反量化操作得到視頻幀亮度分量的分塊DCT系數(shù)。
第二步獲取水印的嵌入域。如圖3所示,利用快速方法從分塊DCT域直接變換到整體DCT域。在一個視頻序列中,隨機選取連續(xù)偶數(shù)Fn個視頻幀圖像作為水印嵌入載體的基本單位,2≤Fn≤10。為了便于描述,這Fn個視頻幀組合簡稱為一個WMS(Watermark minimum segment,最小水印嵌入單位),即一個WMS里包含F(xiàn)n幅視頻幀X1,X2,…,XFn,不失一般化,視頻幀Xk(k=1,…,F(xiàn)n)的行和列都可以表示為兩個整數(shù)的乘積,定義Xk的大小為L×S行和M×S列,相應(yīng)地,Xk可以被分為L×M個子塊,每一子塊表示為Sbij(i=1,2,…,L;j=1,2,…,M),每塊有S×S個像素(S通常取值為8)。利用(1)式計算每個視頻幀的整體DCT左上角E×E塊的左上對角區(qū)域數(shù)據(jù)Cfull(其余部分填0)
其中,B1是塊Sbij(i=1,2,…,L,j=1,2,…,M)的DCT變換系數(shù)矩陣,B2和B3是視頻幀Xk的整體DCT變換系數(shù)矩陣,都為正交矩陣。Cpart代表所有子塊Sbij的分塊DCT系數(shù)集合。從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),N為正整數(shù)。Fn幅視頻幀的所選整體DCT系數(shù)構(gòu)成了一個大小為Fn×N的矩陣C,即為一個WMS的嵌入域,表示為 第三步將同一頻率(即矩陣C中的每一列)的整體DCT系數(shù)置亂,如圖4所示,對于置亂密鑰K′,用一個種子函數(shù)randseed產(chǎn)生一系列的種子SK,即 SK=randseed(K′,N) (3) SK序列共有N個種子,對矩陣C的第f列的系數(shù)集合,用第f個種子skf調(diào)用函數(shù)shuffle進行置亂,這樣會產(chǎn)生一個置亂后的系數(shù)矩陣其中 第四步水印的生成。二進制水印信號W由Fn×N個比特wkf(k=1,2,…,F(xiàn)n;f=1,2,…,N)組成,wkf為“+1”或“-1”。首先,計算出Fn個比特組成的序列中,“+1”和“-1”的個數(shù)相等的序列共有
個,他們組成一個集合G 集合G看成是一個查找表,集合里面的每個元素Gr的序號r為該元素在查找表中的索引值。然后根據(jù)水印密鑰Key產(chǎn)生一個長度為N的字符串信息H,其中每個字符Hf(f=1,2,…,N)由十六進制數(shù)字表示。依據(jù)信息中每一位字符Hf到查找表中查找相對應(yīng)的元素,查找公式如下 整數(shù)r對應(yīng)元素的索引值,信息H與查找表G形成了一種映射關(guān)系,那么這N個元素構(gòu)成了Fn×N比特矩陣,即為我們調(diào)制的水印信號W,因為每一列均值為零,那么W的總均值也為零。因此實現(xiàn)了水印信號W的均衡調(diào)制生成。
第五步置亂后的水印嵌入域(系數(shù)矩陣Ch),在每一個整體DCT系數(shù)中嵌入一個二進制水印,具體方法如下 (1)對于矩陣Ch中同一頻率(Ch的一列)
(f=1,2,…,N)計算其平均值設(shè)為Mf(f=1,2,…,N) 定義每一列
中每個整體DCT系數(shù)與平均值Mf的差值Dkf(k=1,2,…,F(xiàn)n;f=1,2,…,N) (2)建立嵌入比特與差值Dkf的映射關(guān)系,為魯棒性起見,限定一組閾值Tf,定義Tf與載體的整體DCT系數(shù)平均值相關(guān),則使得載體自身的特點作自適應(yīng)變化,令Tf=βMf,其中β是嵌入強度系數(shù)。當(dāng)嵌入比特為“+1”時,修改整體DCT系數(shù)使Dkf≥Tf;當(dāng)嵌入比特為“-1”時,修改整體DCT系數(shù)使Dkf<(-Tf),其中矩陣Ch內(nèi)的系數(shù)
的修改按照(9)式進行 其中,
為修改后的系數(shù)。
第六步依次在矩陣Ch的每一列的所有系數(shù)中嵌入水印,得到嵌入后的整體DCT系數(shù)矩陣Chw,根據(jù)置亂密鑰K′將Chw中所有整體DCT系數(shù)逆置亂,恢復(fù)到原始位置,得到系數(shù)矩陣Cw。
第七步計算系數(shù)矩陣Cw與C的差值,并在其它部分填零擴展成LS×MS的差值矩陣Dfull,再利用式(10)將整體DCT系數(shù)差值Dfull變換到分塊DCT系數(shù)的差值Dpart,進而將其與原始視頻幀的分塊DCT系數(shù)相加。
第八步進行與前文預(yù)處理過程相對應(yīng)的部分編碼,得到嵌入水印后的視頻序列。
(二)水印檢測 水印檢測伴隨著視頻播放同時進行,視頻播放時視頻已完全解碼,因此水印檢測時從空域中直接計算整體DCT域的左上角E×E塊的左上對角區(qū)域數(shù)據(jù),按照水印信號嵌入時的逆規(guī)則來提取水印信號。因此水印提取與編碼方式無關(guān),如果用戶無意或有意對視頻采用其它編碼標(biāo)準(zhǔn)重新編碼,仍能正確的提取水印信號。水印信號檢測過程如圖5所示,首先利用滑動窗口在已經(jīng)完全解碼的視頻序列中選取一個WMS,為了增加方法對旋轉(zhuǎn)的抵抗能力,對該WMS做旋轉(zhuǎn)補償,接著在空域上計算整體DCT域的左上角E×E塊的左上對角區(qū)域數(shù)據(jù),利用嵌入時的置亂方法將系數(shù)置亂,然后在系數(shù)矩陣?yán)锩嫣崛∷⌒盘?。參照圖5、圖6和圖7,本發(fā)明的水印檢測不需要原始視頻序列,但需要用到水印密鑰Key和置亂密鑰K′。水印檢測的具體步驟如下 第一步利用滑動窗口在已經(jīng)完全解碼的視頻序列中選取一個WMS,為了增加方法對旋轉(zhuǎn)的抵抗能力,對WMS序列做旋轉(zhuǎn)補償(如圖6所示),利用補償角度θ對應(yīng)的旋轉(zhuǎn)位置置換矩陣將檢測WMS近似的恢復(fù)到原始位置(補償角度θ搜索的具體過程見后面),值得注意的一點是,不同的補償角度,對應(yīng)不同的旋轉(zhuǎn)位置置換矩陣,這些置換矩陣是預(yù)先定義好的。
第二步在恢復(fù)后的視頻幀,從空域中計算整體DCT域中左上角E×E塊的左上對角區(qū)域系數(shù),然后從zigzag掃描后的整體DCT系數(shù)中選擇N個DCT系數(shù)作為水印的嵌入域。
第三步WMS中所有幀的所選整體DCT系數(shù)構(gòu)成了一個Fn×N矩陣Ct,并如水印嵌入時一樣將同一頻率的整體DCT系數(shù)用置亂密鑰K′置亂得到系數(shù)矩陣Ct′。
第四步然后計算Ct′每一列的平均值
(1≤f≤N)根據(jù)(7)式,得到 然后比較整體DCT系數(shù)與其所在列的系數(shù)平均值來提取水印信號 然后將水印信號
(k=1,2,…,F(xiàn)n;f=1,2,…,N)組成的水印
轉(zhuǎn)化成一維序列We。
第五步計算歸一化相關(guān)值,并判定測試的WMS中是否存在水印。We與原始水印信號W的一維序列Wo作歸一化相關(guān)計算 其中|Wo|是水印Wo的長度,即Wo中一共有多少位比特。如果歸一化相關(guān)值znc小于歸一化相關(guān)檢測閾值TW,那么說明該WMS里面不存在水印W,滑動窗口向右滑動一幀,組成一個新的WMS,否則該WMS里存在水印W。
TW的計算公式如下 其中,Pfp是預(yù)先設(shè)定的虛警率,取值為10-8;erfcinv是余補誤差函數(shù)erfc的逆函數(shù)。
(三)旋轉(zhuǎn)補償策略 為了抵抗旋轉(zhuǎn)攻擊,本發(fā)明在水印檢測中引入旋轉(zhuǎn)補償角度策略,在預(yù)先定義的角度集中搜索最接近視頻所受旋轉(zhuǎn)攻擊幅度的補償角度θ。需要說明的是,在第一次在找到θ后,將其保存以備檢測調(diào)用,當(dāng)連續(xù)一段時間檢測不到水印的時候,再重新計算新的補償角度,這樣大大降低了方法的時間復(fù)雜度。結(jié)合圖7,具體過程如下 第一步利用滑動窗口在已經(jīng)完全解碼的視頻序列中選取一個WMS,設(shè)定一個旋轉(zhuǎn)補償角度集γ={ψmin,ψmin+η,…,ψmax},其中,ψmin是角度集γ中最小的角度,ψmax表示參數(shù)角度集γ中最大的角度,η為角度集中兩相鄰角度間的間隔。定義γm為此角度集中的第m個補償角度,Nγ為角度集中角度數(shù)量。針對γ中每一個角度γm,計算其對應(yīng)的旋轉(zhuǎn)位置置換矩陣Pm Pm={(px(u,v),py(u,v))|u=1,2,…,LS,v=1,2,…,MS} (15) 其中(px(u,v),py(u,v))是WMS中幀
(k=1,2,…,F(xiàn)n)的像素
的坐標(biāo)值,通過式(16)計算得到 其中,
即為
未旋轉(zhuǎn)前的坐標(biāo)位置。
第二步逐一假設(shè)視頻序列遭受了幅度為γm(m=1,2,…,Nγ)的旋轉(zhuǎn)攻擊,根據(jù)預(yù)定義的角度γm對應(yīng)的旋轉(zhuǎn)位置置換矩陣Pm,將WMS中的視頻幀還原為
(1≤m≤Nγ,k=1,2,…,F(xiàn)n)。
第三步同檢測過程的第二步、三步和四步,在還原的WMS中,從空域中計算整體DCT域中左上角的E×E塊左上對角區(qū)域系數(shù),然后從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),所選整體DCT系數(shù)構(gòu)成了一個Fn×N矩陣
(m=1,2,…,Nγ),從該系數(shù)矩陣中提取水印信號并轉(zhuǎn)化為一維序列
(m=1,2,…,Nγ)。
第四步同檢測過程的第五步,
與原始水印信號W的一維序列Wo作歸一化相關(guān)計算,通過(13)式求得歸一化相關(guān)值為zncm(m=1,2,…,Nγ)。
第五步依次根據(jù)角度集γ里角度γm對檢測的WMS補償后提取水印,并計算歸一化相關(guān)值zncm,當(dāng)γm=0,不需要計算像素坐標(biāo)位置的改變,即沒有受到旋轉(zhuǎn)攻擊。分別判斷這Nγ個相關(guān)值是否大于檢測閾值TW,如果超過閾值的相關(guān)值數(shù)目為零,則說明該WMS中檢測不到水印,滑動窗口向右活動一幀,組成一個新的WMS;如果數(shù)目超過1,那么選取最大的一個相關(guān)值,表示為 znca=max({zncm|zncm≥TW}),a∈[1,Nγ] (17) 那么第a個角度γa即是搜索到的補償角度θ,用于水印檢測時對視頻序列進行補償。
(四)實驗結(jié)果 用實驗仿真Matlab 7模擬本發(fā)明中方法。結(jié)合圖8、圖9和圖10,從視覺質(zhì)量和魯棒性兩方面進行實驗和結(jié)果分析。本發(fā)明中實驗采用如圖8所示的四個視頻序列“Flower-Garden”視頻序列、“Cutthroat”視頻序列、”Tennis”視頻序列和”Farmer”視頻序列。嵌入強度系數(shù)β設(shè)置為0.1,WMS序列的長度Fn設(shè)置為6,水印W的嵌入通道長度N設(shè)置19,水印的歸一化相關(guān)檢測閾值TW設(shè)定為0.4。
(1)視覺質(zhì)量評價 視覺質(zhì)量評價通過測量水印視頻幀的PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)值進行客觀評價,為了評價本方法的水印嵌入對視頻作品的視覺質(zhì)量的影響,我們利用本發(fā)明方法在“Flower-Garden”等四個視頻序列的視頻幀中嵌入水印后,分別計算每個序列里每幀的PSNR值,如圖9所示。嵌入水印后的視頻幀的平均PSNR值基本上都大于37dB,憑肉眼觀察,看不出嵌入水印后的視頻與原始視頻有任何區(qū)別,這表明本發(fā)明中的方法可獲得視頻水印的感知透明性。
(2)魯棒性評價 為了驗證本發(fā)明中的水印魯棒性,我們對嵌入水印后的視頻幀進行一些攻擊,包括Gauss噪聲,低通濾波,降低碼流比特率,亮度比例縮放及一些幾何攻擊等,對于每一類攻擊,都有一個變化的參數(shù)對攻擊的程度進行調(diào)節(jié),并且都施加在每個視頻幀中,水印的魯棒性可以用檢測的水印的位錯率BER來評價,位錯率越低,水印越魯棒。根據(jù)檢測閾值TW可以得出位錯率BER的閾值τBER為0.3,如果檢測的位錯率低于這個閾值,則認(rèn)為本發(fā)明中的水印方法是魯棒的,能夠抵抗相應(yīng)的攻擊。
①常規(guī)信號處理攻擊 為了研究本方法抵抗常規(guī)數(shù)字信號處理的魯棒性,對視頻序列實施如下攻擊,具體包括 (i)添加均值為0、標(biāo)準(zhǔn)方差σ的Gauss噪聲到水印載體中,其中σ在
區(qū)間變化; (ii)進行寬度為σg的Gauss低通濾波,其中σg在
區(qū)間變化; (iii)降低視頻碼流比特率,其中比特率在[1Mb/s,8Mb/s]區(qū)間變化; (iv)以比例因子為s進行亮度縮放,其中s在
區(qū)間變化; 從攻擊后的水印載體種提取水印信號,并與原始水印信號比較,從而計算出位錯率BER,攻擊(i)~攻擊(iv)的實驗結(jié)果如圖10所示。從圖中實驗結(jié)果可以看出,本方法對上述攻擊(i)~(iv)具有很好的魯棒性。圖10(a)指出即使高斯噪聲的方差高達(dá)30,而位錯率只有16%,低于閾值;圖10(b)說明低通濾波攻擊對方法性能幾乎沒有任何影響;圖10(c)指出當(dāng)視頻比特率低至1.3MB/s,方法依然魯棒,位錯率僅僅是1%;在圖10(d)中,視頻亮度的縮小對方法沒有任何影響,而當(dāng)縮放因子s從1增加的時候,雖然位錯率上升,但是當(dāng)縮放因子s達(dá)到2時,位錯率僅約為12%。
②幾何攻擊 這里主要測試方法能否抵抗常見的幾何攻擊,如行列去除、旋轉(zhuǎn)、等比例縮放、縱橫比攻擊、線性變換、隨機扭曲、裁剪以及幾種聯(lián)合攻擊,從攻擊后的水印載體中提取水印信號,并與原始水印信號比較,從而計算出位錯率BER。表1列出了常規(guī)幾何攻擊后的水印檢測結(jié)果,從表中數(shù)據(jù)可看出,我們提出的方法除了個別強度較大的攻擊以外,對于上述幾何攻擊都具有較好的魯棒性。針對旋轉(zhuǎn)攻擊,本方法能很好的抵抗正負(fù)15度的攻擊,不能抵抗20度的旋轉(zhuǎn)攻擊,這是因為考慮到計算效率問題,本發(fā)明方法只做±10度范圍的旋轉(zhuǎn)補償。而在實際應(yīng)用當(dāng)中,視頻序列旋轉(zhuǎn)比較大角度的時候其實已經(jīng)失去了其利用價值。所以本方法足夠滿足實際應(yīng)用。另外,綜合四個視頻序列的實驗結(jié)果,可以得出本文所提出的方法能抵抗中心裁剪25%以內(nèi)的裁剪攻擊(失去原始視頻的大小信息)。特別指出的一點是,該方法除了對任何比例的對等縮放具有很好的魯棒性(BER低于3%),對縱橫比變換同樣不敏感(BER低于3%)??偠灾景l(fā)明所提方法能很好的抵抗常規(guī)的幾何攻擊。
表1 抵抗常見幾何攻擊的魯棒性
權(quán)利要求
1、一種抗幾何攻擊的實時視頻水印嵌入方法,包括下述步驟
第A1步預(yù)處理
對壓縮的視頻序列進行變長碼解碼及反量化操作,得到視頻序列亮度分量的分塊DCT系數(shù),每個視頻幀表示為分塊DCT系數(shù)的集合;
第A2步獲取水印的嵌入域
在預(yù)處理后的視頻序列中,隨機選取連續(xù)的、偶數(shù)個的視頻幀作為最小水印嵌入單位,記為WMS;其中,設(shè)WMS中包含的視頻幀幀數(shù)為Fn,2≤Fn≤10;將WMS中的任一視頻幀Xk的行和列表示為兩個整數(shù)的乘積,定義Xk的大小為L×S行和M×S列,其中,k表示視頻幀中WMS中的序號,k=1,…,F(xiàn)n;Xk將表示為L×M個子塊,每一子塊表示為Sbij,i=1,2,…,L,j=1,2,…,M;利用式(I)計算每個視頻幀Xk左上角E×E塊的左上對角區(qū)域的整體DCT系數(shù)Cfull,其它區(qū)域的整體DCT系數(shù)均設(shè)定0;
其中,B1是塊Sbij的DCT變換系數(shù)矩陣,B2和B3是視頻幀Xk的整體DCT變換系數(shù)矩陣;Cpart代表所有子塊Sbij的分塊DCT系數(shù)集合;從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),N為正整數(shù),F(xiàn)n幅視頻幀的所選整體DCT系數(shù)構(gòu)成了一個大小為Fn×N的矩陣C,即為一個WMS的嵌入域,表示為
(II)
第A3步對于設(shè)定的置亂密鑰K′,利用種子函數(shù)產(chǎn)生N個種子,構(gòu)成種子序列SK;對于矩陣C的任一列f的整體DCT系數(shù),用第f個種子skf進行置亂,產(chǎn)生一個置亂后的系數(shù)矩陣,記為
(III)
第A4步設(shè)置
個由Fn個比特組成的序列,各比特的值是“+1”或“-1”,并且各序列中“+1”和“-1”的個數(shù)相等,由這些序列組成集合G,記為
Gr的序號r為該元素在G中的索引值;然后根據(jù)設(shè)置的水印密鑰Key產(chǎn)生一個由N個字符組成的字符串信息,記為H,每個字符Hf由十六進制數(shù)字表示;依據(jù)每一位字符Hf到G中查找相對應(yīng)的元素Gr,查找公式如下
查找出來的N個元素Gr構(gòu)成Fn×N比特的二進制水印信號,記為W;
第A5步在系數(shù)矩陣Ch中,在各列中的每一個整體DCT系數(shù)中對應(yīng)嵌入二進制水印信號W中的一個比特,得到嵌入后的整體DCT系數(shù)矩陣Chw,根據(jù)置亂密鑰K′將Chw中所有整體DCT系數(shù)逆置亂,恢復(fù)到原始位置,得到系數(shù)矩陣Cw;
第A6步設(shè)置大小為(L×S)×(M×S)的差值矩陣Dfull,其左上角區(qū)域的值對應(yīng)于系數(shù)矩陣Cw與C的差值,其它部分均為零;再利用式(VI)將差值矩陣Dfull變換到分塊DCT系數(shù)的差值矩陣,記為Dpart
將Dpart與Cpart相加,得到嵌入水印后的分塊DCT系數(shù);
第A7步根據(jù)嵌入水印后的分塊DCT系數(shù)進行與步驟(A1)相對應(yīng)的量化和變長碼編碼操作,得到嵌入水印后的視頻序列。
2、根據(jù)權(quán)利要求1所述的實時視頻水印嵌入方法,其特征在于,步驟(A5)的具體包括下述過程
第(A5.1)步計算矩陣Ch的任一列
的平均值,記為Mf
定義
中每個整體DCT系數(shù)與平均值Mf的差值,記為Dkf
第(A5.2)步設(shè)定一個閾值Tf,定義Tf=βMf,其中β是嵌入強度系數(shù);建立嵌入比特與差值Dkf的映射關(guān)系,當(dāng)嵌入比特為“+1”時,修改整體DCT系數(shù)使Dkf≥Tf;當(dāng)嵌入比特為“-1”時,修改整體DCT系數(shù)使Dkf<(-Tf),其中矩陣Ch內(nèi)的系數(shù)
的修改按照式(IX)進行
其中,
為修改后的系數(shù)。
3、一種抗幾何攻擊的實時視頻水印檢測方法,包括下述步驟
第B1步利用滑動窗口在已解碼的視頻序列中選取一個WMS,對WMS的所有視頻幀做旋轉(zhuǎn)補償,利用補償角度θ對應(yīng)的旋轉(zhuǎn)位置置換矩陣將WMS的所有視頻幀近似的恢復(fù)到原始位置;
第B2步從空域中計算恢復(fù)后的視頻幀左上角E×E塊的左上對角區(qū)域的整體DCT系數(shù),其它區(qū)域的整體DCT系數(shù)均設(shè)定0,然后從zigzag掃描后的整體DCT系數(shù)中選擇N個整體DCT系數(shù),N為正整數(shù),F(xiàn)n幅視頻幀的所選整體DCT系數(shù)構(gòu)成了一個大小為Fn×N的矩陣Ct;
第B3步對于矩陣Ct的任一列f的整體DCT系數(shù),采用密鑰K′置亂,得到系數(shù)矩陣Ct′;
第B4步根據(jù)式①計算Ct′的任一列的平均值
①
然后利用式②比較Ct′的每一個整體DCT系數(shù)與對應(yīng)列的平均值來提取水印信號
②
然后將所有水印信號
組成的水印
轉(zhuǎn)化成一維序列We;
第B5步利用式③計算We與原始水印信號W的一維序列Wo的歸一化相關(guān)值znc
③
其中|Wo|是水印Wo的長度;如果znc小于歸一化相關(guān)檢測閾值TW,那么該WMS里面不存在水印W,滑動窗口向右滑動一幀,組成一個新的WMS,否則該WMS里存在水印W。
4、根據(jù)權(quán)利要求3所述的實時視頻水印檢測方法,其特征在于步驟(B1)按照下述過程計算補償角度θ
第B1.1步利用滑動窗口在已經(jīng)完全解碼的視頻序列中選取一個WMS;設(shè)定一個旋轉(zhuǎn)補償角度集γ={ψmin,ψmin+η,…,ψmax},γ為差值為η的等差數(shù)列,其中,ψmin是γ中最小的角度,ψmax表示γ中最大的角度,η為γ中兩相鄰角度間的間隔,假設(shè)Nr為γ中角度數(shù)量,γm為γ中的第m個角度,m為正整數(shù),取值范圍是1≤m≤Nγ;計算γm對應(yīng)的旋轉(zhuǎn)位置置換矩陣Pm
Pm={(px(u,v),py(u,v))|u=1,2,…,LS,v=1,2,…,MS}④
其中(px(u,v),py(u,v))是WMS中幀
的像素
的坐標(biāo)值,通過式⑤計算得到
⑤
其中,
即為
未旋轉(zhuǎn)前的坐標(biāo)位置;
第B1.2步逐一假設(shè)視頻序列遭受了幅度為γm的旋轉(zhuǎn)攻擊,根據(jù)預(yù)定義的γm對應(yīng)的旋轉(zhuǎn)位置置換矩陣Pm,將WMS中的幀
還原為
第B1.3步按照第B1步、B3步和B4步的方式,從空域中計算
塊的左上對角區(qū)域的整體DCT系數(shù),其它區(qū)域的整體DCT系數(shù)均設(shè)定0,然后從zigzag掃描后的整體DCT系數(shù)中選擇N個DCT系數(shù),F(xiàn)n幅視頻幀的所選DCT系數(shù)構(gòu)成了一個Fn×N矩陣
從
中提取水印信號并轉(zhuǎn)化為一維序列
第B1.4步按照第B5步的方式,利用式③計算
與原始水印信號W的一維序列Wo的歸一化相關(guān)值zncm;
第B1.5步依次根據(jù)角度集γ里角度γm對檢測的WMS補償后提取水印,并計算歸一化相關(guān)值zncm,分別判斷這Nγ個zncm是否大于設(shè)定的檢測閾值TW,如果超過TW的zncm數(shù)目為零,則說明該WMS中檢測不到水印,滑動窗口向右活動一幀,組成一個新的WMS;如果數(shù)目超過1,那么選取最大的一個zncm,記為
znca=max({zncm|zncm≥TW}),a∈[1,Nγ] ⑥
那么第a個角度γa即是搜索到的補償角度θ,用于水印檢測時對視頻序列進行補償。
全文摘要
本發(fā)明提出一種抗幾何攻擊的實時視頻水印方法,主要適用于基于DCT編碼的視頻文件。該方法通過快速變換方法將分塊DCT系數(shù)直接變換到整體DCT系數(shù),然后在整體DCT域中自適應(yīng)修改低頻系數(shù)值來嵌入水印信號,水印嵌入后的整體DCT系數(shù)與原始系數(shù)間的差值轉(zhuǎn)換為分塊DCT系數(shù)的差值,再寫回到分塊DCT系數(shù)中去;水印檢測則是在空域中進行,因為檢測過程伴隨著視頻播放進行,這時視頻完全解碼,可以從空域直接進行整體DCT變換,然后為了能夠抵抗旋轉(zhuǎn)攻擊,對檢測視頻進行了旋轉(zhuǎn)補償,再按照嵌入時的規(guī)則進行水印提取。實驗結(jié)果表明方法對普通信號處理和常規(guī)幾何攻擊(行列去除、旋轉(zhuǎn)、等比例縮放、縱橫比攻擊、線性變換、隨機扭曲、裁剪以及幾種聯(lián)合攻擊等)具有很好的魯棒性。
文檔編號H04N7/26GK101489133SQ20091006055
公開日2009年7月22日 申請日期2009年1月16日 優(yōu)先權(quán)日2009年1月16日
發(fā)明者凌賀飛, 鄒復(fù)好, 王麗云 申請人:華中科技大學(xué)