王朝慶 ,賈立平
(1.山東廣播電視臺(tái),山東 濟(jì)南 250062;2.山東大學(xué) 軟件學(xué)院,山東 濟(jì)南 250101;3.大眾報(bào)業(yè)集團(tuán),山東 濟(jì)南 250014)
數(shù)字水印技術(shù)是數(shù)字版權(quán)保護(hù)領(lǐng)域的常用技術(shù),它通常在數(shù)字作品中嵌入帶有版權(quán)信息的數(shù)據(jù)以防止數(shù)字版權(quán)遭到不法侵害,或者在數(shù)字版權(quán)遭到侵害后提供法律依據(jù)。數(shù)字水印技術(shù)通常具有透明性、魯棒性及安全性的特征。透明性是指數(shù)字水印數(shù)據(jù)不應(yīng)該干擾到數(shù)字作品的可觀賞性,不能夠被觀賞人的視覺(jué)或者聽(tīng)覺(jué)明顯察覺(jué),從而影響作品的主觀評(píng)價(jià);魯棒性是指數(shù)字作品中的水印信息不能輕易被破壞和干擾,要能抵御一定水平的轉(zhuǎn)碼、復(fù)制及翻拍等;安全性是指數(shù)字水印不能夠被未授權(quán)的人輕易地提取和篡改。
數(shù)字視頻水印技術(shù)是近年來(lái)興起的一種數(shù)字視頻領(lǐng)域的版權(quán)保護(hù)技術(shù),在視頻版權(quán)保護(hù)方面應(yīng)用廣泛。數(shù)字視頻水印可以分為原始域水印和壓縮域水印。原始域水印是把水印直接嵌入原始視頻的圖像序列中,壓縮域數(shù)字水印是把水印嵌入到經(jīng)過(guò)編碼壓縮的碼流上。壓縮域水印技術(shù)近年來(lái)是數(shù)字視頻水印應(yīng)用領(lǐng)域的一個(gè)熱點(diǎn)[1-2]。
壓縮域的視頻水印技術(shù)目前常用的方法是在視頻中嵌入一副簡(jiǎn)單的黑白圖像,這種二值圖像是肉眼可見(jiàn)的,用黑白塊的方式拼接出簡(jiǎn)單的字符或者特殊標(biāo)志,所承載的信息量很少,通常只有幾個(gè)字符[3]。
本文提出一種基于二維碼的壓縮域視頻水印方法,利用編碼后視頻的文件特征,在視頻的關(guān)鍵幀(I幀)中嵌入一副二維碼圖像。二維碼是一種新型的技術(shù)手段,它不依賴人的視覺(jué)進(jìn)行信息的傳遞,主要通過(guò)信息設(shè)備進(jìn)行信息的識(shí)別和提取,具有容錯(cuò)率高和信息密度大的特點(diǎn)。本文采用QR Code編碼的二維碼,容錯(cuò)級(jí)別為25%,可以輕松地在一幅100*100的圖像中承載50個(gè)有效字符。
根據(jù)《高清晰度電視節(jié)目素材交換格式》標(biāo)準(zhǔn)[4],高清晰度視頻素材可以采用MPEG-2編碼,本文以MPEG-2編碼格式為例,利用該編碼標(biāo)準(zhǔn)的特點(diǎn),將二位碼水印信息嵌入到經(jīng)過(guò)MPEG-2編碼的高清晰度視頻節(jié)目中。
MPEG-2編碼包含I幀、B幀及P幀共3種視頻幀[5]。I幀即幀內(nèi)編碼,其幀內(nèi)容全部來(lái)自于該幀對(duì)應(yīng)的原始圖像,I幀編碼類似于JPEG圖像編碼,可以理解為一幅靜態(tài)圖像,其幀壓縮比較低,一般充當(dāng)關(guān)鍵幀的角色。B幀即雙向預(yù)測(cè)編碼幀,它將位于自身前面和后面的幀作為參考幀,對(duì)前面的幀進(jìn)行前向運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),對(duì)后面的幀做后續(xù)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。P幀即預(yù)測(cè)編碼幀,它根據(jù)它前面的I幀或者P幀的數(shù)據(jù)進(jìn)行運(yùn)動(dòng)補(bǔ)償運(yùn)算得來(lái),依賴于其他幀的數(shù)據(jù)。I幀數(shù)據(jù)相對(duì)獨(dú)立,數(shù)量相對(duì)較少,可以將水印數(shù)據(jù)嵌入到I幀中,以降低運(yùn)算復(fù)雜度,提高魯棒性。
離散余弦變換(Discrete Cosine Transform,DCT)的作用是將色彩域的信號(hào)變換為頻率域信號(hào)[6]。通過(guò)DCT變換,可以將圖像中主要的直流分量和低頻分量集中到矩陣的左上角。人眼對(duì)圖像中的這部分?jǐn)?shù)據(jù)比較敏感,應(yīng)該重點(diǎn)保留;對(duì)于位于右下角的高頻分量則可以選擇性忽略,以達(dá)到視頻壓縮的目的。
MPEG-2中I幀的DCT變換采用8*8像素塊,以8*8為最小單位進(jìn)行變換運(yùn)算。變換完成后,得到一組DCT系數(shù),利用DCT數(shù)據(jù)冗余的特點(diǎn),將水印數(shù)據(jù)嵌入到DCT系數(shù)中。
REC.709色彩標(biāo)準(zhǔn)是國(guó)際電信聯(lián)盟規(guī)定高清晰度電視(HDTV)的色彩標(biāo)準(zhǔn),其亮度方程為:
可以根據(jù)此方程推導(dǎo)出紅色差信號(hào)Cr和藍(lán)色差信號(hào)Cb,分別為Cr=R-Y,Cb=R-B。
亮度及色差信號(hào)是廣播電視領(lǐng)域常用的信號(hào)處理方法,其表示方法為YCbCr。在視頻的編解碼過(guò)程中,這3個(gè)分量信號(hào)都是獨(dú)立進(jìn)行處理的。人眼對(duì)于亮度信號(hào)較為敏感,對(duì)色度信號(hào)相對(duì)不那么敏感,因此,數(shù)字水印數(shù)據(jù)不應(yīng)該嵌入到亮度信號(hào)中。本文所用方法將水印數(shù)據(jù)嵌入到藍(lán)差色度信號(hào)Cb中。具體的水印疊加過(guò)程如下。
(1)根據(jù)MPEG-2視頻文件特點(diǎn),提取出對(duì)應(yīng)的I幀圖像P。
(2)按照REC.709標(biāo)準(zhǔn)將彩色信號(hào)分離成Y、Cb、Cr共3組信號(hào)數(shù)據(jù)。
(3)對(duì)Cb信號(hào)進(jìn)行水印數(shù)據(jù)的疊加,得到帶水印的藍(lán)色差信號(hào)Cb’。
(4)將Y、Cb’、Cr3組分量信號(hào)合稱為新的I幀圖像P’。
(5)用圖像P’替換掉原視頻中的圖像P。
數(shù)字水印提取步驟如下。
(1)利用FFMPEG工具,提取帶水印的I幀圖像P’。
(2)分離出3個(gè)分量信號(hào),然后將藍(lán)色差信號(hào)Cb’提取出來(lái)。
(3)將Cb’與Cb進(jìn)行減運(yùn)算,得到水印數(shù)據(jù)。
(4)對(duì)水印數(shù)據(jù)進(jìn)行處理,以可視化圖片的方式呈現(xiàn)出來(lái)。
該算法的實(shí)現(xiàn)主要借助了FFMPEG和MATLAB兩個(gè)工具。FFMPEG用于對(duì)I幀數(shù)據(jù)提取和嵌入,MATLAB進(jìn)行水印信號(hào)的疊加和提取。MATLAB具有強(qiáng)大的圖像處理功能,能夠進(jìn)行圖像分量的生成和DCT域的各種運(yùn)算,并且能夠?qū)⒎至啃盘?hào)合成為彩色信號(hào)。
實(shí)驗(yàn)用的視頻片段采用1 920*1 020分辨率,時(shí)長(zhǎng)10 s。視頻內(nèi)容為新聞節(jié)目,畫面幀間的變化緩慢,畫面色彩簡(jiǎn)單,亮度較高,背景畫面相對(duì)純凈。水印數(shù)據(jù)采用135*135的QR Code二維碼,容錯(cuò)等級(jí)25%,數(shù)據(jù)內(nèi)容為“abcdefghijklmnopqrstuvw xyz123456”,共計(jì)32個(gè)字符。
未疊加水印的原始圖像如圖1所示,疊加水印后的圖像如圖2所示。由實(shí)驗(yàn)結(jié)果可以看出,在疊加了水印信號(hào)后,原始的畫面并未受到明顯影響,肉眼幾乎無(wú)法察覺(jué)出視頻的變化。
圖1 未疊加水印的原始圖像
圖2 疊加水印后的圖像
對(duì)嵌入了數(shù)字水印的視頻圖像進(jìn)行水印提取,結(jié)果如圖3、圖4所示。
圖3 原始二維碼水印圖像
圖4 從水印視頻中提取出的水印圖像
由圖3和圖4可以看出,再次提取出的水印產(chǎn)生了誤碼,造成部分像素的反轉(zhuǎn),黑色區(qū)域出現(xiàn)白色噪點(diǎn),而白色區(qū)域也有部分像素變黑。盡管發(fā)生了一定數(shù)量的誤碼,但借助于二維碼本身的容錯(cuò)機(jī)制,使得二維碼的機(jī)器可讀性沒(méi)有受到影響,仍然可以借助掃描工具輕松掃描出相關(guān)信息。
本文結(jié)合視頻壓縮編碼標(biāo)準(zhǔn),提出了一種基于二維碼的壓縮域視頻數(shù)字水印方法,并結(jié)合相關(guān)工具進(jìn)行了算法實(shí)現(xiàn)。基于二維碼的數(shù)字水印技術(shù)能夠在有限尺寸的水印圖像中嵌入更多的版權(quán)信息,本文采用的135*135的水印圖像承載了32個(gè)字符,并有承載更大數(shù)據(jù)量的可能,方便水印信息的擴(kuò)展。采用REC.709色彩標(biāo)準(zhǔn),將彩色信號(hào)分解成分量信號(hào),只在藍(lán)色差信號(hào)中進(jìn)行水印的嵌入,極大地避免了水印信號(hào)對(duì)原始畫面的視覺(jué)干擾,并且為復(fù)雜畫面內(nèi)容的水印嵌入強(qiáng)度提供冗余。在畫面相對(duì)純凈的視頻素材中,可以降低嵌入強(qiáng)度,以防止不必要的畫質(zhì)損失;在畫面細(xì)節(jié)復(fù)雜、變換劇烈的視頻素材中,可以適度地提高嵌入強(qiáng)度,以增加水印的魯棒性。
實(shí)驗(yàn)證明,該算法可以以較低的水印信息承載更多的版權(quán)信息,并且不顯著影響畫面質(zhì)量。算法只針對(duì)I幀進(jìn)行嵌入運(yùn)算,運(yùn)算量大幅降低,滿足了實(shí)效性要求。