王薇娜
(中國電影科學技術研究所,北京 100086)
隨著國民收入水平不斷提升,影院觀影的消費需求也在急劇飆升。但由于實體院線的單體投資巨大,且影院建設嚴重受限于影院盈利必備的輻射半徑人口密度,致使實體影院建設增長乏力,無法滿足廣大非影院建設適配區域的觀影需求。基于這個市場定位,在產品功能上,移動電影院以手機、平板電腦為載體,向觀眾放映已取得電影公映許可證且處于公映期內的電影,打破了時間、地點的限制,從“一對多的大廣播模式”變成“一對一的電影放映模式”,從而覆蓋放映盲區。與此同時,經過10多年的技術發展,隨著資本、政策、版權、技術等多重浪潮的推進,國家出臺了一系列政策規范在線視頻的發展,并逐步加強知識產權保護。同時,隨著播放技術、鏈路保護技術、便捷支付技術的發展,付費獲得視頻服務已逐漸被大眾接受,市場逐漸被培育成熟。
移動端音視頻內容的供給越來越豐富,而且由于觀看方式更具有便捷性、私密性,因此被存儲、盜版的可能性越來越高。除了專業的錄屏軟件,隨機自帶的錄屏軟件使用起來也異常方便。這些現狀給移動端觀影的版權保護帶來了巨大挑戰,也或多或少為良性發展制造了障礙。為了降低移動端觀影盜拍盜錄情況的發生,版權保護技術的應用是必須考慮的問題。
水印技術在版權保護領域具有舉足輕重的地位。在應用時,需要根據應用場景在隱蔽性、魯棒性和效率需求之間尋找平衡點。然后,在這種平衡下,選擇出信息嵌入的最佳位置以及用于嵌入的方法。根據水印所需要的特性以及預判水印可能遇到的破壞模型,找到嵌入的平衡點。嵌入最佳位置是指將水印信息添加到視頻的元數據或是幀的特定區域。水印的嵌入方法是通過改變水印的嵌入域與系數來嵌入需要的信息。
視頻水印的嵌入方法可以從幾個不同角度出發:
(1)把視頻看作一個比特序列。如果水印是用來標記視頻傳輸過程中的網絡實體,我們可以把這個序列看作是數據包。這個數據包遵循一系列協議,而這些協議就包含冗余空間,可用于水印嵌入。
(2)從把視頻看作是序列幀的角度出發,水印嵌入可以理解成為圖像水印嵌入的集合。這種嵌入方式多利用的是圖像像素空間上的冗余。
(3)水印的嵌入位置:考慮到水印應用中的隱形要求,我們需要從人眼視覺系統(HVS)研究成果出發。人類視覺感知最不敏銳的區域就是嵌入水印的最佳位置。例如,在RGB格式的圖像中,人眼對藍色分量的敏銳度是最低的,因此就可以選擇在藍色分量中加入水印。在YUV或YCr Cb格式的圖像中,人眼對高亮區域的變化不敏感,因此可以選擇Y分亮高值區域。還有一種是人眼對紋理細節的不敏感特性。紋理細節對應的是圖像具有高頻內容的位置。因此通過頻域變換,可以確定這些區域,添加水印。
2020年7月DCI組織推出了《數字影院系統規范》V1.4版,其對于水印標記的規定還沿用了前序版本的規則,其中詳細規定了數字水印的技術參數:水印信息有效載荷最少為35比特。這些比特必須包含兩類必要信息:一類是時間碼,一類是水印標識(FMID)。時間碼,標記精度為15分鐘,即每15分鐘用同一個時間戳,一年按366天計,共有35136種時間戳,需要16比特標記。水印標識利用剩余的19比特,用于標記硬件。水印標識不能被隨意更改。搭載水印嵌入工具的實體制造商應能保持提供一個準確、及時的數據庫,從而將含有水印標識的SPB序列號與數字證書對應,并確保其唯一性。35比特的水印信息可能重復分布在5分鐘的片段內,并且要做到在放映時實時嵌入。在實現方面,考慮到業務和生產后期的約束,建議水印嵌入實現時盡量減少水印標記數據所需的元數據有效負載。合理的目標應該是小于壓縮圖像和聲音數據有效載荷的2%檢出要求:能夠從30分鐘的連續片段內找到水印識別信息。圖像的水印信息需要滿足隱形,能夠抵御由于圖像變換帶來的攻擊等。
常見的攻擊行為有以下幾種方式:
(1)數字-模擬-數字轉換(包括多次D-A/A-D轉換)、重采樣和重量化(包括抖動和重壓縮)以及對圖像對比度和顏色的常見信號增強,都必須保證水印不被破壞。
(2)大小調整、信盒、光圈控制、低通濾波和抗混疊、矩形濾波、數字視頻降噪濾波、幀交換、壓縮、縮放、裁剪、覆蓋、添加噪聲和其他轉換。
(3)能夠抵抗拼接,多個視頻的拼接時,能夠防御對水印的破壞。
(4)能夠抵抗格式轉換,頻率和空間分辨率的變化帶來的破壞。例如,NTSC、PAL和SECAM之間的轉換。
(5)能夠抵抗畫面水平和垂直轉動。
(6)能夠抵抗任意縮放 (高寬比不一定是恒定的)
小波變換(DWT)是一種最常用的頻域水印嵌入變換。 小波變換也屬于無損變換。在小波變換中,表示圖像的矩陣被分解為兩部分,分別在水平和垂直方向進行濾波的方法實現二維小波多分辨率分解,會得到四個子圖像,如圖1結構圖所示:左上角代表LL子頻帶,表示在兩個方向都用低通小波濾波器卷積后產生的小波系數,這樣會得到圖像的低頻分量,展現的是圖像的基本要素。其他三部分描述的是圖像不同方向細節的子頻帶分量,HL子頻帶表示在水平方向高通處理,在垂直方向低通處理,表現的是水平方向的邊緣特性。同理LH子頻帶和H H子頻帶,第一個字母表示水平方向的處理,第二個字母表示垂直方向的處理。最終都顯示了不同方向的邊緣特性。這種變換可以在同一幅圖像上被多次應用,稱為“層”,從而產生幀的遞歸表示。越靠近左上角的頻帶,頻率越低,水印嵌入對載波圖像的質量影響越大,但得到的水印的魯棒性越好。

圖1 小波變換的圖像結構
圖2是用matlab實現的一次haar小波變換處理的圖像,可以看出,變換后的左上角保留了圖像的基本信息。右上角的圖像主要表現了水平方向的細節變化,左下角表現的是垂直方向的細節信息,右下角表現的是對角線方向的細節信息。

圖2 一次小波變換圖像分解

圖3 二次小波變換
經過二次小波變換后,左上角的低頻分量進行了二次分解,就得到了方向上進一步的細節分量。我們生成了一組64比特隨機數模擬需要添加的水印信息。為了確保一定的魯棒性,我們將這組隨機數添加在了二次變換區域的右下角高頻區域的一段向量中(見圖3標記位置)。再經過小波逆變換得到添加水印的圖像。如圖4所示,可以看出這樣添加的水印也可以滿足肉眼無法分辨的隱形要求。

圖4 添加水印后圖像
水印信息中包含了用于識別用戶的信息碼以及播放時間碼。DCI規范中要求的水印負載不低于35比特。本項目中采用的水印算法,水印負載為64比特,0-39比特被分配給定位信息(識別碼),40-63比特被分配給時間戳。水印信息包括:機器序號+用戶編號+放映時間戳。
機器序號和用戶編號分別由5位十六進制字符表示,共40比特。
時間戳:自動動態獲取,其格式:YYYYMM-DD hh∶mm∶ss,用24比特表示。

圖5 視頻幀掃描行采樣格式
嵌入水印時需要已知視頻幀的碼流存儲格式,這樣才能準確讀取想要的圖像分量信息,并且對添加水印之后的圖像正確還原。碼流的存儲格式與采樣方式是密切相關的。根據移動端的影片的素材格式來進行設定,視頻幀的編碼格式為YUV420,如圖5所示。
圖5中,黑點表示Y亮度分量采樣,圓圈表示UV分量采樣。讀取Y分量,利用小波變換,確定添加水印的位置,加入水印,再經過圖像重組,得到添加過水印之后的幀圖像。
數字電影隱形實時水印技術在專業的播放服務器中已經相對成熟,由專業芯片完成。在移動端的影片播放應用要想通過芯片實現并不容易實施,因此考慮直接使用純軟件算法來實現添加水印的過程。中國電影科學技術研究所已成功在點播影院系統中實現了符合要求的水印算法。同時安卓平臺移動端應用,我們采用調用封裝好的動態鏈接庫來實現。將水印添加算法封裝為so庫,在應用程序的底層播放器程序中調用此庫,讀取播放器解碼的圖像信息,在視頻幀中添加隱形實時水印信息,并將播放器程序再次封裝為so庫,在應用層程序中完成上層接口調用,避免圖像明流信息泄露。水印信息中包含了用于識別用戶的信息碼FMID以及播放時間碼。

表1 初始化參數
水印算法一共有三個調用接口,分別是:初始化函數接口、嵌入水印接口、水印工具釋放接口。在初始化函數中需要確定表1參數。
將影片解碼后的幀數據流傳入“數字水印接口”,同時提供用于標識終端用戶的信息負載FMID,水印算法完成數字水印的嵌入,最后返回含有水印的“幀數據流”,進行顯示輸出。

圖6 水印嵌入基本流程圖
添加了水印的視頻文件,在盜拍盜錄編輯等傳輸過程中,會經歷自然噪聲或惡意破壞等方式攻擊。因此水印算法應具備一定的魯棒性,能夠抵抗一些主動或被動遭遇的攻擊。魯棒性的測試就是設定預先已知的水印信息,添加水印后,人為模擬攻擊過程,再做水印檢出。根據檢出結果,判定水印是否被破壞。
使用智能移動終端視頻播放器(高分辨率智能手機和低分辨率智能手機)分別播放測試內容,并用手機自帶錄屏軟件錄屏,其中,錄屏素材圖7為使用小米系統MIUI 9.6穩定版,使用設備自帶的錄屏工具錄制,錄屏畫面紅色框分辨率為:2248×1080。有效畫面為黃色框內小于此分辨率。綠色框半透明的視頻參數內容在加水印的畫面上層,造成一定的畫面遮擋攻擊,如圖7所示。

圖7 水印魯棒性測試素材1截圖
錄屏素材圖8為使用華為系統EMUI 9.1.0錄制,使用設備自帶的錄屏工具錄制,錄屏畫面紅色框分辨率為:1280×606。有效畫面黃色框,畫面下邊緣有裁切。綠色框半透明的視頻參數內容在加水印的畫面上層,造成一定的畫面遮擋攻擊,見圖8所示。

圖8 水印魯棒性測試素材2截圖
嵌入被測視頻中的初始FMID水印信息為“123456789A”,時間信息為被測錄屏素材實際錄制時間(UTC時間)。

表2 測試項目
通過模擬常見的攻擊形式,驗證水印信息是否能夠保留。測試項目如表2所示。
項目組委托中央宣傳部電影技術質量檢測所對樣本開展測試,模擬了多種人為攻擊,共計19項內容。之后利用水印檢測工具檢測,檢測結果表明,水印信息都存在且完整,達到了項目組對水印算法的魯棒性要求。
為了增強移動端觀影影片的版權保護性能,有效管控移動端觀影盜拍盜錄的情況發生,項目組采用在播放器端集成視頻圖像的水印嵌入算法,水印負載為64比特。通過在安卓播放器底層解碼后實時讀取幀數據,調用頻域水印嵌入算法,實現水印信息嵌入。通過與移動應用播放器解碼端適配,達到了最終的隱形水印實時添加的需求,并進行了魯棒性測試,測試結果滿足使用需求。