專利名稱:一種基于dct變換的矢量地圖數(shù)據(jù)盲水印方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體信息安全技術(shù)領(lǐng)域,涉及一種針對地理空間數(shù)據(jù)的基于DCT變 換的矢量地圖數(shù)據(jù)盲水印方法。
背景技術(shù):
數(shù)字水印技術(shù)是將代表著作權(quán)人身份的特定信息,按照某種方式嵌入被保護(hù)的信 息中,在產(chǎn)生版權(quán)糾紛時,通過相應(yīng)的算法提取出該數(shù)字水印,從而驗證版權(quán)的歸屬,確保 著作權(quán)人的合法利益,避免非法盜版的威脅。被保護(hù)的信息可以是任何一種數(shù)字媒體,如圖 像、聲音、視頻或一般性的電子文檔等。數(shù)字水印技術(shù)運用于數(shù)據(jù)版權(quán)保護(hù)和數(shù)據(jù)真?zhèn)螜z測 應(yīng)用中,是一種可在開放的網(wǎng)絡(luò)環(huán)境下實現(xiàn)信息隱藏與跟蹤的新型技術(shù)。矢量地圖數(shù)據(jù)水 印算法不同于傳統(tǒng)的基于圖像水印算法,這主要是由于地圖數(shù)據(jù)不具有圖像數(shù)據(jù)應(yīng)用的普 遍性等原因,同時還在于矢量地圖數(shù)據(jù)在數(shù)據(jù)結(jié)構(gòu)、存儲形式、表現(xiàn)方式、應(yīng)用環(huán)境、使用要 求以及可能的攻擊行為等方面與圖像等多媒體數(shù)據(jù)都不一樣,一般的水印算法還很難直接 應(yīng)用在矢量地圖數(shù)據(jù)上。由此可見,數(shù)字水印技術(shù)在矢量地圖數(shù)據(jù)上的應(yīng)用具有更加潛在 的用途。由于地理空間數(shù)據(jù)是描述關(guān)于人類賴以生存的地球的重要信息,是國家基礎(chǔ)性、公 益性設(shè)施,是國家基礎(chǔ)設(shè)施建設(shè)和地球科學(xué)研究的支撐性成果,是國家經(jīng)濟(jì)、國防建設(shè)中不 可缺少的資源,對社會持續(xù)發(fā)展起著重要作用,因此對于矢量地圖數(shù)據(jù)的水印技術(shù)也具有 非常好的使用前景。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供了一種基于離散余弦變換(DCT)的矢量地圖數(shù) 據(jù)盲水印方法。本發(fā)明方法的包括水印信息嵌入和水印信息提取。所述的水印信息嵌入是把用戶選擇的水印信息嵌入到原始矢量地圖中得到一個 新的矢量地圖,具體步驟包括步驟(1)調(diào)制水印信息,二值水印圖結(jié)合密鑰和運用Arnold變換把水印信息置 亂,得到二進(jìn)制比特流w 設(shè)定水印圖像為NXN的二值圖,則水印信息長度為1 = NXN,采 用離散化的Arnold變換并結(jié)合密鑰得到最終水印信息比特流w= (w1 w2,. . . , w,,. . . , , 其中 Wi G {0,1},0 ^ i < 1 ;步驟(2)對矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成矩形網(wǎng) 格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度IX a,并對劃分所得的樹狀結(jié) 構(gòu)矩形網(wǎng)格按深度優(yōu)先排序,其中a表示嵌入每位水印信息所需要的載體數(shù)據(jù)個數(shù),這里 是指a個頂點;步驟(3)嵌入水印信息按照深度優(yōu)先順序遍歷每一塊網(wǎng)格,采用步驟a至步驟e 完成水印嵌入。具體步驟是步驟a、把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序,排序規(guī)則為從網(wǎng)格的左上角開始,按照先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟b、截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大m倍,m取10、100、1000或 10000 ;步驟c、DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為 α的DCT系數(shù)值d,保留Cltl和C^1取剩下系數(shù)值的最小值dmin,即dmin = Iiiinid1,... , da_2}, 然后水印信息位Wi和系數(shù)值關(guān)系做以下判斷操作如果Wi 等于 1,而且 fabs(dmin) > fabs (Cla^1),貝Ij C^1 = fabs (dmin) X β X sign (d^);否則 C^1 保持不變;如果Wi 等于 0,而且 fabs (dmin) < fabs H 則 cU = fabs (dmin) X 1/ β X sign (d^);否則C^1保持不變;其中,函數(shù)fabs表示取絕對值,函數(shù)sign表示取數(shù)值的正負(fù)符號,β表示放大倍 數(shù),β > 1 ;這樣就把一位水印信息嵌入到一組DCT系數(shù)中了,步驟d、重復(fù)步驟c直到所有水印信息嵌入到相應(yīng)的DCT系數(shù)中去;步驟e、DCT反變換依次把嵌入水印信息的DCT系數(shù)做反變換,頂點坐標(biāo)差值縮小 m倍,將縮小后的頂點坐標(biāo)差值加上網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到新的坐標(biāo)值數(shù)據(jù)。所述的水印信息提取是從待檢測的矢量地圖中提取水印信息內(nèi)容,包括以下步 驟步驟(1)對待檢測的矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成 矩形網(wǎng)格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度IX α,并對劃分所得的 樹狀結(jié)構(gòu)矩形網(wǎng)格按深度優(yōu)先排序;步驟(2)提取水印信息遍歷每一塊網(wǎng)格塊,采用步驟f至步驟i提取水印。具體 步驟是步驟f、把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序;排序規(guī)則為從網(wǎng)格的左上角開始,按照 先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟g、截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點 坐標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大m倍,m取10、100、1000或 10000 ;步驟h、DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為 α的DCT系數(shù)值d,保留Cltl和C^1取剩下系數(shù)值的最小值dmin,即dmin = Iiiinid1,... , da_2}, 通過判斷得到水印信息位 ,判斷規(guī)則為如果fabs (dmin) > fabs (cU),則Wi = 0 ;否則Wi =1 ;這樣就把一位水印信息從每一組DCT系數(shù)中提取出來了 ;步驟i、重復(fù)步驟h直到從相應(yīng)的DCT系數(shù)中提取出所有水印信息;步驟(3)生成水印信息圖把提取出的水印信息,通過密鑰和Arnold反置亂變換 操作,重新生成得到二值水印圖。本發(fā)明的有益效果該方法是在DCT變換域上嵌入水印信息。該方法對矢量地圖 數(shù)據(jù)的一般幾何變換(平移、縮放、坐標(biāo)轉(zhuǎn)換、加點、刪除和旋轉(zhuǎn)等常規(guī)操作)以及數(shù)據(jù)對象 順序置亂和裁剪等攻擊具有較好的魯棒性,并且是一種盲檢算法,具有較好的實用價值。
具體實施例方式本發(fā)明方法的包括水印信息嵌入和水印信息提取兩部分。水印信息嵌入就是把用戶選擇的水印信息嵌入到原始矢量地圖中得到一個新的矢量地圖,具體步驟包括步驟(1)調(diào)制水印信息,二值水印圖結(jié)合密鑰和運用Arnold變換把水印信息置 舌L得到二進(jìn)制比特流w 設(shè)定水印圖像為NXN的二值圖,則水印信息長度為1 = NXN,采 用離散化的Arnold變換并結(jié)合密鑰得到最終水印信息比特流W= (w1 w2,. . . , Wi,. . . , W1), 其中 Wi e {0,1},0 ^ i < 1 ;步驟(2)對矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成矩形網(wǎng) 格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度IX α,并對劃分所得的樹狀結(jié) 構(gòu)矩形網(wǎng)格按深度優(yōu)先排序,其中α表示嵌入每位水印信息所需要的載體數(shù)據(jù)個數(shù),這里 是指α個頂點,一般取值α為8 ;步驟(3)嵌入水印信息按照深度優(yōu)先順序遍歷每一塊網(wǎng)格,采用步驟a至步驟e 完成水印嵌入。具體步驟是步驟a、把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序,排序規(guī)則為從網(wǎng)格的左上角開始,按照 先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟b、截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點 坐標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大m倍,m取10、100、1000或 10000,為了提高矢量地圖數(shù)據(jù)的精度,在一般情況下取值m為10000 ;步驟c、DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為 α的DCT系數(shù)值d,保留Cltl和C^1取剩下系數(shù)值的最小值dmin,即dmin = Iiiinid1,... , da_2}, 然后水印信息位Wi和系數(shù)值關(guān)系做以下判斷操作如果Wi 等于 1,而且 fabs(dmin) > fab S(C^1),貝 Ij C^1 = fabs (dmin) X β X sign (d^);否則 C^1 保持不變;如果Wi 等于 0,而且 fabs (dmin) < fabs ((I^1),則 cU = fabs (dmin) X 1/ β X sign (d^);否則C^1保持不變;其中,函數(shù)fabs表示取絕對值,函數(shù)sign表示取數(shù)值的正負(fù)符號,β表示放大倍 數(shù),β > 1 ;這樣就把一位水印信息嵌入到一組DCT系數(shù)中了。步驟d、重復(fù)步驟c直到所有水印信息嵌入到相應(yīng)的DCT系數(shù)中去;步驟e、DCT反變換依次把嵌入水印信息的DCT系數(shù)做反變換,頂點坐標(biāo)差值縮小 10000倍,將縮小后的頂點坐標(biāo)差值加上網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到新的坐標(biāo)值數(shù)據(jù)。水印信息提取是從待檢測的矢量地圖中提取水印信息內(nèi)容,包括以下步驟步驟(1)對待檢測的矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成 矩形網(wǎng)格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度IX α,并對劃分所得的 樹狀結(jié)構(gòu)矩形網(wǎng)格按深度優(yōu)先排序;步驟(2)提取水印信息遍歷每一塊網(wǎng)格塊,采用步驟f至步驟i提取水印。具體 步驟是
步驟f、把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序;排序規(guī)則為從網(wǎng)格的左上角開始,按照先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟g、截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點坐 標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大1000倍;步驟h、DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為 α的DCT系數(shù)值d,保留Cltl和C^1取剩下系數(shù)值的最小值dmin,即dmin = Iiiinid1,... , da_2}, 通過判斷得到水印信息位 ,判斷規(guī)則為如果fabs (dmin) > fabs (cU),則Wi = 0 ;否則Wi =1 ;這樣就把一位水印信息從每一組DCT系數(shù)中提取出來了 ;步驟i、重復(fù)步驟h直到從相應(yīng)的DCT系數(shù)中提取出所有水印信息;步驟(3)生成水印信息圖把提取出的水印信息,通過密鑰和Arnold反置亂變換 操作,重新生成得到二值水印圖。
權(quán)利要求
一種基于DCT變換的矢量地圖數(shù)據(jù)盲水印方法,其特征在于該方法的包括水印信息嵌入和水印信息提??;所述的水印信息嵌入是把用戶選擇的水印信息嵌入到原始矢量地圖中得到一個新的矢量地圖,具體步驟包括步驟(1)調(diào)制水印信息,二值水印圖結(jié)合密鑰和運用Arnold變換把水印信息置亂,得到二進(jìn)制比特流w設(shè)定水印圖像為N×N的二值圖,則水印信息長度為l=N×N,采用離散化的Arnold變換并結(jié)合密鑰得到最終水印信息比特流w=(w1,w2,...,wi,...,wl),其中wi∈{0,1},0≤i<l;步驟(2)對矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成矩形網(wǎng)格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度l×α,并對劃分所得的樹狀結(jié)構(gòu)矩形網(wǎng)格按深度優(yōu)先排序,其中α表示嵌入每位水印信息所需要的載體數(shù)據(jù)個數(shù);步驟(3)嵌入水印信息按照深度優(yōu)先順序遍歷每一塊網(wǎng)格,采用步驟a至步驟e完成水印嵌入,具體步驟是步驟a.把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序,排序規(guī)則為從網(wǎng)格的左上角開始,按照先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟b.截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大m倍,m取10、100、1000或10000;步驟c.DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為α的DCT系數(shù)值d,保留d0和da-1取剩下系數(shù)值的最小值dmin,即dmin=min{d1,...,da-2},然后水印信息位wi和系數(shù)值關(guān)系做以下判斷操作如果wi等于1,而且fabs(dmin)>fabs(da-1),則da~1=fabs(dmin)×β×sign(da-1);如果wi等于1,而且fabs(dmin)≤fabs(da-1),則da-1保持不變;如果wi等于0,而且fabs(dmin)<fabs(da-1),則da-1=fabs(dmin)×1/β×sign(da-1);如果wi等于0,而且fabs(dmin)≥fabs(da-1),則da-1保持不變;其中,函數(shù)fabs表示取絕對值,函數(shù)sign表示取數(shù)值的正負(fù)符號,β表示放大倍數(shù),β>1;步驟d.重復(fù)步驟c直到所有水印信息嵌入到相應(yīng)的DCT系數(shù)中去;步驟e.DCT反變換依次把嵌入水印信息的DCT系數(shù)做反變換,頂點坐標(biāo)差值縮小m倍,將縮小后的頂點坐標(biāo)差值加上網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到新的坐標(biāo)值數(shù)據(jù);所述的水印信息提取是從待檢測的矢量地圖中提取水印信息內(nèi)容,包括以下步驟步驟(I)對待檢測的矢量地圖數(shù)據(jù)進(jìn)行分塊處理運用四叉樹算法把地圖劃分成矩形網(wǎng)格,使得每個矩形網(wǎng)格內(nèi)所含的頂點數(shù)不小于水印信息長度l×α,并對劃分所得的樹狀結(jié)構(gòu)矩形網(wǎng)格按深度優(yōu)先排序;步驟(II)提取水印信息遍歷每一塊網(wǎng)格塊,采用步驟f至步驟i提取水印,具體步驟是步驟f.把網(wǎng)格內(nèi)的所有頂點進(jìn)行排序;排序規(guī)則為從網(wǎng)格的左上角開始,按照先從左到右、再從上到下的順序?qū)旤c進(jìn)行排序;步驟g.截取頂點坐標(biāo)對排好序的所有頂點坐標(biāo)值減去該網(wǎng)格內(nèi)最左下頂點坐標(biāo)值,得到一組頂點坐標(biāo)差值,并對這組頂點坐標(biāo)差值放大m倍,m取10、100、1000或10000;步驟h.DCT變換把連續(xù)α個頂點坐標(biāo)差值進(jìn)行一維DCT變換,得到一組長度為α的DCT系數(shù)值d,保留d0和da-1取剩下系數(shù)值的最小值dmin,即dmin=min{d1,...,da-2},通過判斷得到水印信息位wi,判斷規(guī)則為如果fabs(dmin)>fabs(da-1),則wi=0;fabs(dmin)≤fabs(da-1),則wi=1;步驟i.重復(fù)步驟h直到從相應(yīng)的DCT系數(shù)中提取出所有水印信息;步驟(III)生成水印信息圖把提取出的水印信息,通過密鑰和Arnold反置亂變換操作,重新生成得到二值水印圖。
全文摘要
本發(fā)明公開了一種基于DCT變換的矢量地圖數(shù)據(jù)盲水印方法。傳統(tǒng)水印算法還很難直接應(yīng)用在矢量地圖數(shù)據(jù)上。本發(fā)明方法的包括水印信息嵌入和水印信息提取。水印信息嵌入是把用戶選擇的水印信息嵌入到原始矢量地圖中得到一個新的矢量地圖,具體包括調(diào)制水印信息、對矢量地圖數(shù)據(jù)進(jìn)行分塊處理、和嵌入水印信息。水印信息提取是從待檢測的矢量地圖中提取水印信息內(nèi)容,具體包括對待檢測的矢量地圖數(shù)據(jù)進(jìn)行分塊處理、提取水印信息和生成水印信息圖。本發(fā)明方法具有較好的魯棒性,并且是一種盲檢算法,具有較好的實用價值。
文檔編號G06T1/00GK101847250SQ20101015825
公開日2010年9月29日 申請日期2010年4月27日 優(yōu)先權(quán)日2010年4月27日
發(fā)明者凌云, 王勛, 章志勇, 黃定軍 申請人:浙江工商大學(xué)