李磊
摘要:為了保證魯棒性,提高水印的不可感知性,提出了一種基于離散余弦變換(DCT)和奇異值分解(sVD)的數(shù)字水印算法。該算法首先將載體圖像分塊,接著對每個分塊進(jìn)行離散余弦變換。然后將水印信息嵌入到每個分塊的直流區(qū)域。嵌入時先利用奇異值分解,接著在直流區(qū)域的奇異值對角矩陣上添加水印的奇異值對角矩陣信息。實驗結(jié)果表明,算法確保視覺無差異基礎(chǔ)上對魯棒性有所提升。
關(guān)鍵詞:DCT;SVD;直流區(qū)域;魯棒性;數(shù)字水印
中圖分類號:TP309 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)30-0197-03
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,數(shù)字媒體在傳播時,容易被復(fù)制和纂改。數(shù)字水印技術(shù)主要是將一些標(biāo)識信息嵌入到數(shù)字媒體中,且不影響原媒體的正常使用,不容易被探知和修改。數(shù)字水印技術(shù)可以解決數(shù)字媒體的版權(quán)保護(hù)問題,也可以在網(wǎng)絡(luò)信息安全上起到一定作用。
早期的水印算法都是基于空域的,即直接修改載體圖像的像素值,將水印加載到某些像素點上,比如LSB最低有效位、差值擴(kuò)張、直方圖平移等。這些方法安全性、魯棒性較差,不能很好地抗壓縮。
目前最廣泛的水印算法是基于變頻域的,即首先將載體圖像變換到頻域,然后改變系數(shù)的方法來嵌入水印信息。載體圖像變換到頻域的方法有:離散余弦變換、小波變換、離散傅立葉變換。這類方法大多有較強(qiáng)的魯棒性。
本文研究基于離散余弦變換(DcT)的數(shù)字水印技術(shù):
第一步,對水印預(yù)處理,加密水印信息,最后進(jìn)行SVD分解得到水印的S2矩陣。
第二步,對載體圖像分塊,每個分塊分別進(jìn)行DCT變換。因為JPEG圖像壓縮時,分塊大小為8x8,這里載體圖像分塊也采用8x8,起到一定抗壓縮作用。
第三步,對每個DCT變換后的分塊,取每個分塊的DC區(qū)域構(gòu)成1個新的矩陣,然后對新矩陣進(jìn)行SVD分解,得到S1矩陣。用每個分塊DC區(qū)構(gòu)成新矩陣的Sl矩陣和水印的S2矩陣計算出最終添加水印得圖像的s矩陣;因為奇異值分解的特點,這種添加具有很好的魯棒性。
第四步,對第三步的結(jié)果更新載體圖像DCT變換后DC區(qū)域的SVD變換值,形成更新DC值的DCT圖像矩陣;接著對該圖像矩陣進(jìn)行DCT逆變換,得到最終直觀的添加水印后的圖像。
1水印預(yù)處理
數(shù)字水印信息一般包括個人信息、版權(quán)信息、唯一標(biāo)識符等。在實際水印生成時,不管水印信息是字符串格式還是圖片格式,都要對水印信息做一些預(yù)處理。這個預(yù)處理的過程可以起到加密水印信息的作用。常用的方法有:Arnold變換、混沌置亂、仿射變換和幻方變換等。
1.1 Arnold變換
Arnold變換技術(shù)就是把圖像中各個像素點位置進(jìn)行置換,置換之后的圖像變成了亂碼圖像,從而圖像被加密了。其坐標(biāo)置換公式如下:
2.2DCT域系數(shù)分析
DCT變換后得到64個DCT系數(shù),其中最大的系數(shù)坐標(biāo)是(0,0),左上角位置,稱為直流分量(Dc分量)。其余坐標(biāo)位置系數(shù)稱為交流分量(AC分量)。如何在這64個DCT系數(shù)中選擇合適位置添加水印信息,既能保證添加水印后的圖像經(jīng)過非惡意或惡意攻擊都能很好地提取水印信息;又能有較大的感覺容量,就是加人大量的水印信息不會使得水印圖像相比原始圖像在視覺上產(chǎn)生顯著改變。人類視覺一般對中低頻區(qū)域比較敏感,可以理解為圖像中“突出”區(qū)域,而不敏感區(qū)域一般在圖像壓縮等處理時去除,故將水印嵌入到中低頻區(qū)域,既具有較好的魯棒性,也不宜被信號處理去除。
7結(jié)論
該算法添加的水印信息經(jīng)過Amold、Logistic變換,攻擊者很難修改水印和擦除水印。通過奇異值的對角矩陣添加水印信息,使得原始圖像的視覺影響降低。DCT分塊添加水印信息,使得水印圖像抗壓縮性增強(qiáng)。該算法也有不完善的地方,例如缺少盲檢能力,這將是以后研究的重點。