申金媛,胡青云,劉潤杰,張文英
(鄭州大學 信息工程學院,河南 鄭州450001)
近年來,數字產品的版權保護問題日益受到關注,數字水印技術作為一種較為有效的方法成為研究熱點,大量視頻消費產品的出現也使得視頻水印的市場需求更為迫切[1].
最新的H.264編碼標準具有優(yōu)異的壓縮性能和良好的網絡親和力[2],是目前國際上主流的視頻壓縮編碼標準,它優(yōu)異的壓縮性能對視頻水印技術來說是一個很大的挑戰(zhàn).因此,研究基于H.264的視頻水印技術具有重要的現實意義.由于H.264采用了一些與MPEG視頻不同的技術,如預測技術和4×4的整數變換量化技術,使得一些傳統(tǒng)的視頻水印算法不再適用.已提出的H.264視頻水印方法大都選擇在DCT系數中嵌入魯棒性水印,在運動向量中嵌入脆弱性水印.
文獻[3]應用Watson感知模型將4×4子塊的DCT系數的JND作為嵌入水印的DCT系數的量化參數;該算法有較好的頑健性,但提取水印時需要原始視頻確定水印的精確位置,這種非盲水印算法限制了其應用范圍;文獻[4]提出一種基于H.264的頑健視頻水印算法,該算法將水印圖像進行壓縮,之后對其二值序列進行擴頻處理,最后將水印信息嵌在DCT域的某個對角線系數中,該算法雖具有一定的頑健性,但是算法較為復雜;文獻[5]提出的算法是通過修改壓縮后CABAC碼流中的句法元素來嵌入水印的,雖然算法的復雜度較低,但穩(wěn)健性較差;文獻[6]提出了一種盲水印算法,選擇在4×4幀內預測的子塊中嵌入水印,用3個參數控制水印對視頻碼率和質量以及水印安全性的影響,較好地平衡了視頻水印的不可見性與魯棒性之間的矛盾,但是限制了水印容量的大小.
由于文獻[6]在兩個子塊中嵌入一位水印,水印容量因此受到限制.筆者在此基礎上對水印算法進行改進,綜合人類視覺特性和幀內預測的特點自適應選擇嵌入位置,利用DCT系數的特點提出一種基于H.264的盲視頻水印算法,實驗結果表明該算法在保證水印不可見性與魯棒性的同時,提高了水印嵌入容量,視頻碼率也沒有增加.
在幀內預測模式中,對于亮度像素而言,可以針對整個16×16宏塊進行(I16MB)預測,也可將其劃分成16個4×4子塊分別進行預測(I4MB).為了保證不引起嚴重的視覺質量下降,應該選擇在紋理復雜區(qū)域嵌入水印.文獻[6]將水印嵌在I4MB中,但兩個4×4子塊只嵌入一位水印,因此,限制了水印容量.筆者同樣選擇在I幀的I4MB中嵌入水印,而且每個4×4子塊嵌入一位水印,為了便于水印的隨機檢測,每個I幀中嵌入相同的水印信息,顯然只要I幀沒有被完全破壞,水印信息總是能夠被正確提取出來.
殘差塊的非零量化系數個數(the number of nonzero,NNZ)可表明殘差塊的紋理復雜性.NNZ越大的殘差塊越不平坦,紋理越復雜.如果選擇在該殘差塊嵌入水印,其對視頻質量的影響也較小.因此,統(tǒng)計殘差塊的非零量化系數個數,并設定一個閾值K,選擇在NNZ大于或等于K且DC系數為非零的子殘差塊中嵌入水印.顯然,閾值K的大小影響水印的容量,K值越大,水印容量就越小,但視頻的視覺質量就越好,反之亦然.筆者對不同視頻序列(QCIF格式)的第一個I幀的I4宏塊中閾值K與子殘差塊的個數(NNZ>=K)之間的關系進行了統(tǒng)計研究,如圖1所示,對于不同的視頻序列,依據水印容量可以選擇不同的閾值K.
圖1 I幀中閾值K與殘差子塊之間的關系Fig.1 The relationship between the threshold K and residuals in I frames
分析統(tǒng)計認為H.264的幀內編碼圖像的DCT系數分布可近似用拉普拉斯分布表示[7].
其概率密度函數為
式中:x為DCT系數,μ是Laplacian參數.如圖2所示,當DCT系數值小于某值(該值的大小與量化步長相關)時,量化之后就會變成零,因此,量化后為非零的概率為
根據Laplacian分布的特點,當概率密度函數“瘦且高”時,表明其具有較小方差,量化為零的概率較大,反之若其有較大方差,那么量化為零的概率就較小.在H.264的I幀圖像中,4×4亮度預測一共有9種預測模式,在此將這9種預測模式分成三大類[6]:垂直模式(模式 0,模式 3,模式 4,模式5,模式7);水平模式(模式1,模式6,模式8);DC模式(模式2),據此來確定子塊的預測模式.對不同預測模式下不同位置的16個系數分別進行分析研究,在確定殘差塊的幀內預測模式之后,考慮每個系數的概率密度函數,可依據其方差確定一個4×4的概率矩陣,矩陣的每個值代表了該位置的系數量化為零的概率.根據這個概率矩陣就可以選擇合適的系數進行修改以嵌入水印.
圖2 I幀DCT系數的Laplacian分布Fig.2 DCT coefficient of I frames with Laplacian distribution
依據上述原理,筆者設計出一種基于H.264壓縮域的魯棒性水印算法.
(1)水印圖像置亂.對原始二值水印圖像進行Arnold置亂處理,然后對置亂后的水印圖像進行按行或者按列掃描,映射成為一維二值序列,得到水印信息序列W.
(2)嵌入子塊的確定.在H.264視頻的I幀的I4宏塊中選擇在NNZ不小于閾值K且DC系數不為零(依據視頻序列而定)的4×4殘差塊中嵌入水印.
(3)嵌入過程.嵌入水印比特Wi=0時,如果該殘差塊的NNZ為偶數且不等于閾值K,那么就根據概率矩陣在16個量化系數中選擇一個合適的非零量化系數(該系數量化為零的概率較大)將其變成零;如果該殘差塊的NNZ為偶數且等于閾值K,那么就根據概率矩陣選擇一個合適的量化為零的系數(該系數量化為非零的概率較大)將其變成,即使該殘差塊在水印比特Wi=0時的非零量化系數個數保持為奇數.反之,嵌入水印比特Wi=1時,依據概率矩陣選擇合適的量化系數進行修改以使該殘差塊的NNZ保持為偶數,具體的嵌入公式
依據嵌入過程可設計出提取算法,該提取算法實現了盲檢測.
(1)對H.264壓縮碼流進行非完全解碼,提取I幀的4×4亮度殘差子塊的量化系數.
(2)對每個子塊的非零量化系數進行統(tǒng)計,選取NNZ不小于閾值K且DC系數不為零的子塊.
(3)根據該子塊的非零量化系數個數NNZ按如下規(guī)則提取水印序列:
在對筆者所提出的水印算法進行仿真和性能測試時,H.264編解碼模型采用H.264的官方參考軟件 JM10.1[8].視頻序列為 QCIF(176 ×144)格式的mobile和news等,視頻按照I、B、P的順序進行編碼,量化步長QP=28,嵌入的水印圖像為16×16的二值圖像,水印位數為256 bit.
圖3為嵌入水印前后視頻序列對比.由圖3可見水印嵌入前后的視頻圖像沒有明顯的區(qū)別,因此實驗表明該算法可以使嵌入水印后的視頻保持較好的主觀視覺效果.
通過計算信噪比PSNR對水印的不可見性進行評價.mobile和news兩個視頻序列的I幀在嵌入水印前后亮度分量的PSNR變化如圖4所示.嵌入水印后,雖然PSNR值有所下降,但是最多也下降在1 dB左右.水印的嵌入對不同視頻序列的影響不一樣,一般來說,當PSNR的值在30 dB以上時,人眼就不容易分辨出兩幅圖像的差別,實驗結果表明該算法可以獲得較好的不可見性效果.
圖3 嵌入水印前后視頻序列的主觀不可見性對比Fig.3 The comparing of visual imperceptibility between the original compressed and watermarked sequences
圖4 嵌入水印前后視頻序列的PSNR對比Fig.4 The comparing of PSNR between original video and watermarked sequences
視頻水印算法是依據視頻的編碼原理和特性進行的,因此,水印算法在理論上應對重壓縮有著較好的魯棒性.為了對筆者所提出的水印算法的魯棒性進行測試,將嵌入水印后的視頻序列進行重壓縮,經過重壓縮后水印比特的提取率如圖5所示.
圖5 視頻重量化后的水印提取率Fig.5 Bit extraction efficiency after re-encoding
實驗數據表明重壓縮對紋理稍微簡單一些的Carphone序列影響比較大,而紋理較為復雜的Mobile視頻序列有著比較好的抗重壓縮性能.相比于其他的某些算法,經過重壓縮后,本算法能較為正確的提取水印序列,因此具有較好的魯棒性.
視頻水印算法中,尤其是針對H.264這樣的低碼率視頻,碼率的增加是個重要的影響因素.碼率的增加與水印的嵌入容量有關,定義比特增加率 BIR[7]為
式中:BR表示嵌入水印前的比特率;BR'表示嵌入水印之后的比特率.不同序列的BIR值如表1所示,實驗結果表明,水印嵌入之后,但視頻流的碼率并沒有增加.
表1 不同序列的比特增加率(BIR)Tab.1 Bit-rate increase of different sequences
一般來說,一個好的視頻水印算法還應該同時滿足實時性要求,筆者算法是在I幀的亮度塊變換量化之后嵌入水印,而且計算復雜度低,能夠很好的滿足其實時性,I幀的嵌入水印前后的編碼時間如表2所示.
表2 水印嵌入前后I幀的編碼時間Tab.2 Coding time of I frame after watermarking
筆者算法的水印嵌入容量可以依據視頻的紋理復雜度的不同而自適應的選擇,即在考慮視頻質量的前提下依據閾值參數確定嵌入容量,實驗中的水印嵌入容量為256 bit,而文獻[6]的嵌入容量為93 bit,相比之下,在保證視頻質量的同時,該算法使得嵌入容量有了大大提高.
針對已有算法的不足,筆者提出了一種低復雜度的水印嵌入方法,通過對宏塊紋理復雜性的分析,選擇I4宏塊(4×4幀內預測)中有較多非零量化系數的4×4子塊作為嵌入區(qū)域,以提高水印的魯棒性.以DCT系數的分布特點為基礎,在不同的幀內預測模式下,利用宏塊中不同位置的DCT系數的方差確定一個概率矩陣,據此對I幀亮度子塊的量化后的DCT系數進行修改,通過改變該子塊非零量化系數個數的奇偶性來嵌入水印信息.仿真實驗結果表明,筆者算法在保證視頻水印不可見性和實時性的前提下,改善了一般視頻水印算法中的碼率的增加的問題,此外,水印的嵌入容量也有了較大提高,水印的嵌入和提取算法較為簡單,易于實現,而且水印的提取過程實現了盲檢測,因此針對H.264視頻的版權保護問題,該算法能夠得以廣泛應用.
[1]張維緯,張茹,劉建毅,等.基于紋理特征的H.264/AVC頑健視頻水印算法[J].通信學報,2012,33(3):82-89.
[2]畢厚杰,王健.新一代視頻壓縮編碼標準—H.264/AVC[M].北京:人民郵電出版社,2009.
[3]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.
[4]ZHANG Jing,ANYHONY T S H,QIU Gang,et al.Robust video watermarking of H.264/AVC[J].IEEE Transactions on Circuits and Systems,2007,54(2):205-209.
[5]DEKUN Z,JEFFREY A B.H.264 stream replacement watermarking with CABAC encoding[C].IEEE International Conference on Multimedia and Expo,2010.117-121.
[6]MANSOURI A,AZNAVEH A M,TORKAMANI F.A low complexity video watermarking in H.264 compressed domain[J].IEEE Transactions on Information Forensics and Security,2010,5(4):649-657.
[7]FAN Xiao-peng,LU Yan,GAO Wen.A novel coefficient scanning scheme for directional spatial prediction-based image compression[C].International Conference on Multimedia and Expo,2003.557-560.
[8]馬蘭,沈笑云,萬棣.Visual C++視頻/音頻編解碼技術[M].北京:人民郵電出版社,2008.
[9]XU Da-wen,WANG Rang-ding,WANG Ji-cheng.Blind digital wat-ermarking of low bit-rate advanced H.264/AVC compressed video[C].Digital watermarking,2009.96-109.
[10]NOORKAMI M,MERSEREAU R M.Compressed domain video watermarking for H.264[C].In Proc.IEEE Int.Cof.Image Pro-cessing.2005.890-893.