專利名稱:一種基于h.264/avc視頻信息內(nèi)容認證的脆弱性水印方法
技術領域:
本發(fā)明涉及一種多媒體信號處理技術,尤其是涉及一種基于H. 264/AVC視頻信息 內(nèi)容認證的脆弱性水印方法。
背景技術:
隨著多媒體網(wǎng)絡技術的飛速發(fā)展,數(shù)字多媒體信息,特別是視頻信息的交流已經(jīng) 達到前所未有的程度。然而,視頻信息內(nèi)容在傳輸過程中極易遭受各種無意或有意的篡改 攻擊,這使得人們對視頻信息內(nèi)容的完整性和真實性產(chǎn)生懷疑。如果篡改涉及國家安全、法 庭舉證等重要內(nèi)容時,則可能會造成嚴重的后果。因此,如何在網(wǎng)絡環(huán)境中對視頻信息內(nèi)容 的真實性、完整性實施有效的保護已經(jīng)成為近年來多媒體信息安全領域研究的熱點。脆弱 性水印作為一種保密通信技術,是解決這一問題最有效的方法之一。它將數(shù)據(jù)、圖像等水印 信息以人所不可感知的方式嵌入到視頻信息內(nèi)容中,通過對該水印信息的提取可以實現(xiàn)視 頻信息內(nèi)容的完整性認證,甚至可以指出篡改的位置和攻擊類型等。目前,絕大多數(shù)用于視頻信息內(nèi)容認證的水印方法是在未壓縮的視頻載體中進行 的,這類視頻水印方法不能有效地抵抗壓縮攻擊,即未壓縮的視頻載體嵌入水印后再經(jīng)過 壓縮編碼后將無法正確地提取水印,不能對視頻信息內(nèi)容進行有效地認證;另一方面,由 于未壓縮的視頻載體往往數(shù)據(jù)量巨大,這樣對其的存儲和傳輸造成了極大的不便,因此目 前數(shù)字視頻載體大都是以壓縮編碼的格式出現(xiàn),對壓縮的視頻載體如果仍使用這類應用于 未壓縮的視頻載體的水印方法,勢必需要先將壓縮的視頻載體從壓縮域還原到未壓縮域, 然后才能進行水印的嵌入和提取,這將使這類視頻水印方法的計算復雜度和計算量顯著增 加,且也難以滿足實時性方面的要求。因此,結合視頻編碼標準研究適用于視頻信息內(nèi)容認 證的水印方法是視頻水印的必然發(fā)展趨勢。目前,相關研究人員已經(jīng)提出了一些基于H. 264/AVC視頻信息內(nèi)容認證的水印方 法。它們首先根據(jù)I幀的低頻DCT系數(shù)或者根據(jù)不同DCT塊之間的能量大小關系提取認 證碼,然后再將提取的認證碼以水印的形式嵌入到高頻DCT系數(shù)或者運動矢量中。但由于 H. 264的高效壓縮性能,使得預測殘差數(shù)據(jù)經(jīng)DCT變換和量化后,非零系數(shù)稀少,且系數(shù)幅 值偏小,降低了認證碼的穩(wěn)定性;另一方面,其提取認證碼的過程具有較大的計算復雜度, 不能較好地滿足視頻實時處理的需求;此外,將水印嵌入高頻DCT系數(shù)或者運動矢量中時, 對高頻DCT系數(shù)和運動矢量的修改對H. 264壓縮比特流的影響較大。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種能夠與H. 264/AVC視頻壓縮編碼標準相 兼容,具有較高的水印容量,并能夠有效保證水印的安全性和不可感知性,且能夠有效地對 H. 264/AVC視頻信息內(nèi)容進行認證的脆弱性水印方法。本發(fā)明解決上述技術問題所采用的技術方案為一種基于H. 264/AVC視頻信息內(nèi) 容認證的脆弱性水印方法,H. 264/AVC視頻主要由I幀圖像、B幀圖像和P幀圖像組成,所述的I幀圖像包括至少一個I片,所述的B幀圖像包括至少一個B片,所述的P幀圖像包括 至少一個P片,所述的I片主要由若干個I宏塊組成,所述的B片主要由若干個B宏塊和若 干個I宏塊組成,所述的P片主要由若干個P宏塊和若干個I宏塊組成,所述的I宏塊的編 碼模式分為Intra_4X4、Intra_16X16和Intra_8X8三類,所述的B宏塊的編碼模式分 為 DIRECT、Inter_16 X 16、Inter_16 X 8、Inter_8 X 16 及 P8 X 8 五類,所述的 P 宏塊的編碼 模式分為 SKIP、Inter_16 X 16、Inter_16 X 8、Inter_8 X 16 及 P8 X 8 五類,當所述的 P 宏塊 使用Inter_16 X 16編碼模式時,將所述的P宏塊分為1個16 X 16運動子塊,當所述的P宏 塊使用Inter_16X8編碼模式時,將所述的P宏塊分為2個16X8運動子塊,當所述的P宏 塊使用Inter_8X 16編碼模式時,將所述的P宏塊分為2個8X 16運動子塊,當所述的P宏 塊使用P8 X 8編碼模式時,將所述的P宏塊首先分為4個8 X 8子塊,所述的8 X 8子塊具有 Inter_8X8、Inter_8X4、Inter_4X8、Inter_4X4 四類編碼模式,當所述的 8X8 子塊采用 Inter_8 X 8編碼模式時,將所述的8 X 8子塊劃分為1個8 X 8運動子塊,當所述的8 X 8子 塊采用Inter_8X4編碼模式時,將所述的8X8子塊劃分為2個8X4運動子塊,當所述的 8X8子塊采用Inter_4X8編碼模式時,將所述的8X8子塊劃分為2個4X8運動子塊,當 所述的8 X 8子塊采用Inter_4 X 4編碼模式時,將所述的8 X 8子塊劃分為4個4 X 4運動 子塊,其特征在于該脆弱性水印方法包括以下步驟①-1、在水印嵌入端,將H.264/AVC視頻的P片中的I宏塊 和P宏塊使用的所有編碼模式構成的集合定義為模式空間,記為MS,
根據(jù)H. 264/AVC視頻受到干
擾或攻擊后P片中的I宏塊和P宏塊使用的編碼模式發(fā)生轉移的模式轉移概率,將模式空 間MS中的所有編碼模式均分為兩組,分別定義為第一組編碼模式和第二組編碼模式;①-2、對于當前需嵌入水印的H. 264/AVC視頻以片為單位進行處理,定義當前正 在處理的片為當前片;①_3、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①_5 ;①-4、根據(jù)當前片中的各個I宏塊的編碼模式,生成待嵌入的水印序列,記為W,然 后執(zhí)行步驟①-13;待嵌入的水印序列W生成的具體過程為al.定義當前片中正在處理的第k個I 宏塊為當前I宏塊;a2.判斷當前I宏塊的編碼模式是否為Intra_4X4,如果是,則生成第 k個認證碼,記為Ck,Ck = 0 ;否則,生成第k個認證碼,記為Ck,Ck = 1,其中,k的初始值為 1,1彡k彡K,K表示當前片中包含的宏塊的個數(shù);a3.令k' =k+l,k = k',然后返回執(zhí) 行步驟al對當前片中的下一個I宏塊進行處理,直至當前片中的所有I宏塊處理完畢,獲 得當前片的認證碼序列,記為C,C= IC1, C2,…,Ck,…,CK, 1 ^ k ^ K} ;a4.將該當前片 的認證碼序列C作為待嵌入的水印序列W,W = Iff1, W2,1彡k彡K},W1表示 待嵌入的水印序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第 k個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk = Ck;①-5、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟 ①-13,否則,繼續(xù)執(zhí)行;
①_6、定義當前片中正在處理的第k個宏塊為當前宏塊;①_7、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果 屬于第一組編碼模式,則生成第k個認證碼,記為Ck,Ck = O,如果屬于第二組編碼模式,則 生成第k個認證碼,記為Ck,Ck = 1,其中,k的初始值為1,1彡k彡K,K表示當前片中包含 的宏塊的總個數(shù);①-8、判斷當前宏塊的編碼模式是否為Intra_4X4或Intra_16X 16或 Intra_8X8或SKIP,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①-10 ;①_9、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌入 的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則對當前宏塊的編碼模 式不進行處理,否則,對當前宏塊的編碼模式進行調(diào)制,然后執(zhí)行步驟①-12 ;調(diào)制當前宏塊的編碼模式的具體過程為判斷當前宏塊的編碼模式是否屬于第 一組編碼模式,如果是,則將當前宏塊的編碼模式調(diào)制修改為Inter_16X16、Inter_16X8 和P8X8中率失真代價最小的編碼模式,否則,將當前宏塊的編碼模式調(diào)制修改為 Inter_8X16編碼模式;①-10、分別將當前宏塊中的各個運動子塊的9個1/4像素運動估計搜索點劃分為 兩組,定義當前宏塊中正在處理的運動子塊為當前運動子塊,將當前運動子塊的9個1/4像 素運動估計搜索點劃分為兩組,分別定義為第一組搜索點和第二組搜索點,其中,第一組搜 索點中的各個1/4像素運動估計搜索點生成的運動矢量的水平分量和垂直分量具有相同 的奇偶性,第二組搜索點中的各個1/4像素運動估計搜索點生成的運動矢量的水平分量和 垂直分量具有不相同的奇偶性;①-11、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌 入的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則分別將當前宏塊中 的各個運動子塊的最佳的1/4像素運動估計搜索點調(diào)制修改為第一組搜索點中率失真代 價最小的1/4像素運動估計搜索點,否則,分別將當前宏塊中的各個運動子塊的最佳的1/4 像素運動估計搜索點調(diào)制修改為第二組搜索點中率失真代價最小的1/4像素運動估計搜 索點,其中,運動子塊的最佳的1/4像素運動估計搜索點為運動子塊的9個1/4像素運動估 計搜索點中率失真代價最小的1/4像素運動估計搜索點;①-12、令k' =k+l,k = k',然后返回執(zhí)行步驟①_6對當前片中的下一個宏塊 進行處理,直至當前片中的所有宏塊處理完畢,實現(xiàn)當前片中水印的嵌入,同時獲得當前片 的認證碼序列,記為C,C = IC1, C2,…,Ck,…,CK,1彡k彡K},將該當前片的認證碼序列 C作為待嵌入的水印序列W,W = (WijW2,…,WK,1彡k彡KKW1表示待嵌入的水印 序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第k個待嵌入的 水印比特位,Wk表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk = Ck ;①-13、將當前需嵌入水印的H. 264/AVC視頻中下一個待處理的片作為當前片,然 后返回執(zhí)行步驟①_3,直至H. 264/AVC視頻中的所有片處理完畢;①-14、水印嵌入端將第一組編碼模式、第二組編碼模式發(fā)送到水印檢測端;②-1、在水印檢測端,對于當前嵌入有水印的H. 264/AVC視頻以片為單位進行處 理,定義當前正在處理的片為當前片;②_2、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟②_4 ;
②_3、根據(jù)當前片中的各個I宏塊的編碼模式,提取當前片的認證碼序列,記為 C',然后執(zhí)行步驟②-12;當前片的認證碼序列C'的提取過程為bl.定義當前片中正在處理的第k個I宏 塊為當前I宏塊;b2.判斷當前I宏塊的編碼模式是否為Intra_4X4,如果是,則提取第k 個認證碼,記為Ck',Ck' =0 ;否則,提取第k個認證碼,記為Ck',Ck' = 1,其中,k的初 始值為1,1彡k彡K',K'表示當前片中包含的宏塊的總個數(shù);b3.令k' =k+l,k = k', 然后返回執(zhí)行步驟bl對當前片中的下一個I宏塊進行處理,直至當前片中包含的所有I宏 塊處理完畢,獲得當前片的認證碼序列C',C= IC1, C2,-,Ck,…,Ck,,1彡k彡K' };②-4、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟 ②-12,否則,繼續(xù)執(zhí)行;②_5、定義當前片中正在處理的第k個宏塊為當前宏塊;②_6、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果 屬于第一組編碼模式,則提取第k個認證碼,記為Ck',Ck' =0,如果屬于第二組編碼模式, 則提取第k個認證碼,記為Ck',Ck' = 1,其中,k的初始值為1,1彡k彡K',K'表示當 前片中包含的宏塊的總個數(shù);②-7、判斷當前宏塊的編碼模式是否為Intra_4X4或Intra_16X 16或 Intra_8 X 8或SKIP,如果是,則提取第k個水印比特位,記為Wk',Wk' = 0,否則,根據(jù)當前 宏塊的各個運動子塊的運動矢量提取第k個水印比特位,記為Wk',具體過程為cl.定義 當前宏塊中正在處理的第i個運動子塊為當前運動子塊;c2.判斷當前運動子塊的運動矢 量的水平分量和垂直分量是否具有相同的奇偶性,如果是,則提取當前運動子塊的水印信 息,記為Wi, Wi = 0,否貝U,提取當前運動子塊的水印信息,記為Wi,Wi = 1 ;c3.令i' = i+1, i = i',并返回執(zhí)行步驟cl對當前宏塊中的下一個運動子塊進行處理,直至當前宏塊中的 所有運動子塊處理完畢,獲得運動子塊對應的水印序列,記為《,Iw1,w2, -,Wi, ···%}, 其中,1 < i < N,N表示當前宏塊中包含的運動子塊的總個數(shù);c4.判斷運動子塊對應的水 印序列w中1的個數(shù)是否大于等于0的個數(shù),如果是,則提取第k個水印比特位Wk',Wk' =1,否則,提取第k個水印比特位Wk',Wk' =0;②-8、令k' =k+l,k = k',然后返回執(zhí)行步驟②_5對當前片中的下一個宏塊進 行處理,直至當前片中的所有宏塊處理完畢,提取得到當前片的水印序列,記為W' , W'= IW1',…,Wk',".,\丨',1彡k彡K' },同時提取得到當前片的認證碼序列,記為C', C' = {C/,···, Ck',...,CK, ‘,KkC };②-9、定義當前片的水印序列中的第k個水印比特位Wk'為當前水印比特位,定 義前一片的認證碼序列中的第k個認證碼Ck'為當前認證碼,比較當前水印比特位Wk'與 當前認證碼Ck'是否相同,如果Wk' =Ck',則將當前片中的第k個宏塊認定為真實塊,然 后執(zhí)行步驟②-10,否則,將當前片中的第k個宏塊認定為不確定塊,然后執(zhí)行步驟②-10 ;②-10、當?shù)趉個宏塊為真實塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者 第k個宏塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯 誤塊;當?shù)趉個宏塊為不確定塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者第k個宏 塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯誤塊;②-11、令k' =k+l,k = k',然后返回執(zhí)行步驟②_9比較當前片的水印序列中的下一個水印比特位與前一片的認證碼序列中的下一認證碼,直至當前片的水印序列中的 所有水印比特位與前一片的認證碼序列中的所有認證碼比較完畢;②-12、將當前嵌入有水印的H. 264/AVC視頻中下一個待處理的片作為當前片,然 后返回執(zhí)行步驟②_2,直至H. 264/AVC視頻中的所有片處理完畢;②-13、判斷H. 264/AVC視頻中是否存在錯誤塊,如果存在,則認為H. 264/AVC視頻 不完整,否則,認為H. 264/AVC視頻完整。所述的步驟①-1中H. 264/AVC視頻受到干擾或攻擊后P片中的I宏塊和P宏 塊使用的編碼模式發(fā)生轉移的模式轉移概率的計算過程為記P片中當前宏塊使用的 編碼模式為i,記當前宏塊使用的編碼模式i轉移為編碼模式j的模式轉移概率為Pij,
其中,i,j eMS,Sum(i —j)表示H. 264/AVC視頻受到干擾或攻擊后P片
中從編碼模式i轉移為編碼模式j的宏塊的總個數(shù),Sum⑴表示H. 264/AVC視頻受到干擾 或攻擊前P片中使用編碼模式i的宏塊的總個數(shù)。所述的步驟①-1中將模式空間MS中的所有編碼模式分為第一組編碼模式和第二
組編碼模式是通過計算
得到的,其中,max()為取最大值函數(shù),
{}表示集合,M表示第一組編碼模式,M'表示第二組編碼模式,Pi表示P片中的宏塊使用
編碼模式i的概率, 與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于1)、本發(fā)明方法在水印嵌入過程中生成認證碼及在水印提取過程中提取認證碼的 過程,均是基于通過對宏塊的編碼模式的統(tǒng)計分析實現(xiàn)的,即通過對宏塊所使用的編碼模 式來生成認證碼或提取認證碼,與常見的通過DCT系數(shù)生成認證碼的方法相比,本發(fā)明方 法生成認證碼及提取認證碼的計算復雜度低、認證碼的穩(wěn)定性好,更能滿足視頻實時處理 的要求。2)、本發(fā)明結合P片中P宏塊的編碼模式,對P宏塊的各個運動子塊的最佳的1/4 像素運動估計搜索點進行調(diào)制,使得認證碼的生成和水印的嵌入滿足一一對應關系,保證 了認證的準確性。3)、由于P幀圖像采用了基于樹型構造的運動補償方法劃分宏塊,支持從16X 16 到4X4尺寸大小范圍的運動子塊,具有很高的壓縮比。在低比特視頻流中,P幀圖像的數(shù) 目遠大于I幀圖像的數(shù)目,與直接提取認證碼,并嵌入到I幀圖像的DCT系數(shù)相比,本發(fā)明 方法具有更大的嵌入容量。4)、水印檢測過程簡單、快速,水印信息的檢測過程不需要原始載體視頻,也無需 對含水印信息的視頻碼流進行完全解碼,只需解碼宏塊的編碼模式和運動矢量即可,有效 提高了實時性和實用性。
圖1為本發(fā)明方法的水印嵌入的流程框圖2為1/4像素搜索點的搜索示意圖;圖3為QCIF格式的標準測試序列“Carphone”的第一幀圖像。
具體實施例方式以下結合附圖實施例對本發(fā)明作進一步詳細描述。H. 264/AVC視頻主要由I幀圖像、B幀圖像和P幀圖像組成。H. 264/AVC視頻在編 碼過程中為了防止編碼數(shù)據(jù)的錯誤擴散,將一幅幅編碼的視頻幀劃分成一個或多個相互獨 立的片(Slice)。根據(jù)不同的視頻幀,可以將視頻幀分成不同的片,I幀圖像包括至少一個 I片,B幀圖像包括至少一個B片,P幀圖像包括至少一個P片。I片主要由若干個I宏塊組 成,B片主要由若干個B宏塊和若干個I宏塊組成,P片主要由若干個P宏塊和若干個I宏塊 組成。I宏塊的編碼模式分為Intra_4X4、Intra_16X 16和Intra_8X8三類。B宏塊的編 碼模式分為 DIRECT、Inter_16 X 16、Inter_16 X 8、Inter_8 X 16 及 P8 X 8 五類。P 宏塊的編 碼模式分為 SKIP、Inter_16 X 16、Inter_16 X 8、Inter_8 X 16 及 P8 X 8 五類,當 P 宏塊使用 Inter_16 X 16編碼模式時,將P宏塊分為1個16 X 16運動子塊,當P宏塊使用Inter_16 X 8 編碼模式時,將P宏塊分為2個16X8運動子塊,當P宏塊使用Inter_8X 16編碼模式時, 將P宏塊分為2個8X 16運動子塊,當P宏塊使用P8X8編碼模式時,將P宏塊首先分為4 個 8X8 子塊,8X8 子塊具有 Inter_8X8、Inter_8X4、Inter_4X8、Inter_4X4 四類編碼 模式,當8X8子塊采用Inter_8X8編碼模式時,將8X8子塊劃分為1個8X8運動子塊, 當8 X 8子塊采用Inter_8 X 4編碼模式時,將8 X 8子塊劃分為2個8 X 4運動子塊,當8 X 8 子塊采用Inter_4 X 8編碼模式時,將8 X 8子塊劃分為2個4 X 8運動子塊,當8 X 8子塊采 用Inter_4 X 4編碼模式時,將8X8子塊劃分為4個4 X 4運動子塊?;谏鲜龌A,本發(fā)明提出了一種基于H. 264/AVC視頻信息內(nèi)容認證的脆弱性水 印方法,其主要分為水印嵌入和水印檢測兩部分,在水印嵌入端,首先根據(jù)宏塊的編碼模式 生成認證碼;然后結合宏塊的編碼模式調(diào)制P片中P宏塊的各運動子塊的最佳的1/4像素 運動估計搜索點,將提取的認證碼嵌入到視頻幀中,在最佳的1/4像素運動估計搜索點的 調(diào)制過程中引入率失真代價函數(shù),減少了水印嵌入后對視頻碼率和視頻質(zhì)量的影響;在水 印檢測端,本發(fā)明方法可以實現(xiàn)水印的快速檢測,即只需解碼宏塊的編碼模式以及運動矢 量即可,能夠很好地滿足視頻實時處理的要求。在描述本發(fā)明方法的具體實施過程之前,先說明在此具體實施例中采用的原始載 體視頻。在此具體實施例中原始載體視頻采用QCIF格式的標準測試序列“Carphone”,該測 試序列“Carphone”的分辨率為176 X 144,幀率為30幀/秒,圖像組設定“IBPBPBPBPB”結 構,該測試序列“Carphone”的第一幀圖像如圖3所示。除在此該出的測試序列外,也可采 用QCIF格式的其他測試序列,也可采用其他格式如CIF格式的其他標準測試序列。本發(fā)明的基于H. 264/AVC視頻信息內(nèi)容認證的脆弱性水印方法,其水印嵌入的流 程框圖如圖1所示。本發(fā)明方法具體包括以下步驟①-1、在H. 264編碼過程中,一個P片包含若干個I宏塊和若干個P宏塊,因此P 片不但可以采用幀內(nèi)預測而且還可以采用幀間預測技術,即編碼模式可以是Intra_4X4、 Intra_16 X 16、Intra_8 X 8、SKIP、Inter_16 X 16、Inter_16 X 8、Inter_8 X 16 以及 P8 X 8 八 類。在P片中引入多種編碼模式,可極大地提高P幀圖像的編碼效率,然而,當H. 264/AVC視頻受到干擾或攻擊(如濾波處理、噪聲處理、重新編碼等)后,P片中的多種編碼模式極 有可能發(fā)生改變。表1給出了在重新編碼后,P片中各個宏塊使用的編碼模式發(fā)生轉移的 模式轉移概率(精確到0. 0001)。表1所列數(shù)據(jù)是對10個標準測試序列,近十萬個宏塊進 行統(tǒng)計獲得。從表1中可以看出1)對于任意一個編碼模式,自身轉移為自身的模式轉移 概率均不為1,即在受到重新編碼攻擊時,宏塊的模式會發(fā)生轉移;2)對于任意一個編碼模 式的模式轉移概率,當轉移后的編碼模式和轉移前的編碼模式的分割方式和預測方式越相 近時,模式轉移概率的值通常也越大。表1各編碼模式之間的模式轉移概率 為了便于生成認證碼,本發(fā)明方法在水印嵌入端,將H. 264/AVC視頻的P片 中的I宏塊和P宏塊使用的所有編碼模式構成的集合定義為模式空間,記為MS,
根據(jù)H. 264/AVC視頻受到干
擾或攻擊后P片中的I宏塊和P宏塊使用的編碼模式發(fā)生轉移的模式轉移概率,將模式空 間MS中的所有編碼模式均分為兩組,分別定義為第一組編碼模式和第二組編碼模式。為了 保證認證碼在受到攻擊時具有較好的穩(wěn)健性,最佳分組應滿足模式轉移盡可能發(fā)生在同組 之間。根據(jù)表1中各個編碼模式的模式轉移概率對其進行分組,可由下式得到最佳分組
max Σ乃巧+ Σ乃昇,其中,max 0為取最大值函數(shù),{}表示集合,M表示第一組編碼 、[/JeM i,jeM' J y
模式,M'表示第二組編碼模式,PU表示當前宏塊使用的編碼模式i轉移為編碼模式j的模
Sum{i)
式轉移概率,Pi表示P片中的宏塊使用編碼模式i的概率,6 = ^’本發(fā)明方法通過
對10標準測試序列,近10萬個宏塊的統(tǒng)計數(shù)據(jù)計算Pi,其結果如表2所示。表2各編碼模式出現(xiàn)的概率
12
根據(jù)上述分組方式得到的第一組編碼模式M包含SKIP、Inter_16 X 16、 Inter_16X8、P8X8,第二組編碼模式 M'包含 Inter_8 X 16、Intra_4X4、Intra_16X16、 Intra_8X8。在此具體實施例中,H. 264/AVC視頻受到干擾或攻擊后P片中的I宏塊和P宏 塊使用的編碼模式發(fā)生轉移的模式轉移概率的計算過程為記P片中當前宏塊使用的 編碼模式為i,記當前宏塊使用的編碼模式i轉移為編碼模式j的模式轉移概率為
其中,i,j e MS, Sum(i — j)表示H. 264/AVC視頻受到干擾或攻擊后P片
中從編碼模式i轉移為編碼模式j的宏塊的總個數(shù),Sum⑴表示H. 264/AVC視頻受到干擾 或攻擊前P片中使用編碼模式i的宏塊的總個數(shù)。①-2、對于當前需嵌入水印的H. 264/AVC視頻以片為單位進行處理,定義當前正 在處理的片為當前片。①_3、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①_5。①_4、根據(jù)當前片中的各個I宏塊的編碼模式,生成待嵌入的水印序列,記為W,然 后執(zhí)行步驟①-13。待嵌入的水印序列W生成的具體過程為al.定義當前片中正在處理的第k個I 宏塊為當前I宏塊;a2.判斷當前I宏塊的編碼模式是否為Intra_4X4,如果是,則生成第 k個認證碼,記為Ck,Ck = 0 ;否則,生成第k個認證碼,記為Ck,Ck = 1,其中,k的初始值為 1,1≤k≤K,K表示當前片中包含的宏塊的總個數(shù);a3.令k' =k+l,k = k',然后返回 執(zhí)行步驟al對當前片中的下一個I宏塊進行處理,直至當前片中的所有I宏塊處理完畢, 獲得當前片的認證碼序列,記為C,C= (C1, C2, -,Ck,…,CK,l≤k≤K} ;a4.將該當前片 的認證碼序列C作為待嵌入的水印序列W,W = Iff1, W2,-,Vk, -,VK, 1≤k≤K},W1表示 待嵌入的水印序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第 k個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk =Ck”①-5、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟 ①-13,否則,繼續(xù)執(zhí)行。①_6、定義當前片中正在處理的第k個宏塊為當前宏塊。①_7、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果屬于第一組編碼模式,則生成第k個認證碼,記為Ck,Ck = O,如果屬于第二組編碼模式,則 生成第k個認證碼,記為Ck,Ck = 1,其中,k的初始值為1,1彡k彡K,K表示當前片中包含 的宏塊的總個數(shù)。①-8、判斷當前宏塊的編碼模式是否為Intra_4X4或Intra_16X 16或 Intra_8X8或SKIP,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①-10。①_9、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌入 的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則對當前宏塊的編碼模 式不進行處理,否則,對當前宏塊的編碼模式進行調(diào)制,然后執(zhí)行步驟①-12。調(diào)制當前宏塊的編碼模式的具體過程為判斷當前宏塊的編碼模式是否屬于第 一組編碼模式,如果是,則將當前宏塊的編碼模式調(diào)制修改為Inter_16X16、Inter_16X8 和P8X8中率失真代價最小的編碼模式,否則,將當前宏塊的編碼模式調(diào)制修改為 Inter_8X16編碼模式。①-10、在H. 264運動估計過程中不但采用了基于樹型構造的運動補償方法劃分P 宏塊,支持從16X 16到4X4尺寸大小范圍的運動子塊,即每個P宏塊可以有1 16個運 動子塊,例如,如果當前P宏塊采用的編碼模式為Inter_16X16,則當前P宏塊可分為1個 16X16尺寸大小的運動子塊,而如果當前P宏塊采用的編碼模式為Inter_16X8,則當前P 宏塊可分為2個16X8尺寸大小的運動子塊,而且采用了更高像素精度的運動估計(1/4像 素精度運動估計)。在H. 264運動估計過程中,首先搜索整像素位置,獲得最佳的整像素運 動估計搜索點,然后搜索圍繞在最佳的整像素運動估計搜索點周圍的9個亞像素位置,獲 得最佳的亞像素運動估計搜索點,最后搜索圍繞在最佳的亞像素運動估計搜索點周圍的9 個1/4像素位置,從而獲得最佳的1/4像素運動估計搜索點,并生成相應的運動矢量。圖2 為1/4像素運動估計搜索點的搜索圖,圖2中數(shù)字0 8分別表示9個1/4像素運動估計 搜索點。上述整像素運動估計搜索點就是指實際的編碼像素點,最佳的整像素運動估計搜 索點是指滿足率失真代價最小的整像素運動估計搜索點,亞像素運動估計搜索點實際上并 不存在于參考圖像中,而是利用鄰近的已編碼的整像素運動估計搜索點進行內(nèi)插而得到 的,最佳的亞像素運動估計搜索點是滿足率失真代價最小的亞像素運動估計搜索點,1/4像 素運動估計搜索點實際上并不存在于參考圖像中,而是利用鄰近的已內(nèi)插的亞像素運動估 計搜索點進行內(nèi)插而得到的,最佳的1/4像素運動估計搜索點是滿足率失真代價最小的 1/4像素運動估計搜索點。本發(fā)明方法結合當前宏塊的編碼模式,調(diào)制當前宏塊中各個運動子塊的9個1/4 像素運動估計搜索點進行水印嵌入,首先分別將當前宏塊中的各個運動子塊的9個1/4像 素運動估計搜索點分別劃分為兩組,定義當前宏塊中正在處理的運動子塊為當前運動子 塊,將當前運動子塊的9個1/4像素運動估計搜索點劃分為兩組,分別定義為第一組搜索點 和第二組搜索點,其中,第一組搜索點中的各個1/4像素運動估計搜索點生成的運動矢量 的水平分量和垂直分量具有相同的奇偶性,第二組搜索點中的各個1/4像素運動估計搜索 點生成的運動矢量的水平分量和垂直分量具有不相同的奇偶性,圖2中用數(shù)字0 8表示 的9個1/4像素運動估計搜索點分組后,得到的第一組搜索點包含待搜索點0、1、3、6、8,第 二組搜索點包含待搜索點2、4、5、7。
①-11、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌 入的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則分別將當前宏塊中 的各個運動子塊的最佳的1/4像素運動估計搜索點調(diào)制修改為第一組搜索點中率失真代 價最小的1/4像素運動估計搜索點,否則,分別將當前宏塊中的各個運動子塊的最佳的1/4 像素運動估計搜索點調(diào)制修改為第二組搜索點中率失真代價最小的1/4像素運動估計搜 孛占。
^JS / “、0①-12、令k' =k+l,k = k',然后返回執(zhí)行步驟①_6對當前片中的下一個宏塊 進行處理,直至當前片中的所有宏塊處理完畢,實現(xiàn)當前片中水印的嵌入,同時獲得當前片 的認證碼序列,記為C,C = IC1, C2,…,Ck,…,CK,1彡k彡K},將該當前片的認證碼序列 C作為待嵌入的水印序列W,W = (WijW2,…,WK,1彡k彡KKW1表示待嵌入的水印 序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第k個待嵌入的 水印比特位,Wk表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk = Ck。①-13、將當前需嵌入水印的H. 264/AVC視頻中下一個待處理的片作為當前片,然 后返回執(zhí)行步驟①_3,直至H. 264/AVC視頻中的所有片處理完畢。①-14、水印嵌入端將第一組編碼模式、第二組編碼模式發(fā)送到水印檢測端。②-1、在水印檢測端,對于當前嵌入有水印的H. 264/AVC視頻以片為單位進行處 理,定義當前正在處理的片為當前片。②_2、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟②_4。②_3、根據(jù)當前片中的各個I宏塊的編碼模式,提取當前片的認證碼序列,記為 C',然后執(zhí)行步驟②-12。當前片的認證碼序列C'的提取過程為bl.定義當前片中正在處理的第k個I宏 塊為當前I宏塊;b2.判斷當前I宏塊的編碼模式是否為Intra_4X4,如果是,則提取第k 個認證碼,記為Ck',Ck' =0 ;否則,提取第k個認證碼,記為Ck',Ck' = 1,其中,k的初 始值為1,1彡k彡K',K'表示當前片中包含的宏塊的總個數(shù);b3.令k' =k+l,k = k', 然后返回執(zhí)行步驟bl對當前片中的下一個I宏塊進行處理,直至當前片中包含的所有I宏 塊處理完畢,獲得當前片的認證碼序列C',C= IC1, C2,-,Ck,…,Ck,,1彡k彡K' }。②_4、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟 ②-12,否則,繼續(xù)執(zhí)行。②_5、定義當前片中正在處理的第k個宏塊為當前宏塊。②_6、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果 屬于第一組編碼模式,則提取第k個認證碼,記為Ck',Ck' =0,如果屬于第二組編碼模式, 則提取第k個認證碼,記為Ck',Ck' = 1,其中,k的初始值為1,1彡k彡K',K'表示當 前片中包含的宏塊的總個數(shù)。②-7、判斷當前宏塊的編碼模式是否為Intra_4X4或Intra_16X 16或 Intra_8 X 8或SKIP,如果是,則提取第k個水印比特位,記為Wk',Wk' = 0,否則,根據(jù)當前 宏塊的各個運動子塊的運動矢量提取第k個水印比特位,記為Wk',具體過程為cl.定義 當前宏塊中正在處理的第i個運動子塊為當前運動子塊;c2.判斷當前運動子塊的運動矢 量的水平分量和垂直分量是否具有相同的奇偶性,如果是,則提取當前運動子塊的水印信 息,記為Wi, Wi = 0,否貝U,提取當前運動子塊的水印信息,記為Wi,Wi = 1 ;c3.令i' = i+1,i = i',并返回執(zhí)行步驟Cl對當前宏塊中的下一個運動子塊進行處理,直至當前宏塊中的 所有運動子塊處理完畢,獲得運動子塊對應的水印序列,記為《,Iw1,w2, -,Wi, ···%}, 其中,1 ≤i ≤ N,N表示當前宏塊中包含的運動子塊的總個數(shù);c4.判斷運動子塊對應的水 印序列w中1的個數(shù)是否大于等于0的個數(shù),如果是,則提取第k個水印比特位Wk',Wk' =1,否則,提取第k個水印比特位Wk',Wk' =0。②-8、令k' =k+l,k = k',然后返回執(zhí)行步驟②_5對當前片中的下一個宏塊進 行處理,直至當前片中的所有宏塊處理完畢,提取得到當前片的水印序列,記為W' , W'= IW1',…,Wk',".,\丨',1≤k≤K' },同時提取得到當前片的認證碼序列,記為C', C' = {C/,···, Ck',...,CK, ‘,KkC }。②-9、定義當前片的水印序列中的第k個水印比特位Wk'為當前水印比特位,定 義前一片的認證碼序列中的第k個認證碼Ck'為當前認證碼,比較當前水印比特位Wk'與 當前認證碼Ck'是否相同,如果Wk' =Ck',則將當前片中的第k個宏塊認定為真實塊,然 后執(zhí)行步驟②-10,否則,將當前片中的第k個宏塊認定為不確定塊,然后執(zhí)行步驟②-10。②-10、當?shù)趉個宏塊為真實塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者 第k個宏塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯 誤塊;當?shù)趉個宏塊為不確定塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者第k個宏 塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯誤塊。②-11、令k' =k+l,k = k',然后返回執(zhí)行步驟②_9比較當前片的水印序列中 的下一個水印比特位與前一片的認證碼序列中的下一認證碼,直至當前片的水印序列中的 所有水印比特位與前一片的認證碼序列中的所有認證碼比較完畢。②-12、將當前嵌入有水印的H. 264/AVC視頻中下一個待處理的片作為當前片,然 后返回執(zhí)行步驟②_2,直至H. 264/AVC視頻中的所有片處理完畢。②-13、判斷H. 264/AVC視頻中是否存在錯誤塊,如果存在,則認為H. 264/AVC視頻 不完整,否則,認為H. 264/AVC視頻完整。
權利要求
一種基于H.264/AVC視頻信息內(nèi)容認證的脆弱性水印方法,H.264/AVC視頻主要由I幀圖像、B幀圖像和P幀圖像組成,所述的I幀圖像包括至少一個I片,所述的B幀圖像包括至少一個B片,所述的P幀圖像包括至少一個P片,所述的I片主要由若干個I宏塊組成,所述的B片主要由若干個B宏塊和若干個I宏塊組成,所述的P片主要由若干個P宏塊和若干個I宏塊組成,所述的I宏塊的編碼模式分為Intra_4×4、Intra_16×16和Intra_8×8三類,所述的B宏塊的編碼模式分為DIRECT、Inter_16×16、Inter_16×8、Inter_8×16及P8×8五類,所述的P宏塊的編碼模式分為SKIP、Inter_16×16、Inter_16×8、Inter_8×16及P8×8五類,當所述的P宏塊使用Inter_16×16編碼模式時,將所述的P宏塊分為1個16×16運動子塊,當所述的P宏塊使用Inter_16×8編碼模式時,將所述的P宏塊分為2個16×8運動子塊,當所述的P宏塊使用Inter_8×16編碼模式時,將所述的P宏塊分為2個8×16運動子塊,當所述的P宏塊使用P8×8編碼模式時,將所述的P宏塊首先分為4個8×8子塊,所述的8×8子塊具有Inter_8×8、Inter_8×4、Inter_4×8、Inter_4×4四類編碼模式,當所述的8×8子塊采用Inter_8×8編碼模式時,將所述的8×8子塊劃分為1個8×8運動子塊,當所述的8×8子塊采用Inter_8×4編碼模式時,將所述的8×8子塊劃分為2個8×4運動子塊,當所述的8×8子塊采用Inter_4×8編碼模式時,將所述的8×8子塊劃分為2個4×8運動子塊,當所述的8×8子塊采用Inter_4×4編碼模式時,將所述的8×8子塊劃分為4個4×4運動子塊,其特征在于該脆弱性水印方法包括以下步驟①-1、在水印嵌入端,將H.264/AVC視頻的P片中的I宏塊和P宏塊使用的所有編碼模式構成的集合定義為模式空間,記為MS,根據(jù)H.264/AVC視頻受到干擾或攻擊后P片中的I宏塊和P宏塊使用的編碼模式發(fā)生轉移的模式轉移概率,將模式空間MS中的所有編碼模式均分為兩組,分別定義為第一組編碼模式和第二組編碼模式;①-2、對于當前需嵌入水印的H.264/AVC視頻以片為單位進行處理,定義當前正在處理的片為當前片;①-3、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①-5;①-4、根據(jù)當前片中的各個I宏塊的編碼模式,生成待嵌入的水印序列,記為W,然后執(zhí)行步驟①-13;待嵌入的水印序列W生成的具體過程為a1.定義當前片中正在處理的第k個I宏塊為當前I宏塊;a2.判斷當前I宏塊的編碼模式是否為Intra_4×4,如果是,則生成第k個認證碼,記為Ck,Ck=0;否則,生成第k個認證碼,記為Ck,Ck=1,其中,k的初始值為1,1≤k≤K,K表示當前片中包含的宏塊的總個數(shù);a3.令k′=k+1,k=k′,然后返回執(zhí)行步驟a1對當前片中的下一個I宏塊進行處理,直至當前片中的所有I宏塊處理完畢,獲得當前片的認證碼序列,記為C,C={C1,C2,…,Ck,…,CK,1≤k≤K};a4.將該當前片的認證碼序列C作為待嵌入的水印序列W,W={W1,W2,…,Wk,…,WK,1≤k≤K},W1表示待嵌入的水印序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第k個待嵌入的水印比特位,WK表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk=Ck;①-5、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟①-13,否則,繼續(xù)執(zhí)行;①-6、定義當前片中正在處理的第k個宏塊為當前宏塊;①-7、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果屬于第一組編碼模式,則生成第k個認證碼,記為Ck,Ck=0,如果屬于第二組編碼模式,則生成第k個認證碼,記為Ck,Ck=1,其中,k的初始值為1,1≤k≤K,K表示當前片中包含的宏塊的總個數(shù);①-8、判斷當前宏塊的編碼模式是否為Intra_4×4或Intra_16×16或Intra_8×8或SKIP,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟①-10;①-9、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌入的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則對當前宏塊的編碼模式不進行處理,否則,對當前宏塊的編碼模式進行調(diào)制,然后執(zhí)行步驟①-12;調(diào)制當前宏塊的編碼模式的具體過程為判斷當前宏塊的編碼模式是否屬于第一組編碼模式,如果是,則將當前宏塊的編碼模式調(diào)制修改為Inter_16×16、Inter_16×8和P8×8中率失真代價最小的編碼模式,否則,將當前宏塊的編碼模式調(diào)制修改為Inter_8×16編碼模式;①-10、分別將當前宏塊中的各個運動子塊的9個1/4像素運動估計搜索點劃分為兩組,定義當前宏塊中正在處理的運動子塊為當前運動子塊,將當前運動子塊的9個1/4像素運動估計搜索點劃分為兩組,分別定義為第一組搜索點和第二組搜索點,其中,第一組搜索點中的各個1/4像素運動估計搜索點生成的運動矢量的水平分量和垂直分量具有相同的奇偶性,第二組搜索點中的各個1/4像素運動估計搜索點生成的運動矢量的水平分量和垂直分量具有不相同的奇偶性;①-11、定義待嵌入的水印序列W中的第k個待嵌入的水印比特位Wk為當前待嵌入的水印比特位,判斷當前待嵌入的水印比特位Wk是否為0,如果是,則分別將當前宏塊中的各個運動子塊的最佳的1/4像素運動估計搜索點調(diào)制修改為第一組搜索點中率失真代價最小的1/4像素運動估計搜索點,否則,分別將當前宏塊中的各個運動子塊的最佳的1/4像素運動估計搜索點調(diào)制修改為第二組搜索點中率失真代價最小的1/4像素運動估計搜索點,其中,運動子塊的最佳的1/4像素運動估計搜索點為運動子塊的9個1/4像素運動估計搜索點中率失真代價最小的1/4像素運動估計搜索點;①-12、令k′=k+1,k=k′,然后返回執(zhí)行步驟①-6對當前片中的下一個宏塊進行處理,直至當前片中的所有宏塊處理完畢,實現(xiàn)當前片中水印的嵌入,同時獲得當前片的認證碼序列,記為C,C={C1,C2,…,Ck,…,CK,1≤k≤K},將該當前片的認證碼序列C作為待嵌入的水印序列W,W={W1,W2,…,Wk,…,WK,1≤k≤K},W1表示待嵌入的水印序列W中的第1個待嵌入的水印比特位,Wk表示待嵌入的水印序列W中的第k個待嵌入的水印比特位,WK表示待嵌入的水印序列W中的第K個待嵌入的水印比特位,Wk=Ck;①-13、將當前需嵌入水印的H.264/AVC視頻中下一個待處理的片作為當前片,然后返回執(zhí)行步驟①-3,直至H.264/AVC視頻中的所有片處理完畢;①-14、水印嵌入端將第一組編碼模式、第二組編碼模式發(fā)送到水印檢測端;②-1、在水印檢測端,對于當前嵌入有水印的H.264/AVC視頻以片為單位進行處理,定義當前正在處理的片為當前片;②-2、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟②-4;②-3、根據(jù)當前片中的各個I宏塊的編碼模式,提取當前片的認證碼序列,記為C′,然后執(zhí)行步驟②-12;當前片的認證碼序列C′的提取過程為b1.定義當前片中正在處理的第k個I宏塊為當前I宏塊;b2.判斷當前I宏塊的編碼模式是否為Intra_4×4,如果是,則提取第k個認證碼,記為Ck′,Ck′=0;否則,提取第k個認證碼,記為Ck′,Ck′=1,其中,k的初始值為1,1≤k≤K′,K′表示當前片中包含的宏塊的總個數(shù);b3.令k′=k+1,k=k′,然后返回執(zhí)行步驟b1對當前片中的下一個I宏塊進行處理,直至當前片中包含的所有I宏塊處理完畢,獲得當前片的認證碼序列C′,C={C1,C2,…,Ck,…,CK′,1≤k≤K′};②-4、判斷當前片是否為B片,如果是,則對當前片不進行處理,并執(zhí)行步驟②-12,否則,繼續(xù)執(zhí)行;②-5、定義當前片中正在處理的第k個宏塊為當前宏塊;②-6、判斷當前宏塊的編碼模式屬于第一組編碼模式還是第二組編碼模式,如果屬于第一組編碼模式,則提取第k個認證碼,記為Ck′,Ck′=0,如果屬于第二組編碼模式,則提取第k個認證碼,記為Ck′,Ck′=1,其中,k的初始值為1,1≤k≤K′,K′表示當前片中包含的宏塊的總個數(shù);②-7、判斷當前宏塊的編碼模式是否為Intra_4×4或Intra_16×16或Intra_8×8或SKIP,如果是,則提取第k個水印比特位,記為Wk′,Wk′=0,否則,根據(jù)當前宏塊的各個運動子塊的運動矢量提取第k個水印比特位,記為Wk′,具體過程為c1.定義當前宏塊中正在處理的第i個運動子塊為當前運動子塊;c2.判斷當前運動子塊的運動矢量的水平分量和垂直分量是否具有相同的奇偶性,如果是,則提取當前運動子塊的水印信息,記為wi,wi=0,否則,提取當前運動子塊的水印信息,記為wi,wi=1;c3.令i′=i+1,i=i′,并返回執(zhí)行步驟c1對當前宏塊中的下一個運動子塊進行處理,直至當前宏塊中的所有運動子塊處理完畢,獲得運動子塊對應的水印序列,記為w,w={w1,w2,…,wi,…wN},其中,1≤i≤N,N表示當前宏塊中包含的運動子塊的總個數(shù);c4.判斷運動子塊對應的水印序列w中1的個數(shù)是否大于等于0的個數(shù),如果是,則提取第k個水印比特位Wk′,Wk′=1,否則,提取第k個水印比特位Wk′,Wk′=0;②-8、令k′=k+1,k=k′,然后返回執(zhí)行步驟②-5對當前片中的下一個宏塊進行處理,直至當前片中的所有宏塊處理完畢,提取得到當前片的水印序列,記為W′,W′={W1′,…,Wk′,…,WK′′,1≤k≤K′},同時提取得到當前片的認證碼序列,記為C′,C′={C1′,…,Ck′,…,CK′′,1≤k≤K′};②-9、定義當前片的水印序列中的第k個水印比特位Wk′為當前水印比特位,定義前一片的認證碼序列中的第k個認證碼Ck′為當前認證碼,比較當前水印比特位Wk′與當前認證碼Ck′是否相同,如果Wk′=Ck′,則將當前片中的第k個宏塊認定為真實塊,然后執(zhí)行步驟②-10,否則,將當前片中的第k個宏塊認定為不確定塊,然后執(zhí)行步驟②-10;②-10、當?shù)趉個宏塊為真實塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者第k個宏塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯誤塊;當?shù)趉個宏塊為不確定塊時,且第k個宏塊的所有相鄰塊均為不確定塊或者第k個宏塊的所有相鄰塊中存在至少一個相鄰塊為錯誤塊時,將第k個宏塊重新認定為錯誤塊;②-11、令k′=k+1,k=k′,然后返回執(zhí)行步驟②-9比較當前片的水印序列中的下一個水印比特位與前一片的認證碼序列中的下一認證碼,直至當前片的水印序列中的所有水印比特位與前一片的認證碼序列中的所有認證碼比較完畢;②-12、將當前嵌入有水印的H.264/AVC視頻中下一個待處理的片作為當前片,然后返回執(zhí)行步驟②-2,直至H.264/AVC視頻中的所有片處理完畢;②-13、判斷H.264/AVC視頻中是否存在錯誤塊,如果存在,則認為H.264/AVC視頻不完整,否則,認為H.264/AVC視頻完整。FSA00000149050900011.tif
2.根據(jù)權利要求1所述的一種基于H.264/AVC視頻信息內(nèi)容認證的脆弱性水印方 法,其特征在于所述的步驟①-1中H. 264/AVC視頻受到干擾或攻擊后P片中的I宏塊和 P宏塊使用的編碼模式發(fā)生轉移的模式轉移概率的計算過程為記P片中當前宏塊使用 的編碼模式為i,記當前宏塊使用的編碼模式i轉移為編碼模式j的模式轉移概率為Pij, 、其中, 表示H. 264/AVC視頻受到干擾或攻擊后P片中從編碼模式i轉移為編碼模式j的宏塊的總個數(shù),Sum⑴表示H. 264/AVC視頻受到干擾 或攻擊前P片中使用編碼模式i的宏塊的總個數(shù)。
3.根據(jù)權利要求2所述的一種基于H.264/AVC視頻信息內(nèi)容認證的脆弱性水印方法, 其特征在于所述的步驟①-1中將模式空間MS中的所有編碼模式分為第一組編碼模式和第二組編碼模式是通過計算max J; PiPij+ Y4 i^j得到的,其中,maxO為取最大值函 數(shù),H表示集合,M表示第一組編碼模式,M'表示第二組編碼模式,Pi表示P片中的宏塊使 用編碼模式i的概率,
全文摘要
本發(fā)明公開了一種基于H.264/AVC視頻信息內(nèi)容認證的脆弱性水印方法,其主要分為水印嵌入和水印檢測兩部分,在水印嵌入端,首先根據(jù)宏塊的編碼模式生成認證碼;然后結合宏塊的編碼模式調(diào)制P片中P宏塊的各運動子塊的最佳的1/4像素運動估計搜索點,將提取的認證碼嵌入到視頻幀中,在待搜索點的調(diào)制過程中引入率失真代價函數(shù),減少了水印嵌入后對視頻碼率和視頻質(zhì)量的影響;在水印檢測端,本發(fā)明方法可以實現(xiàn)水印的快速檢測,即只需解碼宏塊的編碼模式以及運動矢量即可,能夠很好地滿足視頻實時處理的要求。
文檔編號H04N7/26GK101888548SQ201010204568
公開日2010年11月17日 申請日期2010年6月17日 優(yōu)先權日2010年6月17日
發(fā)明者徐達文, 朱洪留, 王讓定 申請人:寧波大學