專利名稱:基于混合編解碼的h.264視頻水印嵌入及提取方法
技術(shù)領(lǐng)域:
:本發(fā)明是基于混合編解碼的H.264視頻格式的視頻水印嵌入及提取方案,針對
H.264碼流中的DCT系數(shù)嵌入水印,屬于多媒體信息安全領(lǐng)域。
背景技術(shù):
:數(shù)字水印是一種非常有效的數(shù)字版權(quán)保護(hù)技術(shù),近些年來得到迅猛發(fā)展。它利用人眼的視覺特性,在數(shù)字載體中嵌入不影響原載體視覺效果和使用價(jià)值的標(biāo)志信息,在檢測時(shí)通過專門的方法又能將嵌入的水印信息提取出來。但目前針對數(shù)字水印的研究多集中在靜態(tài)圖像領(lǐng)域。現(xiàn)有的一些圖像水印算法可以應(yīng)用到視頻水印算法中,但是視頻水印并不是圖像水印的簡單延伸,視頻水印應(yīng)滿足一些針對視頻的特殊要求,例如視頻水印數(shù)據(jù)量較大,與圖像水印存在一定的差別,另外,視頻水印還有實(shí)時(shí)性、隨機(jī)檢測性、盲水印等要求。視頻是由連續(xù)播放的圖像序列構(gòu)成,因此,相鄰幀之間內(nèi)容存在很大的相關(guān)性,連續(xù)幀之間存在大量的數(shù)據(jù)冗余。因?yàn)橐曨l數(shù)據(jù)量較大,為了節(jié)約視頻存儲(chǔ)空間和便于傳輸,現(xiàn)在視頻的主要存在模式是壓縮數(shù)據(jù)。不同的視頻壓縮格式,采用相似的數(shù)據(jù)壓縮技術(shù),同時(shí)在復(fù)雜性上存在一定的差別。H264壓縮標(biāo)準(zhǔn)在傳統(tǒng)壓縮技術(shù)的基礎(chǔ)上,引入了更多的預(yù)測模式,使時(shí)間和空間復(fù)雜度大大增加。264標(biāo)準(zhǔn)相比于其他標(biāo)準(zhǔn)采用了分層的設(shè)計(jì)方式,分為視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL),以更好地適應(yīng)不同網(wǎng)絡(luò)速率下的高品質(zhì)圖像傳輸。264標(biāo)準(zhǔn)采用高精度、多豐旲塊運(yùn)動(dòng)設(shè)計(jì),最聞支持1/8像素精度的運(yùn)動(dòng)矢量;為了提聞運(yùn)動(dòng)估計(jì)的精確程度,264標(biāo)準(zhǔn)采用更靈活和細(xì)致的模式劃分和多幀參考技術(shù)。因而在編、解碼264壓縮視頻時(shí),速度慢,耗時(shí)長。視頻水印也就是加載在數(shù)字視頻上的水印,其目的主要是對數(shù)字視頻作品進(jìn)行版權(quán)保護(hù),通過鑒別特有的水印信息來確認(rèn)版權(quán)所有者、保護(hù)版權(quán)所有者的合法權(quán)益。目前視頻水印有三個(gè)嵌入位置:原始視頻數(shù)據(jù)流中、壓縮編碼過程中和壓縮后的視頻流中。對應(yīng)這三種嵌入位置,有三種水印嵌入方案:一、直接嵌入到原始視頻數(shù)據(jù)流中,其優(yōu)點(diǎn)是水印的嵌入方法多,可以使用圖像水印的嵌入方法,缺點(diǎn)是計(jì)算量較大,增加了視頻碼流,降低了視頻的質(zhì)量;相對應(yīng)的,在提取水印時(shí)也需將碼流解碼出來之后再對原始視頻進(jìn)行提取,增加了算法的復(fù)雜度。二、水印在視頻的壓縮編碼過程中進(jìn)行嵌入,常見的方法是將水印嵌入到量化系數(shù)或運(yùn)動(dòng)矢量上,其優(yōu)點(diǎn)是嵌入的水印信息能很好的與視頻相結(jié)合,不會(huì)增加視頻流的數(shù)據(jù)比特率,缺點(diǎn)是會(huì)降低視頻質(zhì)量,并且要結(jié)合編碼器選擇水印嵌入算法。三、水印直接嵌入到壓縮比特流中,此方案對視頻信號的影響最小,且不需要經(jīng)過編解碼,實(shí)時(shí)性較高,但是受到了壓縮比特率的限制,這種方法限定了嵌入水印的數(shù)據(jù)量的大小。隨著人們對視頻版權(quán)安全的重視程度的提高,出現(xiàn)了許多視頻水印的實(shí)現(xiàn)方法,大體可以分為三類:空域視頻水印、頻域視頻水印和壓縮域視頻水印??沼蛞曨l水印把視頻看作靜止圖像序列,以圖像水印為基礎(chǔ);頻域視頻水印是在時(shí)間軸上嵌入水??;壓縮域視頻水印是以視頻壓縮標(biāo)準(zhǔn)存放的壓縮數(shù)據(jù),水印算法與視頻壓縮標(biāo)準(zhǔn)相結(jié)合。其中,利用頻域法嵌入水印的辦法應(yīng)用較多。例如利用DCT變換的特性,可以使得水印數(shù)據(jù)分布在整個(gè)空間域中,所以具有很好的不可感知性;而且經(jīng)過DCT變換后,視頻圖像的大多數(shù)能量都集中在低頻部分,因而在較低頻部分嵌入水印具有一定的魯棒性,但是在將水印嵌入在低頻部分又會(huì)引起較大的失真,而且由于人眼對亮度信號比對色度信號更加敏感,嵌入在色度信號中的數(shù)據(jù)在壓縮時(shí)很容易被清除。數(shù)字水印系統(tǒng)的兩個(gè)最大指標(biāo)魯棒性和不可感知性是一對矛盾體,所以水印系統(tǒng)的設(shè)計(jì)很大程度上力求使產(chǎn)品能夠達(dá)到二者的最大妥協(xié),而這其中水印嵌入位置的確定又是實(shí)現(xiàn)魯棒性和不可感知性對立統(tǒng)一的核心。如果按照水印技術(shù)與數(shù)字視頻編碼系統(tǒng)的結(jié)合方式來分類,可以將視頻水印技術(shù)歸為兩大類:基于原始視頻的方法和基于壓縮視頻的方法?;谠家曨l的水印算法,是對經(jīng)編碼的視頻數(shù)據(jù)完全解碼后,在原始視頻數(shù)據(jù)中嵌入水印。如果直接在原始視頻中嵌入水印,則許多圖像水印的算法都可以直接移植到視頻水印中去,缺點(diǎn)是會(huì)增加視頻碼流和降低視頻的質(zhì)量;基于壓縮視頻的水印算法,則與某種視頻壓縮標(biāo)準(zhǔn)(如常見的MPEG-2或MPEG-4)相結(jié)合,在壓縮視頻中嵌入水印。本發(fā)明受863高科技發(fā)展技術(shù)項(xiàng)目“面向三網(wǎng)融合的集成播控平臺(tái)研究與示范”資助。該項(xiàng)目要求在基于這種高品質(zhì)H264視頻上嵌入水印,且水印的嵌入要有非常高的處理速度。上述的各種視頻水印的實(shí)現(xiàn)方法都不可避免地需要對原始壓縮H264進(jìn)行解碼后添加水印。如果按照壓縮后的視頻經(jīng)過解碼出原始的圖像在之中嵌入水印然后再經(jīng)過H264編碼后的方法,則由于解碼和編碼要大量的耗時(shí)則很難到達(dá)較快的處理速度,這時(shí)就需要充分地利用解碼和編碼的數(shù)據(jù)來提高水印嵌入的速度,這就是本方法要解決的問題
發(fā)明內(nèi)容
:本發(fā)明是一種基于264視頻壓縮標(biāo)準(zhǔn)的視頻水印方案,相對于傳統(tǒng)的視頻水印方案需要全部解碼視頻數(shù)據(jù)的方案,采用了一種速度更快、效率更高的方案。本方案不需要徹底解碼視頻數(shù)據(jù),在嵌入水印時(shí)充分利用原視頻的編碼參數(shù),最大限度的減少了嵌入水印后的視頻與原始視頻的差別。在進(jìn)行解碼時(shí),并不是將視頻數(shù)據(jù)全部解碼,而是只解碼到DCT數(shù)據(jù),在其中嵌入水印,同時(shí)保留解碼過程中出來的編碼參數(shù)(如:塊類型,預(yù)測模式,運(yùn)動(dòng)矢量等),快速實(shí)現(xiàn)水印嵌入?;诨旌暇幗獯a的H.264視頻水印嵌入及提取方法,其特征在于:其水印的嵌入步驟如下:A.對于原始的H264視頻,首先對原始H264視頻流進(jìn)行網(wǎng)絡(luò)層NAL解碼,獲得相應(yīng)的片SLICE解碼數(shù)據(jù)頭信息,IDR瞬時(shí)解碼參考信息,序列參數(shù)集信息,圖像參數(shù)信息集;B.描述H264片信息的數(shù)據(jù)存放于片的解碼數(shù)據(jù)頭信息里;對于片SLICE解碼數(shù)據(jù)頭信息,提取其中的描述H264片信息的數(shù)據(jù)作為H264的視頻編碼的前導(dǎo)數(shù)據(jù)予以保存,IDR瞬時(shí)解碼參考信息,序列參數(shù)信息集數(shù)據(jù)以及圖像參數(shù)信息集則完整保留原始數(shù)據(jù)流,并作為H264的圖像編碼數(shù)據(jù)集的輔助數(shù)據(jù);Cl.對于宏塊的類型,首先根據(jù)片SLICE解碼數(shù)據(jù)頭信息來判斷編碼片數(shù)據(jù)是否為如下的幾種類型之一或者其他:I幀類型,P幀類型,B幀類型,SI類型,SP類型;同時(shí)判斷是不是需要SKIP模式處理,如是則進(jìn)入SKIP處理流程,這時(shí)要保留一個(gè)標(biāo)志位;C2.根據(jù)獲得的宏塊的數(shù)據(jù)類型判斷是否存在8x8傳輸模式,如果存在8x8的傳輸模式,則在編碼部分引入8x8DCT編碼數(shù)據(jù),如果存在16x16的傳輸模式,則在編碼部分引入16xl6DCT編碼數(shù)據(jù),否則采用4x4DCT方式編碼數(shù)據(jù);并獲得交織預(yù)測模式,該模式作為下面的編碼所使用的預(yù)測模式PREM,如果存在子類型則還需要相應(yīng)計(jì)算子類型SUB_P ;C3.利用NAL數(shù)據(jù)即上述步驟A中獲得的片SLICE解碼數(shù)據(jù)頭信息,IDR瞬時(shí)解碼參考信息,序列參數(shù)集信息,圖像參數(shù)信息集,解碼ref數(shù)據(jù)以及運(yùn)動(dòng)矢量數(shù)據(jù)MVD,ref數(shù)據(jù)以及運(yùn)動(dòng)矢量數(shù)據(jù)MVD解碼后的數(shù)據(jù)在H.264解碼中應(yīng)當(dāng)保留預(yù)備下一個(gè)宏塊處理使用,故放入緩沖中,等待H264解碼下一個(gè)宏塊以及片數(shù)據(jù)使用;C4.獲得編碼模式數(shù)據(jù)CBP,包括亮度的CBP以及色度的CBP數(shù)據(jù)以被下面編碼部分D6步數(shù)據(jù)處理使用:C5.解碼獲得量化步長信息QP ;C6解碼H264碼流獲得解碼后的DCT數(shù)據(jù),該數(shù)據(jù)在解碼過程中為非零的亮度DCT數(shù)據(jù),16x16亮度DCT數(shù)據(jù),8x8的亮度DCT數(shù)據(jù),直流色度數(shù)據(jù),交流色度DCT數(shù)據(jù),以及非零DCT的位置;這時(shí)應(yīng)按下面式子獲得編碼用的DCT數(shù)據(jù);I uma [po s I uma [ i ] ] =d.dctluma[n]chroma_dc[poschromadc[i]]=d.dctchromadc[n]dct.1uma_16xl6[poslumal6[i]]=d.dctlumal6xl6[n]dct..luma_8x8[posluma8[i]]=d.dctluma8x8[n]chroma_ac[poschromaac[i]]=d.dctchromaac[n]其中dct.luma是除了 8x8和16x16的亮度的DCT信息,d.dct luma是相應(yīng)的解碼獲得相應(yīng)DCT數(shù)據(jù),posluma[n]是其中非零的位置數(shù)據(jù)其他為零;dct.chroma_dc是直流色度DCT數(shù)據(jù),d.dctchromadc是相應(yīng)的解碼得到的DCT數(shù)據(jù),poschromadc是非零的位置;dct.1uma_16xl6是16x16類型的DCT數(shù)據(jù),d.dctlumal6xl6是相應(yīng)解碼獲得DCT數(shù)據(jù),poslumal6是其中非零的位置,其他為零;dct.1uma_8x8是8x8類型的DCT數(shù)據(jù),d.dctluma8x8是相應(yīng)解碼得到的DCT數(shù)據(jù),posluma8是其中非零的位置其他為零;dct.chroma_ac是交流色度的DCT數(shù)據(jù),d.dctchromaac是解碼獲得相應(yīng)DCT數(shù)據(jù),poschromaac是其中非零的位置;這個(gè)式子實(shí)現(xiàn)解碼用DCT到編碼用DCT的轉(zhuǎn)換;解碼首先獲得是非零DCT值及非零的位置,而編碼用DCT需將這兩個(gè)結(jié)合起來求得編碼用圖像的DCT數(shù)據(jù);C7根據(jù)片解碼數(shù)據(jù)的編碼類型信息如果是按CABAC編碼的則按CABAC方式進(jìn)行解碼處理,否則按CAVLC方式進(jìn)行解碼處理;D下面Dl及以下各步完成基于上述解碼參數(shù)進(jìn)行的編碼;這些數(shù)據(jù)包含在下面所述的各步中;對這些H264的編碼數(shù)據(jù)按照H264基礎(chǔ)視頻流的編碼順序進(jìn)入熵編碼環(huán)節(jié)處理以及同時(shí)加入水印信息;Dl.采用基于DCT域的水印嵌入方法,如果上述獲得的宏塊的DCT數(shù)據(jù)為dct,待嵌入的水印序列w(N) ;w(N)表示長度為N的水印序列;m, η為該宏塊DCT數(shù)據(jù)的起始位置;則按照下述算法在亮度信息中嵌入一位水印
信息:
權(quán)利要求
1.基于混合編解碼的H.264視頻水印嵌入及提取方法,其特征在于: 其水印的嵌入步驟如下: A.對于原始的H264視頻,首先對原始H264視頻流進(jìn)行網(wǎng)絡(luò)層NAL解碼,獲得相應(yīng)的片SLICE解碼數(shù)據(jù)頭信息,IDR瞬時(shí)解碼參考信息,序列參數(shù)集信息,圖像參數(shù)信息集; B.描述H264片信息的數(shù)據(jù)存放于片的解碼數(shù)據(jù)頭信息里;對于片SLICE解碼數(shù)據(jù)頭信息,提取其中的描述H264片信息的數(shù)據(jù)作為H264的視頻編碼的前導(dǎo)數(shù)據(jù)予以保存,IDR瞬時(shí)解碼參考信息,序列參數(shù)信息集數(shù)據(jù)以及圖像參數(shù)信息集則完整保留原始數(shù)據(jù)流,并作為H264的圖像編碼數(shù)據(jù)集的輔助數(shù)據(jù); Cl.對于宏塊的類型,首先根據(jù)片SLICE解碼數(shù)據(jù)頭信息來判斷編碼片數(shù)據(jù)是否為如下的幾種類型之一或者其他: I幀類型,P幀類型,B幀類型,SI類型,SP類型; 同時(shí)判斷是不是需要SKIP模式處理,如是則進(jìn)入SKIP處理流程,這時(shí)要保留一個(gè)標(biāo)志位; C2.根據(jù)獲得的宏塊的數(shù)據(jù)類型判斷是否存在8x8傳輸模式,如果存在8x8的傳輸模式,則在編碼部分引入 8x8DCT編碼數(shù)據(jù),如果存在16x16的傳輸模式,則在編碼部分引入16xl6DCT編碼數(shù)據(jù),否則采用4x4DCT方式編碼數(shù)據(jù);并獲得交織預(yù)測模式,該模式作為下面的編碼所使用的預(yù)測模式PREM,如果存在子類型則還需要相應(yīng)計(jì)算子類型SUB_P ; C3.利用NAL數(shù)據(jù)即上述步驟A中獲得的片SLICE解碼數(shù)據(jù)頭信息,IDR瞬時(shí)解碼參考信息,序列參數(shù)集信息,圖像參數(shù)信息集,解碼ref數(shù)據(jù)以及運(yùn)動(dòng)矢量數(shù)據(jù)MVD,ref數(shù)據(jù)以及運(yùn)動(dòng)矢量數(shù)據(jù)MVD解碼后的數(shù)據(jù)在H.264解碼中應(yīng)當(dāng)保留預(yù)備下一個(gè)宏塊處理使用,故放入緩沖中,等待H264解碼下一個(gè)宏塊以及片數(shù)據(jù)使用; C4.獲得編碼模式數(shù)據(jù)CBP,包括亮度的CBP以及色度的CBP數(shù)據(jù)以被下面編碼部分D6步數(shù)據(jù)處理使用: C5.解碼獲得量化步長信息QP ; C6解碼H264碼流獲得解碼后的DCT數(shù)據(jù),該數(shù)據(jù)在解碼過程中為非零的亮度DCT數(shù)據(jù),16x16亮度DCT數(shù)據(jù),8x8的亮度DCT數(shù)據(jù),直流色度數(shù)據(jù),交流色度DCT數(shù)據(jù),以及非零DCT的位置;這時(shí)應(yīng)按下面式子獲得編碼用的DCT數(shù)據(jù);Iuma[posIuma[i]]=d.dctluma[n]chroma_dc[poschromadc[i]]=d.dctchromadc[n]dct.1uma_16xl6[poslumal6[i]]=d.dctlumal6xl6[n]dct..luma_8x8[posluma8[i]]=d.dctluma8x8[n]chroma_ac[poschromaac[i]]=d.dctchromaac[n] 其中dct.luma是除了 8x8和16x16的亮度的DCT信息,d.dctIuma是相應(yīng)的解碼獲得相應(yīng)DCT數(shù)據(jù),posluma[n]是其中非零的位置數(shù)據(jù)其他為零;dct.chroma_dc是直流色度DCT數(shù)據(jù),d.dctchromadc是相應(yīng)的解碼得到的DCT數(shù)據(jù),poschromadc是非零的位置;dct.1uma_16xl6是16x16類型的DCT數(shù)據(jù),d.dctlumal6xl6是相應(yīng)解碼獲得DCT數(shù)據(jù),poslumal6是其中非零的位置,其他為零;dct.1uma_8x8是8x8類型的DCT數(shù)據(jù),d.dctluma8x8是相應(yīng)解碼得到的DCT數(shù)據(jù),posluma8是其中非零的位置其他為零;dct.chroma_ac是交流色度的DCT數(shù)據(jù),d.dctchromaac是解碼獲得相應(yīng)DCT數(shù)據(jù),poschromaac是其中非零的位置; 這個(gè)式子實(shí)現(xiàn)解碼用DCT到編碼用DCT的轉(zhuǎn)換;解碼首先獲得是非零DCT值及非零的位置,而編碼用DCT需將這兩個(gè)結(jié)合起來求得編碼用圖像的DCT數(shù)據(jù); C7根據(jù)片解碼數(shù)據(jù)的編碼類型信息如果是按CABAC編碼的則按CABAC方式進(jìn)行解碼處理,否則按CAVLC方式進(jìn)行解碼處理; D下面Dl及以下各步完成基于上述解碼參數(shù)進(jìn)行的編碼;這些數(shù)據(jù)包含在下面所述的各步中;對這些H264的編碼數(shù)據(jù)按照H264基礎(chǔ)視頻流的編碼順序進(jìn)入熵編碼環(huán)節(jié)處理以及同時(shí)加入水印信息; Dl.采用基于DCT域的水印嵌入方法,如果上述獲得的宏塊的DCT數(shù)據(jù)為dct,待嵌入的水印序列w(N) ;w(N)表示長度為N的水印序列; m, η為該宏塊DCT數(shù)據(jù)的起始位置;則按照下述算法在亮度信息中嵌入一位水印信息:
全文摘要
基于混合編解碼的H.264視頻水印嵌入及提取方法屬于多媒體信息安全領(lǐng)域。本方案不需要徹底解碼視頻數(shù)據(jù),在嵌入水印時(shí)充分利用原視頻的編碼參數(shù),最大限度的減少了嵌入水印后的視頻與原始視頻的差別。在進(jìn)行解碼時(shí),并不是將視頻數(shù)據(jù)全部解碼,而是只解碼到DCT數(shù)據(jù),在其中嵌入水印,同時(shí)保留解碼過程中出來的編碼參數(shù)(如塊類型,預(yù)測模式,運(yùn)動(dòng)矢量等),快速實(shí)現(xiàn)水印嵌入。本發(fā)明是一種基于264視頻壓縮標(biāo)準(zhǔn)的視頻水印方案,相對于傳統(tǒng)的視頻水印方案需要全部解碼視頻數(shù)據(jù)的方案,采用了一種速度更快、效率更高的方案。
文檔編號H04N7/30GK103152578SQ20131009794
公開日2013年6月12日 申請日期2013年3月25日 優(yōu)先權(quán)日2013年3月25日
發(fā)明者謝衛(wèi)華, 王永濱, 伏文龍, 謝金寶 申請人:中國傳媒大學(xué)