張維緯,張茹,劉建毅,鈕心忻,楊義先
(1. 北京郵電大學 信息安全中心,北京 100876;2. 北京郵電大學 災備技術國家工程實驗室,北京100876;3. 信息網(wǎng)絡安全公安部重點實驗室(公安部第三研究所),上海 201204)
近年來隨著大量的視頻消費產(chǎn)品的出現(xiàn),使得視頻水印作為數(shù)字產(chǎn)品版權保護和內(nèi)容認證的市場需求更為迫切。數(shù)字視頻水印技術由于其自身的研究價值和潛在的經(jīng)濟利益而倍受關注[1]。
數(shù)字視頻水印算法很多,可以分為2大類:基于原始視頻的水印算法和基于壓縮域的視頻水印算法[2,3]。由于視頻數(shù)據(jù)量大,通常要以壓縮的形式存儲和傳輸。近年來基于壓縮域的視頻水印算法是研究的熱點,特別是針對基于MPEG-2和MPEG-4的視頻水印算法[4~6]研究較多。
作為視頻編解碼領域的最新標準,H.264的編碼效率比以往的標準有了很大的提高[7]。由于其優(yōu)異的壓縮性能將在數(shù)字電視廣播、視頻實時通信、網(wǎng)絡視頻流媒體傳遞以及多媒體短信等各個方面發(fā)揮重要作用[8]。因此,研究基于H.264為壓縮編碼標準的視頻水印技術顯得十分迫切[9]。近年有不少學者在基于 H.264的視頻水印算法方面做了研究。在已提出的基于H.264的視頻水印算法中,針對不同的應用場合,通常選擇在H.264壓縮后的碼流、運動矢量或I幀的DCT域中嵌入水印。
Zou等[10]提出通過修改壓縮后CAVLC碼流中的句法元素嵌入水印的算法。Nguyen等[11]提出一種在編碼后的碼流中MVD(motion vector difference)字段嵌入水印的算法。這類算法可以省去全部解碼和編碼的過程,從而大大減少計算量,但是這類算法穩(wěn)健性較差。針對視頻點播等實時性要求高的場合,在碼流里嵌入水印是一種比較好的解決方案。
Qiu等[12]提出了一種基于 H.264的雙水印方案。為了實現(xiàn)版權保護和內(nèi)容完整性認證的雙重目的,該方案在視頻中同時嵌入頑健水印和脆弱水印,頑健水印嵌在I幀DCT變換域的系數(shù)上,脆弱水印嵌在P幀運動矢量上。
在已存在的基于H.264的視頻頑健算法中大多將頑健水印嵌在采用幀內(nèi)預測方式的I宏塊殘余數(shù)據(jù)的 DCT系數(shù)上。Zhang等[13]提出了基于 H.264的視頻頑健水印算法,該算法將灰度水印圖像進行壓縮,然后對壓縮后的二值序列進行擴頻處理,最后將擴頻后的水印信息嵌在 DCT域的某個對角線系數(shù)上。該方案在低比特率情況下(不高于1Mbit/s)嵌入水印,水印具有一定的頑健性,但算法較復雜,水印擴頻的程度和其他一些參數(shù)需要根據(jù)實驗來確定。Noorkami等[14]提出將水印嵌在采用 4×4幀內(nèi)預測模式的I宏塊的AC系數(shù)上。其首先根據(jù)I宏塊的16個DC系數(shù)的特征產(chǎn)生一個公鑰,再與一個嵌入者提供的私鑰相結合決定該I宏塊中水印嵌入的位置。該方案具有一定的安全性,可以抵抗共謀攻擊,但算法的頑健性較差,并且根據(jù)密鑰選擇嵌入位置,也對水印的不可見性產(chǎn)生影響。他們提出的另一個算法[15]通過公式推導,把 Watson[16]感知模型應用于4×4的DCT系數(shù)塊中。并把得到的4×4DCT 系數(shù)的 JND(just noticeable difference)作為嵌入水印的 DCT系數(shù)的量化參數(shù)。該算法具有較好的頑健性,但缺陷是在解碼端提取水印時需要編碼端發(fā)送的水印位置表,不易于實際應用。Mansouri等[17]提出的算法充分考慮人眼的視覺特性,在空間上,選擇H.264編碼過程中幀內(nèi)預測編碼的4×4亮度子塊嵌入水印,這是由于4×4亮度子塊預測模式對應的是紋理塊,而16×16亮度塊預測模式對應的是平坦區(qū)域;在時間上,對當前的4×4亮度子塊根據(jù)先前對應子塊的運動矢量定義活性因子,根據(jù)這個因子判斷當前4×4亮度子塊是否是時間上運動的塊。再通過定義一個優(yōu)先矩陣用3個參數(shù)控制嵌入水印對碼率、視頻質(zhì)量的影響及增加水印的安全性。該算法從時間、空間上充分考慮水印的嵌入位置,水印的不可見性和頑健性達到較好地折中。但算法復雜,且一旦受到攻擊造成編碼模式的改變,例如幀內(nèi)預測模式由4×4變成16×16,則可能導致嵌入水印與提取水印的不同步。Kim等[9]通過實驗說明了即使在同樣條件下,重編碼也會使H.264的編碼模式和殘余DCT系數(shù)產(chǎn)生改變。
上述提出的基于 H.264/AVC的視頻頑健水印算法的不足之處如下。1)沒有充分考慮人眼的視覺特性,水印的頑健性較差。文獻[12~14]的算法是在宏塊中通過改變一個量化后的 DCT系數(shù)來達到嵌入水印的目的,雖然嵌入水印后,對視頻質(zhì)量的影響較小,但其水印頑健性較差,其原因是由于H.264采用許多先進的編碼技術,壓縮性能大大提高。如圖1所示為一個H.264/AVC編碼過程中產(chǎn)生的殘差幀。從圖1中可以看出,殘差幀大部分的像素值很小,經(jīng)過DCT變換和量化后,大部分的DCT系數(shù)為零。算法也未充分考慮人眼的視覺特性,在不同的塊中嵌入相同強度的水印信息。2)采用人眼感知模型,但計算代價高,不易于實際應用。文獻[15,17]水印頑健性較好,但算法復雜,且提取水印時需要編碼端發(fā)送水印的位置信息,否則經(jīng)攻擊后可能使嵌入的水印和提取的水印不同步,導致水印失效。針對以上算法的不足,本文提出一種基于H.264壓縮編碼標準的低復雜度視頻頑健水印算法,針對水印的頑健性較差的問題,提出在視頻數(shù)據(jù)壓縮編碼過程中利用計算復雜低的能量差將頑健水印嵌在 I幀的DCT域中,由于構造能量差的過程中有的DCT系數(shù)幅值增加,有的系數(shù)幅值減少,則對碼率的影響較??;針對由于編碼模式的改變而使提取的水印和嵌入的水印不同步的問題,提出利用人眼的視覺特性,對編碼的4×4塊進行紋理塊劃分,劃分后對每個塊嵌入不同強度的水印信息,從而實現(xiàn)水印的不可見性和經(jīng)過攻擊后編碼模式的改變依舊能較準確地提取水印。
圖1 殘差幀
Langelaar, G C.等[18]提出了一種基于MPEG或JPEG的差分能量水印(DEW, difference energy watermarking)方案。該方案提出在DCT域中有選擇性地丟棄部分高頻 DCT系數(shù)。水印信息位用相鄰 2個區(qū)域的 DCT系數(shù)的高頻系數(shù)能量之間的差值來編碼,通過迫使嵌入水印的某些8×8 DCT系數(shù)塊中的高頻系數(shù)的值為 0, 使 I幀中嵌入水印的某些DCT系數(shù)塊中的系數(shù)產(chǎn)生能量差,從而達到嵌入水印的目的。該方案算法簡單,水印的頑健性較好。本文根據(jù) H.264/AVC編碼過程中殘差幀經(jīng)過 DCT變換和量化后,大部分的 DCT系數(shù)為零的特點,采用能量差的方式嵌入水印信息。
數(shù)字水印一般需要滿足透明性、頑健性和安全性的要求。但透明性和頑健性是一對矛盾,數(shù)字水印的難點就在于如何解決此矛盾,合理地嵌入秘密信息。人眼是圖像信息的最終接受者,而人類的視覺系統(tǒng)并不是理想的,對某些噪聲不敏感,難以察覺,即存在著視覺冗余。本文利用人眼的視覺特性,對編碼中宏塊的4×4子塊進行紋理塊劃分,劃分后對每個塊嵌入不同強度的水印信息。
水印的嵌入和提取過程如圖2和圖3所示。
水印嵌到圖像載體相當于在一個強信號上添加一個弱信號。根據(jù)人眼的視覺特性[15],單獨的一個紋理很容易被發(fā)現(xiàn),但是當這個紋理被加到一幅紋理復雜的圖像時它就有可能很難被發(fā)現(xiàn)。根據(jù)人眼的這個特性,算法中把水印嵌入到視頻圖像的紋理區(qū)域。
根據(jù)Weber定律,在不同照度背景下,眼睛所能分辨出的照度差是不同的。設在均勻照度背景I上有一照度為I I+Δ的光斑,則眼睛剛能分辨出的照度差IΔ是I的函數(shù)。即在均勻背景I下,物體的可見性檢測門限為
式(1)表明,背景越亮,可見性檢測門限越高。
圖2 水印信息的嵌入
圖3 水印信息的提取
圖像塊經(jīng)過DCT變化后,其直流分量反映了圖像的概貌,也可以認為是圖像的平均灰度,所以可將直流分量看成背景照度,而將交流分量看作是在這個背景照度下變化的照度差[19]。利用這個思想將圖像塊分為紋理塊和非紋理塊。分類的準則如下:
根據(jù)這個分類原則,將Foreman序列的第一幀的亮度分量(如圖4所示)進行4×4分塊,將這些塊進行紋理塊和非紋理塊的分類。分類結果如圖 5所示,圖中背景及臉部的紋理塊能被準確定位,從圖中可以看出,大部分平坦的區(qū)域都被判定為非紋理塊。
圖4 Foreman序列第一幀亮度分量
圖5 分類結果
頑健水印的嵌入步驟如下。
step 1 將左右相鄰的2個宏塊(16×16)分成2部分(如圖6所示的A、B部分),每個部分包含16個4×4的DCT系數(shù)塊。2個宏塊嵌入1bit水印信息。
step 2 本文提出的紋理塊與非紋理塊的確定。由于H.264是對當前塊與預測塊的殘差進行4×4的整數(shù)離散余弦變換變換,因此不能直接利用殘差塊的 DCT系數(shù)來判斷該塊是否是紋理塊,而是對當前每個輸入的4×4圖像塊進行紋理塊的判斷。由于通用的離散余弦變換和整數(shù)離散余弦變換的精度差別不大[8],但整數(shù)離散余弦變換的變換運算都是整數(shù)運算,核心運算部分只是用到加法和移位,不需要乘除運算,易于硬件實現(xiàn),因此算法中采用整數(shù)離散余弦變換的技術對4×4的輸入圖像塊進行整數(shù)離散余弦變換,利用式(2)對當前塊的類別進行判別,即判別當前塊是否是紋理塊。
圖6 能量差水印
step 3 結合H.264/AVC的編碼特點,調(diào)制A、B 2部分量化后的 DCT系數(shù)(假設當嵌入的水印w= 1時,迫使A部分的局部能量大于B部分的局部能量,反之,迫使B部分的局部能量大于A部分的局部能量)。
調(diào)制B部分量化后的DCT系數(shù)(把B部分的某些系數(shù)置零):根據(jù)人眼的視覺特性,人眼對高頻分量的改變比較不敏感,而圖像經(jīng) DCT變換后,高頻分量集中在DCT系數(shù)塊經(jīng)Zigzag掃描后的后幾個系數(shù)上。但是如果只把水印信息嵌在高頻分量上,則水印的頑健性能較差。
為了盡量避免引起視頻質(zhì)量的明顯失真,先判斷輸入編碼的塊是否是紋理塊,如果是紋理塊,則把DCT系數(shù)塊的一個中頻系數(shù)(本文算法選擇DCT系數(shù)塊經(jīng)Zigzag掃描后的第5個系數(shù))置零以及經(jīng) Zigzag掃描后的最后一個系數(shù)置零;如果是非紋理塊,則把DCT系數(shù)塊經(jīng)Zigzag掃描后的最后一個系數(shù)置零。如圖 5中沒有被定位的平坦塊所示。
但預測殘差經(jīng) DCT變換和量化后,大部分的AC系數(shù)為0,但如果不改變A部分的局部能量,2部分之間產(chǎn)生的能量差也較小,因此必須再增加A部分系數(shù)的局部能量,使得局部能量差增加,從而提高水印信息的頑健性。
調(diào)制A部分量化后的DCT系數(shù):先判斷當前塊是否是紋理塊,如果是紋理塊,則把 DCT系數(shù)塊的一個中頻系數(shù)(本文算法選擇 DCT系數(shù)塊經(jīng)Zigzag掃描后的第5個系數(shù))的幅值增“1”,并把一個量化后的高頻系數(shù)的幅值也增“1”;如果是非紋理塊,則把DCT系數(shù)塊經(jīng)Zigzag掃描后的最后一個量化后的系數(shù)幅值增“1”。
step 4 使A、B 2部分量化后的DCT系數(shù)產(chǎn)生局部能量差。
4×4量化后的嵌入水印的DCT系數(shù)的局部能量為
式(3)中 x( u, v)為量化后的4×4DCT系數(shù), u, v為系數(shù)在塊中的位置(u=0,1,2,3; v=0,1,2,3)。
式(6)中D為量化后宏塊上下部分嵌入水印的DCT系數(shù)的局部能量差。
與嵌入算法類似,計算量化后嵌入水印宏塊A、B部分的 DCT系數(shù)的局部能量差D。若D≥ 0 ,w =1;若 D < 0 ,則 w = 0 。
本實驗基于H.264參考軟件模型JM12.4,實驗所用的序列為CIF(352288×)格式的Foreman, Stefan, Coastguard, Flower Garden, Container Ship, Silent,每種序列都是在幀率為15幀/s,幀數(shù)為30幀,比特率分別為768kbit/s, 512kbit/s, 396kbit/s,并按IPPPPPP…的順序進行編碼,每隔15幀編碼一個I幀,在每個I幀中嵌入水印,QP值設為28。在2個I幀中嵌入的水印比特數(shù)為396bit。
圖7和圖8分別為Foreman和Container序列在嵌入水印前后第 30幀視頻質(zhì)量的對比。從圖中可以看出,無論是Foreman序列還是Container序列,嵌入水印之后,從主觀上判斷,圖像質(zhì)量都幾乎沒有下降。這主要有2方面的原因。
圖7 Foreman測試序列嵌入水印前后的比較(碼率為768kbit/s)
圖8 Container測試序列嵌入水印前后的比較(碼率為768kbit/s)
其一是根據(jù)本文的算法,水印是根據(jù)人眼的視覺特性實現(xiàn)自適應嵌入的,即在圖像紋理塊嵌入水印的強度大一些,而在非紋理塊,嵌入的強度較小,這在一定程度上保證了水印的不可見性。
其二是因為嵌入1bit水印信息是分別通過把一個宏塊的有關系數(shù)置零(紋理塊為中高頻的 2個系數(shù)置零,非紋理塊為一個高頻系數(shù)置零),另一個宏塊的有關系數(shù)幅值增“1”(紋理塊為中高頻的2個系數(shù)幅值各增“1”,非紋理塊為一個高頻系數(shù)幅值增“1”)來實現(xiàn)的。通過大量的實驗發(fā)現(xiàn),殘差塊經(jīng)DCT變換及量化后,大部分的中高頻系數(shù)為零,所以嵌入 1bit水印信息對其中的一個塊幾乎沒影響,而另一個幅值增“1”的塊,也是在人眼較不敏感的高頻系數(shù)和紋理塊的中頻系數(shù)上增加的,也在一定程度上保證了水印不可見。
圖9的實驗結果也從客觀上證明了算法的有效性,圖9為6種測試序列在不同低碼率下PSNR值下降的平均幅度。圖9表明,嵌入水印之后,對視頻整體質(zhì)量的影響很小。本實驗中,在嵌入水印后,6種測試序列視頻亮度分量PSNR值的下降平均約為0.42dB。
圖9 6種測試序列分別在碼率為768kbit/s、512kbit/s、396kbit/s時PSNR值平均下降幅度
圖10為Foreman序列在碼率為768kbit/s時,嵌入水印對每幀圖像質(zhì)量的影響,從圖中可以看出,除了在水印嵌入的第1幀對圖像PSNR值的影響約為2dB、對第16幀的影響約為1dB,對其他幀的影響很小。
圖10 Foreman序列嵌入水印前后每幀PSNR值比較
以往基于H.264的頑健視頻水印算法[12~14]一般都是把水印信息嵌在 DCT域的某個系數(shù)上,本文算法在分析以往算法不足的基礎上把水印信息分配到多個系數(shù)上,這大大提高了水印的頑健性。
表 1為本文算法與文獻[12,13]的水印性能比較。實驗條件:測試序列采用CIF(352×288)格式的Foreman序列,在幀率為15幀/s,幀數(shù)為30幀,比特率為768kbit/s,QP=28,按IPPPPPP…順序的參數(shù)條件下進行編碼,每隔15幀編碼一個I幀,序列里共有2個I幀,在每個I幀的亮度分量中嵌入水印。
表1 本文算法和文獻[12,13]水印性能的比較
表1中的ρ為正確提取的水印比特數(shù)與所嵌入總比特數(shù)的比值,即
式(7)中,Nd表示從視頻序列中正確提取水印的比特數(shù),Ne表示嵌入水印的總比特數(shù),Nd≤Ne。ρ=1代表嵌入的水印信息全部被正確檢測出來。對于頑健水印,要求水印視頻受到各種攻擊后,仍然能較完整地提取出嵌入的水印信息,因此ρ的值越大代表水印的頑健性越強。
表1中,高斯噪聲的方差為0.001;高斯低通濾波器的窗口寬度為5×5。
從表1可知,在嵌入相同水印容量的情況下,本文算法嵌入水印后對視頻PSNR值的影響比文獻[12]高0.02dB、碼率增加0.12kbit/s、壓縮后數(shù)據(jù)量增加34bit,但本文算法水印的頑健性優(yōu)于文獻[12]。其原因在于,文獻[12]只是在一個宏塊中的子塊中的一個對角線的高頻系數(shù)上嵌入水印,而本文算法在非紋理塊上的高頻系數(shù)嵌入水印,在紋理塊中除了在高頻系數(shù)上嵌入水印,在中頻系數(shù)上也進行嵌入。從表1還可以看出,嵌入相同水印容量后,本文算法嵌入水印后對視頻PSNR值的影響比文獻[13]低0.47dB、碼率減少0.96kbit/s、壓縮后數(shù)據(jù)量減少61bit,同時本文算法水印的頑健性優(yōu)于文獻[13]。其原因在于,文獻[13]通過擴頻技術增加水印的頑健性,即首先對水印進行擴頻,再把擴頻后的水印信息嵌在殘差塊DCT域的某個對角線的中頻系數(shù)上,不論是紋理塊還是非紋理塊,嵌入水印的強度是一樣的,從實驗中發(fā)現(xiàn),在平坦區(qū)域的中頻系數(shù)上嵌入水印會使視頻質(zhì)量有較明顯降質(zhì),且該算法通過改變系數(shù)的正負值嵌入水印,所以對碼率的影響較大。本文算法充分考慮人眼的視覺特性,利用能量差嵌入水印,在保證水印不可見性的基礎上提高其頑健性。從表1中可以看出,在嵌入同樣數(shù)量的水印信息條件下,本文算法中當沒有受任何攻擊時,提取的水印信息與原始嵌入的水印信息是完全一樣的,當受到一些常見的視頻攻擊后,除了循環(huán)平均濾波,在其他形式的攻擊下,水印的頑健性均優(yōu)于文獻[12,13]。
針對已有算法的不足,本文根據(jù)人眼的視覺特性,結合H.264編碼標準的特性,通過判別當前編碼的塊是否為紋理塊,自適應修改I幀每個宏塊亮度分量量化后的交流系數(shù),使2個宏塊部分量化后的DCT系數(shù)產(chǎn)生局部能量差,達到嵌入頑健水印的目的。算法充分考慮人眼視覺特性,增加水印的不可見性,利用復雜度低的能量差嵌入水印,增加其頑健性,而且在提取端不需要水印的位置信息。實驗結果表明,嵌入頑健水印對視頻質(zhì)量的影響較小,而且能有效抵抗常見的視頻攻擊。
進一步的研究工作主要是:1)尋找視頻時域上水印的可嵌入位置,增加水印的嵌入量;2)對由于嵌入水印引起的誤差漂移進行補償,減少嵌入水印對視頻質(zhì)量的影響。
[1] DOERR G, DUGELAY J L. A guide tour of video watermarking[J].Signal Processing: Image Communication, 2003, 18(4): 263-282.
[2] HARTUNG F, GIROD B. Watermarking of uncompressed and compressed video[J]. Signal Process, 1998, 66 (3): 283-301.
[3] KOZ A, ALATAN A A. Oblivious spatio-temporal watermarking of digital video by exploiting the human visual system[J]. IEEE Trans Circuits Syst Video Technol, 2008, 18(3): 326-337.
[4] HARTUNG F, GIROD B. Digital watermarking of MPEG-2 coded video in the bitstream domain[A]. IEEE International Conference on Acoustic, Speech , and Signal Processing[C]. Munich, Germany, 1997.2621-2624.
[5] CHOI D, DO H, CHOI H, et al. A blind MPEG-2 video watermarking robust to camcorder recording[J]. Signal Processing, 2010,90(4):1327-1332.
[6] BIAN XB, ZHU QX. Video protection for MPEG-4 FGS with watermarking[J]. Multimedia Tools and Applications, 2008, 40(1):61-87.
[7] KWON SK, TAMHANKAR A, RAO KR. An overview of H.264/MPEG-4 part 10[J]. Journal of Visual Communication and Image Representation, 2003, 17(2):186-216.
[8] 畢厚杰. 新一代視頻壓縮編碼標準—H.264/AVC[M]. 北京.人民郵電出版社, 2006.BI H J. A New Generation of Video Compression Coding Standard-H.264/AVC[M]. Beijing: Post Telecom Press, 2006.
[9] KIM DW, CHOI YG, KIM HS, et al. The problems in digital watermarking into intra-frames of H.264/AVC[J]. Image and Vision Computing, 2010, 28(8): 1220-1228.
[10] ZOU D, JEFFREY A BLOOM. H.264 stream replacement watermarking with CABAC encoding[A]. IEEE International Conference on Multimedia and Expo [C]. Singapore, 2010.117-121.
[11] NGUYEN C, TAY D.B.H, GUANG DENG. A fast watermarking system for H.264/AVC video[A]. IEEE Asia Pacific Conference on Circuits and Systems[C]. 2006.81-84.
[12] QIU G, MARZILIANO P, HO A T S, et al. A hybrid watermarking scheme for H.264/AVC video[A]. Proceedings of the 17th International Conference on Pattern Recognition[C]. Cambridge, UK, 2004.865-868.
[13] ZHANG J, HO ATS, QIU G, et al. Robust video watermarking of H.264/AVC[J]. IEEE Transactions on Circuits and Systems, 2007.205-209.
[14] NOORKAMI M, MERSEREAU R M. Compressed-domain video watermarking for H.264[A]. 2005 International Conference on Image Processing(ICIP)[C]. 2005.1229-1232.
[15] NOORKAMI M, MERSEREAU R M. A framework for robust watermarking of H.264-encoded video with controllable detection performance[J]. IEEE Transactions on Information Forensics and Security, 2007, 2(1):14-23.
[16] WATSON A B. DCT quantization matrices visually optimized for individual images[A]. Proceedings of the SPIE: Human Vision,Visual Processing and Digital Display IV[C]. San Jose, 1993.202-216.
[17] MANSOURI A, AZNAVEH A M, TORKAMANI-AZAR F, et al. A low complexity video watermarking in H.264 compressed domain[J]. IEEE Transactions on Information Forensics and Security, 2010, 5(4):649-657.
[18] LANGELAARG C, LAGENDIJK R R. Optimal differential energy watermarking of DCT encoded images and video[J]. IEEE Transactions on Image Processing, 2001, 10(1): 148 -158.
[19] 馮林, 李彥君, 邵剛等. 利用人眼視覺系統(tǒng)理論實現(xiàn) DCT域快速分形編碼[J]. 計算機輔助設計與圖形學學報, 2005, 17(1): 67-73.FENG L, LI Y J, SHAO G, et al. A fast fractal image coding method using the characteristics of human vision system in DCT domain[J]. Journal of Computer-aided Design & Computer Graphics, 2005, 17(1): 67-73.