魯曉輝,軒 璐
(三門峽職業(yè)技術(shù)學(xué)院,河南三門峽472000)
隨著網(wǎng)絡(luò)的發(fā)展,數(shù)字水印在數(shù)字版權(quán)保護中的應(yīng)用越來越廣泛[1]。但數(shù)字水印的應(yīng)用主要是以圖像水印為主,對于視頻水印則大多是采用將圖像水印進行簡單變換后直接應(yīng)用于視頻的方法實現(xiàn)。在實際應(yīng)用中,視頻水印與圖像水印之間存在著較大的差異[2]。其中,視頻水印算法與圖像水印算法的差異主要體現(xiàn)在嵌入幀選擇和嵌入強度的不同,圖像水印算法是將水印信息分散到一張圖片的頻域或時域內(nèi),視頻水印算法則是將水印信息分散到視頻多個幀的頻域或時域內(nèi)。為方便定位,視頻水印的嵌入幀選擇一般是由幀間某種穩(wěn)定的數(shù)學(xué)關(guān)系確定的,例如:在文獻[3]中,通過將連續(xù)N幀組成一個GCF(A group of continuous available frame)的方法實現(xiàn)水印嵌入;在文獻[4]中,采用匹配兩個相鄰幀的SURF特征點的形式確認嵌入位置;在文獻[5]中,選擇不同均值曲線的交點所在幀作為嵌入幀,嵌入幀的選擇必須滿足定位準確、抗干擾能力強的要求。
算法的嵌入強度越大,水印的魯棒性越好。但是嵌入強度越大,對原始幀的改動越多,水印的不可見性將會變差。因此,算法嵌入強度的主要問題是如何在確保不可見性的前提下,盡可能地提升算法的魯棒性。
圖1 GOP結(jié)構(gòu)
MPEG-2格式的視頻由I、B、P三種類型的幀組成,畫面組GOP(Group of Picture)是MPEG-2協(xié)議的組成方式。一般情況下,一個GOP表示一組連續(xù)的畫面。GOP分為開放(open)和封閉(closed)兩種形式(見圖1)。每個GOP只包含一個I幀(即關(guān)鍵幀),能夠獨立顯示內(nèi)容。P幀為預(yù)計幀,依據(jù)前一個I幀或者P幀進行編碼。B幀為雙向幀,依據(jù)兩邊的I幀或P幀雙向預(yù)測并完成編碼。將I幀和P幀作為框架就可以確定一個GOP并進行定位。定位之后,即可在一個GOP內(nèi)嵌入多個B幀。這樣省去了添加同步碼的消耗,同時GOP內(nèi)多個B幀的嵌入能夠?qū)崿F(xiàn)嵌入冗余,提升提取準確率。
水印算法的自適應(yīng)一般是指能夠根據(jù)載體圖像特征自動調(diào)整嵌入強度,在具體應(yīng)用中,人類視覺屏蔽特性是實現(xiàn)自適應(yīng)的一個重要依據(jù)[6]。
(1)針對載體視頻或圖像來講,不同區(qū)域的亮度差異是導(dǎo)致人眼敏感度不同的一個主要因素。可以用拋物線表示灰度敏感度。中等灰度區(qū)域為拋物線的頂點,是最敏感的區(qū)域,Weber比一般為0.02。亮度嵌入強度w(x,y)的計算公式為
式中:β表示最大靈敏度;ave(x,y)表示分塊亮度均值;T1、T2表示根據(jù)載體特性預(yù)設(shè)的閾值,本文載體視頻預(yù)設(shè)值為50、90。
(2)針對載體視頻或圖像來講,人眼敏感度不同的另一個主要因素是載體分塊紋理不同。紋理復(fù)雜度可以用熵值表示。紋理平滑區(qū)域熵值較小,人眼敏感度較高,導(dǎo)致嵌入閾值較小。相反,紋理復(fù)雜區(qū)域熵值較大,人眼敏感度較低,導(dǎo)致嵌入閾值較大??梢杂肊(x,y)表示載體分塊的熵,首先將其值壓縮到[a,b]區(qū)間,則紋理閾值v(x,y)的計算公式為
分塊總閾值Γ(x,y)的計算公式為
水印嵌入后載體圖像可能會受到包括剪切攻擊在內(nèi)的多種攻擊,為了防止嵌入信息被直接讀取和破壞,有必要在嵌入前對水印進行置亂處理。目前,一般采用數(shù)值置亂和位置置亂兩種形式。本文采用了Arnold變換進行位置置亂,其計算公式為
置亂前后的水印信息如圖2所示。
圖2 置亂前后的水印圖像
水印嵌入過程如圖3所示。
圖3 水印嵌入過程
具體步驟為:
(1)利用式(4)對原始水印圖像進行預(yù)處理,置亂原有序列,得到置亂后的新水印二值序列W'(w'1,w'2,…,w'k),其中 k=m × n,m、n 分別為原始水印圖像的長和寬。
(2)對視頻進行掃描,確定每個GOP的邊界和每個GOP內(nèi)B幀的個數(shù)。
(3)對每個GOP內(nèi)的B幀按8×8分塊并進行DCT變換,選取亮度最高的分塊作為嵌入分塊。根據(jù)式(1)、式(2)、式(3)計算嵌入分塊的閾值Γ。
(4)利用嵌入分塊IDlCT(2,2)、IDlCT(3,3)的大小關(guān)系和式(5)、式(6)實現(xiàn)1 bit的信息嵌入。
(5)對下一個B幀重復(fù)步驟(3)、步驟(4),直到GOP內(nèi)的所有B幀完成信息嵌入。
(6)對所有嵌入幀進行IDCT逆運算還原B幀,重組GOP,最終還原載體視頻。
水印的提取步驟(見圖4)為:
(1)對含有嵌入信息的視頻進行掃描,確定每個GOP的邊界和每個GOP內(nèi)B幀的個數(shù)。
(2)對每個GOP內(nèi)的B幀按8×8分塊并進行DCT變換,選取亮度最高的分塊作為提取分塊。根據(jù)式(7)提取嵌入信息。
(3)重復(fù)步驟(2)直到每個GOP內(nèi)的所有B幀嵌入信息提取完畢。從所有的提取信息中,選擇數(shù)量較多的結(jié)果作為最后提取結(jié)果。
(4)按順序?qū)⒚總€GOP內(nèi)提取的結(jié)果組合成二進制序列,通過式(4)和Arnold變換實現(xiàn)水印的逆置亂,最終得到嵌入水印信息。
圖4 水印的提取步驟
為了驗證本文算法的性能,本文實施了模擬測試,測試環(huán)境為WindowsXP、Matlab7.0,視頻選擇常見的新聞、綜藝、電影等多種形式,視頻格式采用MPEG-2標準,視頻具體信息如表1所示。水印信息采用32×32的二值圖像測試水印(見圖2)。
算法的不可見性一般采用裸眼觀察和峰值信噪比(PSNR)進行判斷,其中峰值信噪比是一種量化方式,其計算公式為
式中:m、n分別為載體幀或圖像的長和寬;P表示嵌入前的圖像(幀);P*表示嵌入后的圖像(幀)。
測試結(jié)果如表2所示,其中qs表示視頻量化的比例因子。
表1 測試視頻詳細信息
表2 透明性測試數(shù)據(jù)
在表2中,不同類型的視頻PSNR值保持在40~60。一般情況下,當PSNR值大于30時算法的透明性較好。水印嵌入前后的視頻B幀截圖如圖5所示。通過圖5可以看出,水印嵌入前后截圖沒有明顯差異,證明本文的水印嵌入方法對視頻影響較小,透明性能夠滿足需要。
圖5 水印嵌入前后的B幀截圖
水印魯棒性是指水印數(shù)據(jù)嵌入圖像后經(jīng)過各種攻擊干擾,水印信息確保完整、準確的性能。一般采用提取水印與原始水印的相似度(即NC值)來判斷。為了驗證本文算法的魯棒性,本文使用幾種常見的攻擊類型進行測試,并得到測試數(shù)據(jù)(見表3)。
表3 在不同攻擊下水印提取平均成功率
通過表3的NC值可以看出,本文算法對于常見的攻擊類型NC值能夠達到0.9左右,算法魯棒性較強。
本文根據(jù)MPEG-2視頻的特征和人類視覺系統(tǒng)的特點,提出了利用GOP實現(xiàn)定位,將水印信息嵌入多個B幀并滿足水印提取準確性的視頻水印算法。與常規(guī)算法相比本文算法具有定位簡單、提取成功率高等特點,是一種優(yōu)秀的視頻水印算法。
[1] Y W,A P.Blind MPEG-2 video watermarking robust against geometric attacks:a set of approaches in DCT domain[J].IEEE transactions on image processing,2006,15(6):1536-1543.
[2] 高琦,李人厚,劉連山.基于幀間相關(guān)性的盲視頻數(shù)字水印算法[J].通信學(xué)報,2006,27(6):43-48.
[3] 魯曉輝,金淵智.基于MPEG-2的視頻水印算法[J].計算機應(yīng)用與軟件,2014(10):144-146.
[4] 楊尚躍,劉邵星,楊樹國.基于SURF視頻分割的小波視頻水印算法[J].科技信息,2014(6):70-75.
[5] 張金全,王宏霞.基于音頻內(nèi)容的DCT域脆弱水印算法[J].西南交通大學(xué)學(xué)報,2012(3):43-48.
[6] 楊恒伏,陳孝威.小波域魯棒自適應(yīng)公開水印技術(shù)[J].軟件學(xué)報,2003,14(9):1652-1660.