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