一種線性預(yù)測語音編碼的信息隱藏方法與提取方法
【專利摘要】本發(fā)明涉及一種線性預(yù)測語音編碼的信息隱藏方法,包括:將線性預(yù)測語音編碼碼流中所有能夠利用QIM進(jìn)行嵌入的位置視為一個(gè)信息隱藏空間,用矩陣A表示;根據(jù)所需安全等級選擇嵌入率;對矩陣A進(jìn)行分塊,得到分塊矩陣;根據(jù)p和嵌入率生成密鑰Key,生成待嵌入矩陣B:對待嵌入矩陣B進(jìn)行分塊,得到最小嵌入單元C;根據(jù)密鑰Key,在各個(gè)最小嵌入單元中選擇嵌入模式,得到一個(gè)或多個(gè)待嵌入序列,每個(gè)待嵌入序列均含有若干個(gè)嵌入位置;在待嵌入序列的基礎(chǔ)上,結(jié)合矩陣編碼和QIM方法實(shí)現(xiàn)對秘密信息的隱藏。本發(fā)明還提供了一種與信息隱藏方法對應(yīng)的信息提取方法。
【專利說明】
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,特別涉及一種線性預(yù)測語音編碼信息隱藏方法。 一種線性預(yù)測語音編碼的信息隱藏方法與提取方法
【背景技術(shù)】
[0002] 信息技術(shù)的不斷發(fā)展給人們生活帶來了便利,但同時(shí)也帶來了信息認(rèn)證、版權(quán)保 護(hù)、秘密通信等諸多問題。信息隱藏技術(shù)可以很好地解決這些問題。它是一項(xiàng)將秘密信息 嵌入常見載體,通過隱藏秘密通信本身來達(dá)到傳遞秘密信息目的的技術(shù)。
[0003] 隨著網(wǎng)絡(luò)帶寬的持續(xù)增長,以及有線與無線網(wǎng)絡(luò)的融合,基于互聯(lián)網(wǎng)的即時(shí)語音 通信軟件得到廣泛應(yīng)用。這些軟件帶來的通信語音流量已經(jīng)超過了固網(wǎng)長途電話流量, 網(wǎng)絡(luò)語音流由于其具有實(shí)時(shí)、大容量等特征,成為進(jìn)行信息隱藏的潛在優(yōu)質(zhì)載體。由于語 音一般要經(jīng)過壓縮編碼后再通過網(wǎng)絡(luò)進(jìn)行傳輸,因此基于壓縮語音流進(jìn)行信息隱藏近年 來得到了研究者們的重視?,F(xiàn)有的方法主要分為兩類:1)在壓縮碼流中使用LSB (Least Significant Bit,最低有效位)替換方法。該類方法首先通過分析測試找出碼流中對語音 質(zhì)量影響較小的位置,然后利用LSB替換的方法進(jìn)行信息嵌入。然而,語音編碼通常對原 始數(shù)據(jù)進(jìn)行了高效壓縮,輸出碼流中不同比特位往往具有特定的涵義,某些比特對解碼至 關(guān)重要。使用LSB方法直接在碼流中進(jìn)行修改可能對音頻信號造成較大影響,甚至無法解 碼。即便不影響解碼也會引入較大失真。與此同時(shí),基于LSB的隱寫方法需要對不同的壓 縮標(biāo)準(zhǔn)進(jìn)行具體分析,通用性較差。2)針對矢量量化過程使用QIM (Quantization Index Modulation,量化索引調(diào)制)方法。利用該類方法進(jìn)行信息隱藏時(shí),首先對矢量量化碼本進(jìn) 行分組,然后根據(jù)秘密信息是1或者〇在不同的分組碼本中選擇量化碼字達(dá)到嵌入秘密信 息比特的目的。該類方法對載體信號的失真、信息嵌入率和抗干擾性作了有效的平衡,非常 適合在數(shù)字媒體的壓縮編碼過程中進(jìn)行信息隱藏。其中,基于LPC-Q頂?shù)男畔㈦[藏方法具 有較大的應(yīng)用價(jià)值。由于當(dāng)前眾多的VoIP常用語音編碼器,如G. 729、G. 723. l、iLBC等,都 采用了包含矢量量化步驟的LPC (Linear Predictive Coding,線性預(yù)測語音編碼)技術(shù)。 因此基于LPC-QM的信息隱藏方法具有失真小、通用性好等特點(diǎn)。
[0004] 線性預(yù)測技術(shù)是現(xiàn)代語音信號處理中最核心的技術(shù)之一,在語音編碼、分析、識別 等方面都有著廣泛的應(yīng)用。線性預(yù)測編碼是線性預(yù)測技術(shù)與語音編碼結(jié)合的產(chǎn)物。編碼 時(shí)依據(jù)語音信號的短時(shí)平穩(wěn)特性,首先將其分割為時(shí)長較短的幀,然后再對每一幀進(jìn)行LPC 分析。LPC分析的基本思想是找出一組最優(yōu)的LPC合成濾波器系數(shù),使得一個(gè)語音信號的樣 本能夠用過去若干個(gè)樣本的線性組合來逼近。通過LPC分析獲得最優(yōu)的濾波器系數(shù)后,需 要使用矢量量化技術(shù)進(jìn)行編碼。在這些系數(shù)的矢量量化過程中,可以方便地使用量化索引 調(diào)制技術(shù)進(jìn)行信息隱藏。然而,使用QM進(jìn)行信息隱藏時(shí),將不可避免的改變碼字分布的某 些統(tǒng)計(jì)特性。如果對LPC碼字的改變幅度太大,則碼字分布的統(tǒng)計(jì)特性的變化很容易被察 覺,從而導(dǎo)致算法被破解。因此,在LPC-Q頂過程中如何提高嵌入效率,即在提供同等嵌入 容量的前提下盡可能的減少對碼字的修改,成為一個(gè)重要的研究課題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的線性預(yù)測編碼方法嵌入效率低的缺陷,從而 提供一種具有較高嵌入效率的信息隱藏方法以及相應(yīng)的提取方法。
[0006] 為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種線性預(yù)測語音編碼的信息隱藏方法,包 括:
[0007] 步驟1)、將線性預(yù)測語音編碼碼流中所有能夠利用QM進(jìn)行嵌入的位置視為一個(gè) 信息隱藏空間,將該信息隱藏空間用矩陣A表示;
[0008]
【權(quán)利要求】
1. 一種線性預(yù)測語音編碼的信息隱藏方法,包括: 步驟1)、將線性預(yù)測語音編碼碼流中所有能夠利用QIM進(jìn)行嵌入的位置視為一個(gè)信息 隱藏空間,將該信息隱藏空間用矩陣A表示;
其中,η表示語音編碼碼流中所包含的幀數(shù),m表示每幀所包含的嵌入位置; 步驟2)、根據(jù)所需安全等級選擇嵌入率; 步驟3)、對步驟1)所得到的用于表示信息隱藏空間的矩陣A進(jìn)行分塊,得到分塊矩 陣;
其中,所得到的每個(gè)子塊為(pXm)階矩陣,p為一預(yù)先設(shè)定值: 步驟4)、根據(jù)預(yù)先設(shè)定值p和步驟2)確定的嵌入率生成密鑰Key,根據(jù)所述密鑰Key 從步驟3)所劃分的每個(gè)子塊中抽取i幀作為待嵌入的幀,生成待嵌入矩陣B :
步驟5)、對步驟4)所得到的待嵌入矩陣B進(jìn)行分塊,得到B=臥B2 ... Bt]T,分塊后 所得到的子塊為最小嵌入單元C ; 其中,分塊后所得到的每個(gè)子塊為(qXm)階矩陣,q為預(yù)先設(shè)定值,代表了所述最小嵌 入單元的大小; 步驟6)、根據(jù)步驟4)中所確定的密鑰Key,在步驟5)所得到的各個(gè)最小嵌入單元中選 擇嵌入模式,每種嵌入模式對應(yīng)一種待嵌入序列的抽取方式,由此得到一個(gè)或多個(gè)待嵌入 序列(Cl,c 2, . . .,(^),每個(gè)待嵌入序列均含有若干個(gè)嵌入位置; 步驟7)、在步驟6)所得到的待嵌入序列的基礎(chǔ)上,結(jié)合矩陣編碼和QIM方法實(shí)現(xiàn)對秘 密信息的隱藏。
2. 根據(jù)權(quán)利要求1所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,在所述的 步驟6)和步驟7)之間還包括: 當(dāng)信道狀況欠佳時(shí),對所要隱藏的秘密信息做RA編碼。
3. 根據(jù)權(quán)利要求1或2所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,所述的 步驟4)包括: 步驟4-1)、根據(jù)p值確定logistic映射初值Xd,X。和p滿足= p/N,其中N為大于 P的整數(shù); 步驟4-2)、根據(jù)步驟2)確定的嵌入率選取適當(dāng)?shù)摩讨狄詽M足3. 5699456 < μ < 4, 從而得到密鑰(μ,χ。); 步驟4-3)、根據(jù)步驟4-2)得到的密鑰(μ,xj產(chǎn)生對應(yīng)的y序列(yp y2, . . .,yp+33),從 y序列中選擇序列(y34, y35,...,yp+33)作為嵌入位置選擇序列,根據(jù)所述嵌入位置選擇序列 從矩陣A的每個(gè)分塊矩陣中抽取i幀作為待嵌入的幀,生成待嵌入矩陣B。
4. 根據(jù)權(quán)利要求1或2所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,所述的 步驟6)包括: 步驟 6-1)、根據(jù)密鑰 Key(y,xQ)生成 y 序列(y^ y2, · · · , yp+33); 步驟6-2)、從所述y序列選取若干位,作為嵌入模式的選擇依據(jù);在確定嵌入模式后, 即可得到待嵌入序列。
5. 根據(jù)權(quán)利要求4所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,所述嵌入 模式包括八種,每種嵌入模式都對應(yīng)著一種從矩陣C中抽取待嵌入序列的方式;其中, 使用嵌入模式〇時(shí),矩陣C中每行都作為一個(gè)待嵌入序列,按照從左到右的方式進(jìn)行抽 ??;使用嵌入模式1時(shí),矩陣C中每列都作為一個(gè)待嵌入序列,按照從上到下的方式進(jìn)行抽 ??;使用嵌入模式2時(shí),由矩陣C中左上角開始每行首尾相連,按照從左到右的順序連成一 個(gè)待嵌入序列;使用嵌入模式3時(shí),由矩陣C中左上角開始每列首尾相連,按照從上到下的 順序連成一個(gè)待嵌入序列;使用嵌入模式4時(shí),由矩陣C中左上角開始按照上右對角線方向 連成一個(gè)待嵌入序列;使用嵌入模式5時(shí),由矩陣C中右上角開始按照上左對角線方向連成 一個(gè)待嵌入序列;使用嵌入模式6時(shí),矩陣C被分為上下兩部分,按照從左到右的順序連成 兩個(gè)待嵌入序列;使用嵌入模式7時(shí),矩陣C被分為左右兩部分,按照從上到下的順序連成 兩個(gè)待嵌入序列。
6. 根據(jù)權(quán)利要求1或2所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,所述步 驟7)包括: 步驟7-1)、計(jì)算1 = 1_1〇士</7+1)」,令n' = 2k-l ;其中,η為待嵌入序列c = (Ci, c2,..., cn)的序列長度,k為秘密消息序列u = (Ul,u2,. . .,uk)的序列長度; 步驟7-2)、求得生成矩陣
其中
步驟7-3 )、根據(jù):
d求得d ;假設(shè)d =
其中,?表示對η'個(gè)量進(jìn)行連續(xù)異或運(yùn)算; 7 = 1 步驟7-4)、為使d中所有元素均為0,只需根據(jù)
找出C中需要修改的元素 c"即可得到嵌入后的數(shù)據(jù)V
其中,η:表不取反操作。
7. 根據(jù)權(quán)利要求2所述的線性預(yù)測語音編碼的信息隱藏方法,其特征在于,當(dāng)信道狀 況欠佳時(shí),對所要隱藏的秘密信息做RA編碼包括: 步驟a-Ι )、假設(shè)秘密信息序列為u = (Ul,u2,. . .,uk),關(guān)聯(lián)影響區(qū)域的最大長度為Ν,根 據(jù)不同的嵌入模式求得對應(yīng)的N值;然后對u進(jìn)行分組,每組長度為N,以組為單位進(jìn)行重 復(fù)和交織后可以得到序歹
步驟a-2)、利用轉(zhuǎn)移函數(shù)為ΙΛΙ+D)的遞歸卷積編碼器對序列u'進(jìn)行編碼,假設(shè)輸出 結(jié)果為 y = (y:,y2,...,ykq),則 u'和 y 滿足式(1〇);
ι ?ο
8. -種對權(quán)利要求1所述的信息隱藏方法所隱藏的信息加以提取的方法,包括: 步驟201)、根據(jù)密鑰Key得到p、載體幀位置和塊內(nèi)嵌入模式; 步驟202)、將載體幀攜帶的QM信息記錄下來,根據(jù)塊內(nèi)選擇模式及q值得到待提取序 列; 步驟203 )、進(jìn)行矩陣編碼的解碼操作,得到秘密信息。
9. 根據(jù)權(quán)利要求8所述的信息提取方法,其特征在于,在所述的步驟203)中,在進(jìn)行解 碼操作時(shí),對待提取序列進(jìn)行以下計(jì)算,獲得秘密信息u= (Ul,u2,...,uk);
其中,?表示對η個(gè)量進(jìn)行連續(xù)異或運(yùn)算;Ci表示步驟b)中得到的待提取序列中的數(shù) ζ·=1 據(jù),hi;j表示生成矩陣中的元素。
10. -種對權(quán)利要求2所述的信息隱藏方法所隱藏的信息加以提取的方法,包括: 步驟301)、根據(jù)密鑰Key得到p、載體幀位置和塊內(nèi)嵌入模式; 步驟302)、將載體幀攜帶的QIM信息記錄下來,根據(jù)塊內(nèi)選擇模式及q值得到待提取序 列; 步驟303)、進(jìn)行矩陣編碼的解碼操作,對解碼操作的結(jié)果做RA譯碼,得到秘密信息。
【文檔編號】G10L19/018GK104064193SQ201310091297
【公開日】2014年9月24日 申請日期:2013年3月21日 優(yōu)先權(quán)日:2013年3月21日
【發(fā)明者】李松斌, 劉鵬, 戴瓊興, 鄧浩江 申請人:中國科學(xué)院聲學(xué)研究所