一種用于插入水印和檢測提取水印的裝置及方法
【專利摘要】本發(fā)明公開了一種用于插入水印和檢測提取水印的裝置及方法,其中裝置包括用于插入水印的插入裝置及檢測提取水印的檢測提取裝置,插入裝置將水印信息插入至I幀擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域中,作為擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載,并且對I幀進(jìn)行加擾處理,加密級層更低,有控制字CW密鑰的保護(hù),很難被破解,并且I幀作為后續(xù)幀的參考幀,減少對其他幀的系統(tǒng)處理壓力。
【專利說明】—種用于插入水印和檢測提取水印的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及付費(fèi)數(shù)字電視領(lǐng)域,尤其涉及對符合MPEG2規(guī)范的數(shù)據(jù)流進(jìn)行水印插入、提取的裝置及方法。
【背景技術(shù)】
[0002]水印屬于一種信息隱藏的技術(shù),被廣泛應(yīng)用于數(shù)字媒體數(shù)據(jù)中,通過在媒體數(shù)據(jù)(如音頻、視頻、圖像)中隱藏具有特定意義的信息,從而可以達(dá)到對原有媒體數(shù)據(jù)的溯源跟蹤、數(shù)字版權(quán)的保護(hù),并且不會對原有的媒體數(shù)據(jù)質(zhì)量有所損耗,也不會被人們視聽到。
[0003]MPEG2作為一種音視頻編解碼標(biāo)準(zhǔn),在當(dāng)前數(shù)字電視廣播領(lǐng)域的具有重要的作用?,F(xiàn)有的技術(shù)已經(jīng)實(shí)現(xiàn)了將水印信息直接插入到視頻幀中,但是直接插入的水印信息很容易被攻擊者發(fā)現(xiàn),并且進(jìn)行剔除,而且剔除之后,也不會影響原數(shù)據(jù)流的質(zhì)量。并且,傳統(tǒng)的基于MPEG2傳輸流的加擾和解擾方式通常采用對TS的負(fù)載進(jìn)行擾化或者對PES的負(fù)載進(jìn)行擾化。因此,現(xiàn)有的水印方法安全性非常弱,很容易遭受攻擊且不被發(fā)現(xiàn),達(dá)不到實(shí)際應(yīng)用中的要求。
[0004]因此,隨著數(shù)字電視的迅速發(fā)展和對數(shù)字版權(quán)保護(hù)的需求,亟待開發(fā)出一種更可靠、更安全的水印方法及系統(tǒng)來用于解決付費(fèi)數(shù)字電視在實(shí)際中存在的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是為了解決上述現(xiàn)有技術(shù)中存在的問題,提出了用于插入水印的插入裝置,包括幀定位器(201),從基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流中定位出I幀的起始位置及I幀數(shù)據(jù)的范圍;水印構(gòu)造器(301),將原始的水印數(shù)據(jù)構(gòu)造成水印信息(104);擴(kuò)展和用戶數(shù)據(jù)產(chǎn)生器(302),將水印信息(104)作為所述擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載;插入器(303),將擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域(105)插入到I幀中;加密器(202),將帶有水印的I幀數(shù)據(jù)(106)使用加密密鑰(107)進(jìn)行加密和/或加擾,形成密文I幀數(shù)據(jù)(108);整合器(203),將帶水印的密文I幀數(shù)據(jù)(108)整合至數(shù)據(jù)流中。
[0006]本發(fā)明所提出的用于檢測提取水印的檢測提取裝置,當(dāng)上述插入裝置插入水印后,能夠從所述基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流中提取出水印,包括:接收模塊(A),接收帶有水印的數(shù)據(jù)流;解擾模塊(B),包括對帶有水印的數(shù)據(jù)流中的I幀進(jìn)行定位的定位模塊(BI),對定位后的帶有水印的I幀進(jìn)行解擾的解擾模塊(B2)和接收對應(yīng)解擾密鑰的解密模塊(B3);提取模塊(C),從解擾后的帶水印的I幀數(shù)據(jù)中定位到擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,并從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中取出水印信息;輸出模塊(D),輸出水印信息。
[0007]本發(fā)明所提出的用于插入水印的插入方法,包括如下步驟:
步驟SI,對基于MPEG2數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀;
步驟S2,判斷I幀是否存在擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,若不存在執(zhí)行步驟3 ;若存在,則執(zhí)行步驟4;
步驟S3,構(gòu)造擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,將水印插入擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,再將帶水印的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域嵌入到I幀中;
步驟S4,將水印插入至I幀的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域中;
步驟S5,利用控制字CW對I幀進(jìn)行加擾處理;
步驟S6,循環(huán)步驟S2至S5處理多個I幀。
[0008]本發(fā)明所提出的用于檢測提取水印的檢測提取方法,包括如下步驟:
步驟Ql:對基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀以及授權(quán)控制信息;
步驟Q2:處理授權(quán)控制信息,得出解密密匙,根據(jù)解密密匙對I幀進(jìn)行解擾處理,恢復(fù)出原I幀的數(shù)據(jù);
步驟Q3:從原I幀的數(shù)據(jù)中定位到擴(kuò)展用戶域和/或用戶數(shù)據(jù)域。
[0009]步驟Q4:從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中提取出水印信息;
步驟Q5:循環(huán)步驟Ql至Q4,從MPEG2數(shù)據(jù)流中處理所有的I幀,并從I幀中提取出水印,形成水印序列。
[0010]本發(fā)明所提出的用于插入水印和檢測提取水印的裝置,包括上述的檢測提取裝置和插入裝置,本發(fā)明所提出的用于插入水印和檢測提取水印的方法,包括上述的插入方法和檢測提取方法。
[0011]本發(fā)明通過分析MPEG2標(biāo)準(zhǔn)中視頻流序列的組織結(jié)構(gòu),利用I幀的獨(dú)立編碼特性,對I幀進(jìn)行獨(dú)立擾化處理以及I幀中的擴(kuò)展數(shù)據(jù)域和用戶數(shù)據(jù)域三方面結(jié)合實(shí)現(xiàn)水印功能。分析和定位原視頻流中的所有I幀,嵌入水印到所述I幀中的擴(kuò)展和用戶數(shù)據(jù)域,將嵌入后的帶水印的I幀進(jìn)行擾化(其他B或P幀無需進(jìn)行擾化),以此實(shí)現(xiàn)水印功能。本發(fā)明不損耗原有MPEG2數(shù)據(jù)流的質(zhì)量,同時具有擾化密鑰(控制字CW)的保護(hù),具有很強(qiáng)的隱蔽性和安全性,適用于對信息隱藏和版權(quán)的保護(hù),特別適用于付費(fèi)數(shù)字電視廣播領(lǐng)域。
【專利附圖】
【附圖說明】
[0012]下面,對照附圖和較佳實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明,其中:
圖1是本發(fā)明檢測提取裝置的結(jié)構(gòu)示意圖;
圖2是本發(fā)明插入裝置的結(jié)構(gòu)示意圖;
圖3是本發(fā)明插入水印的流程圖;
圖4是本發(fā)明檢測提取水印的流程圖。
【具體實(shí)施方式】
[0013]下面結(jié)合附圖和實(shí)施例對發(fā)明進(jìn)行詳細(xì)的說明。應(yīng)當(dāng)理解,對具體實(shí)施例的說明僅僅用以解釋本發(fā)明提出的技術(shù)方案,并非限定本發(fā)明。
[0014]如圖1、圖2所示,本發(fā)明所提出用于插入水印和檢測提取水印的裝置包括插入裝置和檢測提取裝置。其中基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流包括音頻、視頻以及用于對數(shù)據(jù)流進(jìn)行解擾的ECM、EMM等數(shù)據(jù)。插入裝置包括幀定位器201、水印構(gòu)造器301、擴(kuò)展和用戶數(shù)據(jù)產(chǎn)生器302、插入器303、加密器202、整合器203、信號輸出端109。檢測提取裝置包括接收模塊A、解擾模塊B、提取模塊C、輸出模塊D。
[0015]定位器201是用來定位數(shù)據(jù)流中的I幀的位置以及長度,即從數(shù)據(jù)流中定位出I幀的起始位置及I幀數(shù)據(jù)的范圍,根據(jù)MPEG2視頻比特流的語法結(jié)構(gòu),數(shù)據(jù)流按照高層組織從上到下分為:視頻序列層_>圖像組層_>圖像層。其中每一層都包含一個唯一的十六進(jìn)制位串組成的起始碼,可以根據(jù)這個起始碼區(qū)分不同的層次,如視頻序列層的序列頭起始碼為000001B3,圖像組層的圖組頭起始碼為000001B8,圖像層的起始碼為00000100。其中數(shù)據(jù)流的I幀位于圖像組層下的圖像層,其起始碼為00000100,每個圖像組包括多個視頻幀,通常第一個視頻幀就是I幀。水印構(gòu)造器301通過水印算法將原始的水印數(shù)據(jù)構(gòu)造成水印信息104,然后通過擴(kuò)展和用戶數(shù)據(jù)產(chǎn)生器302,將水印信息嵌入至I幀擴(kuò)展數(shù)據(jù)域的負(fù)載,或者用戶數(shù)據(jù)域的負(fù)載,也可以兩者都嵌入,擴(kuò)展數(shù)據(jù)域?yàn)槭M(jìn)制位串為000001B5,用戶數(shù)據(jù)域105為十六進(jìn)制位串為000001B2。當(dāng)I幀中不存在擴(kuò)展數(shù)據(jù)域或用戶數(shù)據(jù)域時,擴(kuò)展和用戶數(shù)據(jù)域產(chǎn)生器還會先產(chǎn)生擴(kuò)展數(shù)據(jù)域或用戶數(shù)據(jù)域,以供使用。插入器303根據(jù)情況將擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域105插入到I幀中,可以插入至I幀數(shù)據(jù)內(nèi)的PictureData前或Picture Data后。然后加密器202將I幀數(shù)據(jù)106使用加密密鑰107進(jìn)行加擾,或者進(jìn)行加密,本發(fā)明中采用控制字CW作為加密密鑰,形成密文I幀數(shù)據(jù)108,在控制字CW的保證下水印具有很強(qiáng)的隱蔽性和安全性,同時水印信息嵌入在I幀數(shù)據(jù)中的擴(kuò)展、用戶數(shù)據(jù)域,不會影響原MPEG2視頻數(shù)據(jù)質(zhì)量,又使得水印的魯棒性得到很好的解決。然后通過整合器203將密文I幀數(shù)據(jù)108整合至數(shù)據(jù)流中,最后通過信號輸出端109輸出數(shù)據(jù)流。接收模塊A接收帶有水印的數(shù)據(jù)流,解擾模塊B包含了三個子模塊,分別是定位模塊B1、解擾模塊B2、解密模塊B3,其中定位模塊BI的工作原理與插入裝置中的定位器201類似,對待水印的數(shù)據(jù)流中的I幀進(jìn)行定位。然后解擾模塊從接收模塊A中獲取與解密密鑰相關(guān)的信息,例如ECM數(shù)據(jù),然后解密模塊B3對密鑰信息(ECM)進(jìn)行運(yùn)算,獲取解擾密鑰,提供給解擾模塊,解擾模塊B2通過解擾密鑰對I幀進(jìn)行解擾,本發(fā)明中解擾密鑰采用控制字CW,由提取模塊C從解擾后的帶水印的I幀數(shù)據(jù)中通過起始碼為十六進(jìn)制位串000001B2定位定位到擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,并從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中取出水印信息,最后通過輸出模塊D輸出水印信息。
[0016]如圖3、圖4所示,本發(fā)明所提出用于插入水印和檢測提取水印的方法,包括插入方法和檢測提取方法。
[0017]插入方法的詳細(xì)步驟包括:
步驟SI,對基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀;
步驟S2,判斷I幀是否存在擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,若不存在執(zhí)行步驟3 ;若存在,則執(zhí)行步驟4;
步驟S3,構(gòu)造擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,將水印插入擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,再將帶水印的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域嵌入到I幀中;
步驟S4,將水印插入至I幀的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域中;
步驟S5,利用控制字CW對I幀進(jìn)行加擾處理;
步驟S6,循環(huán)步驟S2至S5直至所有的I幀處理完畢;
檢測提取方法的詳細(xì)步驟包括:
步驟Ql:對數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀以及授權(quán)控制信息;步驟Q2:處理授權(quán)控制信息,得出解密密匙,根據(jù)解密密匙對I幀進(jìn)行解擾處理,恢復(fù)出原I幀的數(shù)據(jù); 步驟Q3:從原I幀的數(shù)據(jù)中定位到擴(kuò)展用戶域和/或用戶數(shù)據(jù)域。
[0018]擴(kuò)展數(shù)據(jù)域和用戶數(shù)據(jù)域的定位都是通過唯一的起始碼進(jìn)行檢索和定位,因?yàn)閿U(kuò)展和用戶數(shù)據(jù)域各自都有唯一的十六進(jìn)制起始碼,分別為000001B5和000001B2。在水印插入過程中,水印信息可以嵌入擴(kuò)展數(shù)據(jù)域,也可以嵌入用戶數(shù)據(jù)域,還可以兩者都進(jìn)行嵌入,本發(fā)明并不限定使用哪一種方式進(jìn)行嵌入,但需要結(jié)合插入裝置選用的方式而確定。根據(jù)插入裝置采用的方式,選用對應(yīng)的起始碼值(如用戶數(shù)據(jù)域的起始碼十六進(jìn)制000001B2),然后在原I幀數(shù)據(jù)中,檢索到與起始碼值(如000001B2)相符的起始碼。從檢索到的起始碼(如000001B2)開始到下一個起始碼前的數(shù)據(jù)則為擴(kuò)展用戶域和/或用戶數(shù)據(jù)字段的負(fù)載,此負(fù)載中帶有水印信息。
[0019]步驟Q4:從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中提取出水印信息;
步驟Q5:循環(huán)步驟Ql至Q4,從MPEG2數(shù)據(jù)流中處理所有的I幀,并從I幀中提取出水印,形成水印序列。在水印序列中,每一個水印信息可以是相同的(如版權(quán)信息)或不同的(如指紋信息)。
[0020]在上述步驟S1、Ql中檢索和定位數(shù)據(jù)流中的I幀的詳細(xì)步驟為:
步驟SQl:根據(jù)MPEG2視頻比特流的語法結(jié)構(gòu),將基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流從上到下分成視頻序列層、圖像組層、圖像層,每一層設(shè)有唯一的十六進(jìn)制位串作為起始碼;
步驟SQ2:檢索圖像層的起始碼,檢索圖像組層的起始碼,繼續(xù)檢索圖像組層下圖像層的第一個起始碼,繼續(xù)檢索圖像層的第二個起始碼,所述圖像層的第一個起始碼開始到第二個起始碼之間的數(shù)據(jù)為I幀數(shù)據(jù)。
[0021]在上述插入水印的過程中,由于圖像層中的I幀作為后續(xù)B或P幀的參考幀,所以只需要對I幀進(jìn)行擾化處理就可以實(shí)現(xiàn)對其他圖像幀的保護(hù),同時減少檢測提取裝置的加擾和解擾方面的開銷。并且本發(fā)明的加密加擾級別更低,已經(jīng)到了幀級別,嵌入在幀內(nèi)的水印,很難被外界發(fā)現(xiàn)或攻擊,確保了水印信息的安全性,而水印信息是通過水印算法加密后才放到擴(kuò)展用戶域和/或用戶數(shù)據(jù)域中的,水印算法獨(dú)立于整個插入提取系統(tǒng)及方法,安全性、可靠性更高。
【權(quán)利要求】
1.一種用于插入水印的插入裝置,其特征在于,包括: 幀定位器(201),從基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流中定位出I幀的起始位置及I幀數(shù)據(jù)的范圍; 水印構(gòu)造器(301),將原始的水印數(shù)據(jù)構(gòu)造成水印信息(104 ); 擴(kuò)展和用戶數(shù)據(jù)產(chǎn)生器(302),將水印信息(104)作為所述擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載; 插入器(303),將擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域(105)插入到I幀中; 加密器(202),將帶有水印的I幀數(shù)據(jù)(106)使用加密密鑰(107)進(jìn)行加密和/或加擾,形成密文I幀數(shù)據(jù)(108); 整合器(203),將帶水印的密文I幀數(shù)據(jù)(108)整合至數(shù)據(jù)流中。
2.如權(quán)利要求1所述的用于插入水印的插入裝置,其特征在于,當(dāng)I幀中不存在擴(kuò)展數(shù)據(jù)域或用戶數(shù)據(jù)域時,擴(kuò)展和用戶數(shù)據(jù)產(chǎn)生器產(chǎn)生可插入于I幀數(shù)據(jù)內(nèi)的擴(kuò)展數(shù)據(jù)域或用戶數(shù)據(jù)域。
3.如權(quán)利要求1或2所述的用于插入水印的插入裝置,其特征在于,所述擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域(105)插入至I幀數(shù)據(jù)內(nèi)的Picture Data前或Picture Data后。
4.一種用于檢測提取水印的檢測提取裝置,其特征在于,當(dāng)如權(quán)利要求3所述的插入裝置插入水印后,能夠從所述基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流中提取出水印,所述檢測提取裝置包括: 接收模塊(A),接收帶有水印的數(shù)據(jù)流; 解擾模塊(B),包括對帶有水印的數(shù)據(jù)流中的I幀進(jìn)行定位的定位模塊(BI),對定位后的帶有水印的I幀進(jìn)行解擾的解擾模塊(B2)和接收對應(yīng)解擾密鑰的解密模塊(B3); 提取模塊(C),從解擾后的帶水印的I幀數(shù)據(jù)中定位到擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,并從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中取出水印信息; 輸出模塊(D),輸出水印信息。
5.一種用于插入水印的插入方法,其特征在于, 步驟SI,對基于MPEG2數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀; 步驟S2,判斷I幀是否存在擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,若不存在執(zhí)行步驟3 ;若存在,則執(zhí)行步驟4; 步驟S3,構(gòu)造擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,將水印插入擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域,再將帶水印的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域嵌入到I幀中; 步驟S4,將水印插入至I幀的擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域中; 步驟S5,利用控制字CW對I幀進(jìn)行加擾處理; 步驟S6,循環(huán)步驟S2至S5處理多個I幀。
6.一種用于檢測提取水印的檢測提取方法,其特征在于,用于檢測提取如權(quán)利要求5所述的插入方法處理后的基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流中的水??; 步驟Ql:對基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流的語法進(jìn)行解析,檢索和定位數(shù)據(jù)流的I幀以及授權(quán)控制信息; - 步驟Q2:處理授權(quán)控制信息,得出解密密匙,根據(jù)解密密匙對I幀進(jìn)行解擾處理,恢復(fù)出原I幀的數(shù)據(jù);步驟Q3:從原I幀的數(shù)據(jù)中定位到擴(kuò)展用戶域和/或用戶數(shù)據(jù)域; 步驟Q4:從擴(kuò)展數(shù)據(jù)域和/或用戶數(shù)據(jù)域的負(fù)載中提取出水印信息; 步驟Q5:循環(huán)步驟Ql至Q4,從MPEG2數(shù)據(jù)流中處理所有的I幀,并從I幀中提取出水印,形成水印序列。
7.一種用于插入水印和檢測提取水印的裝置,其特征在于,包括如權(quán)利要求3所述的插入裝置和如權(quán)利要求4所述的檢測提取裝置。
8.一種用于插入水印和檢測提取水印的方法,其特征在于,包括如權(quán)利要求5所述的插入方法和如權(quán)利要求6所述的檢測提取方法。
9.如權(quán)利要求8所述的方法,其特征在于,所述插入方法及檢測提取方法中的檢測定位I幀,其詳細(xì)步驟為: 步驟SQl:根據(jù)MPEG2視頻比特流的語法結(jié)構(gòu),將基于MPEG2標(biāo)準(zhǔn)的數(shù)據(jù)流從上到下分成視頻序列層、圖像組層、圖像層,每一層設(shè)有唯一的十六進(jìn)制位串作為起始碼; 步驟SQ2:檢索圖像層的起始碼,檢索圖像組層的起始碼,繼續(xù)檢索圖像組層下圖像層的第一個起始碼,繼續(xù)檢索圖像層的第二個起始碼,所述圖像層的第一個起始碼開始到第二個起始碼之間的數(shù)據(jù)為I幀數(shù)據(jù)。
【文檔編號】H04N19/467GK103929646SQ201410176324
【公開日】2014年7月16日 申請日期:2014年4月29日 優(yōu)先權(quán)日:2014年4月29日
【發(fā)明者】蔣燦, 徐浩 申請人:深圳國微技術(shù)有限公司