摘要:在運動矢量的基礎上提出運動速度概念,并提出一種基于運動速度的壓縮域視頻流水印算法,給出相關檢測性能分析#65377;實驗表明,該算法具有很強的魯棒性,能抵抗一些格式上的變換#65377;
關鍵詞:視頻水印; 運動矢量; 運動速度
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2007)04-0187-03
0引言
隨著高清晰度電視(HDTV)#65380;視頻點播(VOD)等多媒體技術的迅速發展,在人們可以便捷地從網上獲得自己喜歡的視頻節目的同時,視頻的非法盜版和復制也變得越來越容易了#65377;因此,數字水印這種新興數字產品版權保護技術在視頻中的應用成為近年來學術界和商業界關注的焦點#65377;
現有的視頻水印技術從嵌入策略上可以分為三類:①將水印信息直接嵌入到原始視頻圖像序列中,然后進行視頻編碼,如空域直擴方法[1]和小波域視頻對象分解方法[2]#65377;雖然這類方法可以將靜態圖像水印算法移植過來,但是經過視頻編碼處理后,會造成部分水印信息丟失,為水印的提取和檢測帶來不便,而且其運算量大#65380;效率低#65377;因此這類方法在視頻水印應用中的生命力不強#65377;②在視頻編碼器中嵌入水印#65377;如基于運動分析方法[3]#65377;這類方法一般是通過修改DCT系數,并且結合人類視覺特性,可得到較好的視頻質量和較強的水印抗攻擊能力,而且不會增加數據比特率#65377;③把水印信息嵌入到視頻壓縮碼流中#65377;其最大特點是不需要完全解碼和再編碼[4~6],提高了水印嵌入和提取的效率#65377;本文提出一種基于運動信息的第三類水印算法#65377;運動信息(如運動矢量)關系到視頻畫面的時間連續性和平滑性,是視頻壓縮重點保護對象,數據壓縮損失小,適合水印隱藏#65377;但是在視頻格式轉換這種常見的視頻處理過程中,由于編碼結構GOP中I#65380;P#65380;B幀數量及間隔的不同會導致預測的運動矢量發生較大變化#65377;如果水印信息直接嵌入到壓縮流的運動矢量中,很難抵抗格式轉換攻擊#65377;在視頻編碼過程中,要保持視頻運動畫面的時間連續性,視頻經過重新編解碼后,在相同的幀間時間間隔內,宏塊運動矢量應該基本保持不變,也就是宏塊運動速度不變#65377;因此,本文在運動速度概念的基礎上,提出了一種壓縮域視頻流水印算法#65377;這里運動速度是指運動矢量與參考幀時間間隔的比值#65377;
1速度圖概念
在基于幀編碼的MPEG2中,每幀圖像被劃分為若干個16×16大小的宏塊,運動矢量是描述幀中宏塊運動的參量#65377;在宏塊相應位置處置以宏塊運動速度而得到的圖稱為速度圖#65377;如圖1所示,方格代表宏塊,v(x,y)表示宏塊(x,y)的運動速度#65377;
2水印嵌入算法
2.1嵌入宏塊的確定
假設用N(x,y)表示宏塊(x,y)的臨近宏塊運動速度集合,N(x,y)決定(x,y)的變化#65377;為了不發生干擾,宏塊(x,y)不應包含在任何其他嵌入位置的臨近宏塊集合之內#65377;這樣,如果視頻圖像有M×N個宏塊,N(x,y)選取以(x,y)為中心的(2r+1)×(2s+1)矩形塊,那么最多可嵌入宏塊總數為
其中,符號[]表示高斯取整#65377;
如果N(x,y)選取3×3的方塊,則
水印嵌入時,既要考慮水印的魯棒性,又要顧及水印嵌入量#65377;N(x,y)的選擇是一個很重要的問題#65377;由于視頻運動的多樣性,使得速度圖中運動速度取值的分布變化情況也呈現多樣性#65377;理想的解決方法是N(x,y)的大小隨速度圖中運動速度區域變化情況呈自適應變化#65377;本文從水印容量上考慮,N(x,y)取3×3方塊的固定大小,如圖2所示#65377;
2.2嵌入規則
3水印相關檢測
3.1比特提取
求出P幀所對應的運動速度圖#65377;根據水印嵌入時所選定的N(x,y),在速度圖中水印嵌入宏塊處(x,y)作出如下判斷,得出一個三值序列:
用w′(l)和w(l)分別表示提取出的水印序列和原來嵌入的水印序列#65377;w′(l)∈{0,-1,1}#65380;w(l)∈{-1,1},序列長度為n#65377;
計算其中,∑n-1l=0w′(l)×w′(l)表示序列w′(l)中非零元素的個數#65377;
3.2水印判定
設視頻序列中P幀的數目為H個,所有的P幀依次作以上的檢測,分別得到g0,g1,…,gH-1,計算平均值:
確定一個閾值TG,如果G≥TG,判定水印存在;如果G 3.3性能分析 對于嵌入宏塊(x, y),錯誤檢測的可能有以下三種: (1)t(x,y)=1→w′(x,y)=0,表示此宏塊已嵌入了水印,但是檢測時認為沒有嵌入水印(漏檢)#65377; (2)t(x,y)=0→w′(x,y)≠0,表示此宏塊未嵌入水印,但是檢測時認為嵌入了水印(虛檢)#65377; (3)當t(x,y)=1且w′(x,y)≠0時w(x,y)=-1→w′(x,y)=1或w(x,y)=1→w′(x,y)=-1,表示此宏塊嵌入了水印,檢測時也認為有水印,但是提取的水印比特與嵌入的正好相反(錯檢)#65377; 另外,還有正確檢測的兩種類型#65377;因此可以將w′(x,y)分為五部分: 為書寫方便,將w′(l)記為如下形式: 分四種情況討論: (1)當嵌入了水印,水印沒有受到任何攻擊時,s2=s3=s4=0 (2)當沒有嵌入水印,或者嵌入的是其他密鑰產生的水印時,w′與w是互相獨立且均值為0的隨機變量#65377; s1=s3=0 s2的均值為0 s4+s5的均值為0 所以 (3)當嵌入了水印,水印受到了攻擊時 s1=s3=0 s2的均值為0 由于w′與w有一定的相關性,s4+s5的均值大于0: 性能分析說明當水印存在時,相關檢測值1≥G>0;沒有水印存在時,G=0#65377;這是在統計意義下得出的結論#65377;考慮到實際,結論如下:如果G非常接近0,說明視頻中沒有水印;否則,認為有水印#65377;具體判斷尺度需通過實驗的方法來確定#65377; 4實驗仿真 實驗選取352×288的視頻流(http://www.mpeg2.de/video/streams),長度為450幀,編碼比特率為1.5 Mbps,GOP包含15幀,I/P幀距離為3#65377;攻擊方法有格式轉換和重新編/解碼等#65377;下面給出Table Tennis#65380;Mobile Calendar#65380;Flower Garden的實驗結果#65377; 水印不可感知性測試實驗方案:對四種不同碼率的Table Tennis#65380;Mobile Calendar#65380;Flower Garden視頻嵌入水印信息,計算攜帶水印視頻解碼后生成的圖像序列平均峰值信噪比#65377;結果如表1所示#65377; 經過大量實驗發現,當嵌入了水印且以相同密鑰檢測水印時得到的G>0.1,而未嵌入水印或嵌入了水印但不是以同一密鑰檢測水印時得到的G值絕大部分小于0.01#65377;為此,確定閾值TG=0.05#65377; 水印魯棒性測試實驗方案:將攜帶水印的視頻解碼,按照編碼參數I/P frame distance /Frames in GOP=6/30進行編碼,提取水印時再將視頻按照參數I/P frame distance /Frames in GOP=3/15重新編碼,然后提取#65377;將提取出的水印與100個隨機水印(其中第50個水印為實際嵌入的水印)進行相關檢測,計算G#65377;實驗結果如圖4所示#65377;可以看出,提取的水印與實際嵌入的水印相關程度最大,也就是G最大,而且遠大于其他99水印的相關結果#65377; 格式轉換攻擊測試方案:將加入水印的MPEG2視頻轉換成AVI格式,檢測水印時再恢復成MPEG2格式,然后進行相關檢測,計算G#65377;實驗對100段視頻作了這項測試,結果是相關檢測值G>>TG,表明水印仍然能夠被檢測出來#65377;表2給出其中三段視頻的實驗結果,分別計算了未嵌入水印時和嵌入水印后并經過格式轉換攻擊兩種情況下的相關檢測值G#65377; 視頻G值條件 嵌入水印時未嵌入水印時 由于此水印算法嵌入時改變的是運動矢量,不涉及到視頻幀的具體內容,一些常用的圖像處理不影響水印的檢測,除非它引起了運動矢量很大的改變(而這樣也必然引起了視頻質量的明顯下降)#65377; 5結束語 文中提出的算法是通過改變視頻序列幀中宏塊運動速度的大小來嵌入水印#65377;由于運動矢量反映的是幀中的某種空間信息,運動速度則反映的是幀中的某種空時信息,可以認為該算法是一種基于空時的水印嵌入方案#65377; MPEG2從本質上說是一種基于分塊的運動預測與補償的視頻壓縮方案#65377;該水印算法正是針對MPEG2的這一特點提出的,它不能直接適用于基于對象的MPEG4格式的視頻#65377;但是在MPEG4中的對象紋理編碼依然是一個基于分塊的運動預測與補償#65377;所以,該水印算法經過適當修改也可用于MPEG4格式的視頻#65377; 本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。