包宋建,楊守良
(重慶文理學(xué)院 電子電氣工程學(xué)院, 重慶 402160)
隨著博客、視頻網(wǎng)站和社交網(wǎng)絡(luò)的應(yīng)用與發(fā)展,數(shù)字視頻和圖片在互聯(lián)網(wǎng)上的傳播越來(lái)越廣,對(duì)數(shù)字內(nèi)容版權(quán)的保護(hù)越來(lái)越有必要。在多媒體中,數(shù)字水印已成為保護(hù)數(shù)字?jǐn)?shù)據(jù)最有效的技術(shù)。采用水印技術(shù)在數(shù)字媒體內(nèi)容中,通過(guò)嵌入一個(gè)小的版權(quán)信息,可以確定其所有權(quán),因此實(shí)用的水印技術(shù)需考慮不可感知性和算法的魯棒性。不可感知性是指水印知覺(jué)透明度,而魯棒性是指在有意或無(wú)意的攻擊下(如退化、裁剪、濾波或添加噪聲)從數(shù)字媒體中提取被嵌入的水印的能力[1-2]。
很多學(xué)者在轉(zhuǎn)換域中對(duì)音頻、圖像和壓縮解壓視頻的水印算法進(jìn)行了研究,這些算法使用了流行的變換方法,例如,奇異值分解(SVD)、離散小波變換(DWT)和離散余弦變換(DCT)等。也有很多算法把這些變換方法進(jìn)行混合,以獲得更好的嵌入和提取效果。目前,在一些新的研究中,把舒爾變換應(yīng)用于水印技術(shù)中,與其他變換域方法相比,其魯棒性和精度更好。
文獻(xiàn)[3]提出了一種使用舒爾和奇異值分解轉(zhuǎn)換的非盲混合水印方案,在水印的嵌入和提取的步驟中使用了舒爾分解,將圖像分解為8×8的塊,再應(yīng)用奇異值分解最大本征值。文獻(xiàn)[4]提出了一種使用舒爾和元胞自動(dòng)機(jī)變換(CAT)的非盲混合技術(shù),充分使用了CAT域的靈活性和舒爾轉(zhuǎn)換的效率。文獻(xiàn)[5]提出了基于舒爾變換的盲圖像水印方法,將圖像轉(zhuǎn)化為舒爾變換,然后進(jìn)行分析,找到一個(gè)嵌入過(guò)程發(fā)生的非敏感區(qū)域。文獻(xiàn)[6]提出了嵌入水印的2種舒爾分解變換算法,利用D矩陣和U矩陣正交分解,使相同的水印信息存儲(chǔ)加倍,提高了算法的魯棒性。
小波變換是時(shí)間(空間)頻率的局部化分析,它通過(guò)伸縮平移運(yùn)算對(duì)信號(hào)(函數(shù))逐步進(jìn)行多尺度細(xì)化,最終達(dá)到高頻處時(shí)間細(xì)分,低頻處頻率細(xì)分,能自動(dòng)適應(yīng)時(shí)頻信號(hào)分析的要求,從而可聚焦到信號(hào)的任意細(xì)節(jié)。適當(dāng)?shù)剡x擇基本小波,使其在時(shí)域上有限支撐,在頻域上也比較集中,便可以使小波變換在時(shí)域、頻域都有表征信號(hào)局部特征的能力,這樣就有利于檢測(cè)信號(hào)的瞬態(tài)或奇異點(diǎn)。在數(shù)字水印的嵌入與提取中利用小波變換的特點(diǎn)可以較好地提高水印無(wú)感知性。
由于舒爾變換與小波變換在水印處理中應(yīng)用廣泛,因此提出舒爾分解與離散小波變換相結(jié)合的方法來(lái)實(shí)現(xiàn)具有高魯棒性和無(wú)感知性的高效視頻水印技術(shù)。
離散小波變換DWT是基于各種頻率和有限持續(xù)的小波變換,可用于對(duì)信號(hào)進(jìn)行頻率和空間的描述[7]。采用小波變換對(duì)圖像進(jìn)行分解,首先分為高頻部分和低頻部分,高頻部分包含組件的邊緣信息,而低頻部分又再次分為高頻部分和低頻部分。由于人眼對(duì)圖像邊緣變化不敏感,因此高頻組件通常用于水印。
圖1是采用DWT將輸入圖像分層分解成4個(gè)頻率區(qū),即:LL、LH、HL、HH,其中LL為低頻,LH、HL、HH為分別為水平、垂直和對(duì)角線上的高頻分量。本文算法采用了兩級(jí)DWT,在第二級(jí)中使用水平細(xì)節(jié)子圖(HL),每一個(gè)子圖具有特定分辨率的DWT系數(shù)矩陣。圖2顯示了通過(guò)兩級(jí)小波分解生成的子圖。
圖1 圖像的一級(jí)DWT子圖
圖2 圖像的兩級(jí)DWT子圖
舒爾分解或舒爾三角化是線性代數(shù)中一個(gè)重要數(shù)學(xué)工具,常用于度量分析。舒爾分解也是奇異值分解中一個(gè)重要的中間步驟,并且是降低運(yùn)算量的一種有效方法。對(duì)于n×n的矩陣,采用舒爾分解需要約每秒n3次浮點(diǎn)數(shù)運(yùn)算,而奇異值分解則需每秒11×n3次的浮點(diǎn)數(shù)運(yùn)算,這意味著舒爾的計(jì)算量要少于奇異值分解計(jì)算量[8]。舒爾分解變換有復(fù)舒爾分解變換和實(shí)舒爾分解變換兩種。實(shí)舒爾分解是把一個(gè)實(shí)方陣A分解成如式(1)所示的U矩陣和S矩陣。
Schur(A)=U×S×UT
(1)
式中:S是上三角矩陣塊,也被稱(chēng)為實(shí)舒爾形式;U是一單位正交矩陣;UT代表U的共軛轉(zhuǎn)矩。下面通過(guò)一個(gè)4×4矩陣A為例子來(lái)說(shuō)明舒爾分解的應(yīng)用原理。
對(duì)矩陣A進(jìn)行實(shí)舒爾分解后,得到矩陣U和矩陣S,如下所示:
顯然,S是一個(gè)三角矩陣,按矩陣相似性定義,它是矩陣A的相似矩陣。因此,矩陣S具有與矩陣A相同的特征值集。由于S矩陣的特征值集包含在主對(duì)角線上,又由于舒爾分解的特征值十分穩(wěn)定,因此,S矩陣的對(duì)角線常用于水印的嵌入。
在任何一種數(shù)字水印技術(shù)中,宿主是水印嵌入的地方。宿主可以是圖像、視頻或音頻。由于視頻序列中的每一幀就是一副圖像,所以圖像水印可以擴(kuò)展到視頻水印[9]。在本文提出的水印技術(shù)中,將DWT和舒爾變換相結(jié)合,將水印嵌入數(shù)字視頻中。
DWT-Schur相結(jié)合的水印算法由2個(gè)過(guò)程組成,第一個(gè)過(guò)程是將水印嵌入原始視頻中,第二個(gè)過(guò)程是從被嵌入視頻中提取出水印。下面對(duì)這兩個(gè)過(guò)程進(jìn)行詳細(xì)描述。
基于DWT-Schur水印算法首先將選中的二進(jìn)制水印嵌入視頻幀中,嵌入過(guò)程及步驟如下:
步驟1輸入視頻階段
1) 輸入視頻片段V。
2) 把視頻片段分解成視頻場(chǎng)景Vs。
3) 使用DWT 和Schur處理每個(gè)視頻場(chǎng)景幀,具體步驟如4)~11)所述。
4) 每個(gè)視頻幀F(xiàn),從RGB轉(zhuǎn)換為YUV矩陣格式。
步驟2兩級(jí)離散小波變換階段
5) 在每一個(gè)視頻幀F(xiàn)中,對(duì)Y(亮度)矩陣進(jìn)行2級(jí)離散小波變換。這個(gè)操作生成7個(gè)DWT子圖(LL1、LL2、HL2、LH2、HH2、LH1、HH1)。
步驟3舒爾分解階段
6) 舒爾算子應(yīng)用在HL2子圖(突出顯示在圖2中)。舒爾算子分解子圖系數(shù)矩陣為2個(gè)獨(dú)立的矩陣:
HL2=(UHL2SHL2)
(2)
步驟4水印嵌入階段
7) 重新調(diào)節(jié)水印圖像,使得水印的大小與將被用于嵌入的HL2子圖大小相匹配。
8) 通過(guò)使用SHL2(i,i)的8位最小有效位(LSB)代替水印位Wi,實(shí)現(xiàn)水印WVsi的二進(jìn)制位嵌入SHL2的三角矩陣。
LSB(SHL2(i,i))=WVsi
(3)
步驟5視頻重建階段
(4)
11) 將視頻幀f′ 從YUV矩陣轉(zhuǎn)變?yōu)镽GB矩陣。
12) 重建幀為最終的水印視頻場(chǎng)景F′。
13) 重建水印場(chǎng)景得到最終的水印VXM。
水印的提取過(guò)程不需要原始視頻,本算法是一個(gè)全盲算法。因此,可以直接從水印視頻幀中最低有效位來(lái)提取水印圖像。水印提取過(guò)程步驟如下:
步驟1輸入視頻
1) 輸入水印視頻片段V′。
3) 使用DWT和Schur處理每個(gè)水印視頻場(chǎng)景的水印幀,具體描述如4)~7)所示。
4) 將視頻幀F(xiàn)′從RGB顏色矩陣轉(zhuǎn)變?yōu)閅UV矩陣。
步驟2應(yīng)用兩級(jí)離散小波變換
5) 計(jì)算幀F(xiàn)′的兩級(jí)DWT,產(chǎn)生7個(gè)子圖:[wLL1、wLL2、wHL2、wLH2、wHH2、wLH1、wHH1]。
步驟3應(yīng)用舒爾算子
6) 舒爾算子應(yīng)用于子圖wHL2。舒爾算子把子圖的系數(shù)矩陣分解為2個(gè)獨(dú)立的矩陣:
WHL2=UWHL2SWHL2
(5)
步驟4提取水印
7) 從三角矩陣SwHL2中提取嵌入的水印,如式(6)所示:
WVsi(i)=LSB(SHL2(i,i))
(6)
步驟5視頻重建
8) 通過(guò)級(jí)聯(lián)從所有的幀中提取全部水印信息,構(gòu)建圖像水印WVsi。
9) 對(duì)所有視頻場(chǎng)景重復(fù)相同的過(guò)程。
實(shí)驗(yàn)中主要測(cè)試本文提出的算法在受到不同攻擊下的健壯性。分4個(gè)測(cè)試場(chǎng)景,對(duì)應(yīng)的視頻片段幀分別計(jì)為F1(場(chǎng)景1)、F2(場(chǎng)景2)、F3(場(chǎng)景3)和F4(場(chǎng)景4)幀。每幀大小為458×352像素。每一個(gè)場(chǎng)景的快照如圖3所示。水印是一個(gè)二值文本信息的圖像,尺寸大為256×256像素,如圖4所示。
文本通過(guò)測(cè)量提取出的水印W′與原始水印W的相似程度評(píng)估算法的魯棒性,采用式(7)的相關(guān)性指標(biāo)來(lái)衡量。相關(guān)性的取值在0和1之間,0表示2個(gè)水印不相似,1表示2個(gè)水印相同。
(7)
式中:x*xt表示原始水印W與提取出的水印W′像素的協(xié)方差;X與XT分別表示原始水印W與提取出的水印W′像素的方差。
圖3 視頻場(chǎng)景快照
圖4 原始水印
在場(chǎng)景1的F1視頻中加入水印后的第2幀,其PSNR值為57.43 dB,與圖3中的測(cè)試原始圖像(未嵌入水印)相比,在視頻片段中嵌入水印后沒(méi)有引起可視的退化現(xiàn)象,如圖5(a)所示;并且嵌入和提取水印間的相似性是完全相似的,如圖5(b)和圖5(c)所示。所有水印幀的平均PSNR值為57.31 dB。在這個(gè)PSNR值的情況下,被嵌入水印的視頻沒(méi)有質(zhì)量退化被感知,這說(shuō)明本文提出的算法具有很高的無(wú)感知性。PSNR(峰值信噪比)的定義如式8所示。
(8)
圖5 標(biāo)準(zhǔn)測(cè)試中提取水印與原始水印的比較
在標(biāo)準(zhǔn)攻擊和幀攻擊兩種情況下,對(duì)本文算法的健壯性進(jìn)行測(cè)量。標(biāo)準(zhǔn)攻擊包括壓縮、旋轉(zhuǎn)、高斯噪聲、鹽椒噪音等;幀攻擊就是幀交換、幀平均和幀丟棄。對(duì)于這兩種類(lèi)型的攻擊本文使用相關(guān)性來(lái)測(cè)量原始水印和被提取水印之間的相似性。
1) 鹽椒噪聲和高斯噪聲攻擊
在鹽椒噪聲和高斯噪聲的攻擊下,本文算法的健壯性是可以接受的,因?yàn)樗∪匀涣己貌⑶蚁嚓P(guān)性較高,與其他攻擊相比,這是合理的,因?yàn)樵肼曁砑訒?huì)影響水印幀的每一像素點(diǎn)(結(jié)果如表1所示)。
2) 旋轉(zhuǎn)攻擊下的健壯性測(cè)試
對(duì)于旋轉(zhuǎn)攻擊,旋轉(zhuǎn)水印圖像分別為30°、90°和180°。本文算法對(duì)抗攻擊具有很高的魯棒性。在旋轉(zhuǎn)30°時(shí),4個(gè)場(chǎng)景提取的水印的相關(guān)性都為1;在旋轉(zhuǎn)90°時(shí),4個(gè)場(chǎng)景提取的水印的相關(guān)性都為1;在旋轉(zhuǎn)180°時(shí),4個(gè)場(chǎng)景的提取的水印的相關(guān)性都約為1;相關(guān)性的值很高(旋轉(zhuǎn)攻擊的結(jié)果略)。因此,就如前面討論一樣,S矩陣的對(duì)角被選擇用于本算法的水印嵌入,這是由于在舒爾分解中,本征值是十分穩(wěn)定的,并且提高了魯棒性。
3) 視頻攻擊下的健壯性測(cè)試
針對(duì)視頻攻擊,測(cè)試水印場(chǎng)景的魯棒性。首先,進(jìn)行幀交換攻擊測(cè)試,把每個(gè)水印場(chǎng)景的第4幀和10幀進(jìn)行交換;其次,進(jìn)行幀平均視頻攻擊測(cè)試;最后,進(jìn)行幀丟失攻擊測(cè)試,這里從水印場(chǎng)景中丟失了90%的幀。如表2所見(jiàn),結(jié)果反映在被提取的水印中,只能看到大約10%的水印,剩下部分隨著視頻的丟失而丟失了。這是因?yàn)樗∈欠植荚诿總€(gè)視頻場(chǎng)景的所有幀中。
表1 噪聲添加攻擊后的結(jié)果
表2 視頻幀攻擊后的結(jié)果
數(shù)字水印是保護(hù)數(shù)字媒體所有權(quán)和版權(quán)的最有力的工具之一。本文提出了一種DWT-Schur結(jié)合的全盲數(shù)字視頻水印算法,采用離散小波變換和舒爾分解相結(jié)合,實(shí)現(xiàn)了水印的嵌入與提取。采用Matlab對(duì)算法進(jìn)行實(shí)現(xiàn),測(cè)試了本文算法的抗標(biāo)準(zhǔn)攻擊和視頻攻擊性能。實(shí)驗(yàn)結(jié)果表明:本算法具有較強(qiáng)的無(wú)感知性、盲特性和魯棒性。
重慶理工大學(xué)學(xué)報(bào)(自然科學(xué))2019年10期