[發(fā)明專利]一種面向H.264壓縮比特流的視頻水印方法無效
| 申請?zhí)枺?/td> | 201010177007.2 | 申請日: | 2010-05-18 |
| 公開(公告)號: | CN101841700A | 公開(公告)日: | 2010-09-22 |
| 發(fā)明(設(shè)計)人: | 王讓定;朱洪留;徐達文 | 申請(專利權(quán))人: | 寧波大學 |
| 主分類號: | H04N7/24 | 分類號: | H04N7/24;H04N7/50 |
| 代理公司: | 寧波奧圣專利代理事務(wù)所(普通合伙) 33226 | 代理人: | 程曉明 |
| 地址: | 315211 浙*** | 國省代碼: | 浙江;33 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 面向 264 壓縮 比特流 視頻 水印 方法 | ||
1.一種面向H.264壓縮比特流的視頻水印方法,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兩類,當所述的I宏塊使用Intra_4×4編碼模式時,將所述的I宏塊分為16個4×4亮度塊,所述的4×4亮度塊具有DC預測模式和八種方向預測模式,所述的DC預測模式用數(shù)字2標識,所述的八種方向預測模式包括垂直、水平、下左對角線、下右對角線、右垂直、下水平、左垂直和上水平方向預測模式,所述的垂直方向預測模式用數(shù)字0標識,所述的水平方向預測模式用數(shù)字1標識,所述的下左對角線方向預測模式用數(shù)字3標識,所述的下右對角線方向預測模式用數(shù)字4標識,所述的右垂直方向預測模式用數(shù)字5標識,所述的下水平方向預測模式用數(shù)字6標識,所述的左垂直方向預測模式用數(shù)字7標識,所述的上水平方向預測模式用數(shù)字8標識,所述的B宏塊的編碼模式分為DIRECT、Inter_16×16、Inter_16×8、Inter_8×16及P8×8五類,所述的DIRECT編碼模式用數(shù)字0標識,所述的Inter_16×16編碼模式用數(shù)字1標識,所述的Inter_16×8編碼模式用數(shù)字2標識,所述的Inter_8×16編碼模式用數(shù)字3標識,所述的P8×8編碼模式用數(shù)字8標識,當所述的B宏塊使用Inter_16×16編碼模式時,將所述的B宏塊分為1個16×16運動子塊,當所述的B宏塊使用Inter_16×8編碼模式時,將所述的B宏塊分為2個16×8運動子塊,當所述的B宏塊使用Inter_8×16編碼模式時,將所述的B宏塊分為2個8×16運動子塊,當所述的B宏塊使用P8×8編碼模式時,將所述的B宏塊首先分為4個8×8子塊,所述的8×8子塊具有Inter_8×8、Inter_8×4、Inter_4×8、Inter_4×4四類編碼模式,所述的Inter_8×8編碼模式用數(shù)字4標識,所述的Inter_8×4編碼模式用數(shù)字5標識,所述的Inter_4×8編碼模式用數(shù)字6標識,所述的Inter_4×4編碼模式用數(shù)字7標識,當所述的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運動子塊,所述的P宏塊的編碼模式分為SKIP、Inter_16×16、Inter_16×8及Inter_8×16、P8×8五類,所述的SKIP編碼模式用數(shù)字0標識,所述的Inter_16×16編碼模式用數(shù)字1標識,所述的Inter_16×8編碼模式用數(shù)字2標識,所述的Inter_8×16編碼模式用數(shù)字3標識,所述的P8×8編碼模式用數(shù)字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四類編碼模式,所述的Inter_8×8編碼模式用數(shù)字4標識,所述的Inter_8×4編碼模式用數(shù)字5標識,所述的Inter_4×8編碼模式用數(shù)字6標識,所述的Inter_4×4編碼模式用數(shù)字7標識,當所述的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、根據(jù)H.264/AVC視頻受到干擾或攻擊后各4×4亮度塊預的測模式發(fā)生轉(zhuǎn)移的模式轉(zhuǎn)移概率,將4×4亮度塊具有的DC預測模式、垂直方向預測模式、水平方向預測模式、下左對角線方向預測模式、下右對角線方向預測模式、右垂直方向預測模式、下水平方向預測模式、左垂直方向預測模式和上水平方向預測模式分為兩組,分別定義為第一組預測模式和第二組預測模式;
①-2、在水印嵌入端,隨機選擇一個[1,16]區(qū)間內(nèi)的整數(shù)作為認證密鑰,記為Key1,隨機選擇一個[1,16]區(qū)間內(nèi)的整數(shù)作為水印密鑰,記為Key2;
①-3、對于當前需嵌入水印的H.264/AVC視頻壓縮比特流以片為單位進行處理,定義當前正在處理的片為當前片;
①-4、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行下一步,否則,執(zhí)行步驟①-7;
①-5、定義當前片中當前正在處理的I宏塊為當前I宏塊,判斷當前I宏塊使用的編碼模式是否為Intra_4×4編碼模式,如果是,則根據(jù)認證密鑰Key1選擇當前I宏塊中與認證密鑰Key1位置相對應的4×4亮度塊,當該4×4亮度塊所使用的預測模式屬于第一組預測模式時,生成第k個認證碼,記為Ck,Ck=0,當該4×4亮度塊所使用的預測模式屬于第二組預測模式時,生成第k個認證碼,記為Ck,Ck=1,其中,k的初始值為1,1≤k≤K,K表示當前片中使用Intra_4×4編碼模式的所有I宏塊的個數(shù);否則,對當前I宏塊不進行處理;
①-6、將當前片中下一個待處理的I宏塊作為當前I宏塊,返回執(zhí)行步驟①-5,直至當前片中所有I宏塊處理完畢,獲得一個認證碼序列,記為C,C={C1,C2,…,Ck,…,CK,1≤k≤K},將該認證碼序列C作為待嵌入的水印序列,將認證碼作為待嵌入的水印比特位,然后執(zhí)行步驟①-13;
①-7、當當前片為B片或P片時,根據(jù)水印密鑰Key2選擇當前片中所有編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中運動矢量殘差的絕對值大于1,且與水印密鑰Key2位置相對應的運動子塊作為可嵌入水印的運動子塊,定義所有可嵌入水印的運動子塊構(gòu)成的集合為待嵌入水印的運動子塊集合,記為V,V={V1p,…,Vqp,…,VNp},其中,V1p表示當前片中第1個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p個運動子塊,Vqp表示當前片中第q個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p個運動子塊,VNp表示當前片中第N個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p個運動子塊,N表示待嵌入水印的運動子塊集合V中包含的可嵌入水印的運動子塊的總個數(shù),p=Key2,q的初始值為1;
①-8、定義當前片中所有編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中所有絕對值大于1的運動矢量殘差生成的可變長碼字構(gòu)成的集合為可嵌入水印的碼字集合,記為S,S={vlc1′,…,vlcq1′,…,vlcN1′},其中,vlc1′、vlcq1′、vlcN1′分別表示可嵌入水印的碼字集合S中的第1個可變長碼字、第q1個可變長碼字、第N1個可變長碼字,N1表示可嵌入水印的碼字集合S中包含的不同的可變長碼字的總個數(shù),q1的初始值為1;
①-9、根據(jù)可嵌入水印的碼字集合S中各個可變長碼字對應的運動矢量殘差的絕對值及各個可變長碼字的長度,將可嵌入水印的碼字集合S分為可嵌入水印的第一碼字子集和可嵌入水印的第二碼字子集,分別記為S1和S2;
①-10、將待嵌入水印的運動子塊集合V中的各個運動子塊的運動矢量殘差生成的可變長碼字構(gòu)成的集合定義為待嵌入水印的碼字集合,記為SV,SV={vlc1,…,vlcq,…,vlcN},其中,vlc1、vlcq、vlcN分別表示待嵌入水印的運動子塊集合V中的第1個運動子塊的運動矢量殘差生成的可變長碼字、待嵌入水印的運動子塊集合V中的第q個運動子塊的運動矢量殘差生成的可變長碼字、待嵌入水印的運動子塊集合V中的第N個運動子塊的運動矢量殘差生成的可變長碼字,N表示待嵌入水印的碼字集合SV中包含的不同的可變長碼字的總個數(shù),與待嵌入水印的運動子塊集合V中包含的可嵌入水印的運動子塊的總個數(shù)相同,q的初始值為1;
①-11、定義待嵌入水印的碼字集合SV中當前待嵌入水印的可變長碼字為當前可變長碼字,然后判斷待嵌入的水印序列C中所有待嵌入的水印比特位是否已嵌入完畢,如果是,則重復使用待嵌入的水印序列C,否則,根據(jù)待嵌入的水印序列C中當前待嵌入的水印比特位進行碼字替換,如果待嵌入的水印比特位為0,則認為當前可變長碼字為可嵌入水印的第一碼字子集合S1中的可變長碼字,如果當前可變長碼字本身為可嵌入水印的第一碼字子集合S1中的可變長碼字,則對當前可變長碼字不進行任何修改,實現(xiàn)水印嵌入,否則將當前可變長碼字替換為可嵌入水印的第一碼字子集合S1中與之次匹配的可變長碼字,實現(xiàn)水印嵌入;如果待嵌入的水印比特位為1,則認為當前可變長碼字為可嵌入水印的第二碼字子集合S2中的可變長碼字,如果當前可變長碼字本身為可嵌入水印的第二碼字子集合S2中的可變長碼字,則對當前可變長碼字不進行任何修改,實現(xiàn)水印嵌入,否則將當前可變長碼字替換為可嵌入水印的第二碼字子集合S2中與之次匹配的可變長碼字,實現(xiàn)水印嵌入;
①-12、將待嵌入水印的碼字集合SV中下一個待嵌入水印的可變長碼字作為當前可變長碼字,并返回執(zhí)行步驟①-11,直到待嵌入水印的碼字集合SV中的所有可變長碼字處理完畢,完成水印的嵌入,然后執(zhí)行下一步;
①-13、將下一個待處理的片作為當前片,并返回執(zhí)行步驟①-4,直至H.264/AVC視頻壓縮比特流中所有片處理完畢,得到嵌入有水印的H.264/AVC視頻壓縮比特流;
①-14、水印嵌入端將認證密鑰Key1、水印密鑰Key2、第一組預測模式M、第二組預測模式M′、可嵌入水印的第一碼字集合S1和可嵌入水印的第二碼字集合S2發(fā)送給水印檢測端;
②-1、在水印檢測端,對于當前嵌入有水印的H.264/AVC視頻壓縮比特流以片為單位進行處理,定義當前正在處理的片為當前片;
②-2、判斷當前片是否為I片,如果是,則繼續(xù)執(zhí)行,否則,執(zhí)行步驟②-5;
②-3、定義當前片中當前正在處理的I宏塊為當前I宏塊,判斷當前I宏塊使用的編碼模式是否為Intra_4×4編碼模式,如果是,則首先解碼當前I宏塊中各個4×4亮度塊的預測模式,然后根據(jù)接收到的認證密鑰Key1選擇當前I宏塊中位置相對應的4×4亮度塊,當該4×4亮度塊所使用的預測模式屬于第一組預測模式時,生成第k個重建認證碼,記為Ck′,Ck′=0,當該4×4亮度塊所使用的預測模式屬于第二組預測模式時,生成第k個重建認證碼,記為Ck′,Ck′=1,其中,k的初始值為1,1≤k≤K′,K′表示當前片中使用Intra_4×4編碼模式的所有I宏塊的個數(shù);否則,對當前I宏塊不進行處理;
②-4、將當前片中下一個待處理的I宏塊作為當前I宏塊,返回執(zhí)行步驟②-3,直至當前片中所有I宏塊處理完畢,獲得一個重建認證碼序列,記為C′,C′={C1′,C2′,…,Ck′,…,CK′′,1≤k≤K′},然后執(zhí)行步驟②-10;
②-5、當當前片為B片或P片時,根據(jù)接收到的水印密鑰Key2選擇當前片中所有編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中運動矢量殘差的絕對值大于1,且與水印密鑰Key2位置相對應的運動子塊作為可提取水印的運動子塊,定義所有可提取水印的運動子塊構(gòu)成的集合為待提取水印的運動子塊集合,記為V′,V′={V1p′,…,Vq′p′,…,VN′p′},其中,V1p′表示當前片中第1個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p′個運動子塊,Vq′p′表示當前片中第q′個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p′個運動子塊,VN′p′表示當前片中第N′個編碼模式為Inter_16×16、Inter_16×8、Inter_8×16或P8×8的B宏塊或P宏塊中的第p′個運動子塊,N′表示待提取水印的運動子塊集合V′中包含的可提取水印的運動子塊的總個數(shù),p′=Key2,q′的初始值為1;
②-6、將待提取水印的運動子塊集合V′中的各個運動子塊的運動矢量殘差生成的可變長碼字構(gòu)成的集合定義為待提取水印的碼字集合,記為S′,S′={vlc1′,…,vlcq′′,…,vlcN′′},其中,vlc1′、vlcq′′、vlcN′′分別表示待提取水印的運動子塊集合V′中的第1個運動子塊的運動矢量殘差生成的可變長碼字、待提取水印的運動子塊集合V′中的第q′個運動子塊的運動矢量殘差生成的可變長碼字、待提取水印的運動子塊集合V′中的第N′個運動子塊的運動矢量殘差生成的可變長碼字,N′表示待提取水印的碼字集合S′中包含的不同的可變長碼字的總個數(shù);
②-7、根據(jù)待提取水印的碼字集合S′中各個可變長碼字提取水印信息,定義待提取水印的碼字集合S′中當前待提取的可變長碼字為當前可變長碼字,如果當前可變長碼字屬于可嵌入水印的第一碼字集合S1,則提取水印比特位0;如果當前可變長碼字屬于可嵌入水印的第二碼字集合S2,則提取水印比特位1;
②-8、將待提取水印的碼字集合S′中下一個待提取水印的可變長碼字作為當前可變長碼字,并返回執(zhí)行步驟②-7,直到待提取水印的碼字集合S′中的所有可變長碼字處理完畢,得到從當前片中提取出的水印序列,并記為W′,W′={W1′,W2′,...Wk′,...WN′,1≤k≤N′};
②-9、判斷重建認證碼序列的長度是否小于當前片中提取出的水印序列的長度,如果是,則重復排列重建認證碼序列,獲取一個長度與當前片中提取出的水印序列的長度相同的重組重建認證碼序列,比較重組重建認證碼序列和當前片中提取出的水印序列,統(tǒng)計兩者不相同的比特位個數(shù),記為S′,然后根據(jù)重組重建認證碼序列和當前片中提取出的水印序列計算檢測出錯率,記為BER,其中,S表示當前片中提取出的水印序列包含的水印比特位的總個數(shù),再判斷BER≤τ是否成立,如果成立,則表示當前片中提取出的水印與水印嵌入端嵌入的水印相同,否則,表示當前片中提取出的水印與水印嵌入端嵌入的水印不相同,其中,τ為設(shè)定的閾值;
②-10、將下一個待處理的片作為當前片,并返回執(zhí)行步驟②-2,直至H.264/AVC視頻壓縮比特流中所有片處理完畢。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于寧波大學,未經(jīng)寧波大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010177007.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





