劉思瑋,杜慶治,龍 華,邵玉斌,彭 藝
(昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院,昆明 650500)
數(shù)字音頻水印就是在音頻中添加某些數(shù)字信息,用來(lái)保護(hù)音頻的版權(quán),或者用來(lái)鑒別音頻的完整性,從而來(lái)證明產(chǎn)品的真實(shí)可靠性.
在過(guò)去的研究中,為了提高嵌入水印的魯棒性,一般在水印的嵌入算法和水印信息的預(yù)處理這兩面進(jìn)行改進(jìn).水印的嵌入算法通常在頻域進(jìn)行[1-4].而水印信息的預(yù)處理,共有兩種不同的處理方法.一種是將原始信息直接轉(zhuǎn)化為二進(jìn)制進(jìn)行水印的嵌入[5].其缺點(diǎn)是造成魯棒性不足,抗干擾能力弱.另一種是將原始信息先轉(zhuǎn)化成中間量,如圖片、音頻以及差錯(cuò)控制編碼等,然后再將中間量轉(zhuǎn)化為二進(jìn)制進(jìn)行水印的嵌入[2,4,6,7].這樣增加了待嵌入信息的冗余度,通過(guò)減少音頻的不可感知性來(lái)提升魯棒性以及抗干擾能力.以常見(jiàn)的圖片作為中間兩為例,在進(jìn)行水印的嵌入和提取時(shí),不易實(shí)現(xiàn)自動(dòng)化檢測(cè),增加了復(fù)雜性.
將原始信息轉(zhuǎn)化為二維碼(QR碼)作為待嵌入的水印,不僅利用了QR碼自身的糾錯(cuò)能力,還可以通過(guò)自動(dòng)化來(lái)進(jìn)行QR碼的讀取以及識(shí)別.極大提高了效率.通過(guò)在知網(wǎng)上進(jìn)行檢索,發(fā)現(xiàn)近些年在采用QR碼作為待嵌入水印,目前國(guó)內(nèi)外主要在純圖像領(lǐng)域應(yīng)用較多[8-11],但在音頻方面應(yīng)用較少.
本文在傳統(tǒng)的數(shù)字音頻水印算法上進(jìn)行了改進(jìn),利用QR碼自身糾錯(cuò)能力以及離散小波變換的多分辨特性和離散余弦變換的能量壓縮能力,提出了一種新的盲水印嵌入算法.在水印信息預(yù)處理方面把原始信息轉(zhuǎn)化成QR碼作為作為待嵌入的水印信息.對(duì)待嵌入的水印圖像進(jìn)行分塊,通過(guò)改進(jìn)的Arnold變換以及密匙來(lái)增加水印的安全性與可靠性.在水印嵌入方面首先將原始音頻信號(hào)進(jìn)行分幀預(yù)處理,其次對(duì)得到的一維信號(hào)先進(jìn)行DWT再進(jìn)行DCT后,將得到的一維信號(hào)進(jìn)行奇異值分解,最后通過(guò)對(duì)奇異值的量化,并利用重復(fù)碼的特點(diǎn),將水印信息進(jìn)行嵌入.通過(guò)本文的算法,對(duì)嵌入水印的音頻做常見(jiàn)的仿真攻擊,并對(duì)水印進(jìn)行提取,仿真結(jié)果證明本文的方法在提高了水印的抗噪能力具有有效性.
QR碼(Quick Response Code)最初是由日本的一家公司在1994年推出的一種矩陣二維碼編碼方式.因其具有的獨(dú)特優(yōu)勢(shì),使其成為目前世界上使用最為廣泛的二維碼編碼方式.QR碼不僅具有二維碼的共同優(yōu)點(diǎn),即可存儲(chǔ)內(nèi)容多、花費(fèi)少、掉碼率低等優(yōu)點(diǎn),而且具有全方位快速識(shí)別的優(yōu)勢(shì),QR碼的編碼對(duì)象不僅可以對(duì)現(xiàn)在廣泛使用的各種文字進(jìn)行編碼,還可以對(duì)圖形圖像等幾乎所有的數(shù)字媒體進(jìn)行編碼[12].
根據(jù)ISO(國(guó)際標(biāo)準(zhǔn)化組織)標(biāo)準(zhǔn)的規(guī)定,QR碼由功能區(qū)和編碼區(qū)組成,前者主要包含位置分隔符、探測(cè)圖形、校正圖形和定位圖形,后者包含格式信息、版本信息、數(shù)據(jù)和糾錯(cuò)碼等.詳情如圖1所示.
圖1 QR碼結(jié)構(gòu)圖Fig.1 QR code structure diagram
Arnold變換是V.J.Aronld在遍歷理論研究中提出的一種變換,其具有周期性的特點(diǎn),并且能消除水印圖像像素點(diǎn)之間的相關(guān)性[13].但是Arnold變換的局限性便是要求圖像的長(zhǎng)寬相等.為了滿足圖像的長(zhǎng)寬不相等,方便后續(xù)使,所以將Arnold變換進(jìn)行修改.
(1)
(2)
(3)
(4)
小波變換是近些年發(fā)展起來(lái)的一種具有廣泛應(yīng)用價(jià)值的數(shù)學(xué)工具,小波變換可以對(duì)信號(hào)進(jìn)行不同區(qū)域,不同分辨率的分析.
一維離散小波變換可以把信號(hào)分成高頻子帶和低頻子帶,低頻子帶進(jìn)一步分解成高頻和低頻兩個(gè)部分,這便是小波分解的過(guò)程,而且通過(guò)這些系數(shù)可以精確地重構(gòu)原始信號(hào),即離散小波逆變換,信號(hào)經(jīng)過(guò)離散小波變換,能量主要集中在低頻子帶,高頻自帶所占據(jù)的能量較少.圖2和圖3分別是離散小波分解過(guò)程與離散小波重構(gòu)過(guò)程.
圖2 離散小波分解過(guò)程Fig.2 Discrete wavelet decomposition process
圖3 離散小波重構(gòu)過(guò)程Fig.3 Discrete wavelet reconstruction process
在1974年,Ahmed和Rao首先給出了離散余弦變換(DCT)的定義.離散余弦變換是數(shù)字信號(hào)處理技術(shù)當(dāng)中最常用的線性變化之一,DCT和離散傅里葉變換(DFT)一樣,也存在著快速算法,由于具有較強(qiáng)的能量壓縮能力和去相關(guān)的能力,因此它在數(shù)字音頻信號(hào)壓縮和圖像壓縮等領(lǐng)域得到了廣泛的應(yīng)用.在數(shù)字音頻水印算法中,由于離散余弦變換是實(shí)變換,便于水印的直接嵌入,也得到了普遍的應(yīng)用[14].
一維離散余弦變換和反變換的定義如下:
(5)
(6)
數(shù)字水印系統(tǒng)的安全性與水印信息密切相關(guān),為了保障水印系統(tǒng)的安全性,通常在水印信息嵌入到載體前,對(duì)其進(jìn)行加密置亂預(yù)處理,處理后的水印圖像可以消除像素點(diǎn)之間的關(guān)聯(lián)性,具有較高的隨機(jī)性,并能抵抗一定程度的破譯攻擊.
因?yàn)槠銺R碼的特殊性,根據(jù)QR碼本身的性質(zhì),將原始QR碼按照如圖4所示進(jìn)行分割.其中區(qū)域1、5、6為QR碼的位置探測(cè)區(qū)域,只是由兩條黑白相間的直線組成,便于確定QR碼的角度,糾正扭曲.對(duì)信息傳輸、糾錯(cuò)并無(wú)作用,所以并不需要傳輸.2、3、4部分為QR碼存儲(chǔ)信息的區(qū)域,并帶有糾錯(cuò)功能.所以,本文以此為基礎(chǔ),將2、3、4作為水印數(shù)據(jù)進(jìn)行嵌入.具體處理過(guò)程如下:
假設(shè)原始水印的大小為M×M,按照如圖所示劃分為6個(gè)區(qū)域.其中1、5、6區(qū)域的大小為n×n,那么2區(qū)域的大小為(M-2×n)×n,3區(qū)域的大小為M×(M-2×n),4區(qū)域的大小為(M-n)×n.
圖4 QR碼分割Fig.4 QR code segmentation
按照不同的變換規(guī)則對(duì)3塊區(qū)域進(jìn)行預(yù)處理,將經(jīng)過(guò)Arnold變換得到的二值圖像通過(guò)降維與密匙進(jìn)行異或,得到新的二值圖像,將新的二值圖像進(jìn)行加密得到待嵌入水印.具體加密過(guò)程為:
1)選取前4位數(shù)值轉(zhuǎn)化為10進(jìn)制,得到數(shù)值H,如果Hmod 2=0,則將二值圖像向左循環(huán),否則向右循環(huán).
2)選取后4位數(shù)值轉(zhuǎn)化為10進(jìn)制來(lái)決定循環(huán)位數(shù).
圖像預(yù)處理如圖5所示.
圖5 水印預(yù)處理過(guò)程Fig.5 Watermark preprocessing process
嵌入過(guò)程如圖6所示.具體步驟如下.
圖6 水印嵌入過(guò)程Fig.6 Watermark embedding process
Step1.將2、3、4這3個(gè)區(qū)域降維至一維向量,并計(jì)算3個(gè)區(qū)域的大小,然后得到對(duì)應(yīng)區(qū)域的占比.假設(shè)2、3、4區(qū)域的占比為a∶b∶c.
Step2.對(duì)原始音頻進(jìn)行分幀(每幀為10ms左右.長(zhǎng)度為N),確保分幀的幀數(shù)大于或者等于3×(M×M-3×n×n).
Step3.對(duì)待嵌入水印的音頻幀先進(jìn)行3級(jí)DWT.將得到的ca3再進(jìn)行DCT.得到A.
Step4.將得到A按照a∶b∶c∶a∶b∶c∶a∶b∶c的比例分成9段.利用重復(fù)碼的原理,將區(qū)域2嵌入到Aa1、Aa2、Aa3,將區(qū)域3嵌入到Ab1、Ab2、Ab3,將區(qū)域4嵌入到Ac1、Ac2、Ac3.
Step5.對(duì)Aij進(jìn)行SVD分解,得到S,D矩陣以及奇異矩陣V.其中i=a,b,c、j=1,2,3
Step6.因?yàn)锳ij為一維向量,得到的奇異矩陣V只有第1個(gè)元素有值,其余全為0,所以將第1個(gè)元素記為V1,并按照如下進(jìn)行量化:
(7)
其中q為量化步長(zhǎng),?·」為向下取整.
Step7.如果對(duì)量化后的奇異矩陣進(jìn)行模二運(yùn)算等于待嵌入水印值,則不進(jìn)行任何修改,即:
mod(Q,2)=W(k)
(8)
如果對(duì)量化后的奇異矩陣進(jìn)行模二運(yùn)算不等于待嵌入水印值,按照如下規(guī)則進(jìn)行嵌入:
(9)
Step8.將得到的新的V與之前的S,D進(jìn)行奇異值分解逆運(yùn)算.
Aij=SVDT
(10)
Step9.將Aij進(jìn)行重組,并進(jìn)行DCT與DWT的逆運(yùn)算.
Step10.重復(fù)以上步驟,直到所有的水印信息全部嵌入完成.
水印提取的流程圖如圖7所示,具體實(shí)施步驟如下.
圖7 水印提取過(guò)程Fig.7 Watermark extraction process
Step1.對(duì)已嵌入水印音頻進(jìn)行分幀(每幀為10ms左右.長(zhǎng)度為N),確保分幀的幀數(shù)大于或者等于3×(M×M-3×n×n).
Step2.對(duì)待嵌入水印的音頻幀先進(jìn)行3級(jí)DWT.將得到的ca3再進(jìn)行DCT.得到B.
Step3.將得到B按照a∶b∶c∶a∶b∶c∶a∶b∶c的比例分成9段.得到Bij,其中i=a,b,c、j=1,2,3.
Step4.因?yàn)锽ij為一維向量,得到的奇異矩陣U只有第1個(gè)元素有值,其余全為0,所以講第1個(gè)元素記為U1,并按照如下進(jìn)行量化:
(11)
其中q為量化步長(zhǎng),?·」為向下取整.
Step5.按照如下規(guī)則進(jìn)行提取:
Mij(k)=mod(P,2)
(12)
Step6.將得到的Mij(k)通過(guò)重復(fù)碼的原理進(jìn)行選取,得到Mij(k).
(13)
Step7.將得到的Mi(k)進(jìn)行重組,然后進(jìn)行各個(gè)區(qū)域相應(yīng)的圖片預(yù)處理的逆運(yùn)算,與區(qū)域1、區(qū)域5、區(qū)域6進(jìn)行結(jié)合,最終得到QR碼圖像.
為了驗(yàn)證本算法的有效性,本文使用MATLAB 2017作為實(shí)驗(yàn)仿真平臺(tái),將文本信息′Yunnan′和′Shanxi′生成容錯(cuò)等級(jí)為“H”的QR碼作為水印圖片,提升小波方案采用“haar”小波基函數(shù),嵌入強(qiáng)度q為0.6.原始音頻使用5種不同種類的音樂(lè)類型,每種音樂(lè)種類有100首音樂(lè),共500首音樂(lè).且每首音樂(lè)為16位單聲道,采樣頻率為44.100kHz,長(zhǎng)度約為30s.
在滿足水印魯棒性的同時(shí),還必須滿足水印的不可感知性.所以要選取QR碼的容錯(cuò)等級(jí)和嵌入強(qiáng)度q大小.
4.1.1 QR碼容錯(cuò)等級(jí)
QR碼本身具有糾錯(cuò)功能,即使QR碼破損,也可以進(jìn)行數(shù)據(jù)讀取.容錯(cuò)能力等級(jí)分為:“L”、“M”、“Q”、“H”4級(jí),對(duì)應(yīng)不同的容錯(cuò)率.QR碼的糾錯(cuò)能力越高,隨之?dāng)?shù)據(jù)量也會(huì)增加,編碼尺寸也會(huì)增加.詳細(xì)如表1所示.
表1 各參數(shù)含義Table 1 Meaning of each parameter
為了選定合適的容錯(cuò)等級(jí)的QR碼作為待嵌入的水印.將相同信息制作成不同等級(jí)的QR碼,在魯棒性相近的情況下,不同容錯(cuò)率與信噪比的關(guān)系如圖8所示.
圖8 不同容錯(cuò)率與信噪比的關(guān)系Fig.8 Relationship between different fault tolerance rates and signal-to-noise ratio
通過(guò)上述實(shí)驗(yàn),經(jīng)過(guò)綜合考慮,本文選取容錯(cuò)等級(jí)為“H”,即容錯(cuò)率為30%的QR碼作為原始水印圖像.
4.1.2 水印嵌入強(qiáng)度
水印的不可感知性經(jīng)常使用信噪比(signal noise ratio SNR)來(lái)作為評(píng)價(jià)標(biāo)準(zhǔn).國(guó)際留聲機(jī)工業(yè)聯(lián)盟要求嵌入水印后的音頻可以提供20dB或更高的信噪比[15].信噪比的定義如下:
(14)
其中:x(i)表示原始音頻信號(hào),xw(i)表示嵌入了水印之后的音頻信號(hào).
隨著嵌入強(qiáng)度的改變,其信噪比也會(huì)隨之發(fā)生改變.嵌入強(qiáng)度的關(guān)系如圖9所示.
圖9 信噪比隨嵌入強(qiáng)度的變化Fig.9 SNR changes with embedding intensity
通過(guò)上述實(shí)驗(yàn)對(duì)比,為滿足嵌入水印后信噪比大于20dB,所以選取嵌入強(qiáng)度q為0.6.
水印的不可感知性也稱之為保真性或透明性,是指經(jīng)過(guò)一系列隱藏處理,使目標(biāo)數(shù)據(jù)沒(méi)有產(chǎn)生明顯的將質(zhì),而隱藏的數(shù)據(jù)無(wú)法人為的感知到,即原始載體和加入水印后的載體之間的感知性相近,對(duì)于水印的不可感知性評(píng)價(jià)標(biāo)準(zhǔn)一般有主觀評(píng)價(jià)和客觀評(píng)價(jià).
4.2.1 主觀評(píng)價(jià)
在使用本文算法對(duì)原始音頻加入水印,與原始音頻波形在時(shí)域上進(jìn)行對(duì)比,發(fā)現(xiàn)無(wú)明顯差異.以hip-hop為例,結(jié)果如圖10所示.其中橫坐標(biāo)表示時(shí)間,單位為秒.縱坐標(biāo)表示信號(hào)歸一化到[-1,1]的幅值.
圖10 hip-hop音樂(lè)類型Fig.10 Hip-hop music types
4.2.2 客觀評(píng)價(jià)
根據(jù)本文的算法,得到的5種不同種類的音樂(lè)嵌入水印后的SNR值,實(shí)驗(yàn)結(jié)果如圖11所示.5種不同音樂(lè)的SNR都在20dB以上.其中橫坐標(biāo)代表的是音樂(lè)類型,縱坐標(biāo)代表的是信噪比.
魯棒性是指含水印音頻在經(jīng)過(guò)常規(guī)信號(hào)處理之后仍然可以將水印檢測(cè)出來(lái).魯棒性用來(lái)衡量水印算法的抗攻擊能力,用于判斷水印破壞者在不影響或者很少影響音頻質(zhì)量的前提下去掉水印的能力.
在本文中采用誤碼率(bit error rate BER)和檢出率(detectable rate DR)來(lái)衡量水印的抗攻擊能力.
圖11 不同音樂(lè)類型的信噪比Fig.11 SNR of different music types
4.3.1 誤碼率
誤碼率反映的是提取出來(lái)的水印與原水印的差別性,設(shè)嵌入的提取的水印序列長(zhǎng)度為N,則BER按照如下公式計(jì)算:
(15)
式中,W(i)為原始水印信息,M(i)為提取出來(lái)的水印信息.
BER值越接近1,則水印系統(tǒng)的魯棒性越差;BER值越接近0,則水印系統(tǒng)的魯棒性越好.
4.3.2 檢出率
檢出率為提取出來(lái)的水印能被掃描且正確識(shí)別的概率.設(shè)提取的水印個(gè)數(shù)為L(zhǎng),可以被正確識(shí)別時(shí)令st=1,否則令st=0,則DR按照如下公式計(jì)算:
(16)
對(duì)嵌入水印的音頻信號(hào)進(jìn)行常見(jiàn)的音頻處理,以下是常見(jiàn)的仿真音頻處理的操作:
疊加噪聲:在含水印音頻上疊加30dB的高斯白噪聲.
低通濾波:利用巴特沃斯濾波器對(duì)含水印音頻信號(hào)進(jìn)行低通濾波.
重采樣:把含水印音頻的原44.100kHz采樣頻率降為22.050kHz,再恢復(fù)44.100kHz采樣頻率.
重量化:把含水印音頻的原16位分辨率降為8位后,再恢復(fù)為16位分辨率.
壓縮:將含水印音頻信號(hào)壓縮為原始音頻水印的0.7倍.
剪切:截取含水印音頻信號(hào)的后1/4部分,并利用原始音頻信號(hào)相應(yīng)位置的信號(hào)代替.
通過(guò)以上7種常見(jiàn)的攻擊方式來(lái)攻擊待已嵌入水印的音頻,用來(lái)檢驗(yàn)本文算法對(duì)水印提取的魯棒性,其中表2是待測(cè)音頻在各種常見(jiàn)攻擊后,水印的提取效果.
表2 魯棒性測(cè)試Table 2 Robustness test
圖12為5種音樂(lè)類型且嵌入強(qiáng)度相同的情況下,使用本文算法,檢出率與對(duì)含水印音頻上疊加不同強(qiáng)度的高斯白噪聲的變化.其中信噪比指的是含水印音頻信號(hào)與噪聲的比率.
圖12 檢出率隨信噪比的變化Fig.12 Change of detection rate with signal-to-noise ratio
為進(jìn)一步驗(yàn)證所提算法的魯棒性以及普遍適用性,為了保證對(duì)比的公平性和一致性,我們對(duì)將水印信息直接嵌入的文獻(xiàn)[5]以及將水印信息通過(guò)漢明碼進(jìn)行處理的文獻(xiàn)[7]的進(jìn)行相同的數(shù)據(jù)比較,選取相同的音樂(lè)作為原始音頻,嵌入相同的水印,在經(jīng)過(guò)相同的攻擊來(lái)進(jìn)行魯棒性檢測(cè),將5種音樂(lè)類型經(jīng)過(guò)以上7種常見(jiàn)的攻擊方式來(lái)攻擊待已嵌入水印的音頻,用來(lái)檢驗(yàn)本文算法對(duì)水印提取的魯棒性.分別對(duì)每種音樂(lè)類型進(jìn)行仿真實(shí)驗(yàn),得到100個(gè)BER值和DR值,計(jì)算其平均值.詳細(xì)數(shù)據(jù)如下:
含水印音頻在不同的攻擊操作下得到的BER值和DR值.從表3中可以看出,相較于直接將原始水印信息嵌入,而將原始信息轉(zhuǎn)化成中間量再進(jìn)行水印嵌入的魯棒性較好.在整個(gè)測(cè)試音頻信號(hào)的周期內(nèi),計(jì)算得出的BER值很小,都在0.0059以下,大部分情況下的BER值都接近于0,而DR值都在97%以上,大部分情況都接近于100%.
表3 不同音樂(lè)類型提取相同水印的BER值和DR值Table 3 BER and DR values of the same watermark extracted from different music types
本文在傳統(tǒng)的水印圖像上進(jìn)行了改進(jìn),采用QR碼作為待嵌入的水印圖像,提出了一種新盲水印嵌入算法.將原始音頻信號(hào)進(jìn)行分幀預(yù)處理后得到的一維信號(hào)先進(jìn)行DWT再進(jìn)行DCT,將得到的信號(hào)進(jìn)行奇異值分解,通過(guò)對(duì)奇異值的量化,并利用重復(fù)碼的特點(diǎn),將水印信息進(jìn)行嵌入.此外,將待嵌入的水印圖像進(jìn)行分塊,在Arnold變換的基礎(chǔ)上,通過(guò)密匙來(lái)增加水印的安全性與可靠性.通過(guò)本文的算法,對(duì)嵌入水印的音頻做常見(jiàn)的仿真攻擊,并對(duì)水印進(jìn)行提取,仿真結(jié)果證明本文的方法在提高了水印的抗噪能力具有有效性.