量化水印(有源代碼,絕對可以實現(xiàn))_第1頁
量化水印(有源代碼,絕對可以實現(xiàn))_第2頁
量化水印(有源代碼,絕對可以實現(xiàn))_第3頁
量化水印(有源代碼,絕對可以實現(xiàn))_第4頁
量化水印(有源代碼,絕對可以實現(xiàn))_第5頁
全文預覽已結(jié)束

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 量化水印 量化水印背景知識在數(shù)字水印中,我們知道,設計的水印算法有時要對保真度、魯棒性等主要性能進行折中,而從保真度和魯棒性這兩個基本的特征出發(fā),要求水印嵌入后滿足以下兩個條件:從保真度出發(fā),要求水印嵌入后,有水印的載體數(shù)據(jù)與原始載體數(shù)據(jù)近似相等。從魯棒性出發(fā),要求嵌入水印后的載體數(shù)據(jù)具有非連續(xù)性,以確??梢詫垢蓴_。最初將量化運用于水印,就是為解決這方面的問題而出發(fā)的。從數(shù)學的角度來看,量化可以表示如下:Y=fstep(x)=step*x/step=step*round(x/step)式中,x是待量化的數(shù)據(jù),step是量化步長,Y是量化結(jié)果;和round均表示進行四舍五入取整;fstep(

2、 )是量化函數(shù)。顯然,量化函數(shù)fstep( )是一個多對一函數(shù),是不可逆的,因此量化一般運用于不可逆水印,而且,由于量化結(jié)果均為整數(shù),因此輸出為離散值,并且誤差滿足|Y-x|<=step/2,即在量化步長step不是特別大的情況下,Y與x是近似相等的,所以量化滿足上述兩個條件,可以運用于數(shù)字水印中。量化水印的算法設計量化水印系統(tǒng)的關鍵在于選擇實時可行的量化器集合,將不同的待嵌入的水印信息與不同的量化器相對應起來,然后用相應的量化器將載體數(shù)據(jù)進行量化,就可以得到含有水印的載體數(shù)據(jù)。由于大多數(shù)情況下,水印信息都是二進制的,因此下面以研究如何嵌入二進制水印信息為例來進行說明。二進制信息中,有0

3、和1兩種不同的數(shù)據(jù),因此,需要兩個不同的量化器,分別用A和B來表示。假設當發(fā)送水印信息為0時,用量化器A來對載體數(shù)據(jù)進行量化;當發(fā)送水印信息為1時,用量化器B來對載體數(shù)據(jù)進行量化,這樣就可以得到兩組不同的量化數(shù)據(jù)。在量化器中,量化器選擇與原始載體數(shù)據(jù)最接近的數(shù)據(jù)來代替原始載體數(shù)據(jù),從而保證不可感知性,即保真度;而且,A、B兩個量化器之間的數(shù)據(jù)沒有重疊,從而保證不同水印數(shù)據(jù)的不連續(xù)性,即使得水印系統(tǒng)具有一定的魯棒性。提取水印時,根據(jù)待檢數(shù)據(jù)與不同量化數(shù)據(jù)之間的距離,就可以恢復出嵌入的信息。一種常用的二進制量化水印算法可以用公式表示如下: Q(x,s)+s*3/4 , w=1 Y= Q(x,s)+

4、s*1/4 , w=0式中,s代表量化步長,w表示水印信息,x表示原始載體數(shù)據(jù),Q(x,s)是量化函數(shù),Y是量化后的數(shù)據(jù)。Q(x,s)可如下表示 Q(x,s)=floor(x/s)*sfloor()表示向下取整函數(shù)。水印提取過程,可以用如下公式來表示: 1 , 如果 Y - Q(x,s) > s/2W= 1 , 如果 Y - Q(x,s) < s/2 可見,只要干擾對Y的攻擊在(-s/4,s/4)的范圍內(nèi),嵌入的水印信息就可以正確的提取。上式中,s越大,水印系統(tǒng)魯棒性越好,但是保真度會越差,這也從一個方面說明,魯棒性和保真度這兩個特性是互相矛盾的;當s=2時,如果是在時域進行量化,

5、相當于LSB算法。 量化水印算法根據(jù)水印嵌入位置不同,有時域量化和頻域量化兩種。時域量化直接通過修改載體數(shù)據(jù)時空域值來嵌入水印,這種算法容易且直觀,但是魯棒性和保真度都很差;頻域量化通過修改載體數(shù)據(jù)頻域系數(shù)值來嵌入水印,這種算法是把水印信號能量分散到所有或部分載體頻帶上,因此魯棒性和保真度都較時域量化好。 當然,量化水印算法有很多種,上述算法只是最基本的一種,其他量化水印算法還有比如抖動調(diào)制算法(DM)、擴展變換抖動調(diào)制算法(STDM)、帶失真補償?shù)亩秳诱{(diào)制算法(DC-DM)等。 量化水印具有如下優(yōu)點: 水印檢測時多為盲檢測,不需要原始載體數(shù)據(jù)。 載體不影響水印的檢測性能,在無干擾的情況下,可

6、以完全恢復出嵌入的信息。Matlab仿真 下面以最基本的量化水印算法來進行仿真設計,算法是基于時空域的,其M代碼如下:clear;clc;%=讀入并顯示載體圖形=p_lena=rgb2gray(imread('lena.jpg');figure;subplot(2,2,1);imshow(p_lena);m1,n1=size(p_lena);%=讀入并顯示二值水印圖片=w_pict=imread('jnu.bmp');subplot(2,2,2);imshow(w_pict);m2,n2=size(w_pict);%=對載體空域值嵌入水印=step=10;cod

7、e_lena=p_lena;for i=1:m2 for j=1:n2 q=(floor(code_lena(2*i,2*j)/step)*step; if w_pict(i,j)=0 code_lena(2*i,2*j)=q+step/4; elseif w_pict(i,j)=1 code_lena(2*i,2*j)=q+3*step/4; end endend%=顯示嵌入水印后的載體圖像=subplot(2,2,3)imshow(code_lena);%=提取水印=de_lena=code_lena;for i=1:m2 for j=1:n2 q=(floor(p_lena(2*i,2*j)/step)*step; gap=de_lena(2*i,2*j)-q; if gap>step/2 de_w_pict(i,j)=1; elseif gap<step/2 de_w_pict(i,j)=0; end endend%=顯示提取的水印圖片=subplot(2,2,4);imshow(de_w_pict);所讀入原始載體圖片、原始二值水印圖片及嵌入水印后的載體圖片、提取出來的水印圖片如下:從仿真結(jié)果可以看出,該量化算法很好的實現(xiàn)了水印的嵌入,并且很好的提取出了水?。ㄟ@里只從肉眼結(jié)果來說明,具體分析步驟省略)。需要說明的是,上述步長設置為10,如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論