彭 飛,劉 亮,高 勇
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
隨著互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,通過網(wǎng)絡(luò)傳播多媒體變得越來越流行,也變得越來越容易。在便利了生活的同時(shí),多媒體的數(shù)據(jù)也能十分輕易地通過各種音頻編輯軟件實(shí)現(xiàn)篡改。因此對創(chuàng)作者的版權(quán)保護(hù)[1]變得至關(guān)重要,解決該問題的一種有效方法即是數(shù)字音頻水印技術(shù)[2-4]。通過使用數(shù)字水印,版權(quán)信息被嵌入到多媒體數(shù)據(jù)中,與原始數(shù)據(jù)相比幾乎沒有任何差異,更為重要的是,嵌入信息不能夠被刪除。通常,音頻水印系統(tǒng)具有多個(gè)性能指標(biāo),從信號處理的角度出發(fā),3個(gè)重要指標(biāo)是透明性、魯棒性和水印容量[5-8]。由于將水印嵌入到音頻數(shù)據(jù)中會導(dǎo)致對音頻數(shù)據(jù)的修改,因此可能導(dǎo)致聽覺質(zhì)量下降。當(dāng)然,希望人耳聽覺系統(tǒng)(Human Audio System,HAS)無法察覺到這種變化,通常情況下,水印數(shù)據(jù)的信噪比只要高于20 dB,HAS就不會感知到嵌入的水印,可以輕松實(shí)現(xiàn)高透明性。但是,水印信號很容易受到各種攻擊,使得嵌入的水印遭到破壞。因此,水印系統(tǒng)應(yīng)該具有高魯棒性,能夠抵御各種攻擊。盡管如此,透明性和魯棒性本質(zhì)上是相互沖突的,在二者之間必須進(jìn)行權(quán)衡。除此之外,由于水印容量通常取決于應(yīng)用目標(biāo),所以只要采用的水印方案能提供足夠的嵌入空間,就可以不用考慮。
在數(shù)字音頻水印中,提出了大量的方案,主要可以分為兩大類:時(shí)域技術(shù)和變換域技術(shù)。在時(shí)域技術(shù)中,最流行的技術(shù)是最低有效位(Least Significant Bit,LSB),它是基于原始樣本的LSB位置的修改[9-10]。盡管時(shí)域水印技術(shù)易于實(shí)現(xiàn)并且成本低,但在受到有意或無意的音頻信號處理時(shí),魯棒性難以得到保證?,F(xiàn)有的結(jié)果表明,相較于時(shí)域技術(shù),變換域技術(shù)可以更好地抵抗噪聲、有損壓縮和常見的音頻處理。文獻(xiàn)[11]提出了一種基于小波熵(Wavelet-based Entropy,WBE)的自適應(yīng)音頻水印方法,該方法將離散小波變換(Discrete Wavelet Transformation,DWT)的低頻系數(shù)轉(zhuǎn)換為WBE域。文獻(xiàn)[12]提出了一種基于能量選擇的DCT域音頻數(shù)字水印算法,在DCT域利用能量算法來嵌入水印。在變換域內(nèi),不同的嵌入和提取規(guī)則也會對水印算法的性能造成影響。為了在透明性和魯棒性上都能有較為出色的表現(xiàn),本文提出了一種基于DWT和Singular Value Decomposition(SVD)的音頻數(shù)字水印算法。算法一方面通過局部最大值找到音頻的最佳嵌入位置,另一方面在3個(gè)能量最大的音頻段中嵌入同一行水印,能夠有效提高算法的魯棒性。
離散小波變換是一種特殊的線性變換,可以將信號做多尺度細(xì)化,最終做到高頻部分時(shí)間細(xì)化,低頻部分頻率細(xì)化[13]。其中小波是表示信號的基本標(biāo)識,它們是由一個(gè)稱為母小波的單個(gè)公共小波通過擴(kuò)張和縮放產(chǎn)生的。
小波基函數(shù)是由基本小波經(jīng)平移得到,若ψ(x)表示基本小波,則形成的一組小波基函數(shù){ψa,b(x)}表示為:
(1)
式中,a為縮放因子,反映指定基函數(shù)的縮放尺度;b為平移因子,反映了沿x軸平移的尺度。
對于函數(shù)f(x)以小波ψ(x)為基的連續(xù)小波變換表示為函數(shù)f(x)和ψa,b(x)的內(nèi)積:
(2)
對于其逆變換可以定義為:
(3)
為了減小因a和b帶來的計(jì)算量過大的問題,通常采用DWT,即對尺度和平移參數(shù)離散化。令參數(shù)a=2-j,b=k2-j,j,k∈Z,對應(yīng)的離散小波可以定義為:
(4)
通常使用ψj,k(t)表示ψ2-j,k2-j,即:
(5)
則離散小波ψj,k(t)對應(yīng)的DWT為:
WTf(j,k)=
(6)
設(shè)D是一個(gè)m×n的復(fù)數(shù)矩陣,則D做SVD分解后為:
D=U∑VT,
(7)
式中,
∑包含從大到小排列的奇異值,σ1≥σ2≥…≥σs≥0;U=[u1u2…um],V=[v1v2…vn]分別代表左、右奇異矢量的正交矩陣。
對于音頻信號而言,它是關(guān)于時(shí)間的一維信號,可以假定D是一個(gè)1×(n1×n2)的行矩陣,把D分塊成n1個(gè)1×n2處理,即:
D=[D1D2…Dn1]。
(8)
對每個(gè)小數(shù)據(jù)塊Dk(1≤k≤n1)做SVD分解,Dk可以表示為:
Dk=Uk∑kVkT=
(9)
根據(jù)人耳聽覺系統(tǒng)的掩蔽效應(yīng)可知,在短時(shí)能量高的部分藏水印可以更好地隱藏水印,且為了使數(shù)字音頻水印在受到攻擊時(shí)仍能有效提取出水印,選擇將水印嵌入到短時(shí)能量較大的區(qū)域[14]。短時(shí)能量的計(jì)算公式如下:
(10)
式中,Xk(i)表示的是第k幀音頻片段的第i個(gè)采樣點(diǎn);n為幀長。當(dāng)Ek大于設(shè)定的閾值時(shí)表示該段為水印嵌入段。首先找到在該段內(nèi)的最大值所在位置,記為m,選取長度為L1的音頻做水印嵌入,且n≥L1,并對m所在的周圍區(qū)域[p1,p2]內(nèi)一共L1個(gè)樣本點(diǎn)做嵌入操作。記q1=floor(L1/3),q2=floor(2×L1/3),floor表示向下取整數(shù),根據(jù)最大值點(diǎn)m在該音頻段中所在的位置,可以分3種情況:
(1) 若m≤q1,表示最大值m所在位置與該段音頻的起始位置相近,因此,嵌入位置設(shè)為p1=1,p2=L1。
(2) 若m≥q2,表示最大值m所在位置與該段音頻的終點(diǎn)位置相近,因此,嵌入的位置設(shè)為p1=n-L1+1,p2=n。
(3)若q1 水印嵌入的過程示意如圖1所示。載體音頻信號為A={a(t),0≤t≤L},L為音頻長度。嵌入步驟如下: (1) 對音頻信號按照水印信息的行數(shù)K1進(jìn)行均勻分段,則每段音頻An(1≤n≤K1)含有N=floor(L/K1)個(gè)數(shù)據(jù)。因此,長度為Ar=K1×N用于嵌入水印,長度為Aq=L-K1×N不做水印嵌入。 (2) 在K1個(gè)音頻段內(nèi)再分別均勻分成5段,根據(jù)式(10)計(jì)算每段音頻的短時(shí)能量,并按照由大到小的順序,取前3段音頻用作音頻嵌入幀,分別記為An,1,An,2,An,3。 (3) 根據(jù)局部最大追蹤值算法,分別確認(rèn)An,1,An,2,An,3的最佳嵌入位置[pi,1,pi,2](1≤i≤3),嵌入長度為L1。 (4)對[pi,1,pi,2]中的數(shù)據(jù)做三級小波分解,取第三級高頻小波系數(shù)cD1,根據(jù)水印長度K2進(jìn)行均勻分段,每段音頻audio(i)(1≤i≤K2)長度為L2=floor(L1/K2),按照1.2節(jié)原理對audio(i)進(jìn)行奇異值分解,得到長度為1×L2的矩陣Si和1×1的矩陣U以及L2×L2的矩陣V,根據(jù)式(11)和式(12),對Si(1,1)進(jìn)行量化處理,以此嵌入1 bit二進(jìn)制水?。?/p> (11) (12) 若奇偶性不滿足上述規(guī)則,則執(zhí)行bb=bb+1加以修改,并重構(gòu)Si(1,1)記為S′i(1,1),再根據(jù)式(13)重構(gòu)數(shù)據(jù)段: audio′(i)=US′iVT。 (13) 圖1 水印嵌入過程示意Fig.1 Schematic diagram of watermark embedding process (5) 在audio′(i)上重復(fù)執(zhí)行此操作即可完成一行水印的嵌入,并且由于在An,1,An,2,An,3上嵌入的是相同的一行水印,采用大數(shù)原則可以提高算法的魯棒性。 (6) 對嵌入水印后的小波系數(shù)進(jìn)行IDWT得到攜密音頻段A′n,重復(fù)同樣方法在An的K1段上嵌入K1行1×K2的水印數(shù)據(jù)。 (7)按順序?qū)′n進(jìn)行連接即完成了水印的嵌入。 提取的過程示意如圖2所示。 (1) 對攜密音頻A′按照嵌入時(shí)相同方法均勻分段,每段音頻記為A′n(1≤n≤K1),則一共分成了K1個(gè)段。 (2) 在K1個(gè)音頻段內(nèi)再分別均勻分成5段,根據(jù)式(10)計(jì)算每段音頻的短時(shí)能量,對這5段音頻的短時(shí)能量大小按照由大到小的順序,取前3段音頻作為水印的音頻載體幀,分別記為A′n,1,A′n,2,A′n,3。 (3) 根據(jù)局部最大追蹤值算法,分別確認(rèn)A′n,1,A′n,2,A′n,3的水印嵌入的所在位置[p′i,1,p′i,2](1≤i≤3),長度選擇為與嵌入時(shí)相同的L1。 (4) 對[pi,1,pi,2]中的數(shù)據(jù)做三級小波分解,取第三級高頻小波系數(shù)cD1再做均勻分段,cD1根據(jù)水印信息一行的長度K2對cD1進(jìn)行均勻分段,每段音頻audio(i)(1≤i≤K2)長度為L2=floor(L1/K2),按照1.2節(jié)原理對audio(i)進(jìn)行奇異值分解,得到K2個(gè)長度為1×L2的矩陣S′i。 (5)計(jì)算S′i(1,1)與量化步長a的比值,根據(jù)式(14)和式(15)即可提取出K2bit水?。?/p> (14) (15) (6)從A′n,1,A′n,2,A′n,3三者分別提出K2bit水印,再根據(jù)式(16)即可確定從A′n中提取出的K2bit水印。 (16) (7)重復(fù)上述操作,得到K1×K2的二進(jìn)制水印矩陣。 圖2 水印提取過程示意Fig.2 Schematic diagram of watermark extracting process 實(shí)驗(yàn)中,音頻載體為從新聞聯(lián)播的人聲對話中任意選取的多段人聲對話,每段音頻的時(shí)長大約在72 s左右,采樣率為44.1 kHz,量化位數(shù)為16 bit。為了更好地觀測對比原始水印和提取的水印差異,選擇用一張64 pixel×64 pixel大小的二值圖片作為水印,如圖3所示。An,1,An,2,An,3中的嵌入長度L1=4 096,量化步長a=0.20。 圖3 原始水印圖片F(xiàn)ig.3 Original watermark image 根據(jù)水印嵌入原理,仿真實(shí)驗(yàn)中,把音頻載體均勻分成了64段,并且每一段嵌入了64 bit的水印,每一段嵌入64 bit的二進(jìn)制信息,因此此時(shí)的隱藏容量為64×64 bit/72 s=56.89 b/s。 透明性主要從客觀上進(jìn)行評價(jià),客觀上是通過信噪比(Signal Noise Ratio,SNR)評判,SNR計(jì)算如式(17)所示。其中s(t)和s′(t)分別表示時(shí)域下的原始音頻和攜密音頻: 。 (17) 表1給出了不同載體下本文提出方案的SNR,并與文獻(xiàn)[11-12]提出的音頻數(shù)字水印方案的SNR做比較。根據(jù)國際唱片業(yè)聯(lián)合會(International Federation of the Phonographic Industry,IFPI)規(guī)定,攜密音頻SNR需要大于20 dB。 表1 透明性分析Tab.1 Transparency analysis 單位:dB 通過表1 的比較結(jié)果發(fā)現(xiàn),本文所提出的算法有一個(gè)較高的SNR值,與文獻(xiàn)[11]提出的基于小波熵和文獻(xiàn)[12]提出的基于能量選擇的DCT域2個(gè)算法相比也有很好的SNR,這代表在客觀上而言,水印的隱蔽性較好。 圖4顯示了原始音頻和攜密音頻在時(shí)域上的一個(gè)對比,其中載體音頻選擇的是女聲3,從攜密音頻和原始音頻之間的差值也可發(fā)現(xiàn),嵌入前后幅度并未發(fā)生較大的改變,與表1的數(shù)據(jù)結(jié)合可證明該算法具有較高的透明性。 (a) 原始音頻 為了測試實(shí)驗(yàn)算法的魯棒性,對常見的各種攻擊方式做實(shí)驗(yàn)。在主觀上可以對攻擊后提取出的水印圖片與原始水印圖片做比較,提取出的水印圖片相較于原始水印圖片越清晰,則代表算法在抵御該攻擊時(shí)具有較強(qiáng)的魯棒性。從客觀上可以計(jì)算提取水印圖片的誤碼率(Bit Error Ratio,BER)和自相關(guān)系數(shù)(Normalized Correlation,NC),BER越小,表示提取得到的水印越清晰,NC越靠近1,也表示提取得到的水印越清晰。表2給出了在各類攻擊下女聲1提取水印的BER和NC值。提取出的水印圖片如圖5所示。 表2 魯棒性分析Tab.2 Robustness analysis (a) 無攻擊 具體的攻擊操作有如下幾種: (1) 分別加入20,30 dB的高斯白噪聲。 (2) 做16 bit→8 bit→16 bit的重量化。 (3) 做44 100 Hz→22 050 Hz→44 100 Hz的重采樣。 (4) 采樣MPEG-1 layer3壓縮,攜密音頻分別以64 kb/s和128 kb/s被壓縮。 (5) 攜密音頻經(jīng)過截止頻率為8,12 kHz的低通濾波器處理。 (6) 做50 ms衰減5%和100 ms衰減10%的回聲干擾。 (7) 對攜密音頻的1 000個(gè)采樣點(diǎn)做隨機(jī)修改。 由表2和圖5中的實(shí)驗(yàn)結(jié)果可以看出,該算法在抵御各類攻擊有較強(qiáng)的魯棒性,總結(jié)如下: (1) 在無攻擊、加30 dB高斯白噪聲、重采樣、MP3壓縮、回聲干擾這幾種攻擊方式下,提取出的水印圖片都十分清晰,與原始圖片相比沒有差別,NC值都為1,BER也都等于0,表明算法對于這幾種攻擊方式有很好的魯棒性。 (2) 算法在20 dB白噪聲、重量化和8 kHz低通濾波下,提取到的圖片也較為清晰,NC值在0.98以上,BER低于1%,表明對于這幾種攻擊,算法具有較好的魯棒性。 (3) 在做4 kHz低通濾波和隨機(jī)修改,圖片在一定程度上受損,其中隨機(jī)修改NC值低于0.9,BER高于1%,造成提取效果變差的可能原因是攻擊后改變了音頻能量較大的區(qū)域,在誤判的音頻能量較大區(qū)域提取水印會導(dǎo)致提取效果變差。 為了更好說明本方案的魯棒性,表3將文獻(xiàn)[14-15]與本文算法做了對比??梢钥闯?,算法對于重采樣、MP3壓縮和低通濾波攻擊時(shí)相較于文獻(xiàn)[14]有一個(gè)更好的效果,對于加噪、重量化和回聲干擾相較于文獻(xiàn)[15]有一個(gè)更好的效果,且對于這些攻擊,誤碼率都低于2%,說明算法對于各種攻擊都呈現(xiàn)出一個(gè)較好的魯棒性。 表3 算法魯棒性對比(誤碼率%)Tab.3 Algorithm robustness comparison (BER%) 本文提出了一種基于DWT和SVD的數(shù)字音頻水印算法,算法主要利用了在局部能量較大的部分嵌入水印的思想,可以有效減少各類攻擊造成的影響。通過奇異值分解得到的奇異值的奇偶性來嵌入和提取二進(jìn)制水印。實(shí)驗(yàn)結(jié)果表明,算法有良好的透明性,對于大多數(shù)攻擊也呈現(xiàn)很好的魯棒性。但是,對攜密音頻隨機(jī)位置做修改可能會導(dǎo)致局部最大值位置發(fā)生偏移,算法的魯棒性仍有待提高。今后,將進(jìn)一步研究更為合適的水印算法,使得算法對于各類攻擊都能有出色的表現(xiàn)。2 水印的嵌入和提取
2.1 水印嵌入算法
2.2 水印提取算法
3 仿真實(shí)驗(yàn)與結(jié)果分析
3.1 隱藏容量和透明性
3.2 魯棒性
4 結(jié)束語