本發(fā)明涉及一種視頻信息隱藏技術,尤其是涉及一種基于多視點視頻特征的3d-hevc深度視頻信息隱藏方法。
背景技術:
數(shù)字通信技術的快速發(fā)展已使得三維(3d)視頻逐步走入人們日常生活,相比于傳統(tǒng)的二維視頻,其能夠提供場景的深度信息,滿足人們對真實性和立體感的視覺渴望。此外,三維視頻技術在視頻會議、遠程醫(yī)療、軍事以及航天等領域具有廣闊的發(fā)展前景。但是,科技的進步給三維數(shù)字產品的復制、傳輸、視頻信號處理等操作帶來便利的同時,致使信息安全問題變得日益突出。信息隱藏技術作為隱秘通信和版權保護的有效手段,已成為當前研究的熱點方向。
三維視頻在編碼過程中增加了深度信息和視點間的參考,因此二維視頻的信息隱藏方法并不適用,而目前三維視頻的信息隱藏技術還處在初步發(fā)展階段。如:asikuzzaman等人提出了一種基于dibr的數(shù)字水印的算法,其采用雙樹復小波變換(dtcwt)將水印嵌入在中間視點yuv的色度分量上,水印既可以由中間視點提取,也可以由經過繪制的左、右視點提取,不需要原始視頻參與。又如:yang等人提出了一種基于量化索引調制的3d視頻盲水印算法,其將水印嵌入在深度視頻的dct系數(shù)上,其具有較強的魯棒性,能夠抵抗一般的幾何攻擊和濾波操作。但是,上述兩種方法都是針對原始域的信息隱藏,嵌入的秘密信息經編碼壓縮后極有可能丟失。目前,也有針對壓縮域的信息隱藏,如:song等人采用一種可逆的立體視頻信息隱藏算法,將秘密信息嵌入在3dmvc的b4幀中,可以避免誤差漂移。又如:li等人探索三維視頻的時間和視點間相關性,采用矩陣編碼的方式將秘密信息嵌入到宏塊中的dct系數(shù)中。但是,上述兩種方法主要針對于h.264編碼標準的三維視頻,并不能很好地適用于3d-hevc編碼標準的三維視頻。3d-hevc編碼標準是立體視頻通信領域的一項最新的關鍵技術,當前三維場景主要采用多視點彩色視頻加深度視頻(multi-viewvideoplusdepth,mvd),而深度視頻通常不用于觀看,在繪制過程中轉化為視差輔助信息,能夠生成更多的虛擬視點,且不同于彩色視頻,深度視頻包含大量的平滑區(qū)域和尖銳的邊緣,并且深度視頻的部分失真不會影響繪制的質量,因此為了更安全地傳輸秘密信息和保護三維視頻,研究一種3d-hevc深度視頻信息隱藏方法非常必要。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是提供一種基于多視點視頻特征的3d-hevc深度視頻信息隱藏方法,其在壓縮過程中實現(xiàn)信息隱藏,實現(xiàn)過程簡單、快速,計算復雜度低,具有不可感知性和實時性,能實現(xiàn)解碼端的盲提取,且能夠保證虛擬繪制視點的質量。
本發(fā)明解決上述技術問題所采用的技術方案為:一種基于多視點視頻特征的3d-hevc深度視頻信息隱藏方法,其特征在于包括信息嵌入和信息提取兩部分;
所述的信息嵌入部分的具體步驟為:
①_1、將原始的三維視頻的左視點彩色視頻和右視點彩色視頻對應記為
①_2、以幀為單位依次對
①_3、判斷當前幀屬于
①_4、讀取k中當前待嵌入的比特,設為k中的第n個比特kn;并以3d-hevc編碼樹的最大編碼單元為單位對當前幀進行處理,將當前幀中當前待處理的最大編碼單元定義為當前單元;
①_5、若當前幀對應的彩色圖像中與當前單元相對應的64×64區(qū)域內存在一個像素點屬于紋理區(qū)域,那么再判斷當前單元中屬于邊緣區(qū)域的像素點的個數(shù)是否大于設定數(shù)目,如果大于設定數(shù)目,則將當前單元確定為深度圖像內屬于邊緣區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于紋理區(qū)域的單元,記為tder,如果小于或等于設定數(shù)目,則將當前單元確定為深度圖像內屬于平滑區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于紋理區(qū)域的單元,記為tdsr;
若當前幀對應的彩色圖像中與當前單元相對應的64×64區(qū)域內不存在像素點屬于紋理區(qū)域,那么再判斷當前單元中屬于邊緣區(qū)域的像素點的個數(shù)是否大于設定數(shù)目,如果大于設定數(shù)目,則將當前單元確定為深度圖像內屬于邊緣區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于平坦區(qū)域的單元,記為fder,如果小于或等于設定數(shù)目,則將當前單元確定為深度圖像內屬于平滑區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于平坦區(qū)域的單元,記為fdsr;
①_6、根據(jù)當前單元的類型,采用不同的調制方式對當前單元的原始編碼量化參數(shù)進行調制,以實現(xiàn)kn的嵌入,得到當前單元的調制編碼量化參數(shù),記為qp',
①_7、采用qp'對當前單元進行編碼壓縮,同時判斷當前單元的預測模式是否為幀間skip模式或單深度幀內模式,如果是,則保留kn作為下一個最大編碼單元應嵌入的比特,然后執(zhí)行步驟①_8,否則,令n=n+1,讀取k中下一個待嵌入的比特,然后執(zhí)行步驟①_8;其中,n=n+1中的“=”為賦值符號;
①_8、將當前幀中下一個待處理的最大編碼單元作為當前單元,然后返回步驟①_5繼續(xù)執(zhí)行,直至當前幀中的所有最大編碼單元處理完畢,再執(zhí)行步驟①_9;
①_9、將下一幀待編碼壓縮的圖像作為當前幀,然后返回步驟①_3繼續(xù)執(zhí)行,直至
所述的信息提取部分的具體步驟為:
②_1、將嵌有加密信息的視頻流記為stream.bit;
②_2、以幀為單位解析stream.bit,將stream.bit中當前待解析的圖像定義為當前幀;
②_3、判斷當前幀屬于
②_4、以3d-hevc編碼樹的最大編碼單元為單位解析當前幀,將當前幀中當前待解析的最大編碼單元定義為當前單元;
②_5、判斷當前單元的預測模式是否為幀間skip模式或單深度幀內模式,如果是,則執(zhí)行步驟②_6;否則,根據(jù)當前單元的編碼量化參數(shù)提取出當前單元中嵌入的比特,將提取出的當前單元中嵌入的比特記為k*,
②_6、將當前幀中下一個待處理的最大編碼單元作為當前單元,然后返回步驟②_5繼續(xù)執(zhí)行,直至當前幀中的所有最大編碼單元處理完畢,再執(zhí)行步驟②_7;
②_7、將stream.bit中下一幀待解析的圖像作為當前幀,然后返回步驟②_3繼續(xù)執(zhí)行,直至stream.bit中的所有圖像處理完畢,共提取得到n個比特,按序組成提取出的加密信息,記為k*,
②_8、采用密鑰key對k*進行解密,得到解密的秘密信息。
所述的步驟①_3中,利用canny檢測算法確定當前幀的紋理區(qū)域和平坦區(qū)域。
所述的步驟①_3中,當前幀的邊緣區(qū)域和平滑區(qū)域的確定過程為:
①_3a、利用sobel算子計算當前幀中的每個像素點的梯度值;
①_3b、對當前幀中的每個像素點的梯度值進行歸一化處理,獲得當前幀中的每個像素點的歸一化梯度值;
①_3c、根據(jù)當前幀中的所有像素點的歸一化梯度值,自適應地獲取判別閾值,記為td;
①_3d、比較td與當前幀中的每個像素點的歸一化梯度值來確定當前幀的邊緣區(qū)域和平滑區(qū)域,具體為:對于當前幀中的任意一個像素點,若該像素點的歸一化梯度值大于td,則將該像素點歸屬到邊緣區(qū)域;若該像素點的歸一化梯度值小于或等于td,則將該像素點歸屬到平滑區(qū)域。
所述的步驟①_3c中,
所述的步驟①_5中設定數(shù)目為32個。
所述的步驟①_6中,
與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:
1)本發(fā)明方法在3d-hevc編碼過程中進行信息隱藏,利用深度視頻不用于觀看、繪制過程中轉化為視差輔助信息、能夠生成更多的虛擬視點的特性,通過輕微調制深度視頻中的最大編碼單元的編碼量化參數(shù)來嵌入秘密信息,相比于傳統(tǒng)的在彩色視頻中嵌入秘密信息導致視頻質量下降,本發(fā)明方法對彩色單視點無失真,而且能夠保證虛擬繪制視點的質量。
2)本發(fā)明方法充分考慮到深度視頻中的邊緣區(qū)域對繪制視點質量會產生較大影響,而深度視頻在其對應位置為彩色視頻中的紋理區(qū)域會發(fā)生失真對繪制虛擬視點質量的影響更大,因此采用彩色視頻中的紋理區(qū)域映射到對應的深度視頻中,再根據(jù)深度視頻中的邊緣區(qū)域對深度視頻以最大編碼單元為單位進行區(qū)域劃分,針對不同區(qū)域類型對編碼效率的影響,采用不同的調制方式修改其最大編碼單元的編碼量化參數(shù)嵌入秘密信息,以達到在容易引起繪制視點失真的區(qū)域分配較多的碼率,在對繪制視點失真影響較小的區(qū)域分配較少的碼率,進一步提高本發(fā)明方法的性能,抑制因嵌入的秘密信息導致的碼率過快增長。
3)本發(fā)明方法選擇秘密信息嵌入的載體為深度視頻中的編碼量化參數(shù)值,相比于壓縮域的dct系數(shù)、其他語法元素等嵌入載體會產生誤差漂移的缺點,本發(fā)明方法在量化過程前根據(jù)秘密信息修改最大編碼單元的編碼量化參數(shù),然后采用修改后的編碼量化參數(shù)壓縮編碼,無誤差漂移現(xiàn)象產生,進一步減少了繪制視點質量的下降。
4)本發(fā)明方法在信息嵌入部分中利用密鑰加密待嵌入的秘密信息,有效地提高了本發(fā)明方法的安全性。
5)本發(fā)明方法嵌入秘密信息和提取秘密信息的實現(xiàn)過程簡單、快速,計算復雜度低,具有不可感知性和實時性,且提取過程無需原始三維視頻參與,從而能實現(xiàn)解碼端的盲提取。
附圖說明
圖1a為本發(fā)明方法的信息嵌入部分的總體實現(xiàn)框圖;
圖1b為本發(fā)明方法的信息提取部分的總體實現(xiàn)框圖;
圖2a為原始的newspaper三維視頻序列編碼重建得到的三維視頻序列繪制的5視點的第60幀圖像;
圖2b為原始的undodancer三維視頻序列編碼重建得到的三維視頻序列繪制的3視點的第60幀圖像;
圖2c為newspaper三維視頻序列經本發(fā)明方法處理后編碼重建得到的三維視頻序列繪制的5視點的第60幀圖像;
圖2d為undodancer三維視頻序列經本發(fā)明方法處理后編碼重建得到的三維視頻序列繪制的3視點的第60幀圖像。
具體實施方式
以下結合附圖實施例對本發(fā)明作進一步詳細描述。
本發(fā)明提出的一種基于多視點視頻特征的3d-hevc深度視頻信息隱藏方法,其包括信息嵌入和信息提取兩部分。
所述的信息嵌入部分的總體實現(xiàn)框圖如圖1a所示,其具體步驟為:
①_1、將原始的三維視頻的左視點彩色視頻和右視點彩色視頻對應記為
在此,原始秘密信息可以為圖像、語音、文字等;密鑰key可自行設定。
①_2、以幀為單位依次對
①_3、判斷當前幀屬于
在此具體實施例中,步驟①_3中,利用canny檢測算法確定當前幀的紋理區(qū)域和平坦區(qū)域。
在此具體實施例中,步驟①_3中,當前幀的邊緣區(qū)域和平滑區(qū)域的確定過程為:
①_3a、利用sobel算子計算當前幀中的每個像素點的梯度值。
①_3b、對當前幀中的每個像素點的梯度值進行歸一化處理,獲得當前幀中的每個像素點的歸一化梯度值。
①_3c、根據(jù)當前幀中的所有像素點的歸一化梯度值,自適應地獲取判別閾值,記為td,
①_3d、比較td與當前幀中的每個像素點的歸一化梯度值來確定當前幀的邊緣區(qū)域和平滑區(qū)域,具體為:對于當前幀中的任意一個像素點,若該像素點的歸一化梯度值大于td,則將該像素點歸屬到邊緣區(qū)域;若該像素點的歸一化梯度值小于或等于td,則將該像素點歸屬到平滑區(qū)域。
①_4、讀取k中當前待嵌入的比特,設為k中的第n個比特kn;并以3d-hevc編碼樹的最大編碼單元(lcu,尺寸大小為64×64)為單位對當前幀進行處理,將當前幀中當前待處理的最大編碼單元定義為當前單元。
①_5、若當前幀對應的彩色圖像(當前幀屬于
若當前幀對應的彩色圖像中與當前單元相對應的64×64區(qū)域內不存在像素點屬于紋理區(qū)域(即全部像素點屬于平坦區(qū)域),那么再判斷當前單元中屬于邊緣區(qū)域的像素點的個數(shù)是否大于設定數(shù)目,如果大于設定數(shù)目,則將當前單元確定為深度圖像內屬于邊緣區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于平坦區(qū)域的單元,記為fder,如果小于或等于設定數(shù)目,則將當前單元確定為深度圖像內屬于平滑區(qū)域且對應的彩色圖像內相對應的64×64區(qū)域屬于平坦區(qū)域的單元,記為fdsr。
在此具體實施例中,步驟①_5中設定數(shù)目為32個。
①_6、根據(jù)當前單元的類型,采用不同的調制方式對當前單元的原始編碼量化參數(shù)進行調制,以實現(xiàn)kn的嵌入,得到當前單元的調制編碼量化參數(shù),記為qp',
在此具體實施例中,步驟①_6中,
①_7、采用qp'對當前單元進行編碼壓縮,同時判斷當前單元的預測模式是否為幀間skip模式或單深度幀內模式(單深度幀內模式是3d-hevc編碼標準新增的專門針對深度視頻平坦區(qū)域的編碼模式,該編碼模式不需要變換量化過程),如果是,則保留kn作為下一個最大編碼單元應嵌入的比特,然后執(zhí)行步驟①_8,否則,令n=n+1,讀取k中下一個待嵌入的比特,然后執(zhí)行步驟①_8;其中,n=n+1中的“=”為賦值符號。
①_8、將當前幀中下一個待處理的最大編碼單元作為當前單元,然后返回步驟①_5繼續(xù)執(zhí)行,直至當前幀中的所有最大編碼單元處理完畢,再執(zhí)行步驟①_9。
①_9、將下一幀待編碼壓縮的圖像作為當前幀,然后返回步驟①_3繼續(xù)執(zhí)行,直至
所述的信息提取部分的總體實現(xiàn)框圖如圖1b所示,其具體步驟為:
②_1、將嵌有加密信息的視頻流記為stream.bit。
②_2、以幀為單位解析stream.bit,將stream.bit中當前待解析的圖像定義為當前幀。
②_3、判斷當前幀屬于
②_4、以3d-hevc編碼樹的最大編碼單元(lcu)為單位解析當前幀,將當前幀中當前待解析的最大編碼單元定義為當前單元。
②_5、判斷當前單元的預測模式是否為幀間skip模式或單深度幀內模式,如果是,則執(zhí)行步驟②_6;否則,根據(jù)當前單元的編碼量化參數(shù)提取出當前單元中嵌入的比特,將提取出的當前單元中嵌入的比特記為k*,
②_6、將當前幀中下一個待處理的最大編碼單元作為當前單元,然后返回步驟②_5繼續(xù)執(zhí)行,直至當前幀中的所有最大編碼單元處理完畢,再執(zhí)行步驟②_7。
②_7、將stream.bit中下一幀待解析的圖像作為當前幀,然后返回步驟②_3繼續(xù)執(zhí)行,直至stream.bit中的所有圖像處理完畢,共提取得到n個比特,按序組成提取出的加密信息,記為k*,
②_8、采用密鑰key對k*進行解密,得到解密的秘密信息。
為驗證本發(fā)明方法的有效性和可行性,對本發(fā)明方法進行試驗。
采用3d-hevc平臺的參考軟件htm13.0進行仿真測試,測試環(huán)境為標準測試環(huán)境。測試序列選擇3d-hevc的標準測試序列,balloons三維視頻序列的1視點和5視點、newspaper三維視頻序列的4視點和6視點、shark三維視頻序列的1視點和9視點、undodancer三維視頻序列的1視點和5視點,前兩個三維視頻序列的分辨率為1024×768,后兩個三維視頻序列的分辨率為1920×1088。編碼參數(shù)為:編碼幀數(shù)為120幀,幀率為30f/s,i幀間隔24幀,圖像組的大小為8,開啟碼率控制,其余均為默認配置。下面分別從主客觀視頻質量、嵌入容量和比特率變化等方面來評價本發(fā)明方法的性能。
1)三維視頻序列的主客觀質量
由于深度視頻主要用于虛擬視點的繪制,不用于用戶的觀看,因此通過評價繪制的虛擬視點的質量體現(xiàn)深度視頻質量的變化。選取newspaper三維視頻序列和undodancer三維視頻序列來進行說明本發(fā)明方法的主觀效果。圖2a給出了原始的newspaper三維視頻序列編碼重建得到的三維視頻序列繪制的5視點的第60幀圖像;圖2b給出了原始的undodancer三維視頻序列編碼重建得到的三維視頻序列繪制的3視點的第60幀圖像;圖2c給出了newspaper三維視頻序列經本發(fā)明方法處理后編碼重建得到的三維視頻序列繪制的5視點的第60幀圖像;圖2d給出了undodancer三維視頻序列經本發(fā)明方法處理后編碼重建得到的三維視頻序列繪制的3視點的第60幀圖像。從主觀感知上,利用本發(fā)明方法嵌入秘密信息并沒有引起視頻繪制圖像的視覺感知失真,具有較好的視覺不可見性。
本發(fā)明方法采用代表性指標即峰值信噪比(peaksignal-noise-ratio,psnr)進一步證明本發(fā)明方法的視覺不可感知性。表1給出了三維視頻序列經本發(fā)明方法處理后編碼重建的繪制視點的質量與三維視頻序列未經本發(fā)明方法處理的編碼重建得到繪制視點的質量,表1中嵌入秘密信息前后峰值信噪比的變化量表示為δpsnr,δpsnr=psnrpro-psnrorg,其中,psnrpro表示經本發(fā)明方法處理后深度視頻所繪制的虛擬視點與原始視點之間的峰值信噪比,psnrorg表示原始深度視頻所繪制的虛擬視點與原始視點之間的峰值信噪比。
表1三維視頻序列經本發(fā)明方法處理后編碼重建的繪制視點的質量與三維視頻序列未經本發(fā)明方法處理的編碼重建得到繪制視點的質量
從表1中可以看出,在不同目標碼率下編碼三維視頻序列,重建后繪制視點的質量不同,由于給定的目標碼率增加,分配給視點的碼率也在增加,視頻編碼的質量不斷提高。嵌入秘密信息后繪制視點的峰值信噪比比原始繪制該視點的峰值信噪比平均下降0.0015db,而且嵌入秘密信息前后繪制視點視頻序列的峰值信噪比的差異范圍在-0.0062~0.0122db,表明秘密信息的嵌入沒有導致三維視頻序列的客觀質量的明顯變化,同時部分三維視頻序列,例如newspaper三維視頻序列在較高目標碼率下,繪制質量得到輕微提升,主要因為本發(fā)明方法結合多視點視頻的特征指導秘密信息的嵌入,且對編碼量化參數(shù)進行微調,能較好地保障繪制視點的客觀質量。
2)嵌入容量和碼率變化
采用碼率的變化率來衡量本發(fā)明方法對目標碼率產生的影響,將碼率的變化率表示為bri,
表2三維視頻序列采用本發(fā)明方法的嵌入容量和碼率的變化率的測試結果
從表2可知,不同的三維視頻序列的嵌入容量有較大的差異,總體上在不同的目標碼率下都保持了較大的嵌入容量。每個三維視頻序列的平均嵌入容量為6656比特,碼率的變化率平均增長0.0572%,同時undodancer和balloons三維視頻序列在較高目標碼率下,碼率的變化率有所降低,說明本發(fā)明方法能提供較高的嵌入容量,且對編碼碼流影響較小,主要由于利用多視點視頻特征,選擇性地對編碼量化參數(shù)進行修改,同時開啟碼率控制模塊,有效地控制了碼率的改變。