本發(fā)明涉及一種視頻信息隱藏技術(shù),尤其是涉及一種基于單深度幀內(nèi)模式的3D-HEVC深度視頻信息隱藏方法。
背景技術(shù):
在網(wǎng)絡(luò)和通信技術(shù)迅速發(fā)展的同時(shí),信息安全問(wèn)題變得日益嚴(yán)重,信息隱藏技術(shù)是解決這一問(wèn)題的有效方法。隨著三維視頻在電影產(chǎn)業(yè)和娛樂(lè)應(yīng)用等方面的逐漸流行,人們?cè)絹?lái)越關(guān)注高效率視頻編碼(High Efficiency Video Coding,HEVC)標(biāo)準(zhǔn)在三維視頻上的拓展,即3D-HEVC編碼標(biāo)準(zhǔn)。深度視頻是三維視頻的重要組成部分,其不用于用戶直接觀看,主要用于繪制虛擬彩色視點(diǎn)。由于深度視頻的部分深度失真不一定會(huì)造成虛擬彩色視點(diǎn)的失真,因此,研究3D-HEVC編碼標(biāo)準(zhǔn)下的深度視頻信息隱藏技術(shù)具有重要意義。
目前,現(xiàn)有的視頻信息隱藏算法主要是基于單通道視頻編碼標(biāo)準(zhǔn)研究的,且隨著HEVC標(biāo)準(zhǔn)的廣泛應(yīng)用,基于單通道HEVC編碼標(biāo)準(zhǔn)的信息隱藏技術(shù)已經(jīng)取得了初步發(fā)展。如:WANG等人提出與HEVC幀內(nèi)預(yù)測(cè)模式相關(guān)的信息隱藏算法,由于該算法需要用修改后的預(yù)測(cè)模式重新編碼,因此該算法的復(fù)雜度較高。又如:Tew等人根據(jù)嵌入的信息指導(dǎo)編碼單元分割,同時(shí)也考慮了量化后非零的DCT系數(shù)的奇偶調(diào)制,使得該算法的整體性能得到了提升。然而,目前現(xiàn)有的三維視頻信息隱藏算法較少,如:Yang等人提出了一種基于量化索引調(diào)制的3D視頻盲水印算法,該算法將水印信息嵌入在深度視頻的DCT系數(shù)上,該算法具有較強(qiáng)的魯棒性,但是該算法是針對(duì)深度視頻原始域的信息隱藏,嵌入的信息經(jīng)編碼壓縮后有可能丟失?,F(xiàn)有的壓縮域的三維視頻信息隱藏算法主要是基于單通道H.264編碼標(biāo)準(zhǔn)的三維視頻編碼標(biāo)準(zhǔn)擴(kuò)展研究的,如:SONG等人提出的一種可逆的多視點(diǎn)視頻信息隱藏算法,其通過(guò)引入內(nèi)積的思想,在b4幀編碼塊的運(yùn)動(dòng)矢量上進(jìn)行信息隱藏,該算法具有較好的不可感知性,且能實(shí)現(xiàn)信息可逆。由于3D-HEVC編碼標(biāo)準(zhǔn)的壓縮性能明顯優(yōu)于H.264的三維視頻編碼標(biāo)準(zhǔn)擴(kuò)展,3D-HEVC編碼標(biāo)準(zhǔn)適用于更高清視頻序列的壓縮編碼,因此研究基于3D-HEVC編碼標(biāo)準(zhǔn)的三維視頻信息隱藏算法很有必要。由于深度視頻具有大量的平滑區(qū)域和尖銳的邊緣區(qū)域,因此以上的彩色視頻的信息隱藏技術(shù)如果直接用在深度視頻上,則信息隱藏算法的性能并不一定會(huì)達(dá)到預(yù)期的效果。就3D-HEVC編碼標(biāo)準(zhǔn),其存在一種“單深度幀內(nèi)模式”,這種模式是專門針對(duì)深度視頻的平滑區(qū)域,而基于單通道H.264編碼標(biāo)準(zhǔn)的三維視頻編碼標(biāo)準(zhǔn)擴(kuò)展不具備該編碼模式,因此需要研究一種基于單深度幀內(nèi)模式的3D-HEVC深度視頻信息隱藏方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于單深度幀內(nèi)模式的3D-HEVC深度視頻信息隱藏方法,其安全性較高、計(jì)算復(fù)雜度較低,且對(duì)碼率影響較小。
本發(fā)明解決上述技術(shù)問(wèn)題所采用的技術(shù)方案為:一種基于單深度幀內(nèi)模式的3D-HEVC深度視頻信息隱藏方法,其特征在于包括信息嵌入和信息提取兩部分;
所述的信息嵌入部分的具體步驟為:
①_1、令Sorg表示原始的立體視頻,將Sorg的左視點(diǎn)彩色視頻記為將對(duì)應(yīng)的左視點(diǎn)深度視頻記為將Sorg的右視點(diǎn)彩色視頻記為將對(duì)應(yīng)的右視點(diǎn)深度視頻記為并令W表示待嵌入的隱秘信息,W中包含n個(gè)比特的值,W={w1,w2,…,wi,…,wn-1,wn};然后通過(guò)3D-HEVC標(biāo)準(zhǔn)編碼平臺(tái)對(duì)以及進(jìn)行壓縮編碼,得到目標(biāo)視頻流,記為str.binorg;其中,中的左視點(diǎn)彩色圖像、中的左視點(diǎn)深度圖像、中的右視點(diǎn)彩色圖像、中的右視點(diǎn)深度圖像的寬度均為M且高度均為N,中包含的左視點(diǎn)彩色圖像的總幀數(shù)、中包含的左視點(diǎn)深度圖像的總幀數(shù)、中包含的右視點(diǎn)彩色圖像的總幀數(shù)、中包含的右視點(diǎn)深度圖像的總幀數(shù)均為F,w1、w2、wi、wn-1和wn對(duì)應(yīng)表示W(wǎng)中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,w1、w2、wi、wn-1和wn為0或1,1≤i≤n;
①_2、利用logistics混沌映射產(chǎn)生一個(gè)包含n個(gè)比特的值的二值偽隨機(jī)序列,將該二值偽隨機(jī)序列作為密鑰,并記為E,E={e1,e2,…,ei,…,en-1,en};然后對(duì)W中的每個(gè)比特的值與E中的每個(gè)比特的值一一對(duì)應(yīng)進(jìn)行異或,得到加密信息,記為W',W'={w'1,w'2,…,w'i,…,w'n-1,w'n};其中,產(chǎn)生密鑰E的初始值信息隨意給定,e1、e2、ei、en-1和en對(duì)應(yīng)表示E中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,e1、e2、ei、en-1和en為0或1,w'1、w'2、w'i、w'n-1和w'n對(duì)應(yīng)表示W(wǎng)'中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,w'1、w'2、w'i、w'n-1和w'n為0或1,1≤i≤n;
①_3、以幀為單位解析目標(biāo)視頻流str.binorg,將目標(biāo)視頻流str.binorg中當(dāng)前待解析的幀定義為當(dāng)前幀;
①_4、判斷當(dāng)前幀是否為左視點(diǎn)深度圖像或右視點(diǎn)深度圖像,如果是,則執(zhí)行步驟①_5;否則,執(zhí)行步驟①_8;
①_5、以編碼樹(shù)單元為單位解析當(dāng)前幀,將當(dāng)前幀中當(dāng)前待解析的編碼樹(shù)單元定義為當(dāng)前解析塊,然后執(zhí)行步驟①_6;
①_6、按照當(dāng)前解析塊的最優(yōu)分割模式,以分割完成的編碼單元為單位,依序解析當(dāng)前解析塊中的每個(gè)編碼單元對(duì)應(yīng)的編碼模式,將當(dāng)前解析塊中的第k個(gè)編碼單元記為將對(duì)應(yīng)的編碼模式記為其中,k為正整數(shù),k∈[1,64],的尺寸大小為8×8、16×16、32×32或64×64,然后執(zhí)行以下步驟:
①_6a、將當(dāng)前解析塊中正在處理的編碼單元定義為當(dāng)前編碼單元;
①_6b、假設(shè)當(dāng)前編碼單元為則如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為幀內(nèi)編碼模式,那么執(zhí)行步驟①_6i;如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為單深度幀內(nèi)編碼模式,那么執(zhí)行步驟①_6c;
①_6c、按照單深度幀內(nèi)編碼模式的編碼原理,構(gòu)建當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值候選列表,記為中包含2個(gè)像素值,將第1個(gè)像素值記為第1個(gè)像素值的索引值為0,將第2個(gè)像素值記為第2個(gè)像素值的索引值為1,其中,并從密鑰E中讀取第j個(gè)比特的值ej,從加密信息W'中讀取第i個(gè)比特的值w'i,其中,1≤j≤n,j的初始值為1,1≤i≤n,i的初始值為1;然后執(zhí)行步驟①_6d;
①_6d、判斷與是否相等,如果兩者相等,則執(zhí)行步驟①_6e;否則,執(zhí)行步驟①_6f;
①_6e、如果ej為1,則利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值,并對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值進(jìn)行熵編碼,至此已完成當(dāng)前編碼單元的隱秘信息嵌入過(guò)程,然后令j=j(luò)+1,令i=i+1,再執(zhí)行步驟①_6i;如果ej為0,則令j=j(luò)+1,再執(zhí)行步驟①_6i;其中,j=j(luò)+1和i=i+1中的“=”為賦值符號(hào);
①_6f、解析當(dāng)前編碼單元的深度depth,如果depth為2或3,則執(zhí)行步驟①_6g;如果depth為0或1,則執(zhí)行步驟①_6i;其中,depth∈{0,1,2,3};
①_6g、判斷當(dāng)前編碼單元的右相鄰編碼單元或下相鄰編碼單元的編碼模式是否為單深度幀內(nèi)編碼模式,如果是,則執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6h;其中,當(dāng)前編碼單元的右相鄰編碼單元為位于當(dāng)前編碼單元的右側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的下相鄰編碼單元為位于當(dāng)前編碼單元的下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元;
①_6h、判斷當(dāng)前編碼單元的右上相鄰編碼單元、右相鄰編碼單元、右下相鄰編碼單元、左下相鄰編碼單元和下相鄰編碼單元各自的預(yù)測(cè)模式是否屬于各自相應(yīng)的模式范圍,如果都不滿足,則利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值,并對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值進(jìn)行熵編碼,至此已完成當(dāng)前編碼單元的嵌入隱秘信息過(guò)程,然后令i=i+1,再執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6i;其中,當(dāng)前編碼單元的右上相鄰編碼單元為位于當(dāng)前編碼單元的右上側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的右下相鄰編碼單元為位于當(dāng)前編碼單元的右下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的左下相鄰編碼單元為位于當(dāng)前編碼單元的左下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元;
①_6i、將當(dāng)前解析塊中下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,然后返回步驟①_6b繼續(xù)執(zhí)行,直至當(dāng)前解析塊中的所有編碼單元均處理完畢,再執(zhí)行步驟①-7;
①_7、將當(dāng)前幀中下一個(gè)待解析的編碼樹(shù)單元作為當(dāng)前解析塊,然后返回步驟①_6繼續(xù)執(zhí)行,直至當(dāng)前幀中的所有編碼樹(shù)單元均處理完畢,再執(zhí)行步驟①_8;
①_8、將目標(biāo)視頻流str.binorg中下一幀待解析的幀作為當(dāng)前幀,然后返回步驟①_4繼續(xù)執(zhí)行,直至目標(biāo)視頻流str.binorg中的所有幀均處理完畢,得到嵌入隱秘信息的視頻流str.bindec;
①_9、將產(chǎn)生密鑰E的初始值信息傳送到信息提取端;
所述的信息提取部分的具體步驟為:
②_1、將嵌入隱秘信息的視頻流定義為目標(biāo)視頻流,記為str.bindec;
②_2、根據(jù)信息嵌入端發(fā)送的產(chǎn)生密鑰E的初始值信息,利用logistics混沌映射產(chǎn)生一個(gè)與信息嵌入端相同的密鑰E;
②_3、以幀為單位解析目標(biāo)視頻流str.bindec,將目標(biāo)視頻流str.bindec中當(dāng)前待解析的幀定義為當(dāng)前幀;
②_4、判斷當(dāng)前幀是否為左視點(diǎn)深度圖像或右視點(diǎn)深度圖像,如果是,則執(zhí)行步驟②_5;否則,執(zhí)行步驟②_8;
②_5、以編碼樹(shù)單元為單位解析當(dāng)前幀,將當(dāng)前幀中當(dāng)前待解析的編碼樹(shù)單元定義為當(dāng)前解析塊,然后執(zhí)行步驟②_6;
②_6、按照當(dāng)前解析塊的最優(yōu)分割模式,以分割完成的編碼單元為單位,依序解析當(dāng)前解析塊中的每個(gè)編碼單元對(duì)應(yīng)的編碼模式,將當(dāng)前解析塊中的第k個(gè)編碼單元記為將對(duì)應(yīng)的編碼模式記為其中,k為正整數(shù),k∈[1,64],的尺寸大小為8×8、16×16、32×32或64×64,然后執(zhí)行以下步驟:
②_6a、將當(dāng)前解析塊中正在處理的編碼單元定義為當(dāng)前編碼單元;
②_6b、假設(shè)當(dāng)前編碼單元為則如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為幀內(nèi)編碼模式,那么執(zhí)行步驟②_6i;如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為單深度幀內(nèi)編碼模式,那么執(zhí)行步驟②_6c;
②_6c、按照單深度幀內(nèi)編碼模式的編碼原理,構(gòu)建當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值候選列表,記為中包含2個(gè)像素值,將第1個(gè)像素值記為將第2個(gè)像素值記為其中,并從密鑰E中讀取第j個(gè)比特的值ej,其中,1≤j≤n,j的初始值為1;然后執(zhí)行步驟②_6d;
②_6d、判斷與是否相等,如果兩者相等,則執(zhí)行步驟②_6e;否則,執(zhí)行步驟②_6f;
②_6e、如果ej為1,則解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值,記為至此已完成當(dāng)前編碼單元的隱秘信息提取過(guò)程,然后令j=j(luò)+1,令i=i+1,再執(zhí)行步驟②_6i;如果ej為0,則令j=j(luò)+1,再執(zhí)行步驟②_6i;其中,1≤i≤n,i的初始值為1,為0或1,j=j(luò)+1和i=i+1中的“=”為賦值符號(hào);
②_6f、解析當(dāng)前編碼單元的深度depth,如果depth為2或3,則執(zhí)行步驟②_6g;如果depth為0或1,則執(zhí)行步驟②_6i;其中,depth∈{0,1,2,3};
②_6g、判斷當(dāng)前編碼單元的右相鄰編碼單元或下相鄰編碼單元的編碼模式是否為單深度幀內(nèi)編碼模式,如果是,則執(zhí)行步驟②_6i;否則,執(zhí)行步驟②_6h;其中,當(dāng)前編碼單元的右相鄰編碼單元為位于當(dāng)前編碼單元的右側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的下相鄰編碼單元為位于當(dāng)前編碼單元的下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元;
②_6h、判斷當(dāng)前編碼單元的右上相鄰編碼單元、右相鄰編碼單元、右下相鄰編碼單元、左下相鄰編碼單元和下相鄰編碼單元各自的預(yù)測(cè)模式是否屬于各自相應(yīng)的模式范圍,如果都不滿足,則解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值,記為至此已完成當(dāng)前編碼單元的隱秘信息提取過(guò)程,然后令i=i+1,再執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6i;其中,當(dāng)前編碼單元的右上相鄰編碼單元為位于當(dāng)前編碼單元的右上側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的右下相鄰編碼單元為位于當(dāng)前編碼單元的右下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的左下相鄰編碼單元為位于當(dāng)前編碼單元的左下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元;
②_6i、將當(dāng)前解析塊中下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,然后返回步驟②_6b繼續(xù)執(zhí)行,直至當(dāng)前解析塊中的所有編碼單元均處理完畢,再執(zhí)行步驟②_7;
②_7、將當(dāng)前幀中下一個(gè)待解析的編碼樹(shù)單元作為當(dāng)前解析塊,然后返回步驟②_6繼續(xù)執(zhí)行,直至當(dāng)前幀中的所有編碼樹(shù)單元均處理完畢,再執(zhí)行步驟②_8;
②_8、將目標(biāo)視頻流str.bindec中下一幀待解析的幀作為當(dāng)前幀,然后返回步驟②_4繼續(xù)執(zhí)行,直至目標(biāo)視頻流str.bindec中的所有幀均處理完畢,完成隱秘信息提?。?/p>
②_9、將得到的n個(gè)加密信息比特值構(gòu)成加密信息,記為然后對(duì)中的每個(gè)加密信息比特值與E中的每個(gè)比特的值一一對(duì)應(yīng)進(jìn)行異或,得到解密的隱秘信息,記為其中,和對(duì)應(yīng)表示得到的第1個(gè)加密信息比特值、第2個(gè)加密信息比特值、第i個(gè)加密信息比特值、第n-1個(gè)加密信息比特值和第n個(gè)加密信息比特值,和為0或1,和對(duì)應(yīng)表示中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,和為0或1。
所述的步驟①_6e和所述的步驟①_6h中的利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值的具體過(guò)程為:將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值記為將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值記為
所述的步驟①_6h中的當(dāng)前編碼單元的右上相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及2至10的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及1至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的左下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及26至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合。
所述的步驟②_6e和所述的步驟②_6h中的解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值的具體過(guò)程為:將當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值記為則有
所述的步驟②_6h中的當(dāng)前編碼單元的右上相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及2至10的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及1至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的左下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及26至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM模式構(gòu)成的預(yù)測(cè)模式集合。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
1)本發(fā)明方法為首次在3D-HEVC壓縮域中進(jìn)行信息隱藏,同時(shí)也是首次在3D-HEVC深度視頻中進(jìn)行信息隱藏,本發(fā)明方法利用3D-HEVC編碼標(biāo)準(zhǔn)中提出的單深度幀內(nèi)編碼模式(專門針對(duì)深度視頻平滑區(qū)域的編碼)進(jìn)行隱秘信息嵌入和隱秘信息提取,而由于H.264編碼標(biāo)準(zhǔn)在三維視頻上的擴(kuò)展不具有單深度幀內(nèi)編碼模式,因此本發(fā)明方法不同于H.264編碼標(biāo)準(zhǔn)在三維視頻上的擴(kuò)展的壓縮域的信息隱藏方法,兩者不能通用。
2)本發(fā)明方法在信息嵌入部分中利用logistics混沌映射產(chǎn)生一個(gè)二值偽隨機(jī)序列作為密鑰,利用該密鑰加密待嵌入的隱秘信息,同時(shí)結(jié)合密鑰對(duì)待嵌入隱秘信息的編碼單元進(jìn)行位置選擇,有效地提高了本發(fā)明方法的安全性。
3)本發(fā)明方法通過(guò)構(gòu)建編碼模式為單深度幀內(nèi)編碼模式的編碼單元的編碼模式的像素值候選列表,在像素值候選列表中的2個(gè)像素值相等且從密鑰中提取的信息比特的值為1時(shí),利用從加密信息中提取的信息比特的值對(duì)編碼單元的編碼模式的像素值的索引值進(jìn)行索引調(diào)制,實(shí)現(xiàn)隱秘信息嵌入;而在像素值候選列表中的2個(gè)像素值不相等、編碼單元的深度為2或3且編碼單元的右相鄰編碼單元和下相鄰編碼單元的編碼模式不為單深度幀內(nèi)編碼模式時(shí),通過(guò)對(duì)編碼單元的右上相鄰編碼單元、右相鄰編碼單元、右下相鄰編碼單元、左下相鄰編碼單元和下相鄰編碼單元的預(yù)測(cè)模式的判別,選擇是否對(duì)編碼單元進(jìn)行隱秘信息嵌入,這樣隱秘信息嵌入方式很好地避免了誤差漂移現(xiàn)象。
4)本發(fā)明方法在信息提取部分中,加密信息能夠盲提取,不需要原始視頻的參與,計(jì)算復(fù)雜度低。
附圖說(shuō)明
圖1a為本發(fā)明方法的信息嵌入部分的總體實(shí)現(xiàn)框圖;
圖1b為本發(fā)明方法的信息提取部分的總體實(shí)現(xiàn)框圖;
圖2a為原始的Balloons立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的4視點(diǎn)的第1幀圖像;
圖2b為原始的Newspaper立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的3視點(diǎn)的第1幀圖像;
圖2c為原始的Shark立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的5視點(diǎn)的第1幀圖像;
圖2d為原始的Balloons立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的4視點(diǎn)的第1幀圖像;
圖2e為原始的Newspaper立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的3視點(diǎn)的第1幀圖像;
圖2f為原始的Shark立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的5視點(diǎn)的第1幀圖像。
具體實(shí)施方式
以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
本發(fā)明提出的一種基于單深度幀內(nèi)模式的3D-HEVC深度視頻信息隱藏方法,其包括信息嵌入和信息提取兩部分。
所述的信息嵌入部分的總體實(shí)現(xiàn)框圖如圖1a所示,其具體步驟為:
①_1、令Sorg表示原始的立體視頻,將Sorg的左視點(diǎn)彩色視頻記為將對(duì)應(yīng)的左視點(diǎn)深度視頻記為將Sorg的右視點(diǎn)彩色視頻記為將對(duì)應(yīng)的右視點(diǎn)深度視頻記為并令W表示待嵌入的隱秘信息,W中包含n個(gè)比特的值,W={w1,w2,…,wi,…,wn-1,wn};然后通過(guò)3D-HEVC標(biāo)準(zhǔn)編碼平臺(tái)對(duì)以及進(jìn)行壓縮編碼,得到目標(biāo)視頻流,記為str.binorg;其中,中的左視點(diǎn)彩色圖像、中的左視點(diǎn)深度圖像、中的右視點(diǎn)彩色圖像、中的右視點(diǎn)深度圖像的寬度均為M且高度均為N,中包含的左視點(diǎn)彩色圖像的總幀數(shù)、中包含的左視點(diǎn)深度圖像的總幀數(shù)、中包含的右視點(diǎn)彩色圖像的總幀數(shù)、中包含的右視點(diǎn)深度圖像的總幀數(shù)均為F,w1、w2、wi、wn-1和wn對(duì)應(yīng)表示W(wǎng)中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,w1、w2、wi、wn-1和wn為0或1,1≤i≤n。
在對(duì)以及進(jìn)行壓縮編碼時(shí)是依次對(duì)中的第1幀左視點(diǎn)彩色圖像、中的第1幀左視點(diǎn)深度圖像、中的第1幀右視點(diǎn)彩色圖像、中的第1幀右視點(diǎn)深度圖像進(jìn)行壓縮編碼,依次類推,直至依次對(duì)中的第F幀左視點(diǎn)彩色圖像、中的第F幀左視點(diǎn)深度圖像、中的第F幀右視點(diǎn)彩色圖像、中的第F幀右視點(diǎn)深度圖像進(jìn)行壓縮編碼,完成整個(gè)編碼過(guò)程。
①_2、利用logistics混沌映射產(chǎn)生一個(gè)包含n個(gè)比特的值的二值偽隨機(jī)序列,將該二值偽隨機(jī)序列作為密鑰,并記為E,E={e1,e2,…,ei,…,en-1,en};然后對(duì)W中的每個(gè)比特的值與E中的每個(gè)比特的值一一對(duì)應(yīng)進(jìn)行異或,得到加密信息,記為W',W'={w'1,w'2,…,w'i,…,w'n-1,w'n};其中,產(chǎn)生密鑰E的初始值信息隨意給定,e1、e2、ei、en-1和en對(duì)應(yīng)表示E中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,e1、e2、ei、en-1和en為0或1,w'1、w'2、w'i、w'n-1和w'n對(duì)應(yīng)表示W(wǎng)'中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,w'1、w'2、w'i、w'n-1和w'n為0或1,1≤i≤n。
①_3、以幀為單位解析目標(biāo)視頻流str.binorg,將目標(biāo)視頻流str.binorg中當(dāng)前待解析的幀定義為當(dāng)前幀。
①_4、判斷當(dāng)前幀是否為左視點(diǎn)深度圖像或右視點(diǎn)深度圖像,如果是,則執(zhí)行步驟①_5;否則,執(zhí)行步驟①_8。
①_5、以編碼樹(shù)單元(CTU)為單位解析當(dāng)前幀,將當(dāng)前幀中當(dāng)前待解析的編碼樹(shù)單元定義為當(dāng)前解析塊,然后執(zhí)行步驟①_6。
①_6、按照當(dāng)前解析塊的最優(yōu)分割模式,以分割完成的編碼單元(CU)為單位,依序解析當(dāng)前解析塊中的每個(gè)編碼單元對(duì)應(yīng)的編碼模式,將當(dāng)前解析塊中的第k個(gè)編碼單元記為將對(duì)應(yīng)的編碼模式記為其中,k為正整數(shù),k∈[1,64],當(dāng)前解析塊的尺寸大小為64×64,當(dāng)前解析塊在編碼完成后可以分割成若干個(gè)編碼單元,尺寸大小為8×8、16×16、32×32或64×64,當(dāng)編碼單元的尺寸大小為64×64時(shí),說(shuō)明當(dāng)前解析塊沒(méi)有分割,保持原來(lái)大小,這時(shí)只有1個(gè)編碼單元,因此k的取值僅為1,當(dāng)前解析塊如果全分為尺寸大小為8×8的編碼單元,則有64個(gè)編碼單元,因此k的取值為從1至64,當(dāng)前解析塊如果全分為尺寸大小為32×32的編碼單元時(shí),有4個(gè)編碼單元,因此k的取值為1、2、3、4,當(dāng)前解析塊如果分為不同尺寸大小的編碼單元,如分為尺寸大小為8×8、16×16、32×32的編碼單元,則根據(jù)編碼單元的個(gè)數(shù)確定了k的取值,故k∈[1,64],的尺寸大小為8×8、16×16、32×32或64×64,然后執(zhí)行以下步驟:
①_6a、將當(dāng)前解析塊中正在處理的編碼單元定義為當(dāng)前編碼單元。
①_6b、假設(shè)當(dāng)前編碼單元為則如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為幀內(nèi)編碼模式,那么執(zhí)行步驟①_6i;如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為單深度幀內(nèi)編碼模式,那么執(zhí)行步驟①_6c。
①_6c、按照單深度幀內(nèi)編碼模式的編碼原理,構(gòu)建當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值候選列表,記為中包含2個(gè)像素值,將第1個(gè)像素值記為第1個(gè)像素值的索引值為0,將第2個(gè)像素值記為第2個(gè)像素值的索引值為1,其中,并從密鑰E中讀取第j個(gè)比特的值ej,從加密信息W'中讀取第i個(gè)比特的值w'i,其中,1≤j≤n,j的初始值為1,1≤i≤n,i的初始值為1;然后執(zhí)行步驟①_6d。
①_6d、判斷與是否相等,如果兩者相等,則執(zhí)行步驟①_6e;否則,執(zhí)行步驟①_6f。
①_6e、如果ej為1,則利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值,并對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值進(jìn)行熵編碼,至此已完成當(dāng)前編碼單元的隱秘信息嵌入過(guò)程,然后令j=j(luò)+1,令i=i+1,再執(zhí)行步驟①_6i;如果ej為0,則令j=j(luò)+1,再執(zhí)行步驟①_6i;其中,j=j(luò)+1和i=i+1中的“=”為賦值符號(hào)。
在此具體實(shí)施例中,步驟①_6e中的利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值的具體過(guò)程為:將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值記為將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值記為
①_6f、解析當(dāng)前編碼單元的深度depth,如果depth為2或3,則執(zhí)行步驟①_6g;如果depth為0或1,則執(zhí)行步驟①_6i;其中,depth∈{0,1,2,3}。
①_6g、判斷當(dāng)前編碼單元的右相鄰編碼單元或下相鄰編碼單元的編碼模式是否為單深度幀內(nèi)編碼模式,如果是,則執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6h;其中,當(dāng)前編碼單元的右相鄰編碼單元為位于當(dāng)前編碼單元的右側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的下相鄰編碼單元為位于當(dāng)前編碼單元的下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元。
①_6h、判斷當(dāng)前編碼單元的右上相鄰編碼單元、右相鄰編碼單元、右下相鄰編碼單元、左下相鄰編碼單元和下相鄰編碼單元各自的預(yù)測(cè)模式是否屬于各自相應(yīng)的模式范圍,如果都不滿足,則利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值,并對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值進(jìn)行熵編碼,至此已完成當(dāng)前編碼單元的嵌入隱秘信息過(guò)程,然后令i=i+1,再執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6i;其中,當(dāng)前編碼單元的右上相鄰編碼單元為位于當(dāng)前編碼單元的右上側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的右下相鄰編碼單元為位于當(dāng)前編碼單元的右下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的左下相鄰編碼單元為位于當(dāng)前編碼單元的左下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元。
在此具體實(shí)施例中,步驟①_6h中的當(dāng)前編碼單元的右上相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及2至10的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及1至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的左下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及26至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合。
在此具體實(shí)施例中,步驟①_6h中的利用w'i對(duì)當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值進(jìn)行索引調(diào)制,得到當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值的具體過(guò)程為:將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的索引值記為將當(dāng)前編碼單元進(jìn)行壓縮編碼時(shí)當(dāng)前編碼單元對(duì)應(yīng)的編碼模式所選的像素值的嵌入隱秘信息后的索引值記為
①_6i、將當(dāng)前解析塊中下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,然后返回步驟①_6b繼續(xù)執(zhí)行,直至當(dāng)前解析塊中的所有編碼單元均處理完畢,再執(zhí)行步驟①-7。
①_7、將當(dāng)前幀中下一個(gè)待解析的編碼樹(shù)單元作為當(dāng)前解析塊,然后返回步驟①_6繼續(xù)執(zhí)行,直至當(dāng)前幀中的所有編碼樹(shù)單元均處理完畢,再執(zhí)行步驟①_8。
①_8、將目標(biāo)視頻流str.binorg中下一幀待解析的幀作為當(dāng)前幀,然后返回步驟①_4繼續(xù)執(zhí)行,直至目標(biāo)視頻流str.binorg中的所有幀均處理完畢,得到嵌入隱秘信息的視頻流str.bindec。
①_9、將產(chǎn)生密鑰E的初始值信息傳送到信息提取端,在信息提取端只需要知道初始值信息就能產(chǎn)生相同的密鑰。
所述的信息提取部分的總體實(shí)現(xiàn)框圖如圖1b所示,其具體步驟為:
②_1、將嵌入隱秘信息的視頻流定義為目標(biāo)視頻流,記為str.bindec。
②_2、根據(jù)信息嵌入端發(fā)送的產(chǎn)生密鑰E的初始值信息,利用logistics混沌映射產(chǎn)生一個(gè)與信息嵌入端相同的密鑰E;如果直接將信息嵌入端的密鑰E傳送給信息提取端,則邊信息太大,由于產(chǎn)生密鑰的過(guò)程比較簡(jiǎn)單,只要給定初始值就能重現(xiàn)密鑰,因此在信息提取端只需根據(jù)信息嵌入端發(fā)送的產(chǎn)生密鑰E的初始值信息,重新產(chǎn)生即可得到與信息嵌入端相同的密鑰E。
②_3、以幀為單位解析目標(biāo)視頻流str.bindec,將目標(biāo)視頻流str.bindec中當(dāng)前待解析的幀定義為當(dāng)前幀。
②_4、判斷當(dāng)前幀是否為左視點(diǎn)深度圖像或右視點(diǎn)深度圖像,如果是,則執(zhí)行步驟②_5;否則,執(zhí)行步驟②_8。
②_5、以編碼樹(shù)單元(CTU)為單位解析當(dāng)前幀,將當(dāng)前幀中當(dāng)前待解析的編碼樹(shù)單元定義為當(dāng)前解析塊,然后執(zhí)行步驟②_6。
②_6、按照當(dāng)前解析塊的最優(yōu)分割模式,以分割完成的編碼單元(CU)為單位,依序解析當(dāng)前解析塊中的每個(gè)編碼單元對(duì)應(yīng)的編碼模式,將當(dāng)前解析塊中的第k個(gè)編碼單元記為將對(duì)應(yīng)的編碼模式記為其中,k為正整數(shù),k∈[1,64],當(dāng)前解析塊的尺寸大小為64×64,當(dāng)前解析塊在編碼完成后可以分割成若干個(gè)編碼單元,尺寸大小為8×8、16×16、32×32或64×64,當(dāng)編碼單元的尺寸大小為64×64時(shí),說(shuō)明當(dāng)前解析塊沒(méi)有分割,保持原來(lái)大小,這時(shí)只有1個(gè)編碼單元,因此k的取值僅為1,當(dāng)前解析塊如果全分為尺寸大小為8×8的編碼單元,則有64個(gè)編碼單元,因此k的取值為從1至64,當(dāng)前解析塊如果全分為尺寸大小為32×32的編碼單元時(shí),有4個(gè)編碼單元,因此k的取值為1、2、3、4,當(dāng)前解析塊如果分為不同尺寸大小的編碼單元,如分為尺寸大小為8×8、16×16、32×32的編碼單元,則根據(jù)編碼單元的個(gè)數(shù)確定了k的取值,故k∈[1,64],的尺寸大小為8×8、16×16、32×32或64×64,然后執(zhí)行以下步驟:
②_6a、將當(dāng)前解析塊中正在處理的編碼單元定義為當(dāng)前編碼單元。
②_6b、假設(shè)當(dāng)前編碼單元為則如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為幀內(nèi)編碼模式,那么執(zhí)行步驟②_6i;如果當(dāng)前編碼單元對(duì)應(yīng)的編碼模式為單深度幀內(nèi)編碼模式,那么執(zhí)行步驟②_6c。
②_6c、按照單深度幀內(nèi)編碼模式的編碼原理,構(gòu)建當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值候選列表,記為中包含2個(gè)像素值,將第1個(gè)像素值記為將第2個(gè)像素值記為其中,并從密鑰E中讀取第j個(gè)比特的值ej,其中,1≤j≤n,j的初始值為1;然后執(zhí)行步驟②_6d。
②_6d、判斷與是否相等,如果兩者相等,則執(zhí)行步驟②_6e;否則,執(zhí)行步驟②_6f。
②_6e、如果ej為1,則解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值,記為至此已完成當(dāng)前編碼單元的隱秘信息提取過(guò)程,然后令j=j(luò)+1,令i=i+1,再執(zhí)行步驟②_6i;如果ej為0,則令j=j(luò)+1,再執(zhí)行步驟②_6i;其中,1≤i≤n,i的初始值為1,為0或1,j=j(luò)+1和i=i+1中的“=”為賦值符號(hào)。
在此具體實(shí)施例中,步驟②_6e中的解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值的具體過(guò)程為:將當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值記為則有
②_6f、解析當(dāng)前編碼單元的深度depth,如果depth為2或3,則執(zhí)行步驟②_6g;如果depth為0或1,則執(zhí)行步驟②_6i;其中,depth∈{0,1,2,3}。
②_6g、判斷當(dāng)前編碼單元的右相鄰編碼單元或下相鄰編碼單元的編碼模式是否為單深度幀內(nèi)編碼模式,如果是,則執(zhí)行步驟②_6i;否則,執(zhí)行步驟②_6h;其中,當(dāng)前編碼單元的右相鄰編碼單元為位于當(dāng)前編碼單元的右側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的下相鄰編碼單元為位于當(dāng)前編碼單元的下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元。
②_6h、判斷當(dāng)前編碼單元的右上相鄰編碼單元、右相鄰編碼單元、右下相鄰編碼單元、左下相鄰編碼單元和下相鄰編碼單元各自的預(yù)測(cè)模式是否屬于各自相應(yīng)的模式范圍,如果都不滿足,則解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值,記為至此已完成當(dāng)前編碼單元的隱秘信息提取過(guò)程,然后令i=i+1,再執(zhí)行步驟①_6i;否則,執(zhí)行步驟①_6i;其中,當(dāng)前編碼單元的右上相鄰編碼單元為位于當(dāng)前編碼單元的右上側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的右下相鄰編碼單元為位于當(dāng)前編碼單元的右下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元,當(dāng)前編碼單元的左下相鄰編碼單元為位于當(dāng)前編碼單元的左下側(cè)且與當(dāng)前編碼單元相鄰的編碼單元。
在此具體實(shí)施例中,步驟②_6h中的當(dāng)前編碼單元的右上相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及2至10的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及1至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的右下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至25的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的左下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0及26至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合;當(dāng)前編碼單元的下相鄰編碼單元相應(yīng)的模式范圍為由數(shù)字標(biāo)識(shí)為0、1及11至34的預(yù)測(cè)模式構(gòu)成的預(yù)測(cè)模式集合或由DMM(Depth modeling modes)模式構(gòu)成的預(yù)測(cè)模式集合。
在此具體實(shí)施例中,步驟②_6h中的解析當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值,得到第i個(gè)加密信息比特值的具體過(guò)程為:將當(dāng)前編碼單元對(duì)應(yīng)的編碼模式的像素值的嵌入隱秘信息后的索引值記為則有
②_6i、將當(dāng)前解析塊中下一個(gè)待處理的編碼單元作為當(dāng)前編碼單元,然后返回步驟②_6b繼續(xù)執(zhí)行,直至當(dāng)前解析塊中的所有編碼單元均處理完畢,再執(zhí)行步驟②_7。
②_7、將當(dāng)前幀中下一個(gè)待解析的編碼樹(shù)單元作為當(dāng)前解析塊,然后返回步驟②_6繼續(xù)執(zhí)行,直至當(dāng)前幀中的所有編碼樹(shù)單元均處理完畢,再執(zhí)行步驟②_8。
②_8、將目標(biāo)視頻流str.bindec中下一幀待解析的幀作為當(dāng)前幀,然后返回步驟②_4繼續(xù)執(zhí)行,直至目標(biāo)視頻流str.bindec中的所有幀均處理完畢,完成隱秘信息提取。
②_9、將得到的n個(gè)加密信息比特值構(gòu)成加密信息,記為然后對(duì)中的每個(gè)加密信息比特值與E中的每個(gè)比特的值一一對(duì)應(yīng)進(jìn)行異或,得到解密的隱秘信息,記為其中,和對(duì)應(yīng)表示得到的第1個(gè)加密信息比特值、第2個(gè)加密信息比特值、第i個(gè)加密信息比特值、第n-1個(gè)加密信息比特值和第n個(gè)加密信息比特值,和為0或1,和對(duì)應(yīng)表示中的第1個(gè)比特的值、第2個(gè)比特的值、第i個(gè)比特的值、第n-1個(gè)比特的值和第n個(gè)比特的值,和為0或1。
為驗(yàn)證本發(fā)明方法的有效性和可行性,對(duì)本發(fā)明方法進(jìn)行試驗(yàn)。
采用的測(cè)試序列為Balloons立體視頻序列的3視點(diǎn)和5視點(diǎn)、Newspaper立體視頻序列的2視點(diǎn)和4視點(diǎn)、Kendo立體視頻序列的3視點(diǎn)和5視點(diǎn)、Shark立體視頻序列的1視點(diǎn)和9視點(diǎn)、PoznanStreet立體視頻序列的3視點(diǎn)和5視點(diǎn)、UndoDancer立體視頻序列的1視點(diǎn)和9視點(diǎn),前三個(gè)立體視頻序列的分辨率為1024×768,后三個(gè)立體視頻序列的分辨率為1920×1088。測(cè)試軟件為3D-HEVC標(biāo)準(zhǔn)的編碼平臺(tái)HTM13.0,使用All-intra配置文件,編碼100幀,彩色視頻編碼的QP值為25、30、35、40,相應(yīng)的深度視頻編碼的QP值為34、39、42、45,其他配置參數(shù)為平臺(tái)默認(rèn)值。下面分別從嵌入容量、比特率變化、立體視頻序列的不可感知性等方面評(píng)價(jià)本發(fā)明方法的性能。
1)嵌入容量和比特率變化
嵌入容量和比特率變化是信息隱藏方法的主要性能指標(biāo)。表1給出了針對(duì)Balloons立體視頻序列、Newspaper立體視頻序列、Kendo立體視頻序列、Shark立體視頻序列、PoznanStreet立體視頻序列、UndoDancer立體視頻序列,本發(fā)明方法的嵌入容量和比特率變化率的測(cè)試結(jié)果,表1中嵌入容量給出的是所有深度圖像的嵌入容量的均值,比特率變化率BRI的定義如下:其中,Rpro表示經(jīng)本發(fā)明方法處理后視頻編碼的碼率,Rorg表示原始視頻編碼的碼率。
嵌入容量與立體視頻序列的分辨率和編碼的QP值有關(guān)。分辨率與嵌入容量成正比,編碼的QP值與嵌入容量成反比。分辨率越大說(shuō)明編碼單元的數(shù)量越多,可嵌入的載體多;增大QP的值對(duì)編碼單元的編碼模式的率失真影響較大,影響最優(yōu)分割模式的選擇。從表1中可以看出,所有編碼的QP值下平均每幀深度圖像的嵌入容量為244bit,信息嵌入前后立體視頻序列的比特率變化率在0.03%~0.25%,平均變化率為0.12%,說(shuō)明本發(fā)明方法提供的嵌入容量較大,對(duì)比特率影響較小。
表1本發(fā)明方法的嵌入容量和比特率變化率的測(cè)試結(jié)果
2)立體視頻序列的不可感知性
立體視頻的不可感知性也是立體視頻信息隱藏方法的一個(gè)性能指標(biāo),即嵌入信息前后立體視頻的質(zhì)量無(wú)明顯下降。由于深度視頻并不直接用于用戶觀看,而是用來(lái)繪制虛擬視點(diǎn),因此嵌入信息后深度視頻的質(zhì)量變化可以通過(guò)繪制視點(diǎn)的質(zhì)量來(lái)體現(xiàn)。選取Balloons立體視頻序列、Newspaper立體視頻序列和Shark立體視頻序列來(lái)進(jìn)行說(shuō)明。圖2a給出了原始的Balloons立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的4視點(diǎn)的第1幀圖像;圖2b給出了原始的Newspaper立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的3視點(diǎn)的第1幀圖像;圖2c給出了原始的Shark立體視頻序列壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的5視點(diǎn)的第1幀圖像;圖2d給出了原始的Balloons立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的4視點(diǎn)的第1幀圖像;圖2e給出了原始的Newspaper立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的3視點(diǎn)的第1幀圖像;圖2f給出了原始的Shark立體視頻序列壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的5視點(diǎn)的第1幀圖像。比較圖2a與圖2d、比較圖2b與圖2e、比較圖2c與圖2f,可以看出隱秘信息嵌入前后繪制視點(diǎn)的質(zhì)量并無(wú)明顯失真,說(shuō)明本發(fā)明方法的立體視頻不可感知性較好。
嵌入隱秘信息前后立體視頻的質(zhì)量變化除了從主觀上進(jìn)行觀察外,還可以從客觀指標(biāo)上考慮,這里主要從峰值信噪比(Peak Signal-Noise-Ratio,PSNR)和結(jié)構(gòu)相似度(Structural similarity index,SSIM)兩個(gè)指標(biāo)入手。表2給出了原始的Balloons立體視頻序列、原始的Newspaper立體視頻序列、原始的Kendo立體視頻序列、原始的Shark立體視頻序列、原始的PoznanStreet立體視頻序列、原始的UndoDancer立體視頻序列分別壓縮編碼生成視頻流,視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量,及原始的Balloons立體視頻序列、原始的Newspaper立體視頻序列、原始的Kendo立體視頻序列、原始的Shark立體視頻序列、原始的PoznanStreet立體視頻序列、原始的UndoDancer立體視頻序列分別壓縮編碼生成視頻流,視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量。表2中嵌入隱秘信息前后PSNR和SSIM的變化量ΔPSNR和ΔSSIM的計(jì)算公式為:ΔPSNR=PSNRpro-PSNRorg,ΔSSIM=SSIMpro-SSIMorg,其中,PSNRpro表示生成的視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的視點(diǎn)與原始視點(diǎn)之間的PSNR,SSIMpro表示生成的視頻流經(jīng)本發(fā)明方法處理后解碼得到的立體視頻序列繪制的視點(diǎn)與原始視點(diǎn)之間的SSIM,PSNRorg表示生成的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)與原始視點(diǎn)之間的PSNR,和SSIMorg表示生成的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)與原始視點(diǎn)之間的SSIM,本試驗(yàn)中通過(guò)ΔPSNR和ΔSSIM的大小來(lái)進(jìn)行立體視頻不可感知性的說(shuō)明。
從表2中可以看出,不同的QP值編碼立體視頻序列,解碼重建后得到的立體視頻序列所繪制的視點(diǎn)質(zhì)量不同,QP值越大,繪制的視點(diǎn)質(zhì)量越差,主要是因?yàn)樵龃驫P值,對(duì)深度視頻的壓縮程度越大,失真較大,因此繪制的視點(diǎn)質(zhì)量也會(huì)下降。嵌入隱秘信息前后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量的PSNR的絕對(duì)值差異范圍在0~0.0139dB,經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量的PSNR值比未經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量的PSNR值平均下降了0.00141dB,說(shuō)明本發(fā)明方法對(duì)繪制的視點(diǎn)質(zhì)量影響輕微。由于有時(shí)候PSNR值與人的主觀感受不一致,所以表2也給出了SSIM值,經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量的SSIM值比未經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量的SSIM值平均下降了0.000006,從而進(jìn)一步說(shuō)明了本發(fā)明方法對(duì)立體視頻的不可感知性較好,這主要是因?yàn)楸景l(fā)明方法在編碼模式為單深度幀內(nèi)編碼模式的編碼單元的編碼模式的像素值候選列表中的元素相同的情況下,利用隱秘信息調(diào)制像素值候選列表中的像素值的索引值,不會(huì)對(duì)該編碼單元造成任何失真;而在像素值候選列表中的元素不同的情況下,由于考慮了誤差漂移問(wèn)題,因此本發(fā)明方法也只會(huì)對(duì)當(dāng)前的編碼單元產(chǎn)生失真。
表2經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量與未經(jīng)本發(fā)明方法處理后的視頻流解碼得到的立體視頻序列繪制的視點(diǎn)質(zhì)量