專利名稱:一種數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入與提取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字水印技術(shù),尤其是涉及一種數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入 與提取方法。
背景技術(shù):
近年來(lái),隨著數(shù)字多媒體及互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,信息安全問題顯得非常突出。 數(shù)字水印技術(shù)是目前信息安全領(lǐng)域的一個(gè)新方向,數(shù)字水印技術(shù)是一種將可識(shí)別的數(shù)據(jù) 嵌入到數(shù)字音樂作品中的技術(shù),用人類感覺器官無(wú)法識(shí)別,而使用專門的檢測(cè)工具可以 方便地識(shí)別,它作為傳統(tǒng)加密技術(shù)的有效補(bǔ)充手段,是一種可在開放網(wǎng)絡(luò)環(huán)境下保護(hù)數(shù) 字音樂作品版權(quán)、認(rèn)證數(shù)字音樂作品來(lái)源及保護(hù)數(shù)字音樂作品完整性的新技術(shù)。目前, 已有許多用于未壓縮數(shù)字音樂作品的數(shù)字水印技術(shù),如《基于擴(kuò)譜技術(shù)的音頻水印算法》 作者D.Kirovski, H.S.Malvar和《基于DWT和DCT變換的抗同步攻擊的音頻水印方法》 作者X.Y.Wang,H.Zhao,雖然這些數(shù)字水印技術(shù)己經(jīng)相當(dāng)成熟,但由于未壓縮數(shù)字音 樂作品往往數(shù)據(jù)量巨大,因此往往導(dǎo)致數(shù)字音樂作品的傳輸和存儲(chǔ)成本相當(dāng)高,從而使 得其應(yīng)用范圍受到極大限制,主要用于存放以備將來(lái)作進(jìn)一步處理,而不是提供給用戶 進(jìn)行播放。另一方面,目前大量的數(shù)字音樂作品是以壓縮格式提供的,常見的格式有MPEG (Moving Picture Experts Group,運(yùn)動(dòng)圖像專家組)、AAC (Advanced Audio Coding,高 級(jí)音頻編碼)和WMA (Windows Media Audio,視窗媒體音頻)等,其中以MPEG格 式的數(shù)字音樂作品類型最為常見。但由于壓縮編碼去除了數(shù)字音樂作品音頻樣本之間的 大部分冗余,而數(shù)字水印技術(shù)的基本原理正是利用音頻數(shù)據(jù)的冗余來(lái)實(shí)現(xiàn)水印的嵌入, 因此要在壓縮數(shù)字音樂作品中實(shí)現(xiàn)數(shù)字水印的嵌入是相當(dāng)困難的,目前針對(duì)壓縮數(shù)字音 樂作品的數(shù)字水印方法有《基于MPEG編碼音頻的不可逆水印方法》作者L.Qiao, K.Nahrstedt,《一種針對(duì)MPEG音頻的壓縮域水印算法》作者D.K.Koukopoulos, Y.C.Stamatiou和《基于MPEG-2 AAC音頻的改進(jìn)擴(kuò)譜水印算法》作者S.Cheng, H.Yu, Z.X.Xiong。這些數(shù)字水印技術(shù)雖然能實(shí)現(xiàn)在壓縮格式的數(shù)字音樂作品中嵌入水印信息, 但均會(huì)對(duì)原始的數(shù)字音樂作品造成一定的失真,而且通常情況下這種失真是永久性的, 也即在水印提取成功之后,原始的數(shù)字音樂作品將不可能被無(wú)損地恢復(fù),而在某些嚴(yán)格 的場(chǎng)合如軍事通信和法律認(rèn)證等場(chǎng)合,這種失真是不允許的。目前雖然也出現(xiàn)了不少針
對(duì)靜止圖像、視頻和未壓縮數(shù)字音樂作品的無(wú)損數(shù)字水印方法,但針對(duì)壓縮格式的數(shù)字 音樂作品的無(wú)損數(shù)字水印方法,目前在國(guó)內(nèi)外還未曾出現(xiàn)。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題是提供一種能夠保證將含水印信息的數(shù)字音樂作品不 引起失真、無(wú)損的恢復(fù)的數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入與提取方法。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為 一種數(shù)字音樂作品的無(wú)損數(shù)字水印 嵌入方法,它包括以下步驟1) 、對(duì)于需要嵌入水印信息的數(shù)字音樂作品,對(duì)數(shù)字音樂作品的音頻碼流以音頻幀 為單位進(jìn)行部分解碼,從一音頻幀數(shù)據(jù)中分離出碼字,并通過水印生成器對(duì)該音頻幀進(jìn) 行處理,生成一串二進(jìn)制水印信息;2) 、確定該音頻幀的幀信息,并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼 所使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字;3) 、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將碼表中的所有相互對(duì)應(yīng)的 可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為FQ={Vl, v2,……,&}和& =V'2,……其中v,、 v; (/=1,2, ......,n)分別為碼字集合K()和F/的碼字,"為碼字個(gè)數(shù),碼字集合&和F/中的碼字是一一對(duì)應(yīng)的,碼字集合Fo的可變長(zhǎng)碼字的屬性為"0",碼字集合F/的可變長(zhǎng)碼字的屬性為"1 ";4) 、判斷主數(shù)據(jù)的可變長(zhǎng)碼字屬于碼字集合!^還是屬于碼字集合F7,當(dāng)該可變長(zhǎng) 碼字屬于碼字集合時(shí),確定該可變長(zhǎng)碼字的屬性為"0",當(dāng)該可變長(zhǎng)碼字屬于碼字集合F/時(shí),確定該可變長(zhǎng)碼字的屬性為"1";將主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字對(duì)應(yīng)的屬性順序組成二進(jìn)制碼字屬性序列,然后對(duì)碼字屬性序列進(jìn)行無(wú)損壓縮,得到壓縮的 碼字屬性序列,再將壓縮的碼字屬性序列和水印信息組合成待嵌入的秘密序列,壓縮的 碼字屬性序列為秘密序列的前部,水印信息為秘密序列的后部,壓縮的碼字屬性序列與水印信息之間設(shè)置有結(jié)束標(biāo)記;5) 、根據(jù)可變長(zhǎng)碼字映射規(guī)則將秘密序列嵌入主數(shù)據(jù)中,得到含水印信息的主數(shù)據(jù);6) 、將含水印信息的主數(shù)據(jù)與幀信息重新組合并形成一個(gè)含水印信息的音頻幀;7) 、重復(fù)上述步驟,完成音頻碼流的所有音頻幀的水印信息的嵌入,得到含水印信 息的音頻碼流。所述的可變長(zhǎng)碼字映射規(guī)則為對(duì)于屬性為"0"的可變長(zhǎng)碼字,當(dāng)秘密序列的相 應(yīng)比特位為"0"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),將 該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"1"的可變長(zhǎng)碼字;對(duì)于屬性為"1"的可變長(zhǎng)碼字, 當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特
位為"0"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"0"的可變長(zhǎng)碼字。 數(shù)字音樂作品的無(wú)損數(shù)字水印提取方法,它包括以下步驟1) 、對(duì)含水印信息的音頻碼流以音頻幀為單位進(jìn)行部分解碼,從一音頻幀數(shù)據(jù)中分 離出碼字;2) 、確定該音頻幀的幀信息,并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼 所使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字;3) 、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將碼表中的所有相互對(duì)應(yīng)的 可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為v2,……, }和=v'2,……,v' },其中v,、 v', (/=1,2,......,")分別為碼字集合^和F/的碼字,n為碼字個(gè)數(shù),碼字集合Fo和^中的碼字是一一對(duì)應(yīng)的,碼字集合Fo的可變長(zhǎng)碼字的屬性為"0", 碼字集合F;的可變長(zhǎng)碼字的屬性為"1 ";4) 、判斷主數(shù)據(jù)的可變長(zhǎng)碼字屬于碼字集合K還是屬于碼字集合K;,當(dāng)該可變長(zhǎng)碼字屬于碼字集合Fo時(shí),提取二進(jìn)制信息"0",當(dāng)該可變長(zhǎng)碼字屬于碼字集合F;時(shí),提取二進(jìn)制信息"l",提取出所有可變長(zhǎng)碼字的二進(jìn)制信息完成秘密序列的提取,然后 根據(jù)結(jié)束標(biāo)記將提取的秘密序列分離成壓縮的碼字屬性序列和水印信息兩部分,再對(duì)壓縮的碼字屬性序列進(jìn)行無(wú)損解碼,得到原始的碼字屬性序列;5) 、根據(jù)可變長(zhǎng)碼字映射規(guī)則將含水印信息的主數(shù)據(jù)還原為原始的主數(shù)據(jù);6) 、將原始的主數(shù)據(jù)與幀信息重新組合形成原始的音頻幀;7) 、重復(fù)上述步驟,完成含水印信息的音頻碼流的所有音頻幀的水印信息的提取,得到原始的音頻碼流。所述的可變長(zhǎng)碼字映射規(guī)則為對(duì)于屬性為"0"的可變長(zhǎng)碼字,當(dāng)秘密序列的相應(yīng)比特位為"0"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"1"的可變長(zhǎng)碼字;對(duì)于屬性為"1"的可變長(zhǎng)碼字, 當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"0"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"0"的可變長(zhǎng)碼字。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于由于在水印信息嵌入過程中嵌入的是含壓縮的 碼字屬性序列的秘密序列,使得在水印信息提取過程中可根據(jù)解碼后的碼字屬性序列無(wú)損的恢復(fù)數(shù)字音樂作品;由于水印信息的嵌入不是在音頻碼流壓縮過程中實(shí)現(xiàn),而是直 接在可變長(zhǎng)編碼碼流中實(shí)現(xiàn)的,使得嵌入容量得到較大的增加;由于在水印信息嵌入過 程和提取過程中采用了可變長(zhǎng)碼字映射規(guī)則,使得整個(gè)水印信息嵌入過程和提取過程操 作簡(jiǎn)單。
圖1為大值區(qū)的碼流結(jié)構(gòu)示意圖;圖2為小值區(qū)的碼流結(jié)構(gòu)示意圖;圖3為第六個(gè)哈夫曼碼表信息表示示意圖;圖4為本發(fā)明的無(wú)損數(shù)字水印嵌入的處理流程框圖;圖5為第六個(gè)碼表中的可變長(zhǎng)碼字的映射規(guī)則示意圖;圖6為根據(jù)碼字屬性序列及水印信息構(gòu)成的待嵌入的秘密序列的構(gòu)成示意圖; 圖7為秘密序列嵌入主數(shù)據(jù)的操作示意圖;圖8為水印信息的提取及還原為原始的可變長(zhǎng)碼字的操作示意圖。
具體實(shí)施方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。本發(fā)明處理的對(duì)象為一個(gè)音頻碼流,該音頻碼流采用MPEG標(biāo)準(zhǔn)壓縮,不過本發(fā)明 并不局限于音頻碼流,也不局限于一個(gè)特定的壓縮標(biāo)準(zhǔn)。MPEG編碼器采用哈夫曼編碼, 因此音頻碼流的表現(xiàn)形式為哈夫曼碼字,也稱為可變長(zhǎng)碼字VLC (Variable Length Coding)。 MPEG編碼器給出了32個(gè)可用的哈夫曼碼表,MPEG音頻碼流的主數(shù)據(jù)可變 長(zhǎng)編碼。由于碼表中的可變長(zhǎng)碼字根據(jù)量化后的MDCT(Modified Discrete Cosine Transform, 修正的離散余弦變換)系數(shù)按頻率大小分成大值區(qū)、小值區(qū)和零區(qū),其中對(duì)于大值區(qū), 每?jī)蓚€(gè)MDCT系數(shù)為一組進(jìn)行編碼,其碼流結(jié)構(gòu)如圖l所示;對(duì)于小值區(qū),則每四個(gè) MDCT系數(shù)為一組進(jìn)行編碼,其碼流結(jié)構(gòu)如圖2所示;而對(duì)于零區(qū),不作編碼,圖l和 圖2中,codeword表示可變長(zhǎng)碼字,sigri1 4分別表示所編碼MDCT系數(shù)的符號(hào)位。本 發(fā)明通過研究MPEG編碼器給出的32個(gè)可用的哈夫曼碼表,發(fā)現(xiàn)以下規(guī)律①在大值 區(qū)中,漢明重量相等的系數(shù)組(每?jī)蓚€(gè)系數(shù)為一組),如果對(duì)應(yīng)可變長(zhǎng)碼字的長(zhǎng)度也相 等,則該系數(shù)組對(duì)應(yīng)的符號(hào)位長(zhǎng)度相等;②在小值區(qū)中,如果系數(shù)組(每四個(gè)系數(shù)為一 組)的漢明重量相等,則其對(duì)應(yīng)的可變長(zhǎng)碼字和系數(shù)符號(hào)位的總長(zhǎng)度相等,根據(jù)這個(gè)規(guī) 律可以有效地避免因可變長(zhǎng)碼字長(zhǎng)度及符號(hào)的改變,引起整個(gè)MPEG音頻碼流的混亂, 而導(dǎo)致解碼器無(wú)法正常解碼的問題。為了方便描述,本實(shí)施例選擇了 32個(gè)哈夫曼碼表 中的1個(gè)哈夫曼碼表(第六個(gè)哈夫曼表),如圖3所示,該哈夫曼碼表的碼字空間為{111, 011, 00101, 0000001, 110, 10, 0011, 00010, 0101, 0100, 00100, 000001, 000011, 00011, 000010, 0000000}。圖4顯示了本發(fā)明的無(wú)損數(shù)字水印嵌入的處理流程,它包括以下步驟1)、對(duì)于需要嵌入水印信息的數(shù)字音樂作品,對(duì)數(shù)字音樂作品的MPEG音頻碼流以 音頻幀為單位進(jìn)行部分解碼,部分解碼即從一音頻幀數(shù)據(jù)中分離出碼字,然后通過水印
生成器對(duì)該音頻幀進(jìn)行處理,生成一串二進(jìn)制水印信息,水印信息為由數(shù)字"0"和"1" 組成的比特序列,在本實(shí)施例中設(shè)定生成的水印信息為"101";2) 、確定該音頻幀的幀信息和主數(shù)據(jù),本實(shí)施例中,該主數(shù)據(jù)的碼字比特流為"11000100000001110110011",并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼所 使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字{110, 00100, 000001, 110, 110, 011};3) 、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將圖3所示的碼表中的所有 相互對(duì)應(yīng)的可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為FQ = {Vl, v2,……,&}和F; ={v'!, v'2,……,v' },其中v,、 v', (/= 1, 2,......,")分別為碼字集合Fo和F;的碼字,"為碼字個(gè)數(shù),碼字集合Fo和^中的碼字是一一對(duì)應(yīng)的,碼字集合Fo的可變長(zhǎng)碼字的屬性 為"0",碼字集合K的可變長(zhǎng)碼字的屬性為"l",如圖5所示,^)二{011, 0011, 00010, 000001}, r,二(110, 0100, 00100, 000010},圖3碼表中其他的碼字不作處理;4) 、主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字(110, 00100, 000001, 110, 110, 011}的第3、 6個(gè)可變長(zhǎng)碼字屬于碼字集合FG,這些可變長(zhǎng)碼字的屬性為"0",而第1、 2、 4、 5個(gè) 可變長(zhǎng)碼字屬于碼字集合K,這些可變長(zhǎng)碼字的屬性為"1";如圖6所示,將這些屬性 順序組成二進(jìn)制碼字屬性序列"110110",然后對(duì)碼字屬性序列進(jìn)行無(wú)損壓縮,得到壓 縮的碼字屬性序列"011",再將壓縮的碼字屬性序列"011"和水印信息"101"組合成 待嵌入的秘密序列,可表示為"011101",壓縮的碼字屬性序列為秘密序列的前部,水 印信息為秘密序列的后部,壓縮的碼字屬性序列與水印信息之間設(shè)置有結(jié)束標(biāo)記;5) 、根據(jù)可變長(zhǎng)碼字映射規(guī)則將秘密序列"011101"嵌入主數(shù)據(jù)中,可變長(zhǎng)碼字映 射規(guī)則為對(duì)于屬性為"0"的可變長(zhǎng)碼字,當(dāng)秘密序列的相應(yīng)比特位為"0"時(shí),保持 該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng) 的屬性為"1"的可變長(zhǎng)碼字;對(duì)于屬性為"1"的可變長(zhǎng)碼字,當(dāng)秘密序列的相應(yīng)比特 位為"1"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"0"時(shí),將該可變 長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"0"的可變長(zhǎng)碼字,本實(shí)施例中主數(shù)據(jù)所使用的第1個(gè)碼 字的屬性為"1"且對(duì)應(yīng)的秘密序列的比特位為"0",將該可變長(zhǎng)碼字修改為"011", 第2個(gè)碼字屬性為"1"且對(duì)應(yīng)的秘密序列的比特位為"1",該可變長(zhǎng)碼字保持不變, 第3個(gè)碼字屬性為"0"且對(duì)應(yīng)的秘密序列的比特位為"1",將該可變長(zhǎng)碼字修改為"ooooio",第4個(gè)碼字屬性為"r且對(duì)應(yīng)的秘密序列的比特位為"r,該可變長(zhǎng)碼字保持不變,第5個(gè)碼字屬性為"1"且對(duì)應(yīng)的秘密序列的比特位為"0",將該可變長(zhǎng)碼 字修改為"011",第6個(gè)碼字屬性為"0"且對(duì)應(yīng)的秘密序列的比特位為"1",將該可 變長(zhǎng)碼字修改為"110 ",從而得到含水印信息的主數(shù)據(jù)的碼字比特流 "01100100000010110011110",如圖7所示;6) 、將含水印信息的主數(shù)據(jù)與幀信息重新組合并形成一個(gè)含水印信息的音頻幀;7)、重復(fù)上述步驟,完成音頻碼流的所有音頻幀的水印信息的嵌入,得到含水印信 息的音頻碼流,發(fā)送端將含水印信息的音頻碼流進(jìn)行傳輸。上述數(shù)字音樂作品的無(wú)損數(shù)字水印提取方法,它包括以下步驟1) 、在接收端對(duì)含水印信息的音頻碼流以音頻幀為單位進(jìn)行部分解碼,從一音頻幀 數(shù)據(jù)中分離出碼字;2) 、確定一音頻幀的幀信息和主數(shù)據(jù),假設(shè)該音頻幀為本發(fā)明的無(wú)損數(shù)字水印嵌入 方法中嵌入水印信息后的音頻幀,則其含水印信息的主數(shù)據(jù)的碼字比特流為"01100100000010110011110",并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼所 使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字{011, 00100, 000010, 110, 011,110};3) 、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將圖3所示碼表中的所有相 互對(duì)應(yīng)的可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為rG={Vl, v2, ,&}和F/二(v、,v'2,……,v' },其中v,、 v', (/= 1,2,......,")分別為碼字集合Ko和K/的碼字,"為碼字個(gè)數(shù),碼字集合Fo和F/中的碼字是一一對(duì)應(yīng)的,碼字集合Fo的可變長(zhǎng)碼字的屬性為"0",碼字集合^的可變長(zhǎng)碼字的屬性為"1",如圖5所示,^={011, 0011, 00010, 000001}, ^ = {110, 0100, 00100, 000010},圖3碼表中其他的碼字不作處理;4) 、主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字{011, 00100, 000010, 110, 011, 110}第1、 5個(gè)可變長(zhǎng)碼字屬于碼字集合Fo,提取二進(jìn)制信息"0",而第2、 3、 4、 6個(gè)可變長(zhǎng)碼 字屬于碼字集合K,提取二進(jìn)制信息"l",提取出所有可變長(zhǎng)碼字的二進(jìn)制信息完成秘 密序列"011101"的提取,然后根據(jù)結(jié)束標(biāo)記將提取的秘密序列"011101"分離成壓縮 的碼字屬性序列"011"和水印信息"101"兩部分,再對(duì)壓縮的碼字屬性序列"011" 進(jìn)行無(wú)損解碼,得到原始的碼字屬性序列"110110";5) 、根據(jù)可變長(zhǎng)碼字映射規(guī)則,含水印信息的主數(shù)據(jù)的碼字比特流 "01100100000010110011110"的第1個(gè)碼字"011"的新屬性為"0"即提取的秘密序列的比特位為"0",而該可變長(zhǎng)碼字的原始的屬性為"1",說明該可變長(zhǎng)碼字"011"是 由其對(duì)應(yīng)的映射碼字"110"嵌入比特"0"得到的,同樣,將含水印的可變長(zhǎng)碼字"00100"、 "000010"、 "110"、 "011"、 "110"無(wú)損的還原為原始的可變長(zhǎng)碼字"00100"、 "000001"、 "110"、 "110"、 "011",如圖8所示,最終得到的原始的主數(shù)據(jù)的碼字比特流為6) 、將原始的主數(shù)據(jù)與幀信肩、重新組合形成原始的音頻幀;7) 、重復(fù)上述步驟,完成含水印信息的音頻碼流的所有音頻幀的水印信息的提取, 得到原始的音頻碼流。
權(quán)利要求
1、一種數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入方法,其特征在于它包括以下步驟1)、對(duì)于需要嵌入水印信息的數(shù)字音樂作品,對(duì)數(shù)字音樂作品的音頻碼流以音頻幀為單位進(jìn)行部分解碼,從一音頻幀數(shù)據(jù)中分離出碼字,并通過水印生成器對(duì)該音頻幀進(jìn)行處理,生成一串二進(jìn)制水印信息;2)、確定該音頻幀的幀信息,并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼所使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字;3)、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將碼表中的所有相互對(duì)應(yīng)的可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為V0={v1,v2,……,vn}和V1={v′1,v′2,……,v′n},其中vi、v′i(i=1,2,......,n)分別為碼字集合V0和V1的碼字,n為碼字個(gè)數(shù),碼字集合V0和V1中的碼字是一一對(duì)應(yīng)的,碼字集合V0的可變長(zhǎng)碼字的屬性為“0”,碼字集合V1的可變長(zhǎng)碼字的屬性為“1”;4)、判斷主數(shù)據(jù)的可變長(zhǎng)碼字屬于碼字集合V0還是屬于碼字集合V1,當(dāng)該可變長(zhǎng)碼字屬于碼字集合V0時(shí),確定該可變長(zhǎng)碼字的屬性為“0”,當(dāng)該可變長(zhǎng)碼字屬于碼字集合V1時(shí),確定該可變長(zhǎng)碼字的屬性為“1”;將主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字對(duì)應(yīng)的屬性順序組成二進(jìn)制碼字屬性序列,然后對(duì)碼字屬性序列進(jìn)行無(wú)損壓縮,得到壓縮的碼字屬性序列,再將壓縮的碼字屬性序列和水印信息組合成待嵌入的秘密序列,壓縮的碼字屬性序列為秘密序列的前部,水印信息為秘密序列的后部,壓縮的碼字屬性序列與水印信息之間設(shè)置有結(jié)束標(biāo)記;5)、根據(jù)可變長(zhǎng)碼字映射規(guī)則將秘密序列嵌入主數(shù)據(jù)中,得到含水印信息的主數(shù)據(jù);6)、將含水印信息的主數(shù)據(jù)與幀信息重新組合并形成一個(gè)含水印信息的音頻幀;7)、重復(fù)上述步驟,完成音頻碼流的所有音頻幀的水印信息的嵌入,得到含水印信息的音頻碼流,發(fā)送端將含水印信息的音頻碼流進(jìn)行傳輸。
2、 如權(quán)利要求1所述的一種數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入方法,其特征在于 所述的可變長(zhǎng)碼字映射規(guī)則為對(duì)于屬性為"0"的可變長(zhǎng)碼字,當(dāng)秘密序列的相應(yīng)比特位為"o"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"r時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"1"的可變長(zhǎng)碼字;對(duì)于屬性為"1"的可變長(zhǎng)碼字,當(dāng) 秘密序列的相應(yīng)比特位為"1"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位 為"0"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"0"的可變長(zhǎng)碼字。
3、 權(quán)利要求1所述的數(shù)字音樂作品的無(wú)損數(shù)字水印提取方法,其特征在于它包括 以下步驟1)、在接收端對(duì)含水印信息的音頻碼流以音頻幀為單位進(jìn)行部分解碼,從一音頻幀數(shù)據(jù)中分離出碼字;2) 、確定一音頻幀的幀信息,并根據(jù)幀信息得到該音頻幀的主數(shù)據(jù)進(jìn)行可變長(zhǎng)編碼 所使用的碼表,并確定主數(shù)據(jù)所使用的所有可變長(zhǎng)碼字;3) 、根據(jù)漢明重量相等、長(zhǎng)度相等且相互對(duì)應(yīng)的原則,將碼表中的所有相互對(duì)應(yīng)的 可變長(zhǎng)碼字分成相互對(duì)應(yīng)的兩個(gè)碼字集合,表示為v2, , }和F/二(v'j,力,……其中v,、 v',(Z-l,2,......,")分別為碼字集合Fo和F/的碼字,"為碼字個(gè)數(shù),碼字集合Ko和F/中的碼字是一一對(duì)應(yīng)的,碼字集合K的可變長(zhǎng)碼字的屬性為"O",碼字集合F;的可變長(zhǎng)碼字的屬性為"1";4) 、判斷主數(shù)據(jù)的可變長(zhǎng)碼字屬于碼字集合Fo還是屬于碼字集合F;,當(dāng)該可變長(zhǎng) 碼字屬于碼字集合Fo時(shí),提取二進(jìn)制信息"0",當(dāng)該可變長(zhǎng)碼字屬于碼字集合^時(shí), 提取二進(jìn)制信息"l",提取出所有可變長(zhǎng)碼字的二進(jìn)制信息完成秘密序列的提取,然后 根據(jù)結(jié)束標(biāo)記將提取的秘密序列分離成壓縮的碼字屬性序列和水印信息兩部分,再對(duì)壓 縮的碼字屬性序列進(jìn)行無(wú)損解碼,得到原始的碼字屬性序列;5) 、根據(jù)可變長(zhǎng)碼字映射規(guī)則將含水印信息的主數(shù)據(jù)還原為原始的主數(shù)據(jù);6) 、將原始的主數(shù)據(jù)與幀信息重新組合形成原始的音頻幀;7) 、重復(fù)上述步驟,完成含水印信息的音頻碼流的所有音頻幀的水印信息的提取, 得到原始的音頻碼流。
4、如權(quán)利要求3所述的數(shù)字音樂作品的無(wú)損數(shù)字水印提取方法,其特征在于所述的可變長(zhǎng)碼字映射規(guī)則為對(duì)于屬性為"0"的可變長(zhǎng)碼字,當(dāng)秘密序列的相應(yīng)比特位為"0"時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"1"時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"r'的可變長(zhǎng)碼字;對(duì)于屬性為"r的可變長(zhǎng)碼字,當(dāng)秘密 序列的相應(yīng)比特位為"r時(shí),保持該可變長(zhǎng)碼字不變,當(dāng)秘密序列的相應(yīng)比特位為"O" 時(shí),將該可變長(zhǎng)碼字修改為對(duì)應(yīng)的屬性為"0"的可變長(zhǎng)碼字。
全文摘要
本發(fā)明公開了一種數(shù)字音樂作品的無(wú)損數(shù)字水印嵌入與提取方法,由于在水印信息嵌入過程中嵌入的是含壓縮的碼字屬性序列的秘密序列,使得在水印信息提取過程中可根據(jù)解碼后的碼字屬性序列無(wú)損的恢復(fù)數(shù)字音樂作品;由于水印信息的嵌入不是在音頻碼流壓縮過程中實(shí)現(xiàn),而是直接在可變長(zhǎng)編碼碼流中實(shí)現(xiàn)的,使得嵌入容量得到較大的增加;由于在水印信息嵌入過程和提取過程中采用了可變長(zhǎng)碼字映射規(guī)則,使得整個(gè)水印信息嵌入過程和提取過程操作簡(jiǎn)單。
文檔編號(hào)G10L19/00GK101211562SQ20071030681
公開日2008年7月2日 申請(qǐng)日期2007年12月25日 優(yōu)先權(quán)日2007年12月25日
發(fā)明者嚴(yán)迪群, 霽 徐, 杜呈透, 王讓定, 劼 程, 譚家強(qiáng) 申請(qǐng)人:寧波大學(xué)