王朝慶 ,賈立平
(1.山東廣播電視臺,山東 濟南 250062;2.山東大學 軟件學院,山東 濟南 250101;3.大眾報業集團,山東 濟南 250014)
數字水印技術是數字版權保護領域的常用技術,它通常在數字作品中嵌入帶有版權信息的數據以防止數字版權遭到不法侵害,或者在數字版權遭到侵害后提供法律依據。數字水印技術通常具有透明性、魯棒性及安全性的特征。透明性是指數字水印數據不應該干擾到數字作品的可觀賞性,不能夠被觀賞人的視覺或者聽覺明顯察覺,從而影響作品的主觀評價;魯棒性是指數字作品中的水印信息不能輕易被破壞和干擾,要能抵御一定水平的轉碼、復制及翻拍等;安全性是指數字水印不能夠被未授權的人輕易地提取和篡改。
數字視頻水印技術是近年來興起的一種數字視頻領域的版權保護技術,在視頻版權保護方面應用廣泛。數字視頻水印可以分為原始域水印和壓縮域水印。原始域水印是把水印直接嵌入原始視頻的圖像序列中,壓縮域數字水印是把水印嵌入到經過編碼壓縮的碼流上。壓縮域水印技術近年來是數字視頻水印應用領域的一個熱點[1-2]。
壓縮域的視頻水印技術目前常用的方法是在視頻中嵌入一副簡單的黑白圖像,這種二值圖像是肉眼可見的,用黑白塊的方式拼接出簡單的字符或者特殊標志,所承載的信息量很少,通常只有幾個字符[3]。
本文提出一種基于二維碼的壓縮域視頻水印方法,利用編碼后視頻的文件特征,在視頻的關鍵幀(I幀)中嵌入一副二維碼圖像。二維碼是一種新型的技術手段,它不依賴人的視覺進行信息的傳遞,主要通過信息設備進行信息的識別和提取,具有容錯率高和信息密度大的特點。本文采用QR Code編碼的二維碼,容錯級別為25%,可以輕松地在一幅100*100的圖像中承載50個有效字符。
根據《高清晰度電視節目素材交換格式》標準[4],高清晰度視頻素材可以采用MPEG-2編碼,本文以MPEG-2編碼格式為例,利用該編碼標準的特點,將二位碼水印信息嵌入到經過MPEG-2編碼的高清晰度視頻節目中。
MPEG-2編碼包含I幀、B幀及P幀共3種視頻幀[5]。I幀即幀內編碼,其幀內容全部來自于該幀對應的原始圖像,I幀編碼類似于JPEG圖像編碼,可以理解為一幅靜態圖像,其幀壓縮比較低,一般充當關鍵幀的角色。B幀即雙向預測編碼幀,它將位于自身前面和后面的幀作為參考幀,對前面的幀進行前向運動補償預測,對后面的幀做后續運動補償預測。P幀即預測編碼幀,它根據它前面的I幀或者P幀的數據進行運動補償運算得來,依賴于其他幀的數據。I幀數據相對獨立,數量相對較少,可以將水印數據嵌入到I幀中,以降低運算復雜度,提高魯棒性。
離散余弦變換(Discrete Cosine Transform,DCT)的作用是將色彩域的信號變換為頻率域信號[6]。通過DCT變換,可以將圖像中主要的直流分量和低頻分量集中到矩陣的左上角。人眼對圖像中的這部分數據比較敏感,應該重點保留;對于位于右下角的高頻分量則可以選擇性忽略,以達到視頻壓縮的目的。
MPEG-2中I幀的DCT變換采用8*8像素塊,以8*8為最小單位進行變換運算。變換完成后,得到一組DCT系數,利用DCT數據冗余的特點,將水印數據嵌入到DCT系數中。
REC.709色彩標準是國際電信聯盟規定高清晰度電視(HDTV)的色彩標準,其亮度方程為:

可以根據此方程推導出紅色差信號Cr和藍色差信號Cb,分別為Cr=R-Y,Cb=R-B。
亮度及色差信號是廣播電視領域常用的信號處理方法,其表示方法為YCbCr。在視頻的編解碼過程中,這3個分量信號都是獨立進行處理的。人眼對于亮度信號較為敏感,對色度信號相對不那么敏感,因此,數字水印數據不應該嵌入到亮度信號中。本文所用方法將水印數據嵌入到藍差色度信號Cb中。具體的水印疊加過程如下。
(1)根據MPEG-2視頻文件特點,提取出對應的I幀圖像P。
(2)按照REC.709標準將彩色信號分離成Y、Cb、Cr共3組信號數據。
(3)對Cb信號進行水印數據的疊加,得到帶水印的藍色差信號Cb’。
(4)將Y、Cb’、Cr3組分量信號合稱為新的I幀圖像P’。
(5)用圖像P’替換掉原視頻中的圖像P。
數字水印提取步驟如下。
(1)利用FFMPEG工具,提取帶水印的I幀圖像P’。
(2)分離出3個分量信號,然后將藍色差信號Cb’提取出來。
(3)將Cb’與Cb進行減運算,得到水印數據。
(4)對水印數據進行處理,以可視化圖片的方式呈現出來。
該算法的實現主要借助了FFMPEG和MATLAB兩個工具。FFMPEG用于對I幀數據提取和嵌入,MATLAB進行水印信號的疊加和提取。MATLAB具有強大的圖像處理功能,能夠進行圖像分量的生成和DCT域的各種運算,并且能夠將分量信號合成為彩色信號。
實驗用的視頻片段采用1 920*1 020分辨率,時長10 s。視頻內容為新聞節目,畫面幀間的變化緩慢,畫面色彩簡單,亮度較高,背景畫面相對純凈。水印數據采用135*135的QR Code二維碼,容錯等級25%,數據內容為“abcdefghijklmnopqrstuvw xyz123456”,共計32個字符。
未疊加水印的原始圖像如圖1所示,疊加水印后的圖像如圖2所示。由實驗結果可以看出,在疊加了水印信號后,原始的畫面并未受到明顯影響,肉眼幾乎無法察覺出視頻的變化。

圖1 未疊加水印的原始圖像

圖2 疊加水印后的圖像
對嵌入了數字水印的視頻圖像進行水印提取,結果如圖3、圖4所示。

圖3 原始二維碼水印圖像

圖4 從水印視頻中提取出的水印圖像
由圖3和圖4可以看出,再次提取出的水印產生了誤碼,造成部分像素的反轉,黑色區域出現白色噪點,而白色區域也有部分像素變黑。盡管發生了一定數量的誤碼,但借助于二維碼本身的容錯機制,使得二維碼的機器可讀性沒有受到影響,仍然可以借助掃描工具輕松掃描出相關信息。
本文結合視頻壓縮編碼標準,提出了一種基于二維碼的壓縮域視頻數字水印方法,并結合相關工具進行了算法實現。基于二維碼的數字水印技術能夠在有限尺寸的水印圖像中嵌入更多的版權信息,本文采用的135*135的水印圖像承載了32個字符,并有承載更大數據量的可能,方便水印信息的擴展。采用REC.709色彩標準,將彩色信號分解成分量信號,只在藍色差信號中進行水印的嵌入,極大地避免了水印信號對原始畫面的視覺干擾,并且為復雜畫面內容的水印嵌入強度提供冗余。在畫面相對純凈的視頻素材中,可以降低嵌入強度,以防止不必要的畫質損失;在畫面細節復雜、變換劇烈的視頻素材中,可以適度地提高嵌入強度,以增加水印的魯棒性。
實驗證明,該算法可以以較低的水印信息承載更多的版權信息,并且不顯著影響畫面質量。算法只針對I幀進行嵌入運算,運算量大幅降低,滿足了實效性要求。