一種基於單深度幀內模式的3D‑HEVC深度視頻信息隱藏方法與流程
2023-07-19 22:08:56 4

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