本發(fā)明屬于計(jì)算機(jī)信息安全領(lǐng)域,具體涉及與圖像壓縮國(guó)際標(biāo)準(zhǔn)JPEG2000一體化的分辨率可伸縮和質(zhì)量可伸縮盲水印算法。用于對(duì)JPEG2000格式壓縮的圖像的數(shù)字版權(quán)保護(hù)。
背景技術(shù):
隨著可伸縮編碼媒體應(yīng)用的增加,可伸縮媒體版權(quán)保護(hù)受到關(guān)注,對(duì)其研究也具有重要意義,然而目前研究JPEG2000質(zhì)量可伸縮和分辨率可伸縮的水印技術(shù)較少,大部分水印算法都會(huì)因?yàn)榻?jīng)過可伸縮結(jié)構(gòu)壓縮使水印遭到破壞。因此本文深入JPEG2000圖像的編解碼系統(tǒng),運(yùn)用分辨率可伸縮壓縮優(yōu)良特性而設(shè)計(jì)和提出的框架算法,最終實(shí)現(xiàn)JPEG2000可伸縮圖像的信息安全技術(shù)。JPEG2000采用可伸縮編碼技術(shù)和體系結(jié)構(gòu),可以從單個(gè)多媒體編碼數(shù)據(jù)中提取具有不同碼率的圖像,漸進(jìn)性可伸縮的媒體能適應(yīng)圖像媒體的碼流傳輸和顯示變化的特性,也能滿足人們對(duì)不同終端設(shè)備(如手機(jī)、電腦、PDA、其他智能移動(dòng)終端等)傳輸可伸縮媒體的需求。按照以前傳統(tǒng)的方式,若傳輸服務(wù)器存儲(chǔ)的圖像,根據(jù)用戶不同的終端設(shè)備和網(wǎng)絡(luò)帶寬,需要在服務(wù)器中存儲(chǔ)不同分辨率、不同大小的圖像文件,這種方式占據(jù)相當(dāng)大的存儲(chǔ)空間。然而當(dāng)傳送采用可伸縮編碼結(jié)構(gòu)的JPEG2000格式圖像時(shí),只需要在服務(wù)器中存儲(chǔ)完整碼流的JPEG2000圖像,根據(jù)接收終端設(shè)備的需要,解碼得到不同分辨率或不同質(zhì)量的圖像,這樣可以節(jié)省服務(wù)器存儲(chǔ)空間和網(wǎng)絡(luò)帶寬。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)上述問題提供一種適配于JPEG2000的可伸縮圖像編碼的漸進(jìn)性水印方法。
為實(shí)現(xiàn)本發(fā)明所述目的,本發(fā)明提供一種適配于JPEG2000的可伸縮圖像編碼的漸進(jìn)性水印方法,該方法包括:
水印嵌入流程,結(jié)合奇異值分解算法,將水印標(biāo)識(shí)圖像的8個(gè)位平面數(shù)據(jù)按重要性依次嵌入至JPEG2000圖像經(jīng)過小波變換和量化后的各個(gè)可伸縮層次對(duì)應(yīng)的頻帶中,并進(jìn)行EBCOT編碼進(jìn)而得到完整含水印的JPEG2000圖像;
水印提取流程,將含水印的JPEG2000圖像進(jìn)行熵解碼、H×H分塊、奇異值分解和強(qiáng)度運(yùn)算后,漸進(jìn)提取水印的各個(gè)位平面信息并進(jìn)行重構(gòu),進(jìn)行部分解碼圖像中內(nèi)嵌水印信息的檢測(cè),直到完全解碼JPEG2000圖像繼而得到完整的水印標(biāo)識(shí)圖像。
所述水印嵌入流程包括下列步驟:
11)將維度為M×M的水印圖像W進(jìn)行位平面分解得到圖像的8個(gè)位平面數(shù)據(jù),并將水印的第i個(gè)位平面數(shù)據(jù)記為Wi;
12)對(duì)JPEG2000圖像進(jìn)行5/3的三級(jí)小波變換,并采用JPEG2000編碼器進(jìn)行量化,得到小波變換的各個(gè)子帶;
13)對(duì)步驟12)中小波變換后的各個(gè)子帶都進(jìn)行H×H不重復(fù)分塊;
14)對(duì)步驟13)中得到的各個(gè)子帶的M×N子塊A進(jìn)行奇異值分解,得到奇異值矩陣S;
15)對(duì)步驟14)中得到的奇異值矩陣S進(jìn)行強(qiáng)度計(jì)算,得到奇異值矩陣的強(qiáng)度值Q;
16)計(jì)算步驟11)中各個(gè)位平面數(shù)據(jù)Wi的重要性Ti,根據(jù)Ti的值將水印的各個(gè)位平面依次嵌入到步驟12)中得到的小波變換的各個(gè)子帶中,得到嵌入水印后的奇異值矩陣S';
17)對(duì)步驟16)中得到的嵌入水印后的奇異值矩陣S'進(jìn)行奇異值分解逆變換,得到嵌入水印后的子帶的分塊矩陣A';
18)將A'放回步驟12)中小波變換的各個(gè)子帶中對(duì)應(yīng)的位置后進(jìn)行EBCOT編碼,得到完整含水印的JPEG2000圖像。
所述奇異值分解具體為:
A=USVT;
其中,為M階正交矩陣,為奇異值矩陣,為N階正交矩陣。
所述強(qiáng)度計(jì)算具體為:
其中,S(1,1)是奇異值矩陣S的第一個(gè)奇異值,q是嵌入強(qiáng)度,round是四舍五入運(yùn)算。
所述重要性Ti具體為:Ti=mod(Q+Wi)。
所述嵌入水印后的奇異值矩陣S'具體為:
其中,S'(1,1)是嵌入水印后的奇異值矩陣S'的第一個(gè)奇異值,q是嵌入強(qiáng)度,S'中的其他值與對(duì)應(yīng)的奇異值矩陣S中的值相同。
所述水印提取流程包括下列步驟:
21)熵解碼含水印的JPEG2000圖像,并進(jìn)行H×H分塊;
22)對(duì)步驟21)中分塊后得到的每個(gè)子塊A”進(jìn)行奇異值分解A”=US”VT,進(jìn)行強(qiáng)度計(jì)算,得到經(jīng)解碼分塊后的奇異值矩陣S”對(duì)應(yīng)的強(qiáng)度d;
23)根據(jù)步驟22)中得到的強(qiáng)度d進(jìn)行奇偶判別,得到每個(gè)分辨率水印的位平面信息Wi';
24)根據(jù)步驟23)中得到的每個(gè)分辨率水印的位平面信息Wi'重構(gòu)為灰度圖像,即為水印標(biāo)識(shí)圖像,同時(shí)得到解碼后的JPEG2000圖像。
所述經(jīng)解碼分塊后的奇異值矩陣S”對(duì)應(yīng)的強(qiáng)度d具體為:
其中,S”(1,1)為經(jīng)解碼分塊后的奇異值矩陣S”的第一個(gè)值,q是嵌入強(qiáng)度,floor是向下取整。
所述每個(gè)分辨率水印的位平面信息Wi'具體為:
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
(1)本發(fā)明提出一種JPEG2000分辨率可伸縮的漸進(jìn)性水印算法框架,針對(duì)JPEG2000可伸縮編碼性質(zhì),采用位平面分解灰度水印標(biāo)識(shí)圖像,將水印重要的位平面嵌入JPEG2000碼流最前端的重要部分,其他位平面分別嵌入后面的碼流中,形成內(nèi)嵌結(jié)構(gòu)的水印模型,與JPEG2000編解碼的漸進(jìn)特性匹配。
(2)本發(fā)明提出的可伸縮水印系統(tǒng),含水印圖像在經(jīng)過質(zhì)量可伸縮解碼和分辨率可伸縮解碼雙重可伸縮解碼,均能檢測(cè)到水印信息的存在,說明算法與JPEG2000的可伸縮編碼框架具有很好的兼容性能。
(3)本發(fā)明實(shí)現(xiàn)水印算法與JPEG2000編解碼框架一體化,具有系統(tǒng)性和實(shí)用性的特點(diǎn)。
附圖說明
圖1為分辨率可伸縮系統(tǒng)的水印內(nèi)嵌結(jié)構(gòu)模型;
其中,1為載體圖像三級(jí)小波分解,2為水印圖像,3為位平面分解;
圖2為分辨率可伸縮水印嵌入算法的框圖;
圖3為分辨率可伸縮水印提取算法的框圖;
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
如圖1所示,為了保證嵌入水印圖像良好的不可見性(若將水印標(biāo)識(shí)圖像重要的第8和第7位兩個(gè)平面都嵌入載體圖像的最低頻帶LL3系數(shù)中,則最低頻子帶嵌入數(shù)據(jù)量過大,圖像不可見性降低),將最重要的第8個(gè)位平面信息嵌入載體圖像經(jīng)過5/3的三級(jí)小波變換后的LL3低頻子帶系數(shù)中;將第7和6個(gè)位平面水印信息嵌入LH3及HL3子帶低頻子帶系數(shù)中;將第5和第4個(gè)位平面水印信息嵌入LH2及HL2子帶低頻子帶系數(shù)中;將第3和第2個(gè)位平面信息嵌入LH1及HL1頻帶中,第1位平面嵌入第HH1頻帶系數(shù)中。
這種方式嵌入水印的位平面數(shù)據(jù)使得低分辨率包含重要的水印信息(即水印圖像的最高位平面),在漸進(jìn)檢測(cè)時(shí),能首先提取到水印的重要位平面,并隨著解碼圖像分辨率的增加,提取的水印的位平面數(shù)逐漸增加,提取到的水印質(zhì)量也不斷改善,直至檢測(cè)到水印的8個(gè)完整位平面。
如圖2所示,水印嵌入的方法具體為:
(11)構(gòu)造水印圖像的位平面內(nèi)嵌式結(jié)構(gòu)模型:將維度為M×M的灰度水印圖像W進(jìn)行位平面分解,分解得到圖像8個(gè)位平面數(shù)據(jù)。分別記為Wi(水印的第i位平面值)。水印的位平面分層結(jié)構(gòu)與JPEG2000分辨率分解結(jié)構(gòu)相適應(yīng),形成內(nèi)嵌式分層結(jié)構(gòu)的水印。
(12)5/3變換:輸入載體圖像小波分解級(jí)數(shù)為三級(jí),對(duì)JPEG2000圖像進(jìn)行5/3的三級(jí)小波變換,并采用JPEG2000編碼器進(jìn)行量化,得到小波變換的各個(gè)子帶;
(13)H×H分塊:對(duì)步驟(12)中小波變換后的各個(gè)子帶都進(jìn)行H×H不重復(fù)分塊;
(14)將每個(gè)子帶分塊進(jìn)行奇異值分解A=USVT,得到奇異值矩陣S。
(15)計(jì)算:Q=round(S(1,1)/q),其中S(1,1)是每塊第一個(gè)奇異值,q是嵌入強(qiáng)度,round是四舍五入運(yùn)算。
(16)嵌入水?。河?jì)算Ti=mod(Q+Wi)的值,按水印位平面的重要性依次嵌入小波各個(gè)子帶。
(17)對(duì)修改后的奇異值進(jìn)行SVD逆變換,得到每個(gè)子帶中嵌入水印的矩陣A’。
(18)將A’放回原來碼塊中對(duì)應(yīng)的位置,在編碼器中完成EBCOT編碼,從而輸出嵌入水印后的數(shù)據(jù)碼流,得到完整含水印的JPEG2000圖像。
如圖3所示,提取嵌入水印的具體方法為:
(21)嵌入水印圖像經(jīng)過JPEG2000解碼系統(tǒng)熵解碼后,將其進(jìn)行H×H的分塊。
(22)對(duì)每個(gè)子塊進(jìn)行奇異值分解A’=US’VT,并且計(jì)算d=floor(S’(1,1)/q),其中floor為向下取整,S’(1,1)為每個(gè)子塊的第一個(gè)奇異值。
(23)計(jì)算mod(d,2)的值,并采用奇偶判別,提取每分辨率的水印信息:
(24)將每級(jí)提取位平面的水印信息,重構(gòu)為灰度圖像,從而得到檢測(cè)的水印標(biāo)識(shí)圖像,同時(shí)解碼系統(tǒng)完成JPEG2000圖像的解碼。