【摘要】以MATLAB仿真軟件為基礎(chǔ),利用MATLAB的圖形用戶界面(GUI)設(shè)計(jì)了音頻雙水印的嵌入和檢測(cè)界面。該界面由四個(gè)部分構(gòu)成:水印系統(tǒng)登陸界面、雙水印嵌入、魯棒性檢測(cè)和篡改檢測(cè)界面。各界面間存在相互鏈接,可以方便地計(jì)算出信噪比、歸一化相關(guān)系數(shù)、水印篡改評(píng)估函數(shù)等參數(shù)并顯示在文本編輯框中,同時(shí)能夠清晰的顯示音頻波形、水印圖像、水印篡改評(píng)估曲線,無(wú)需對(duì)各種攻擊進(jìn)行一一測(cè)試。實(shí)驗(yàn)證明采用仿真界面降低了雙水印檢測(cè)的復(fù)雜度,具有較強(qiáng)的演示性和可視性。
【關(guān)鍵詞】MATLAB;圖形用戶界面;雙水?。换卣{(diào)函數(shù)
1.引言
隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,多媒體作品不斷出現(xiàn)并得到廣泛傳播,其安全性也面臨著嚴(yán)峻挑戰(zhàn),如作品侵權(quán)、篡改更加方便。單水印算法只能解決音頻作品的版權(quán)問(wèn)題或內(nèi)容認(rèn)證問(wèn)題,而雙水印算法能夠同時(shí)解決這兩個(gè)問(wèn)題,主要被用到法庭上的證據(jù)錄音、重大事件新聞報(bào)道這些高價(jià)值的音頻作品中。音頻水印算法需要對(duì)算法參數(shù)選擇的合理性、效果好壞進(jìn)行反復(fù)多次的調(diào)試、驗(yàn)證,使得設(shè)計(jì)效率低,周期長(zhǎng)。MATLAB圖形用戶界面可以將數(shù)據(jù)或計(jì)算結(jié)果用圖形來(lái)表示,使數(shù)據(jù)特征或性能更直觀。
MATLAB圖形用戶界面[1]簡(jiǎn)稱為GUI(Graphic User Interface),是由窗口、光標(biāo)、按鍵、菜單、文字等圖形控制對(duì)象構(gòu)成的用戶視窗,用戶可自行添加控件,設(shè)計(jì)別具風(fēng)格的人機(jī)交互界面,以顯示各種計(jì)算信息和圖形;圖形控制對(duì)象有其對(duì)應(yīng)的回調(diào)函數(shù),利用這些界面和設(shè)計(jì)的回調(diào)函數(shù),用戶可以很輕松地完成某項(xiàng)功能。
2.音頻雙水印算法
本文采用在音頻作品中同時(shí)嵌入零水印[2]和半脆弱水印[3]的雙水印[4]方案,具有聯(lián)合防偽的功能,一方面實(shí)現(xiàn)版權(quán)保護(hù),另一方面鑒定作品是否遭篡改。零水印無(wú)需嵌入,半脆弱水印嵌入的為N×N的灰度圖像。
2.1 嵌入過(guò)程
1)將原始音頻信號(hào)進(jìn)行分段預(yù)處理,段數(shù)設(shè)為密鑰K1(K1=N);對(duì)各音頻段分別進(jìn)行三級(jí)小波包分解,得到低頻系數(shù)和中低頻系數(shù);2)提取各段低頻系數(shù)中絕對(duì)值大的K2個(gè)數(shù),通過(guò)閾值比較和logistic混沌加密生成零水印序列,同時(shí)提取各段中低頻系數(shù),再次分割為N小段,對(duì)每一小段進(jìn)行均值量化嵌入1bit水印,其中量化步長(zhǎng)為K3;3)檢測(cè)是否全部處理完,若完成利用修改后的小波包分解系數(shù)進(jìn)行重構(gòu),得到嵌入水印的音頻,發(fā)布到網(wǎng)絡(luò)上。若未完成,繼續(xù)上述操作。
2.2 雙水印提取過(guò)程
雙水印提取過(guò)程和嵌入過(guò)程很相似,不同的是嵌入過(guò)程對(duì)原始音頻進(jìn)行處理,提取過(guò)程對(duì)待檢測(cè)音頻處理。為了檢測(cè)音頻的版權(quán)保護(hù)和內(nèi)容認(rèn)證情況,引入音頻信噪比SNR、歸一化相關(guān)系數(shù)(NC)和水印篡改評(píng)估函數(shù)TAF分別來(lái)評(píng)價(jià)嵌入水印音頻和原始音頻的差別、提取的零水印和注冊(cè)水印的差別和原始音頻內(nèi)容有無(wú)篡改及篡改程度。
3.雙水印GUI界面設(shè)計(jì)
3.1 MATLAB GUI的實(shí)現(xiàn)方法
在MATLAB工具欄中單擊GUIDE按鈕,打開(kāi)“GUIDE Quick Start”對(duì)話框,選擇建立空白用戶界面選項(xiàng)(Blank GUI),彈出圖形工作窗口。在圖形工作窗口左側(cè)列出了在圖形界面中包含的控件,如Push button、Static text、Axes、Panel、Button Group、Edit Text等,可以通過(guò)屬性設(shè)置該控件的背景色、前景色、Font size、String值等。常用工具欄上有和圖形界面對(duì)應(yīng)的M文件編輯器,在生成的M文件中利用回調(diào)函數(shù)設(shè)置控件對(duì)象的屬性、行為?;卣{(diào)函數(shù)一般獲得動(dòng)作的對(duì)象句柄(handles),包括對(duì)象控件的Tag值,例如handles.axes1。
3.2 仿真界面的整體框架
根據(jù)水印算法本身的特點(diǎn),將音頻雙水印仿真界面分成四個(gè)部分:水印系統(tǒng)登陸界面、雙水印嵌入、魯棒性檢測(cè)和篡改檢測(cè),每一界面又按照?qǐng)D2步驟進(jìn)行單獨(dú)設(shè)計(jì),其中涉及音頻顯示區(qū)、水印顯示區(qū)、參數(shù)顯示區(qū)和按鈕選擇區(qū)。
3.2.1 水印系統(tǒng)登陸界面
圖3為水印算法演示系統(tǒng)的登陸界面,用鼠標(biāo)向編輯區(qū)添加控件,4個(gè)Static text,1個(gè)顯示標(biāo)題,控件屬性設(shè)置為Foreground Color紅色、String為“水印算法演示系統(tǒng)”、Font size為15,其它3個(gè)都添加到了Panel中,String分別為“設(shè)計(jì)者”、“協(xié)助者”、“日期”,F(xiàn)ont size為10;1個(gè)Axes,用來(lái)顯示圖片;1個(gè)button group,添加了2個(gè)Push button,String分別設(shè)為“進(jìn)入”和“退出”,點(diǎn)擊“進(jìn)入”按鈕可啟動(dòng)音頻雙水印嵌入過(guò)程,其回調(diào)函數(shù)中輸入下一界面名稱,“退出”按鈕可以關(guān)閉整個(gè)系統(tǒng),其回調(diào)函數(shù)中輸入close。
3.2.2 雙水印嵌入過(guò)程
在水印嵌入界面中需要添加的控件為:
3個(gè)Axes;4個(gè)Static text;5個(gè)Push button;1個(gè)Edit text。鼠標(biāo)單擊“原始音頻信號(hào)”按鈕,將在axes1中顯示其波形,m文件中代碼如下所示:
axes(handles.axes1);%選擇動(dòng)作控件axes1
plot(x);%在該控件中顯示原始音頻波形
axis([0,1.8*10^5,-0.5,0.5]);設(shè)置坐標(biāo)范圍
單擊其他按鈕在顯示窗口也將動(dòng)態(tài)顯示圖形,全部顯示的效果如圖4所示。雙水印嵌入中采用圖像為64×64的灰度圖像,原始音頻為采樣頻率44.1kHz,分辨率16bits的單聲道WAV格式數(shù)字音頻信號(hào)。
3.2.3 雙水印魯棒性檢測(cè)
雙水印魯棒性檢測(cè)主要有兩個(gè)目的:1)零水印魯棒性測(cè)試實(shí)現(xiàn)音頻的版權(quán)保護(hù);2)驗(yàn)證半脆弱水印對(duì)常規(guī)攻擊有一定的魯棒性。前者的驗(yàn)證比較簡(jiǎn)單,就不再?gòu)?qiáng)調(diào),本文通過(guò)仿真驗(yàn)證半脆弱水印的特點(diǎn)。如圖5所示,在此界面中使用了9個(gè)Axes;10個(gè)Push button;2個(gè)Static text;1個(gè)Edit text。按鈕Push button的設(shè)置和圖5中相同,可編輯文本框(Edit Text)能夠?qū)崿F(xiàn)變量的輸出,首先計(jì)算出歸一化相關(guān)系數(shù)的值,公式如文獻(xiàn)[4]所示,再用“set”函數(shù)將結(jié)果寫(xiě)入控件文本框中。數(shù)據(jù)傳遞所用語(yǔ)句為:
E3=nc;%nc為計(jì)算出的歸一化相關(guān)系數(shù)
set(handles.edit6,’string’,strvcat([num2str(E1)],[num2str(E2)],[num2str(E3)]));%將輸出的歸一化相關(guān)系數(shù)按列顯示出來(lái)
3.2.4 篡改檢測(cè)
通過(guò)圖6界面能夠完成音頻的內(nèi)容完整性認(rèn)證,顯然從圖中可以觀察出經(jīng)剪切和替換等惡意攻擊后的水印和原始音頻并確定篡改位置。在此界面中所用控件為6個(gè)Axes;5個(gè)Push button;3個(gè)Static text。單擊“上一步”彈出魯棒性檢測(cè)的界面,各個(gè)界面間都存在相互鏈接,都是通過(guò)“下一步”和“上一步”按鈕完成。圖中水印篡改評(píng)估函數(shù)計(jì)算公式在文獻(xiàn)[5]中已列出,左側(cè)圖中綠色曲線為剪切1/4各音頻段的篡改評(píng)估值變化,紅色曲線為剪切1/2的效果。右圖對(duì)應(yīng)的是經(jīng)替換攻擊音頻各段的篡改評(píng)估值變化情況,其代碼為:
axes(handles.axes6);
plot(x,T3,'.-g','LineWidth',2);%T3為計(jì)算出的篡改評(píng)估值
hold on;%保留圖形
plot(x,T4,'r','LineWidth',2);% T4為計(jì)算出的另一組篡改評(píng)估值
axis([0,64,0,100]);%設(shè)置坐標(biāo)軸范圍
set(gca,'XTick',[0:4:64]);%當(dāng)前圖中x軸的坐標(biāo)刻度
set(gca,'YTick',[0:20:100]);%當(dāng)前圖中y軸的坐標(biāo)刻度
4.結(jié)語(yǔ)
音頻雙水印是隨著多媒體的迅速發(fā)展而興起的一門(mén)新技術(shù),針對(duì)音頻作品的版權(quán)保護(hù)和內(nèi)容認(rèn)證等進(jìn)行研究,需要通過(guò)大量實(shí)驗(yàn)證明算法的可行性。本文利用MATLAB強(qiáng)大的統(tǒng)計(jì)和優(yōu)化工具箱、豐富的圖形處理函數(shù),結(jié)合MATLAB GUI技術(shù)建立了音頻雙水印的圖形界面系統(tǒng),該界面集參數(shù)設(shè)置、波形顯示、仿真測(cè)試為一體,使波形和參數(shù)一目了然,大大提高了驗(yàn)證速度,略去了對(duì)復(fù)雜代碼的查看。
參考文獻(xiàn)
[1]安樹(shù),趙霞.基于Matlab GUI的整流電路仿真設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):155-158.
[2]楊晉霞.數(shù)字音頻零水印及其應(yīng)用[D].太原:太原理工大學(xué),2010.
[3]趙紅,沈東升.基于支持向量機(jī)的半脆弱數(shù)字音頻水印算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(7):1745-1748.
[4]楊晉霞,馬朝陽(yáng),張雪英.基于小波包分析的數(shù)字音頻雙水印算法[J].計(jì)算機(jī)應(yīng)用,2010,30(5):1217-1220.
作者簡(jiǎn)介:
楊晉霞(1984—),女,河南鄭州人,碩士研究生,畢業(yè)于太原理工大學(xué),現(xiàn)供職于鄭州科技學(xué)院信息工程學(xué)院,研究方向:數(shù)字水印。
邵峰(1979—),男,河南鄭州人,碩士研究生,畢業(yè)于太原理工大學(xué),現(xiàn)供職于鄭州科技學(xué)院電氣工程學(xué)院,研究方向:智能控制與自動(dòng)化。
牛丹丹(1985—),女,河南鄭州人,碩士研究生,畢業(yè)于重慶郵電大學(xué),現(xiàn)供職于鄭州科技學(xué)院信息工程學(xué)院,研究方向:LTE協(xié)議棧。