姚明明,杜慶治
(昆明理工大學(xué),云南 昆明 650500)
近年來多媒體技術(shù)不斷進(jìn)步,使得各種音頻數(shù)字產(chǎn)品的傳播變得越來越便捷,隨之出現(xiàn)了一些負(fù)面影響,如盜版、侵權(quán)現(xiàn)象。因此,數(shù)字音頻的使用和傳輸面臨許多挑戰(zhàn),如安全、隱私和所有權(quán)等問題[1]。知識產(chǎn)權(quán)保護(hù)是數(shù)字音頻中尚未解決的主要問題之一,而數(shù)字音頻水印技術(shù)是解決這一問題行之有效的方法。數(shù)字音頻水印是在音頻信號中嵌入認(rèn)證信息,以證明其所有權(quán)或版權(quán)的技術(shù)[2]。一個有效的數(shù)字音頻水印方案必須滿足魯棒性、不可感知性和水印容量3個條件[3]。這3個條件相互制約,在實際的應(yīng)用場景需要進(jìn)行折中,如增加水印的嵌入容量就會使音頻的質(zhì)量下降。
數(shù)字音頻水印算法主要包括時域和變換域。時域音頻水印算法是直接在音頻信號的采樣點嵌入水印的方法,簡單且嵌入容量高,具有代表性的算法有回聲隱藏算法和最低比特位算法等。早期的音頻水印算法是在時域內(nèi)展開的,經(jīng)過實驗驗證發(fā)現(xiàn),其在抵抗音頻信號攻擊時表現(xiàn)的魯棒性不佳。后來關(guān)于音頻水印的算法主要集中在變換域上,變換域音頻水印算法比時域音頻水印算法有更好的魯棒性和不可感知性[4]。常見的變換域包括離散傅里葉變換(Discrete Fourier Transform,DFT)[5]、離散余弦變換(Discrete Cosine Transform,DCT)[6]、離散小波變換(Discrete Wavelet Transform,DWT)[7]、奇異值分解(Singular Value Decomposition,SVD)[8]和范數(shù)[9]等。文獻(xiàn)[10]提出一種基于LWT-SVD 的音頻水印算法,對信號進(jìn)行提升小波變換(Lifting Wavelet Transform,LWT)分解后,直接選取低頻分量進(jìn)行一維SVD 運算,然后通過量化非零奇異值嵌入水印。文獻(xiàn)[11]提出了一種基于DWT-SVD 的大容量音頻算法,把進(jìn)行DWT 分解后的低頻系數(shù)構(gòu)造成一個矩陣進(jìn)行SVD,然后把水印信息嵌入到奇異值矩陣的非對角線元素上,使得水印的嵌入容量得到提高。文獻(xiàn)[12]提出了一種基于LWT 的音頻水印算法,但魯棒性不佳。文獻(xiàn)[13]通過量化索引調(diào)制和SVD 將水印嵌入到二維矩陣的F-范數(shù)中。盡管這種算法有較好的不可感知性和較大的嵌入容量,但是其抵抗添加高斯白噪聲和低通濾波攻擊的魯棒性表現(xiàn)不好,且矩陣范數(shù)的計算復(fù)雜度較大。相比之下,向量范數(shù)的計算復(fù)雜度較低。
為此,本文提出一種基于范數(shù)比的LWT 域自適應(yīng)音頻水印算法,根據(jù)音頻信號的質(zhì)量最佳即信噪比取最大值為約束條件對LWT 分解后的低頻系數(shù)進(jìn)行縮放,通過量化范數(shù)比動態(tài)地在音頻信號中嵌入水印。仿真結(jié)果證明,本文算法具有有效性和可靠性。
LWT 是一種新的在時域中采用提升方法構(gòu)造小波的第二代小波算法。它對原有的小波變換算法做出改進(jìn),是一種更加快速有效的手段。
LWT 具備以下優(yōu)勢:
(1)不依賴于傅里葉變換,在時域中實現(xiàn)對雙正交小波的構(gòu)造,具有結(jié)構(gòu)化設(shè)計和自適應(yīng)構(gòu)造方面的特點;
(2)構(gòu)造方法靈活,可以用簡單的小波函數(shù),通過提升改善小波函數(shù)的特性,構(gòu)造具有期望特點的小波;
(3)算法簡單,運算速度快;
(4)占用內(nèi)存少,執(zhí)行效率高,可以分析任意長度的信號。
LWT 過程包括分解、預(yù)測和更新3 個步驟。通常,在MATLAB 中運用LWT 的主要過程如下:
(1)先用小波函數(shù)得到與之相對應(yīng)的提升小波方案;
(2)設(shè)置原始的提升步驟,把提升步驟添加到提升方案;
(3)應(yīng)用提升方案對向量進(jìn)行提升小波變換。
LWT 把信號進(jìn)行一級分解后會得到低頻分量cA1和高頻分量cD1。低頻分量cA1可以繼續(xù)進(jìn)行分解,得到低頻分量cA2和高頻分量cD2。經(jīng)過n級LWT 分解得到的低頻分量cAn的能量最大,最具有魯棒性。通常,把水印信息嵌入到經(jīng)過LWT 分解的低頻分量中。
向量范數(shù)的魯棒性可以用來嵌入水印。假設(shè)A=(a1,a2,…,an)是一個1×n的向量,σ是A的向量范數(shù),定義如下:
假設(shè)要量化的系數(shù)為f,量化步長為e,量化后的對應(yīng)系數(shù)為f′,要嵌入的水印比特為w,取值為0 或1,則量化算法嵌入水印原理如圖1 所示。
圖1 量化算法嵌入水印原理
第1 步:根據(jù)量化步長e將坐標(biāo)軸上所有區(qū)域分成A 區(qū)間集和B 區(qū)間集。其中,只要是A 區(qū)間集的坐標(biāo)都表示1,只要是B區(qū)間集的坐標(biāo)都表示0。
第2 步:對待量化系數(shù)f,按照式(3)和式(4)進(jìn)行運算:
第3 步:量化操作。
(1)當(dāng)m=0 且w=1 時,有:
(2)當(dāng)m=0 且w=0 時,有:
(3)當(dāng)m ≠0 且w=1 時,有:
水印圖像在嵌入到音頻信號之前需要經(jīng)過預(yù)處理,降低圖像像素之間的相關(guān)性,以提高水印系統(tǒng)的安全性[14]。假設(shè)水印圖像表示為W={W(i,j),1 ≤i≤M,1 ≤j≤N},其中W(i,j)∈{0,1}為水印圖像第i行、第j列的像素值,M為像素的行數(shù),N為像素的列數(shù),則對水印圖像進(jìn)行如下的預(yù)處理操作。
(1)對原始二值水印圖像W進(jìn)行K次Arnold變換,降低原始水印像素之間的相關(guān)性。
(2)對Arnold 變換后的圖像進(jìn)行Logistic 混沌序列加密。由于Arnold 變換具有周期性,在現(xiàn)有的計算條件下有可能采取窮舉法破解水印,因此對水印圖像進(jìn)行混沌加密處理。生成一個長度為M×N的Logistic 混沌序列,設(shè)定一個閾值,將序列內(nèi)所有元素都轉(zhuǎn)化為0 或1,然后與降維后的水印圖像異或運算進(jìn)行加密。Arnold 變換和Logistic 混沌序列的參數(shù)可以作為提取水印時的密鑰。只有知道密鑰,才能對水印信息正確解密。
本文提出基于范數(shù)比的LWT 域自適應(yīng)音頻水印算法,對原始音頻信號分幀后進(jìn)行LWT 分解,然后把得到的低頻系數(shù)分成兩部分分別計算范數(shù),通過量化范數(shù)比來實現(xiàn)嵌入水印的目的。根據(jù)音頻信號的質(zhì)量最優(yōu)即信噪比取最大值為約束條件,對低頻系數(shù)進(jìn)行縮放。水印嵌入過程流程如圖2 所示。
圖2 水印嵌入過程流程
水印嵌入的具體步驟如下。
第1 步:記原始音頻的采樣點數(shù)為L,把原始音頻信號分成不重合的M×N幀,這里的幀數(shù)和水印圖像的比特數(shù)保持一致,使每幀音頻信號都嵌入1 bit 水印信息,然后對每幀音頻信號進(jìn)行LWT 分解。這里的級數(shù)為3,低頻分量記為Ci(j),i代表幀數(shù),j代表低頻分量的長度,1 ≤j≤Lc,其中Lc=L/(M×N×23)。
第2 步:把低頻系數(shù)Ci(j)平均分成兩部分,第一部分表示為Ci,1(j),第二部分表示為Ci,2(j),按照 式(1)計算它們的向量范數(shù),分別表示為σi,1和σi,2。
第3 步:計算范數(shù)比ρi=σi,1/σi,2,使用1.3 節(jié)介紹的量化方法求出量化后的范數(shù)比。
第4 步:將低頻系數(shù)Ci,1(j)和Ci,2(j)分別用縮放因子α1和α2進(jìn)行縮放。這里,縮放因子α1和α2按照后面給出的步驟優(yōu)化,修改低頻系數(shù),
信噪比(Signal Noise Ratio,SNR)是用來衡量音頻信號質(zhì)量的重要指標(biāo),公式如下:
式中,S(i)代表原始音頻信號的采樣點,S′(i)代表嵌入水印后的音頻信號采樣點。
由于嵌入水印的過程中使用正交小波,因此信噪比在小波域的相關(guān)指標(biāo)可以表示為:
式中,Ci(j)和是對應(yīng)的LWT 系數(shù)。把它們用向量范數(shù){σi,1,σi,2}和縮放因子{α1,α2}表示,該性能指標(biāo)可以轉(zhuǎn)化為:
使音頻的質(zhì)量保持最優(yōu),即信噪比取最大值,這就相當(dāng)于式(11)中進(jìn)行對數(shù)運算的部分有最小值,等價于式(12)有最小值:
對式(12)求導(dǎo),有:
求得尺度因子α1和α2:
第5 步:利用縮放因子α1和α2改變低頻系數(shù)Ci,1(j)和Ci,2(j)的值,再經(jīng)過信號重構(gòu)獲得每一幀信號,最后組合成含水印的音頻信號。
水印提取過程的流程如圖3 所示。
圖3 水印提取過程流程
水印提取過程的具體步驟如下。
第1 步:將待測音頻信號分成不重合的M×N幀,對每幀音頻信號進(jìn)行3 級LWT 分解獲得低頻系數(shù),然后分成兩段分別計算向量范數(shù),分別記為。
第3 步:將提取的水印信息根據(jù)Logistic 混沌序列和Arnold 變換的參數(shù)進(jìn)行解密,得到提取出的水印圖像。
為了驗證本文算法的有效性,采用的計算機(jī)為Windows 10 操作系統(tǒng)環(huán)境,實驗仿真平臺為MATLAB 2018,對鄉(xiāng)村音樂、流行音樂和語音3 類音頻進(jìn)行測試。音頻均為wav 格式,線性PCM 編碼,采樣率為44.100 kHz,16 位單聲道,每段音頻包含1 048 576 個采樣點。提升小波方案采用haar 小波,提升步驟為{‘p’,[-0.125 0.125],0}。
選用大小為32×32 的二值圖像作為水印,內(nèi)容是一個漢字“卓”。在ASCII 碼中,表示一個漢字需要16 bit,而選用的圖像占1 024 bit,可見在增大信息冗余的角度提高了水印的魯棒性。對于水印的預(yù)處理,Arnold 變化的次數(shù)為10,生成Logistic混沌序列的μ為3.9,初始值x0為0.418。水印圖像經(jīng)過置亂和加密后的結(jié)果如圖4 所示。
從圖4 可以看出,經(jīng)過Arnold 變換和Logistic混沌加密,圖像像素之間的相關(guān)性被破壞,只有知道密鑰才能對其解密。
圖4 水印置亂及加密
3.2.1 主觀評價
通過觀察音頻信號在嵌入水印前后波形的變化,能對嵌入水印后音頻的不可感知性有一個大致認(rèn)識。圖5 是鄉(xiāng)村音樂在嵌入水印后的波形圖。從圖5 可以看出,嵌入水印后波形差別不大,說明嵌入水印后造成的影響非常小。
圖5 嵌入水印前后波形比較
3.2.2 客觀評價
信噪比(SNR)作為不可感知性的客觀評價標(biāo)準(zhǔn),國際留聲機(jī)工業(yè)聯(lián)盟要求嵌入水印后的音頻至少要達(dá)到20 dB 的信噪比。3 類音頻的信噪比如 表1 所示。
表1 不同類型音頻信號的信噪比
魯棒性用來衡量在音頻信號中添加水印后的抗攻擊能力,有相關(guān)系數(shù)(Normalized Correlation,NC)和誤碼率(Bit Error Rate,BER)兩個指標(biāo)衡量。
NC 指的是提取的水印和原始水印之間的相關(guān)程度。NC 的值越接近于1,表明二者的相關(guān)程度越高,計算公式如下:
式中,W表示原始水印,W′表示提取的水印。
BER指的是從含水印音頻中提取的水印和原始水印之間的差異程度。BER的值越接近于0,說明水印系統(tǒng)的魯棒性越好,定義如下:
為了驗證本文提出算法的魯棒性,對含水印音頻進(jìn)行如下信號處理操作。
(1)添加噪聲:在含水印音頻信號中添加信噪比為20 dB 的高斯白噪聲。
(2)低通濾波:采用巴特沃斯濾波器對含水印音頻信號進(jìn)行濾波,截止頻率為11.025 kHz。
(3)重采樣:把含水印音頻信號的原來44.100 kHz 的采樣率降為22.050 kHz,然后再恢復(fù)至44.100 kHz。
(4)重量化:將16 bit 的含水印音頻信號重新量化為8 bit,然后再恢復(fù)為16 bit。
(5)MP3 壓縮:將含水印音頻信號由wav 格式轉(zhuǎn)換成mp3 格式,再恢復(fù)至wav 格式,比特率為128 kb/s。
表2 列出了3 種類型的含水印音頻信號在遭到信號攻擊后的NC值和BER值。
表2 不同類型音頻的魯棒性
從表2 可以看出,在整個測試過程中得到的BER值都非常小,不大于0.031 3,大部分情況下接近于0,得到的NC值都不小于0.981 2,大部分情況下接近于1,說明本文算法對常見的音頻信號攻擊表現(xiàn)出良好的魯棒性。
為了進(jìn)一步說明本文算法的魯棒性,與近期的一篇相似文獻(xiàn)[10]進(jìn)行對比,選用鄉(xiāng)村音樂以及同樣的水印信息進(jìn)行實驗,對比實驗結(jié)果如表3 所示。表3 給出了本文算法提取的水印,從相對高的NC值和相對低的BER 值可以看出,本文算法的魯棒性優(yōu)于文獻(xiàn)[10]提到的算法。
表3 不同算法魯棒性比較
水印容量指單位時間的音頻信號中嵌入水印的比特數(shù),單位為比特每秒(b/s),計算公式如下:
式中:fs表示音頻信號的采樣率;L代表音頻信號的采樣點數(shù);n表示水印的像素點數(shù)。國際留聲機(jī)工業(yè)聯(lián)盟要求水印容量不小于20 b/s。在本文所提的算法中,水印容量為43.07 b/s,符合要求。
本文提出了一種基于范數(shù)比的LWT 域自適應(yīng)音頻水印算法,能夠?qū)崿F(xiàn)對水印的盲提取,選取二值圖像作為水印信息,從增大信息冗余的角度提高了水印系統(tǒng)的魯棒性。另外,通過Arnold 變換置亂和Logistic混沌序列加密提高了水印系統(tǒng)的安全性。實驗結(jié)果表明,本文算法有較好的不可感知性,達(dá)到水印嵌入容量的要求,在抵抗添加噪聲、低通濾波、重采樣、重量化和MP3 壓縮等信號攻擊時,表現(xiàn)出良好的魯棒性。