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