黃江濤 ,孫辛燁 ,馬葉靈* ,杜 萌
(1.寧波大學科學技術(shù)學院,浙江 寧波 315300;2.寧波大學 信息科學與工程學院,浙江 寧波 315211)
隨著互聯(lián)網(wǎng)和計算機技術(shù)的快速發(fā)展,數(shù)字多媒體得到了廣泛應(yīng)用.為滿足人們娛樂活動的需求,網(wǎng)上視頻越來越多,內(nèi)容也越來越豐富.然而,隨之而來的安全隱患也越來越多,例如視頻被非法篡改、下載以及復(fù)制等.如何有效地保護視頻的版權(quán)成為了一個亟待解決的問題[1-2],而數(shù)字水印技術(shù)為視頻的版權(quán)保護提供了有效途徑[3-6].
視頻水印根據(jù)變換域可分為基于空域的水印和基于頻域的水印.基于空域的視頻水印直接修改圖像的像素值來實現(xiàn)水印的嵌入[7-8].空域視頻水印計算簡單,但是較容易在圖像攻擊下丟失水印信息,魯棒性較差,主要用于篡改檢測.相比基于空域的視頻水印,基于頻域的視頻水印可以抵抗各種惡意攻擊,具有較好的魯棒性[9-10].該類算法通常首先將視頻轉(zhuǎn)換為頻域,然后通過修改頻域中的系數(shù)嵌入水印,常見的頻域變換方式有離散余弦變換(Discrete Cosine Transform,DCT)、離散小波變換(Discrete Wavelet Transform,DWT)、奇異值分解(Singular Value Decomposition,SVD)等[11-12].Nguyen等[13]提出了一種基于DCT的視頻水印算法,該算法將灰度水印分解為位平面,然后利用奇偶量化將水印嵌入到視頻幀亮度分量的DCT 低頻系數(shù).Thanh 等[14]將水印圖像嵌入到DCT 系數(shù),并利用KAZE 特征自適應(yīng)檢測嵌入和提取的水印區(qū)域.Preda 等[15]將水印嵌入到視頻幀的高頻子帶(HH)和中頻子帶(HL、LH)的小波系數(shù)中,從而實現(xiàn)水印魯棒性.此外,在此基礎(chǔ)上,Preda 等[16]通過擴頻和量化相結(jié)合,將水印嵌入DWT 中頻子帶的小波系數(shù),以提高水印魯棒性.Bhardwaj 等[17]利用原始視頻幀數(shù)、塊的大小和嵌入容量之間的關(guān)系來確定關(guān)鍵幀的幀數(shù),并對關(guān)鍵幀進行提升小波變換(Lifting Wavelet Transform,LWT),最后將水印嵌入低頻子帶(LL),從而實現(xiàn)魯棒性.相比單變換,混合變換更能夠提取視頻的主要特征,從而增強水印的魯棒性.Faragallah等[18]提出了一種基于SVD和DWT的視頻水印算法,首先將視頻幀進行DWT 變換,并將提取的HH、HL 和LH 進行SVD,最后將水印嵌入到相應(yīng)的對角矩陣.熊祥光等[19]提出了混合整數(shù)小波變換和SVD 的視頻水印算法,將水印嵌入最大奇異值.Sathya 等[20]利用場景變換檢測提取視頻的關(guān)鍵幀,進行DWT和SVD 的混合變換提取魯棒特征,并嵌入水印.除了魯棒性,鄭秋梅等[21]則提出一種均衡特征的動態(tài)視頻水印算法來提高水印的嵌入容量.
上述視頻水印算法只是將視頻當作連續(xù)的靜止圖像,并沒有考慮到視頻時域的相關(guān)性.視頻既具有多維度特點,時域間又具有強相關(guān)性,因此若只是對某一幀提取特征,則將忽略視頻幀間的強相關(guān)性,導(dǎo)致不能較好地抵抗視頻特有的攻擊,例如幀丟失、幀交換、H.264 和MPEG-2 等.Zhang等[22]提出了一種基于張量分解的視頻水印的算法,該算法將視頻看作一個三階張量,然后對視頻進行張量分解,利用奇偶量化實現(xiàn)水印的嵌入,但該算法對H.264 和MPEG-2 等攻擊魯棒性較差.
為了更好地保護視頻的版權(quán),多個連續(xù)幀將被看作高階張量.由于張量奇異值分解(Tensor-Singular Value Decomposition,T-SVD)能夠較好保留視頻幀內(nèi)的相關(guān)性和時域的相關(guān)性,本文由此提出一種結(jié)合T-SVD 的魯棒視頻水印算法,利用T-SVD 將視頻分為2 個正交張量和1 個對角張量,對圖像進行分塊,并對每塊進行T-SVD 分解,計算得到的對角張量.最后,將彩色圖像水印的對角張量嵌入到視頻的對角張量,從而實現(xiàn)水印嵌入.
1.1.1 張量的定義
隨著互聯(lián)網(wǎng)的發(fā)展,多媒體數(shù)據(jù)正朝著多維的方向發(fā)展.張量是多維數(shù)據(jù)的一種表現(xiàn)形式,它能夠存儲大量的信息.設(shè)P階張量表示為:
其中,l1,l2,…,l p∈Z代表每個維度元素的數(shù)量.采用一組矩陣表示為高階張量,例如,三階張量分為前向切片、水平切片和橫向切片,分別表示為,其中k∈ {1,2,3}.
1.1.2 張量相關(guān)操作
首先為循環(huán)矩陣的計算.當向量的第一列被指定時,該向量能夠被轉(zhuǎn)換為循環(huán)矩陣[23].設(shè)向量,則轉(zhuǎn)換的循環(huán)矩陣為:
SVD 是線性代數(shù)中一種重要的分解技術(shù),將1個二階矩陣分解成2 個正交矩陣和1 個對角矩陣.
設(shè)B∈Rm×n為圖像矩陣,進行SVD 運算,將B進行分解:
其中,U∈Rm×m和V∈Rn×n為正交矩陣,S∈Rm×n為對角矩陣,其對角線上的值為B的奇異值.
二階矩陣被認為二階張量,而高階矩陣則被認為高階張量,則需要高階奇異值分解.T-SVD 是一種比較有效的高階奇異值分解方法.以三階為例,令為三階張量,定義為:
圖1 T-SVD 結(jié)構(gòu)圖
將視頻進行T-SVD,計算得到2 個正交張量和1 個對角張量.由于對角張量的奇異值包含了視頻的主要能量,因此將其進行修改,進而嵌入魯棒水印.如圖2 所示,首先,確定選擇視頻的幀數(shù),并提取視頻幀.其次,對視頻幀分別進行DWT 變換,并提取每幀的低頻子帶(LL).然后,為保留視頻時域之間的強相關(guān)性,將每3 幀的LL 看作一個三階張量,并進行分塊.最后,對每視頻塊進行T-SVD變換,得到對角張量,并嵌入水印.水印的提取則為水印嵌入的逆過程(圖3).
圖2 水印嵌入
圖3 水印提取
設(shè)視頻的大小為M×N× 3,彩色圖像水印的大小為m×n× 3,水印的嵌入過程具體如下:
步驟1根據(jù)原始視頻幀數(shù)、塊的大小和嵌入容量之間的關(guān)系計算用于嵌入水印的視頻幀數(shù).
其中,Fs為M×N,Ws為m×n,Bs為a×b.
步驟2為了水印安全性,采用秘鑰k隨機提取RNF個視頻幀用于嵌入水印,這些視頻幀被命名為嵌入幀.提取嵌入幀的Y通道,并對Y通道進行一級DWT 變換.
步驟3提取每個嵌入幀的LL,并將每3 幀的LL 分為一組,當作一個三階張量K,其大小為(M/2) ×(N/2) × 3.
步驟4將K 分為大小為a×b× 3的不重疊塊Yj,并對每塊進行T-SVD 分解.
其中,j為每塊的索引.
步驟5將彩色水印分成大小為r×t× 3的不重疊分塊 Qj,其中a=r,b=t.
步驟6將第j塊彩色水印 Qj嵌入到 Sj中.
其中,?為嵌入強度.
步驟7對 Tj進行T-SVD 分解:
步驟8進行T-SVD 的逆變換,得到含水印的塊:
步驟9得到含水印的LL,并進行一級DWT逆變換,從而得到含水印的視頻幀.重復(fù)步驟,直至所有視頻塊被嵌入水印.
步驟1提取含水印幀的Y通道,并對Y通道進行一級DWT 變化.
步驟2提取每幀的低頻子帶LL*,并將每3 幀的LL*分為一組,當作一個三階張量 K*.
步驟3將 K*分為不重疊的塊 Y*j,大小為a×b× 3,并對每塊進行T-SVD 分解.
步驟4進行T-SVD 逆變換得到 T*j:
步驟5計算得到彩色圖像水印塊 Q*j:
步驟6將彩色圖像塊組合在一起,提取彩色圖像水印,從而確認視頻版權(quán).
使用Freman、Akiyo、Mother and Daughter 和Mobile 視頻序列對本文算法進行測試,其大小為352×288×3,共計300 幀,塊的大小為8×6×3.彩色水印Candy 和Tree 的大小為176×144×3,選擇視頻幀數(shù)為24 幀.圖4 和圖5 分別顯示了測試視頻序列和彩色水印圖像.歸一化相關(guān)系數(shù)(NC,變量名RNC)用于評估提取的原始水印與原始水印之間的相似性,即魯棒性為:
圖4 測試視頻序列
圖5 彩色水印
其中,W和W*分別為原始水印圖像大小和提取的水印圖像大小,m×n為水印圖像的大小.采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)用于評估原始視頻和含水印的視頻之間的相似性,以及檢測水印不可感知性.
彩色水印Candy 嵌入到視頻序列Freman 和Mother and Daughter,它們的PSNR 分別為38.22 dB和38.91 dB,彩色水印圖像Tree 嵌入到視頻序列Akiyo 和Mobile,它們的PSNR 分別為38.31 dB 和37.56 dB.圖6 顯示了視頻在沒有任何攻擊下提取的彩色水印,相應(yīng)的NC 值都接近于0.99.因此,顯示了算法的有效性.
圖6 從不同視頻提取的彩色水印
為證明所提出視頻水印算法的魯棒性,對視頻序列進行不同攻擊,例如椒鹽噪聲、高斯噪聲、JPEG 壓縮、濾波、幀交換等.在不同的攻擊下,提取水印的NC 值實驗結(jié)果見表1,由表中數(shù)據(jù)可見,提取水印的NC 值都高于0.8,證明水印具有較高的魯棒性,從而可以有效地保護視頻版權(quán).其主要原因是本算法采用的T-SVD 能保留視頻幀間的相關(guān)性,從而增強水印的魯棒性.
表1 不同攻擊下,彩色水印圖像嵌入到視頻序列的NC 值
為證明本文算法的魯棒性,分別與文獻[9]和文獻[20]進行比較.從表2可知,大部分本文算法提取的NC 值優(yōu)于文獻[9]和文獻[20],尤其是高斯噪聲(0.01)、平均濾波(3×3)以及平均濾波(5×5).例如,在高斯噪聲(0.01)攻擊后,提取的NC值要比文獻[9]的NC 值高0.2,并比文獻[20]的NC 值高0.1.盡管當視頻受到中值濾波(3×3)攻擊后,本文算法提取的NC 值要比文獻[9]的NC 值低0.1,但是在受到H.264 攻擊后,本算法提取的NC 值明顯高于文獻[9]和文獻[20].從表2 中還可以看出,本算法提取水印的NC 平均值要高于文獻[9]和文獻[20].因此,實驗結(jié)果證明本文算法的魯棒性優(yōu)于文獻[9]和文獻[20].
表2 受攻擊視頻序列Freman 中提取彩色水印圖像Candy 的NC 值
圖7 顯示了從受到不同攻擊的Freman 中提取的彩色水印圖像Candy.從圖可知,提取的水印圖像可全部被識別,并具有較高的NC 值.
圖7 從受攻擊視頻序列Freman 提取彩色水印圖像Candy
圖8 顯示了從受攻擊的Akiyo中提取的彩色圖像水印Tree.從圖可知,提取的水印能表明視頻的版權(quán)信息,能夠較好地保護視頻的版權(quán),該實驗進一步證明本算法的魯棒性.
圖8 從受攻擊視頻序列Akiyo 提取彩色水印圖像Tree
表3 為在Akiyo 提取的水印,當視頻受到平均濾波(5×5)攻擊下,本文算法提取的NC 值比文獻[20]高0.3.雖然在泊松噪聲和乘性噪聲攻擊后,本文算法提取的NC 值略低于文獻[9]和文獻[20],但考慮在不同攻擊下的NC 平均值,本文算法明顯高于文獻[9]和文獻[20].因此,綜合以上實驗結(jié)果,本文算法具有較高的魯棒性,也具有較好的版權(quán)保護性能.
表3 從受到攻擊視頻序列Akiyo 中提取彩色水印圖像Tree
本文提出一種基于張量奇異值分解(T-SVD)的視頻水印算法.利用視頻多維度的特點,將視頻看作一個高階張量,通過T-SVD 保留視頻幀之間的強相關(guān)性,從而保證水印的魯棒性.由于對角奇異值包含了視頻的主要能量,因此通過修改張量對角奇異值進行水印嵌入,提高了水印魯棒性.此外,為了提高水印安全性,采用秘鑰獲取視頻幀.實驗結(jié)果表明,本文算法魯棒性好于現(xiàn)有算法.然而對于平均濾波,本文算法相應(yīng)的水印提取方法仍具有一定局限性,在將來的工作還需進一步改進.