專利名稱:一種抗da/ad變換的音頻水印處理方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體信號(hào)處理領(lǐng)域,具體涉及一種基于離散小波變換的抗DA/AD變換的音頻水印處理方法。
背景技術(shù):
近幾年來,數(shù)字水印技術(shù)在許多應(yīng)用領(lǐng)域體現(xiàn)了它的重要性,并得到了廣泛的重視。目前大多數(shù)數(shù)據(jù)隱藏的研究和文獻(xiàn)集中于圖像水印。隨著數(shù)字音頻的廣泛使用,盜版行為如通過網(wǎng)絡(luò)下載、DA/AD設(shè)備偷錄等已時(shí)有發(fā)生。作為一種保護(hù)音頻知識(shí)產(chǎn)權(quán)的有效手段,數(shù)字音頻水印正在受到越來越多人的重視。
先前的音頻水印技術(shù)基本上可以被歸納為二類時(shí)域算法和頻域算法。時(shí)域算法主要有LSB方法、回聲隱藏(echo coding)等。頻域算法通過改變音頻信號(hào)的頻域系數(shù)來隱藏水印,如離散傅立葉變換(DFT),離散余弦變換(DCT)和離散小波變換(DWT)的系數(shù)。頻域技術(shù)通常具有較好的魯棒性,因而目前的音頻水印研究主要集中在頻域。以往算法主要針對在數(shù)字信道上傳輸時(shí)可能面臨的問題來設(shè)計(jì),主要考慮MP3壓縮、低通濾波等的影響,基本上不考慮音頻水印在模擬環(huán)境中可能碰到的問題。
然而,大量應(yīng)用需求希望音頻水印在模擬的環(huán)境中能夠保留下來,如通過模擬信道傳輸、防止盜版者利用模擬設(shè)備轉(zhuǎn)錄等。這些應(yīng)用都涉及到DA/AD變換,使得音頻水印的抗D/A和A/D變換成為一個(gè)急待解決的問題。目前眾多的有關(guān)音頻水印技術(shù)的文獻(xiàn)中,都沒有很好地解決這一問題。
顯然,目前還缺少確保水印在模擬環(huán)境下存在的有效方法。無論是出于對音頻版權(quán)的保護(hù)考慮、還是出于為音樂廣播監(jiān)控提供技術(shù)手段,都必須有能夠?qū)笵A/AD變換的音頻水印技術(shù)。目前的音頻水印技術(shù)已不能滿足這一要求。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提出一種抗DA/AD變換的音頻水印處理方法,同以往的音頻水印處理方法相比,不僅可以抵抗音頻在數(shù)字信道下傳輸時(shí)受到的影響,如MP3壓縮、疊加噪聲和低通濾波等,而且解決了以往算法不能解決的抗DA/AD變換的問題,為保護(hù)音頻數(shù)據(jù)的版權(quán)提供了一種可靠的手段。
本發(fā)明方法的具體技術(shù)方案如下該方法包括水印嵌入和水印檢測兩個(gè)過程;水印嵌入過程步驟如下1)將待保護(hù)的音頻根據(jù)嵌入的水印長度分為多幀,對每幀音頻進(jìn)行離散小波變換(DWT)并得到低頻子帶系數(shù),從每幀音頻的低頻小波系數(shù)中用密鑰key1選擇小波系數(shù)并分為多組,每組由三個(gè)部分組成,用于嵌入一比特信息;2)分別計(jì)算每組中三個(gè)不同部分的小波系數(shù)的絕對值和;3)通過調(diào)整每組中三個(gè)部分小波系數(shù)的的值來嵌入水印信息,每組嵌入1比特;4)重復(fù)步驟2)和3)直到水印信息全部嵌入;5)將修改后的DWT低頻系數(shù)值進(jìn)行反變換得到帶有水印的音頻;水印檢測過程如下1)與嵌入時(shí)相同,音頻分為多段,進(jìn)行相應(yīng)的DWT變換,將用同樣的密鑰key1從每段音頻中選擇出一些低頻小波系數(shù)并分為多組,每組分為三個(gè)部分;2)計(jì)算每組三個(gè)部分小波系數(shù)的模和,通過比較它們之間的關(guān)系來提取水印比特;3)重復(fù)步驟2)步直到水印信息全部提取出來。
所述水印嵌入的詳細(xì)步驟為1)同步碼為一定長度的m序列,把要嵌入的水印信息W表示為二值序列,設(shè)水印序列為W={wi},i=0,1,...k-1,k為序列長度;2)對要保護(hù)的音頻進(jìn)行分幀,進(jìn)行DWT變換得到每幀音頻的低頻小波系數(shù),利用密鑰key1獲取要嵌入水印的系數(shù);3)將這些系數(shù)等分為多個(gè)系數(shù)段,三段一組共分成多組;4)L個(gè)系數(shù)為一個(gè)系數(shù)段,一組由3L個(gè)系數(shù)組成,在每組小波系數(shù)中,分別計(jì)算三段小波系數(shù)的絕對值之和,記為E1、E2和E3,按大小排序記為Emax、Emed和Emin,令A(yù)=Emax-Emed,B=Emed-Emin,設(shè)S是嵌入強(qiáng)度,根據(jù)E1、E2和E3的大小來動(dòng)態(tài)取值,作如下約定當(dāng)S≤A-B時(shí)表示信息比特為1;當(dāng)S≤B-A時(shí)表示信息比特為0,水印比特的嵌入是通過調(diào)整小波系數(shù)來修改E1、E2和E3的值實(shí)現(xiàn)的;5)重復(fù)步驟2)、3)和4)直到水印信息全部嵌入;6)將修改后的DWT系數(shù)進(jìn)行逆DWT變換生成水印音頻;所述水印檢測的詳細(xì)步驟為1)搜索在嵌入的同步碼,計(jì)算兩個(gè)同步碼之間的音頻長度N1,將其與嵌入前已知的兩個(gè)同步碼之間用于嵌入水印信息的音頻長度N相比,得到伸縮因子,當(dāng)N=N1時(shí),表示在時(shí)域上沒有拉伸;2)當(dāng)存在拉伸時(shí),利用插值算法進(jìn)行線性伸縮恢復(fù),再進(jìn)行水印提取,如沒有拉伸,則直接對音頻進(jìn)行分幀提取水印信息;3)用與嵌入時(shí)相同的密鑰key1對每一幀中的DWT低頻系數(shù)進(jìn)行選擇,進(jìn)行分組計(jì)算水印比特;4)將提取的水印比特重新表示為最終的水印信息。
所述水印檢測步驟2)中線性伸縮恢復(fù)的具體方法如下
假設(shè)F′={f′(0),f′(1),...f′(L′-1)}為經(jīng)過D/A和A/D處理后的水印音頻,通過提取同步信號(hào)計(jì)算兩個(gè)同步信號(hào)間的音頻長度為N2′,N2為水印音頻F在變換前兩個(gè)同步信號(hào)間的已知音頻長度,當(dāng)N2′≠N2時(shí)采用公式(11)來進(jìn)行線性伸縮恢復(fù),相當(dāng)于一個(gè)插值的過程, 其中F″={f″(0),f″(1),...f″(L-1)}為線性伸縮恢復(fù)后的水印音頻,f″(i)和f′(j)分別為F″和F′的第i個(gè)和第j個(gè)樣本,0≤i≤L-1,0≤j≤L′-1, 為取整函數(shù),α=(N2′/N2)=(L′-1)/(L-1)為線性伸縮因子,L′和L分別為音頻F′和F″的長度。
本發(fā)明不僅可以有效對抗DA/AD變換對水印帶來的影響,而且對于一些常見的攻擊操作(如MP3壓縮、噪聲等)也有非常好的穩(wěn)健性。除了可以保護(hù)音頻作品在數(shù)字信道上的傳輸外,本發(fā)明可保護(hù)那些通過DA/AD設(shè)備的音頻數(shù)據(jù),也可用于音樂電臺(tái)廣告的監(jiān)測。
圖1是水印嵌入的流程框圖;圖2是水印檢測的流程框圖;圖3是三段相鄰低頻小波系數(shù)分段示意圖;圖4是音頻在DA/AD變換中的噪聲示意圖;圖5是用于測試的音頻波形圖;圖6是音頻在嵌入水印前后的波形圖;圖7是音頻在DA/AD變換后波形圖。
具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明方法作進(jìn)一步說明。
本發(fā)明一種抗DA/AD變換的音頻水印處理方法該包括水印嵌入和水印檢測兩個(gè)過程。
1.水印嵌入水印的嵌入過程如圖1所示,首先將一段長的音頻分段,每段音頻中隱藏一個(gè)同步信號(hào)和部分(或全部)水印數(shù)據(jù)。具體做法是先對每段音頻作小波分解,并將同步信號(hào)和水印轉(zhuǎn)換為{-1,1}序列,然后將{-1,1}的序列嵌入到DWT域的低頻系數(shù)中。水印嵌入時(shí)采用自適應(yīng)調(diào)節(jié)嵌入強(qiáng)度的方式來取得滿足音頻質(zhì)量前提下的最大。水印嵌入后直接在DWT域計(jì)算音頻的SNR值,如果SNR值滿足要求,則進(jìn)行小波重構(gòu)得到了嵌有水印的音頻,否則根據(jù)一定的規(guī)則(下表1)來調(diào)整嵌入強(qiáng)度,直到嵌入后的SNR值達(dá)到預(yù)先規(guī)定的要求,再進(jìn)行小波重構(gòu)得到嵌有水印的音頻。
表1
具體的嵌入方法描述如下將m序列(同步碼)和水印都轉(zhuǎn)換為“1”和“-1”的序列。并構(gòu)造序列syn(i)和wmk(i)。每幀嵌入信息{w(i)}{w(i)∈{-1,1}}的長度為m序列syn(i)與水印信息wmk(i)的長度之和。m序列放到{w(i)}的前部,水印信息放到{w(i)}的后部。隱藏?cái)?shù)據(jù)的結(jié)構(gòu)如下表2所示表2
在表2中,根據(jù)同步信號(hào)和水印信息的長度將一段長的音頻信號(hào)按表3的方式進(jìn)行分段表3
將音頻數(shù)據(jù)分段后,對數(shù)據(jù)段N1和N2作k層的小波分解,將分別得到N1/2k和N2/2k個(gè)低頻小波系數(shù),然后在N1/2k個(gè)低頻系數(shù)中嵌入同步信號(hào),在N2/2k個(gè)低頻系數(shù)中嵌入水印信息,從而完成一幀信息{w(i)}的嵌入。
音頻信號(hào)在D/A和A/D過程中會(huì)發(fā)生能量幅度的改變,嚴(yán)重影響了基于音頻信號(hào)幅度絕對量的嵌入方法的檢測率。所以,本文嵌入方法在采用基于三段相鄰低頻小波系數(shù)之間的能量關(guān)系來嵌入水印,從而避免了能量幅度改變帶來的問題。由于嵌入是在頻域進(jìn)行,具有更強(qiáng)的魯棒性。
表3中,分段的長度N1和N2分別由同步信號(hào)和水印信息的長度以及小波分解層數(shù)和嵌入強(qiáng)度決定,即N1=3L×2k×(同步碼長度) (1)N2=3L×2k×(水印信息長度)(2)其中,k是小波分解層數(shù),L為一段低頻小波系數(shù)的長度,它的選擇與嵌入帶寬、SNR和抗攻擊要求有關(guān)。假設(shè)有3L個(gè)相鄰的低頻小波系數(shù){c(i)|i=0,...3L-1},將其平均分為3段,每段長L,如圖3所示。
則有三段低頻小波系數(shù)的能量E1、E2和E3定義如下E1=Σi=0L-1|c(i)|,]]>E2=Σi=L2L-1|c(i)|,]]>E3=Σi=2L3L-1|c(i)|]]>令A(yù)=Emax-EmedB=Emed-Emin---(3)]]>其中,Emax=max{E1,E2,E3},Emed=midian{E1,E2,E3},Emin=min{E1,E2,E3}。
定義S=PLif(d·Σi=03L-1|c(i)|)/3<PLPUif(d·Σi=03L-1|c(i)|)/3>PU(d·Σi=03L-1|c(i)|)/3others---(4)]]>1)如果要嵌入的信息w(i)為“1”,則令A(yù)和B滿足A-B≥S (5)如不滿足公式(5)的關(guān)系,則同時(shí)調(diào)整Emax、Emid和Emin三者的大小。
2)如果要嵌入的信息w(i}為“-1”,則令A(yù)和B滿足B-A≥S (6)同理,如果公式(6)的關(guān)系不成立,則同時(shí)調(diào)整Emax、Emid和Emin三者的大小。
公式(4)中的d為嵌入強(qiáng)度調(diào)整因子,它決定了A和B之間差的大小,由于在D/A和A/D變換過程中有一定的波形失真,因此可以根據(jù)抗攻擊能力的要求調(diào)整d,以滿足實(shí)際的需要。同時(shí),d也是影響嵌入水印后音頻信號(hào)質(zhì)量的重要因素,應(yīng)在保證水印音頻不可覺察性(一定SNR值)的前提下盡量取大值。PU和PL分別為嵌入強(qiáng)度的上下限,決定了水印抗攻擊能力的大小。D/A和A/D變換過程中的噪聲影響十分大,采用下限PL確保水印的抗攻擊能力。PU為嵌入強(qiáng)度上限,限制因嵌入強(qiáng)度s過大時(shí)對水印音頻的影響,可以提高水印音頻的SNR值。PU和PL的選擇與音頻的強(qiáng)度、小波分解層數(shù)和分段長度L有關(guān)。音頻強(qiáng)度越大、小波分解層數(shù)越多、分段長度L越大,上下限的取值也越大。嵌入強(qiáng)度因子d、下限因子SL和上限因子SU對音頻SNR值的影響如表1所示。
2.水印檢測根據(jù)音頻水印在D/A和A/D的過程中可能受到在時(shí)間軸上的伸縮影響,在使用同步碼的同時(shí)提出了基于線性伸縮恢復(fù)的水印檢測方法。水印檢測流程如圖2所示提取水印時(shí)首先對待檢測的音頻信號(hào)進(jìn)行線性伸縮恢復(fù),再分段作相應(yīng)的小波分解,從低頻系數(shù)中搜索同步信號(hào),找到嵌入水印信息的起始位置,然后從隨后樣本的DWT低頻系數(shù)中提取水印。線性伸縮恢復(fù)需要知道原音頻的長度,以便決定伸縮恢復(fù)因子。一個(gè)可行的做法是通過搜尋兩個(gè)同步碼,根據(jù)它們之間的音頻長度和水印嵌入時(shí)的兩個(gè)同步碼間已知的原始音頻長度來計(jì)算伸縮因子,進(jìn)而進(jìn)行線性伸縮恢復(fù)。因此這一方案在水印檢測的過程中不需要原始的音頻信息,是一種盲音頻水印算法。
通過線性伸縮恢復(fù),消除了音頻在時(shí)間軸上伸縮所帶來的影響。而同步信號(hào)的引入和重定位搜索可以定位每一幀嵌入信息的開始點(diǎn),進(jìn)而提取水印。
1)線性伸縮恢復(fù)假設(shè)F′={f′(0),f′(1),...f′(L′-1)}為經(jīng)過D/A和A/D處理后的水印音頻,通過提取同步信號(hào)計(jì)算兩個(gè)同步信號(hào)間的音頻長度為N2′,N2為水印音頻F在變換前兩個(gè)同步信號(hào)間的已知音頻長度,當(dāng)N2′≠N2時(shí)采用公式(11)來進(jìn)行線性伸縮恢復(fù),相當(dāng)于一個(gè)插值的過程。
其中F″={f″(0),f″(1)...f″(L-1)}為線性伸縮恢復(fù)后的水印音頻,f″(i)和f′(j)分別為F″和F′的第i個(gè)和第j個(gè)樣本,0≤i≤L-1,0≤j≤L′-1, 為取整函數(shù),α=(N2′/N2)=(L′-1)/(L-1)為線性伸縮因子,L′和L分別為音頻F′和F″的長度。
2)檢測算法假設(shè)已經(jīng)確定了待檢測音頻的開始點(diǎn),則將按照嵌入水印時(shí)的分段規(guī)則將音頻數(shù)據(jù)分段,并做相應(yīng)層數(shù)的小波分解,得到低頻小波系數(shù)f′(i),按照同樣的長度3L計(jì)算出相應(yīng)E1′、E2′和E3′,類似水印嵌入的過程,進(jìn)一步得到Emax′、Emed′和Emin′,然后計(jì)算得A′=E′max-E′medB′=E′med-E′min---(12)]]>則有w′(i)=1ifA′-B′≥0-1ifA′-B′<0---(13)]]>下表4顯示了音頻在DA/AD變換中(5種不同的聲卡)樣本發(fā)生變換的情況。這種變化的情況與聲卡的性能、播放及錄制時(shí)的采樣率有關(guān)。
表4
下表5顯示了音頻水印在高斯噪聲、MP3壓縮、低通濾波、重量化和重采樣下的誤碼情況??梢钥闯?,本發(fā)明中的水印算法對常規(guī)信號(hào)處理是非常穩(wěn)健的。
表5
圖4中,通過播放器播放靜音通過聲卡的揚(yáng)聲器輸出,然后利用一根電纜連到聲卡的Line in接口,再通過錄音軟件錄制音頻。由于播放的是靜音,所以錄制波形反映了DA/AD變換中的噪聲情況。
圖5中,用于測試的原始音頻是一首量化精度為16、采樣頻率為44100Hz、單聲道、長度約為56秒的笛聲音樂。表示為Original.wav。
圖6中,在嵌入信息時(shí)同步信號(hào)取一周期為31的m序列,閾值T取為23,水印是一個(gè)32比特長的二進(jìn)制隨機(jī)序列。選db2小波基,小波的分解層數(shù)為7,L的長度取8。嵌入信息后的音頻表示為Water.wav。前入后SNR為20dB以上,聽覺上不能分別原始音頻和水印音頻的差別。
圖7中,通過播放器播放Water.wav通過聲卡的揚(yáng)聲器輸出,然后利用一根電纜連到聲卡的Line in接口,再通過錄音軟件錄制音頻。錄制波形反映了水印音頻在DA/AD變換后的情況??梢钥闯?,DA/AD變換后,音頻的能量整體改變了。
權(quán)利要求
1.一種抗DA/AD變換的音頻水印處理方法,其特征在于該方法包括水印嵌入和水印檢測兩個(gè)過程;水印嵌入過程步驟如下1)將待保護(hù)的音頻根據(jù)嵌入的水印長度分為多幀,對每幀音頻進(jìn)行離散小波變換(DWT)并得到低頻子帶系數(shù),從每幀音頻的低頻小波系數(shù)中用密鑰key1選擇小波系數(shù)并分為多組,每組由三個(gè)部分組成,用于嵌入一比特信息;2)分別計(jì)算每組中三個(gè)不同部分的小波系數(shù)的絕對值和;3)通過調(diào)整每組中三個(gè)部分小波系數(shù)的的值來嵌入水印信息,每組嵌入1比特;4)重復(fù)步驟2)和3)直到水印信息全部嵌入;5)將修改后的DWT低頻系數(shù)值進(jìn)行反變換得到帶有水印的音頻;水印檢測過程如下1)與嵌入時(shí)相同,音頻分為多段,進(jìn)行相應(yīng)的DWT變換,將用同樣的密鑰key1從每段音頻中選擇出一些低頻小波系數(shù)并分為多組,每組分為三個(gè)部分;2)計(jì)算每組三個(gè)部分小波系數(shù)的模和,通過比較它們之間的關(guān)系來提取水印比特;3)重復(fù)步驟2)步直到水印信息全部提取出來。
2.根據(jù)權(quán)利要求1所述的一種抗DA/AD變換的音頻水印處理方法,其特征是所述水印嵌入的詳細(xì)步驟為1)同步碼為一定長度的m序列,把要嵌入的水印信息W表示為二值序列,設(shè)水印序列為W={wi},i=0,1,…k-1,k為序列長度;2)對要保護(hù)的音頻進(jìn)行分幀,進(jìn)行DWT變換得到每幀音頻的低頻小波系數(shù),利用密鑰key1獲取要嵌入水印的系數(shù);3)將這些系數(shù)等分為多個(gè)系數(shù)段,三段一組共分成多組;4)L個(gè)系數(shù)為一個(gè)系數(shù)段,一組由3L個(gè)系數(shù)組成,在每組小波系數(shù)中,分別計(jì)算三段小波系數(shù)的絕對值之和,記為E1、E2和E3,按大小排序記為Emax、Emed和Emin,令A(yù)=Emax-Emed,B=Emed-Emin,設(shè)S是嵌入強(qiáng)度,根據(jù)E1、E2和E3的大小來動(dòng)態(tài)取值,作如下約定當(dāng)S≤A-B時(shí)表示信息比特為1;當(dāng)S≤B-A時(shí)表示信息比特為0,水印比特的嵌入是通過調(diào)整小波系數(shù)來修改E1、E2和E3的值實(shí)現(xiàn)的;5)重復(fù)步驟2)、3)和4)直到水印信息全部嵌入;6)將修改后的DWT系數(shù)進(jìn)行逆DWT變換生成水印音頻;
3.根據(jù)權(quán)利要求1或2所述的一種抗DA/AD變換的音頻水印處理方法,其特征是所述水印檢測的詳細(xì)步驟為1)搜索在嵌入的同步碼,計(jì)算兩個(gè)同步碼之間的音頻長度N1,將其與嵌入前已知的兩個(gè)同步碼之間用于嵌入水印信息的音頻長度N相比,得到伸縮因子,當(dāng)N=N1時(shí),表示在時(shí)域上沒有拉伸;2)當(dāng)存在拉伸時(shí),利用插值算法進(jìn)行線性伸縮恢復(fù),再進(jìn)行水印提取,如沒有拉伸,則直接對音頻進(jìn)行分幀提取水印信息;3)用與嵌入時(shí)相同的密鑰key1對每一幀中的DWT低頻系數(shù)進(jìn)行選擇,進(jìn)行分組計(jì)算水印比特;4)將提取的水印比特重新表示為最終的水印信息。
4.根據(jù)權(quán)利要求3所述的一種抗DA/AD變換的音頻水印技術(shù),其特征是所述水印檢測步驟2)中線性伸縮恢復(fù)的具體方法如下假設(shè)F′={f′(0),f′(1),…f′(L′-1)}為經(jīng)過D/A和A/D處理后的水印音頻,通過提取同步信號(hào)計(jì)算兩個(gè)同步信號(hào)間的音頻長度為N2′,N2為水印音頻F在變換前兩個(gè)同步信號(hào)間的已知音頻長度,當(dāng)N2′≠N2時(shí)采用公式(11)來進(jìn)行線性伸縮恢復(fù),相當(dāng)于一個(gè)插值的過程, 其中F″={f″(0),f″(1),…f″(L-1)}為線性伸縮恢復(fù)后的水印音頻,f″(i)和f′(j)分別為F″和F′的第i個(gè)和第j個(gè)樣本,0≤i≤L-1,0≤j≤L′-1,β=α·i-α·i∈
,·為取整函數(shù),α=(N2′/N2)=(L′-1)/(L-1)為線性伸縮因子,L′和L分別為音頻F′和F″的長度。
全文摘要
本發(fā)明是一種基于離散小波變換(DWT)、抗DA/AD變換的音頻水印處理方法,屬于多媒體信息安全領(lǐng)域。在本發(fā)明方法包括水印嵌入和水印檢測兩個(gè)過程;為了抵抗疊加噪聲的攻擊,水印嵌入到小波系數(shù)的低頻子帶;為了消除能量變化的影響,三段小波系數(shù)作為一組用來嵌入一個(gè)比特的水印信息,多組嵌入多比特水?。粸榱讼龝r(shí)間軸線性伸縮帶來的影響,設(shè)計(jì)了基于同步碼和插值操作的重同步技術(shù)。本發(fā)明不僅可以有效對抗DA/AD變換對水印帶來的影響,而且對于一些常見的攻擊操作(如MP3壓縮、噪聲等)也有非常好的穩(wěn)健性。除了可以保護(hù)音頻作品在數(shù)字信道上的傳輸外,本發(fā)明可保護(hù)那些通過DA/AD設(shè)備的音頻數(shù)據(jù),也可用于音樂電臺(tái)廣告的監(jiān)測。
文檔編號(hào)G10L19/00GK1889176SQ200610036499
公開日2007年1月3日 申請日期2006年7月14日 優(yōu)先權(quán)日2006年7月14日
發(fā)明者項(xiàng)世軍, 黃繼武 申請人:中山大學(xué)