鄭秋梅, 楊亞男, 王風華, 林 超, 曹學文
(中國石油大學(華東)a. 計算機科學與技術(shù)學院, b. 信息化建設處, c. 儲運與建筑工程學院, 山東青島266580)
互聯(lián)網(wǎng)、計算機技術(shù)的快速發(fā)展給圖像、音頻、視頻等多媒體作品帶來版權(quán)保護和認證等問題,水印技術(shù)作為知識產(chǎn)權(quán)保護和認證的一種有效方式,得到了廣泛的應用。不可見性、 魯棒性以及水印嵌入容量是數(shù)字水印相互制約、相互矛盾的3個要素[1],如何兼顧水印技術(shù)的各個方面一直是水印領域研究的熱點和難點。
近年來,國內(nèi)外學者對數(shù)字圖像水印技術(shù)的研究已日趨成熟,但視頻水印技術(shù)還處于研究階段。Shukla等[2]提取場景變化的關(guān)鍵幀,將水印嵌入在三級離散小波變換(DWT)的低頻子帶中,實驗結(jié)果表明,該方法水印不可見性好,但水印嵌入容量有待提升,并且水印嵌入位置一直固定在視頻幀的低頻子帶中,對抗各種攻擊的魯棒性還有很大的提升空間。馬婷等[3]提出一種基于非下采樣輪廓變換(NSCT)-DWT-奇異值分解(SVD)的多重數(shù)字水印算法,該算法利用NSCT對宿主圖像進行分解,然后將分解后的與原載體圖像大小相同的低頻子帶進行DWT和SVD,最后將水印信息疊加到奇異值矩陣,實驗結(jié)果表明,該算法在保證水印不可見的基礎上,對抵抗壓縮、濾波、剪切攻擊有很好的魯棒性。雖然經(jīng)過NSCT變換后獲得的所有分量均和原始圖像大小相同,但是DWT的應用使得低頻子帶大小變?yōu)樵瓐D像的1/22n(n為分解級數(shù)),制約了水印嵌入容量,并且水印嵌入位置是固定的。Ramkumar等[4]提出一種基于SVD和離散平穩(wěn)小波變換(DSWT)的視頻水印算法,將水印以加性準則嵌入到場景變換幀,DSWT的引入在確保不可見性的基礎上保證了水印容量,但是抗壓縮攻擊能力不足,并且水印嵌入位置是靜態(tài)的,魯棒性有待提升。包宋建等[5]設計一種DWT-Schur分解結(jié)合的盲視頻水印算法,實驗結(jié)果表明,該方法對抵抗噪聲攻擊和視頻攻擊具有較好的魯棒性,但水印嵌入位置是固定的。Narasimhulu等[6]利用NSCT和SVD同時分解原始視頻幀和水印圖像,利用加性準則將水印信息嵌入到原始視頻的每一幀,結(jié)果表明,該方法在一定程度上均衡了水印的不可見性和嵌入容量,但水印在每一視頻幀的嵌入位置是一樣的,當受到剪切、旋轉(zhuǎn)等攻擊時魯棒性較差。王運蘭[7]提出一種基于極限學習機的DWT域視頻水印算法,具有較好的水印不可見性,并且可有效抵抗多種攻擊,但水印嵌入容量太小,水印嵌入位置一直固定在視頻幀的五級DWT變換的低頻子帶中。上述研究在水印不可見性、魯棒性、水印嵌入容量等方面均進行了探討,但未使三者達到平衡,并且水印嵌入位置都是靜態(tài)的。
本文中綜合考慮水印不可見性、魯棒性、水印嵌入容量3個特征,提出一種均衡特征的動態(tài)視頻水印方法,應用NSCT、 離散余弦變換(DCT)以及DSWT等變換以滿足水印的不可見性和嵌入容量要求,更好地隱藏水印嵌入位置,增強水印的魯棒性。
da Cunha等[8]于2006年提出NSCT,由非下采樣金字塔濾波器(NSP)和非下采樣方向濾波器組(NSDFB) 2級濾波組成,非下采樣方向濾波器組結(jié)構(gòu)如圖1所示。NSP采用金字塔式分解來保證多尺度特性,NSDFB為NSCT提供方向性,這2組濾波器都是雙通道濾波器組,去除了上、 下采樣,確保了平移不變性,有效抵抗水印算法受平移、旋轉(zhuǎn)等攻擊的影響,并且變換獲得的所有分量均與原始圖像有相同的大小,從而可以獲得更多的水印嵌入系數(shù),保證了水印嵌入量,因此,在數(shù)字水印算法的應用中非下采樣輪廓變換不僅具有抵抗平移、旋轉(zhuǎn)等攻擊的優(yōu)勢,還保證了水印嵌入量。
圖1 非下采樣輪廓變換濾波器組結(jié)構(gòu)
DCT因具有魯棒性強、隱蔽性好的特點而廣泛應用于數(shù)字水印技術(shù)中[9]。該方法具有很強的能量壓縮和去相關(guān)能力,與數(shù)字圖像的聯(lián)合圖像專家組(JPEG)壓縮標準相適應,可以增強水印抵抗JPEG壓縮能力。式(1)給出了二維DCT的數(shù)學方程,設圖像的分辨率為N×N,則DCT定義為
(1)
DSWT為圖像處理提供了一種有效的數(shù)值解[10],近幾年在數(shù)字水印領域得到了廣泛的應用。DSWT在每個分解級別上對濾波器進行上采樣,具有良好的線性表達效果,使得信號重建后更平滑,相對于傳統(tǒng)DWT變換, DSWT抵抗噪聲、濾波攻擊更加出色。此外,由于DWT在對信號濾波后不進行下采樣,而是在每2個濾波器系數(shù)間插入0來實現(xiàn)濾波器的延展,因此所得到的近似系數(shù)和細節(jié)系數(shù)的長度與原始信號相同,從而保證了水印信息的嵌入量。若給定二維逼近圖像信號f(t),則DSWT公式為
(2)
式中:cj+1、dj+1分別為近似系數(shù)和細節(jié)系數(shù);Hj、Gj分別為第j級尺度的低通和高通濾波器組;cj為第j級尺度的近似系數(shù); *為卷積操作。
綜上所述,NSCT具有良好抗平移、旋轉(zhuǎn)等攻擊的性能,DCT具有良好的水印不可見性,并且集中了圖像的大部分能量,使水印能有效對抗壓縮攻擊,結(jié)合DSWT提高抗噪聲、濾波攻擊的能力,同時采用NSCT與DSWT以確保水印嵌入信息量,滿足水印不可見性、魯棒性和水印嵌入容量。對于視頻水印來說,水印的嵌入位置也是尤其重要的,一旦攻擊者確定水印嵌入位置,水印信息將無法保護,因此需要一種新的嵌入方法來增強水印的魯棒性。
本文中提出一種均衡特征的動態(tài)視頻水印算法,更好地隱藏水印嵌入位置,增強水印的魯棒性。在水印嵌入時,首先對視頻序列分幀,提取出關(guān)鍵幀,將關(guān)鍵幀紅綠藍(RGB)顏色空間轉(zhuǎn)換為灰度顏色空間,結(jié)合NSCT、DCT以及DSWT各自的優(yōu)良特性,對關(guān)鍵幀應用NSCT-DCT-DSWT技術(shù),得到與原圖像大小相同的低頻子帶。在低頻子帶隨機選擇水印嵌入位置,以加強水印的安全性,將同樣應用NSCT-DCT-DSWT技術(shù)的水印圖像以加性準則自適應嵌入關(guān)鍵幀低頻子帶,重構(gòu)含水印信息的低頻分量,通過DCT逆變換和NSCT逆變換得到含水印信息的關(guān)鍵幀,最后將灰度空間轉(zhuǎn)換為RGB顏色空間。該算法同時兼顧了水印不可見性、魯棒性和嵌入容量,并且水印提取為水印嵌入的逆過程。
為了增強水印的魯棒性,本文中提出隨機動態(tài)視頻水印算法。在水印嵌入過程中,在視頻幀低頻子帶上執(zhí)行基于私鑰key_bloc的偽隨機生成器(PRG), 以便定義嵌入塊(具有相同大小的水印)的隨機坐標, 使得水印嵌入在視頻幀的位置具有隨機性,有效地增加了攻擊者提取水印的難度,增強了水印的魯棒性。在提取過程中, 通過密鑰找到嵌入塊,執(zhí)行水印提取算法,具體過程如圖2所示。PRG基于“蓄水池抽樣(reservoid sampling)”算法[11],key_bloc作為密鑰保存, 沒有該密鑰將無法準確定位到水印嵌入位置,進一步加強了水印的魯棒性。
(a)嵌入過程
設原始視頻幀圖像分辨率為M, 水印圖像分辨率為W, 水印嵌入方法如圖3所示, 具體嵌入步驟如下。
步驟1視頻的幀與幀之間存在大量的信息冗余,若在每一幀都嵌入水印,不僅會導致空間復雜度增大,而且攻擊者可以通過臨近幀之間信息的累加,進一步破壞水印,使得水印的魯棒性大幅降低。本文中采用顏色直方圖差值法[12],從宿主視頻序列提取若干關(guān)鍵幀圖像,設關(guān)鍵幀數(shù)為Yk(其中k為幀編號),作為密鑰保存。
步驟2讀取關(guān)鍵幀圖像和水印圖像,將提取的關(guān)鍵幀圖像從RGB顏色空間轉(zhuǎn)換為灰度顏色空間。對灰度關(guān)鍵幀圖像和水印圖像運用3層NSCT(即為fNSCT(M,3),fNSCT(W,3)),得到1個低頻子帶(LM,LW)和8個高頻子帶(D1M,D2M,…,D8M;D1W,D2W,…,D8W),記為
[LM,[D1M,D2M,…,D8M]]=fNSCT(M,3),
[LW,[D1W,D2W,…,D8W]]=fNSCT(W,3)。
NSCT—非下采樣輪廓變換; DCT—離散余弦變換; DSWT—離散平穩(wěn)小波變換; RGB—紅綠藍。
步驟3選擇包含大量圖像能量的低頻子帶,進行DCT,得到fDCT,記
DM=fDCT(LM) ,
DW=fDCT(LW) 。
步驟4將低頻子帶DM和DW進行3級DSWT,得到fDSWT(DM,3)、fDSWT(DW,3),1個低頻子帶A和3個高頻子帶H、V、D分別記為
[MA,MH,MV,MD]=fDSWT(DM,3) ,
[WA,WH,WV,WD]=fDSWT(DW,3) 。
步驟5為了更好地隱藏水印嵌入位置,提高水印的安全性,應用2.1節(jié)中所述算法選擇嵌入塊(具有與水印相同的分辨率)的隨機坐標,key_bloc作為密鑰保存。
步驟6將低頻子帶的水印信息疊加到選定的嵌入塊低頻子帶系數(shù)中,記為
式中α為水印嵌入強度因子。
因為本文中提出的算法的水印嵌入?yún)^(qū)域是隨機選擇的,即嵌入?yún)^(qū)域的紋理特征是變化的,所以固定的嵌入強度不能適應于所有的嵌入?yún)^(qū)域?;诖?,應自適應選擇嵌入因子,使得嵌入強度隨圖像局部特征的變化而變化。本算法根據(jù)嵌入塊的噪聲可見函數(shù)fNV值[13]自適應確定出不同嵌入塊的水印嵌入因子。噪聲可見函數(shù)為
(3)
通過使用噪聲可見函數(shù),水印嵌入強度為
α=(1-fNV)β,
(4)
式中β為調(diào)節(jié)水印不可見性的參數(shù)。
步驟10將含水印的關(guān)鍵幀圖像顏色空間轉(zhuǎn)換回RGB顏色空間。
步驟11對每個關(guān)鍵幀圖像重復步驟2—10,得到所有含水印的關(guān)鍵幀圖像。最后,將宿主視頻中的關(guān)鍵幀圖像替換為相應的含水印的關(guān)鍵幀圖像,得到含水印的視頻序列。
水印提取是水印嵌入的逆過程,具體步驟如下。
步驟1根據(jù)密鑰Yk選出含有水印信息關(guān)鍵幀圖像。
步驟2將提取的含有水印信息關(guān)鍵幀圖像從RGB顏色空間轉(zhuǎn)換為灰度顏色空間。
步驟3對含水印的關(guān)鍵幀分別進行3層NSCT,得到1個低頻子帶和8個高頻子帶,記為
步驟8對步驟7得到的水印信息WA與水印嵌入步驟4中水印的高頻子帶進行DSWT逆變換,記為
DW=fIDSWT(WA,WH,WV,WD)。
步驟9將DW通過DCT逆變換對系數(shù)進行重構(gòu),記為
LW=fIDCT(DW)。
步驟10對步驟9得到的重構(gòu)系數(shù)LW連同水印嵌入算法步驟2中的高頻子帶進行非下采樣輪廓逆變換,提取出水印圖像,記為
W=fINSCT[LW,[D1W,D2W,…,D8W]]。
在水印提取時,通過密鑰Yk選出含水印的關(guān)鍵幀,并通過密鑰key_bloc找到水印嵌入位置進行水印提取,沒有這2個密鑰將無法準確定位到水印嵌入位置,也就無法提取出水印信息,進一步加強了水印的魯棒性。
本文中選用分辨率為352像素×288像素的視頻流“包工頭(Foreman)”(視頻1)和“沉默不語(Silent)”(視頻2)作為測試視頻,如圖4(a)、 (b)所示,水印圖像選用分辨率為128像素×128像素的狒狒面部灰度圖像,如圖4(c)所示。算法中的非下采樣輪廓變換的NSPFB和NSDFB濾波器類型分別為maxflat和pkva,DSWT采用Haar型小波基函數(shù)。以下將通過實驗驗證該數(shù)字水印算法的可行性和有效性。
采用峰值信噪比(PSNR)作為衡量水印透明性的評判標準[14]。通過計算嵌入水印所有關(guān)鍵幀PSNR平均值favg_PSNR,檢驗嵌入水印幀的視覺質(zhì)量。所有關(guān)鍵幀PSNR平均值為
(5)
(6)
(7)
式中:Yk為視頻序列關(guān)鍵幀的總數(shù)量;I(i,j)、I′(i,j)分別為原始視頻幀圖像和含水印的視頻幀圖像在(i,j)處的像素值;m、n為圖像行、列值。一般情況下,PSNR大于35 dB時,認為無法覺察到視頻圖像失真。經(jīng)式(6)計算,本文中提出的算法與文獻[15-19]中含水印的視頻幀平均峰值信噪比見表1。依照本文中提出的算法,對關(guān)鍵幀完成水印的嵌入與提取,嵌入水印后的視頻幀見圖5。
表1 不同算法嵌入水印的平均峰值信噪比
從表1中可以看出,文獻[15]中算法的平均峰值信噪比為50 dB左右,而本文中提出的算法嵌入水印后的平均峰值信噪比為46 dB左右,在所列方法中位居第二。雖然本文中提出算法的不可見性遜色于文獻[15]中算法的,但是也滿足了人類視覺要求,有較好的不可見性。另外,本文中提出的算法采用NSCT與DSWT變換,在同等規(guī)則下能夠在原始載體圖像中嵌入更多的水印信息量,圖像在感觀上仍未受到影響。
采用原始圖像與提取水印后圖像兩者之間的標準化互相關(guān)系數(shù)(NC)客觀評價本文中提出算法的魯棒性[20],NC值ρ的計算公式為
(8)
式中:W(i,j)、W′(i,j)分別為原始水印和提取水印圖像在(i,j)處的像素值;X、Y分別為水印圖像的寬度和高度。
從式(8)中可以看出,NC值越大,水印失真越小, 水印魯棒性越好。 圖6所示為視頻1、 2在未受
到任何攻擊下提取出的水印圖像,對應的NC值均大于0.999 0。
為了驗證本文中提出的水印算法的魯棒性,對嵌入水印的2段視頻分別進行空間域的加噪、濾波、壓縮、旋轉(zhuǎn)、剪切和時間域的幀丟失、幀置換、幀平均等攻擊,并給出相應的實驗結(jié)果。
3.2.1 空間域攻擊
表2所示為本文中提出的算法和文獻[15-19]中的算法在遭受常見空間域攻擊下提取出的水印NC值。 從表中可以看出, 本文中提出的算法在抵抗常見的空間域攻擊NC值均達大于0.98,普遍優(yōu)于文獻[15-19]中的算法。 為了獲得更直觀的效果, 給出2段視頻在遭受空間域攻擊后所提取出水印的部分結(jié)果, 如表3所示。 從表中可以看出, DSWT的引入使得本文中提出的算法抵抗各種噪聲攻擊具有很好的魯棒性; DCT具有出色的能量壓縮和去相關(guān)能力, 使得本文中提出的算法抵抗JPEG壓縮攻擊具有很好的魯棒性, 即使壓縮質(zhì)量因子降到30, 仍然能夠提取較清晰的水印圖像。 面對較難抵抗的旋轉(zhuǎn)攻擊, 本文中提出的算法在視頻1旋轉(zhuǎn)30°的NC值為0.986 0, 旋轉(zhuǎn)60°的NC值仍達到了0.984 6, 表現(xiàn)出了較好的魯棒性。 這是因為NSCT低頻子帶系數(shù)代表原元素與其鄰域系數(shù)間的關(guān)系, 經(jīng)旋轉(zhuǎn)攻擊后元素間關(guān)系改變較小, 所以遭受旋轉(zhuǎn)攻擊后性能不會下降很多。 總的來看, 無論從表2中的實驗數(shù)據(jù)還是從表3中的水印效果圖像來看, 本文中提出的算法對空間域攻擊具有很好的魯棒性。
3.2.2 時間域攻擊
為了驗證本文中提出的算法對于時間域攻擊的魯棒性,對2段嵌入水印后的視頻分別進行幀丟失、幀置換和幀平均等攻擊, 實驗結(jié)果如表4所示。 視頻序列存在很多冗余數(shù)據(jù),而本文中的水印信息是嵌入在關(guān)鍵幀的隨機塊中,每個水印圖像在視頻幀中的位置是不一樣的,刪除部分幀或者進行若干幀置換,不會顯著影響視覺效果,NC值保持在0.98以上。從表中可以看出,本文中提出的算法性能優(yōu)于文獻[15-19]中的算法性能,對時間域攻擊具有良好的魯棒性。
表2 空間域攻擊下提取水印圖像的標準化互相關(guān)系數(shù)
表3 空間域攻擊后提取的水印圖像
水印有效載荷公式為
(9)
式中N′、N分別為關(guān)鍵幀數(shù)和視頻幀總數(shù)。 表5所示為本文中提出的算法與文獻[15-19]中的算法的水印嵌入載荷的比較結(jié)果。 從表中可以看出, 在水印嵌入量方面, 本文中提出的算法明顯優(yōu)于文獻[15-19]中的算法。 NSCT、 DSWT是冗余變換,經(jīng)NSCT-DCT-DSWT變換后, 各子帶圖像與原始圖像大小一致, 可供嵌入水印的子帶系數(shù)都比小波域多。 文獻[15]中的水印圖像分辨率為128像素×128像素, 載體圖像分辨率為1 024像素×1 024像素, 水印有效載荷為0.015 6比特/像素; 文獻[16]中的水印圖像分辨率為32像素×32像素, 視頻幀分辨率為352像素×288 像素, 水印有效載荷為0.010 1比特/像素; 文獻[18]中的水印圖像分辨率是49像素×56像素,視頻幀分辨率為144像素×176像素,
表5 不同算法的水印嵌入容量比較
水印有效載荷為0.108 3比特/像素。本文中提出的算法在保證良好的水印不可見性和魯棒性的前提下,可以嵌入分辨率為128像素×128像素的灰度水印圖像,水印圖像大小是文獻[16]、 [19]中算法的16倍,水印有效載荷為0.161 6比特/像素,相比文獻[15-19]中的算法分別提升了0.146 0、 0.151 5、 0.104 1、 0.053 3、 0.099 1比特/像素,水印嵌入容量大幅度提升。
本文中提出一種均衡特征的動態(tài)視頻水印算法。 該算法結(jié)合NSCT、 DCT以及DSWT這3種變換的優(yōu)點以保證水印的不可見性、 魯棒性以及水印嵌入容量。 在水印嵌入過程中, 水印嵌入到視頻關(guān)鍵幀的隨機塊, 這種隨機嵌入方法更好地隱藏了水印嵌入位置, 從而能夠加強水印的魯棒性。 實驗結(jié)果表明, 該算法在保證水印不可見和水印嵌入量的前提下, 在抵抗空間域攻擊和時間域攻擊方面都有很好的魯棒性, 對數(shù)字產(chǎn)品的版權(quán)保護具有促進作用。