羅志偉,劉持標
(1.三明學院信息工程學院,福建三明 365004;2.福建省農業物聯網應用重點實驗室(三明學院信息工程學院),福建三明 365004)
(*通信作者電子郵箱798916526@qq.com)
近年來,非法使用數字視頻的現象愈發嚴重,數字視頻的版權保護成為視頻消費A 市場亟需解決的問題[1]。4K 和8K超高清視頻的應用逐漸走進人們的視野,要使海量視頻在網絡上傳輸,國際電信聯盟制定了目前最新的視頻編碼標準H.266/通用視頻編碼(Versatile Video Coding,VVC)[2]。與高效視頻編碼(High Efficiency Video Coding,HEVC)相比,它的目標是在不降低視頻質量的前提下,將編碼效率提高一倍[3]。
目前較為流行的視頻水印方案有H.264 視頻水印、HEVC 視頻水印技術和立體視頻水印技術。文獻[4]在H.264 技術上復制4 × 4 塊量化后的離散余弦變換(Quantified Discrete Cosine Transform,QDCT)系數為A、B 兩份,根據宏塊的不同紋理,對A 份和B 份進行不同的能量提升,使用A、B兩份宏塊的能量差嵌入水印;該算法將水印嵌入中頻系數,且不論何種紋理的宏塊,嵌入強度都相同,這就導致在平坦區域的中頻系數上嵌入水印會降低視頻質量。
同樣利用紋理特性的還有文獻[5-6],這兩個算法在HEVC 技術上,先判斷4 × 4 塊的紋理方向,將角度預測模式的范圍設置為與紋理方向一致,將水印嵌入到角度模式中。解碼端計算重構圖像的紋理方向,根據計算出的方向提取出水印。如果這類算法的各個紋理方向值接近,十分容易誤判預測的角度,將水印嵌入至誤判的模式中,會造成一定程度的率失真損失。同時,若塊的紋理方向使得水印不匹配該塊的模式范圍,滿足嵌入條件的4 × 4 塊出現的概率降低,導致水印的嵌入容量較低。
文獻[7]中提出了一種修改量化后的離散正弦變換(Quantified Discrete Sine Transform,QDST)系數奇偶性的可逆水印方法,可避免誤差傳播,且率失真性能較好,嵌入容量較大。文獻[8]以立體編碼技術為平臺,對4 × 4塊的QDST的直流(Direct Current,DC)系數構造一個可逆矩陣,并對該矩陣進行正交三角分解,將水印嵌入至正交矩陣,具有較強的不可見性,即使嵌入至直流系數,也幾乎不影響視頻質量;但該算法在深度圖的紋理復雜區域嵌入水印,而深度圖大部分區域是平坦的,只有少部分區域的紋理是復雜的,因此滿足嵌入條件的塊較少,水印容量較低。文獻[9]在HEVC 平臺上使用局部二值模式(Local Binary Pattern,LBP)判斷8× 8 塊的紋理,在紋理復雜的塊上修改預測模式的奇偶性嵌入水印;該算法嵌入水印的容量較大,但是率失真性能的損失也較大,因為選擇平面(Planar)模式和DC 模式概率較大,強行修改Planar 模式和DC模式為其他模式容易造成較大的率失真損失。
目前基于H.266視頻編碼平臺的水印算法極少。本文提出了修改幀內雙模式的奇偶性的視頻水印算法。該算法利用H.266/VVC 編碼器幀內預測新增的技術點,根據二值水印狀態,修改角度預測模式、最可能模式(Most Probable Mode,MPM)候選列表、矩陣加權幀內預測(Matrix weighted Intra Prediction,MIP)模式的奇偶性。該算法對編碼器的率失真性能影響極小,且具有適中的嵌入容量。
H.266/VVC 角度預測的思想是利用編碼單元(Coding Unit,CU)的空間鄰近像素預測當前CU的像素值,該思想繼承前兩代編碼標準,充分利用了圖像信息的空間冗余性。VVC為了捕獲視頻中的任意邊緣方向,角度預測模式的數量從HEVC的35種增加至67種[10],其角度預測模式如圖1所示。圖1的黑色(實線)角度模式是原HEVC 的角度,總共35 個模式;紅色(虛線)角度模式是VVC在HEVC標準的基礎上新增加的模式,總共32 個模式。同時從相鄰CU 構建的MPM 候選列表從HEVC的3個候選模式擴展至VVC的6個候選模式。
MIP 模式的最初思想是利用多層神經網絡基于相鄰已重建像素預測當前CU 像素值[11],但是這種預測方式復雜度太高,最后發展出矩陣加權幀內預測。

圖1 H.266/VVC角度預測模式Fig.1 Angle prediction mode of H.266/VVC
MIP對4 × 4的CU預測方法如圖2所示。

圖2 4×4塊的MIP預測示例Fig.2 Example of MIP prediction for 4×4 block
1)邊界平均:對上參考行bdrytop和左參考行bdryleft進行下采樣,獲得4個采樣點。
2)矩陣加權預測:對下采樣后的參考像素bdryred乘以所選模式k所對應的矩陣Ak,再加上一個偏移bk。
4 × 4 塊的MIP 首先對參考像素進行平均,再對平均后的像素進行矩陣向量乘法,再加上一個偏移。VVC對4 × 4塊的矩陣加權規定了35種模式,即平均后的像素要分別乘以35個矩陣,再加上相應矩陣對應的偏移,獲得預測后的4 × 4塊,選擇最小的絕對變換誤差和(Sum of Absolute Transformed Difference,SATD)作為最優的預測4 × 4塊。
1)首先進行第一輪粗選,構建粗選列表,計算屬于HEVC的原35 種角度預測模式的SATD,即從模式{0,1,2,4,6,…,66}中選擇出6個最小的SATD值的模式加入粗選列表。
2)接著進行第二輪粗選,選擇性地計算VVC 新增的模式。第二輪粗選是分別計算步驟1)得出的6個粗選模式的前后兩個模式的SATD 值,即若粗選列表中含有模式8,第二輪粗選需計算模式7 和模式9 的SATD。如果步驟1)選出了DC模式和Planar 模式,不計算這兩個模式的前后模式。但是若粗選列表中含有模式2或模式66,第二輪粗選只需計算模式3或模式65的SATD。第二輪粗選最多需計算12個模式。從第二輪粗選的模式中選擇SATD 值較小的模式替換粗選列表中SATD值較大的模式。
3)計算當前CU的MPM模式,從中選擇SATD值較小的模式替換粗選列表中SATD值較大的模式。
4)將粗選列表長度擴至為7,計算35 種MIP 模式,從中選擇SATD值較小的模式替換粗選列表中SATD值較大的模式。
5)重新整理粗選列表,分別從粗選列表中選出3 個SATD值最小的角度模式和3個SATD值最小的MIP模式。
6)根據式(1)計算上述6 個模式的率失真代價[12],選擇最小的代價作為最優模式。

其中:Jmode表示率失真代價,D表示絕對誤差和,λ表示拉格朗日因子,R表示編碼需要的比特數。
根據編碼器的編碼特性,對于紋理復雜的CU,編碼器會偏向于選擇更小尺寸的CU 編碼[13]。并且對于小尺寸CU,因為其紋理復雜,不選擇Planar 模式和DC 模式的概率較高,因為這兩種模式較常用于平坦區域,若在這兩種模式下嵌入水印容易出現視頻質量的損失。本文選擇官方推薦的6 個視頻序列[14]分析編碼器的特性以嵌入水印。其中,序列BasketballDrill 和BQMall 紋理復雜,視頻中的運動劇烈;序列BQSquare 和BlowingBubbles 紋理較為平坦,視頻中的運動較為平緩;序列Johnny 和Vidyo3 具有復雜的前景和單調的背景,視頻中的運動緩慢。
表1 給出了4 × 4 的CU 分別選擇MIP 模式和角度模式的概率,其中角度模式不包括DC 模式和Planar 模式。表1 說明了4 × 4 的CU 選擇非DC 模式和非Planar 模式的概率較高,可以將水印嵌入至非DC模式和非Planar模式中;并且CU通常在紋理較復雜的區域才會選擇非DC 模式和非Planar模式,人眼對紋理復雜的區域較不敏感[15],即使造成了一定的視頻質量損失,人眼也難以察覺。從表1可以得出,本文將水印嵌入至4 ×4的CU的角度模式和MIP模式中具有較高的水印容量。

表1 4 × 4的CU選擇角度模式和MIP模式的概率 單位:%Tab.1 Probability of 4 × 4 CU to choose angle mode and MIP mode unit:%
為了利用編碼器的特性,表2 統計了4 × 4 的CU 的粗選列表奇偶模式的分布狀況(未統計模式0 和模式1)。由于編碼器是計算粗選列表中所有模式的率失真代價,從中選擇最小的代價作為最優模式,所以粗選列表中的模式都有較高可能性作為最優模式。從表2 中可以看出粗選列表同時出現奇數模式和偶數模式的概率較高。可以根據出現的水印值,將其嵌入到候選粗選列表的奇數模式或者偶數模式中。

表2 4 × 4的CU的粗選列表中角度模式和MIP模式同時存在奇數模式和偶數模式的概率 單位:%Tab.2 Probability of angle mode and MIP mode in rough selection list of 4 × 4 CU having both odd-numbered modes and even-numbered modes unit:%
雖然MIP模式同時出現奇數模式和偶數模式的概率相較角度模式偏低,但表1 顯示MIP 模式作為最優模式的概率也較低,若最優預測模式為MIP模式和角度模式,修改最優預測模式的奇偶性,造成的率失真損失也可接受。
本文算法(圖3)的思想是以角度模式和MIP 模式的奇偶性代表水印信息:偶數角度模式{2,4,…,66}和偶數MIP模式{0,2,…,34}代表水印“-1”;奇數角度模式{3,5,…,67}和奇數MIP 模式{1,3,…,35}代表水印“1”;DC 模式和Planar 模式不嵌入水印,嵌入至這兩種模式容易造成較大的率失真損失。

圖3 本文算法流程Fig.3 Flowchart of the proposed algorithm
步驟1 利用logistic 混沌映射產生雙極性偽隨機序列作為密鑰K1,用此偽隨機序列對原始水印W={w1,w2,…,wi,…} 做加密處理,取得加密水印W'=
步驟2 當I 幀的多叉樹遞歸至4 × 4 的CU 時,進行第一輪粗選。計算屬于HEVC 的原35 種角度預測模式,此時所計算的角度預測模式均是偶數模式,即模式{0,1,2,4,6,…,66}。從計算出的模式中按SATD 值從小到大的順序選擇出6個模式。
步驟3 利用1.3 節介紹的第二輪粗選均是計算奇數模式,根據二值水印狀態決定是否進行第二輪粗選。若待嵌入的水印w'=-1,跳過第二輪粗選的奇數模式的計算;若待嵌入的水印w'=1,計算第二輪粗選的奇數模式的SATD,將第二輪粗選計算出的模式按SATD 值從小到大的順序選擇出奇數模式代替第一輪粗選出的偶數模式,此時不能代替DC模式和Planar 模式,若代替DC 模式和Planar 模式,會造成較大的率失真性能的損失。
步驟4 根據2.1 節分析的修改粗選列表里模式的奇偶性所導致的率失真損失較小。本文算法在計算6 個MPM 模式和35 種MIP 模式時:若待嵌入的水印w'=-1,只進行偶數模式的計算;若待嵌入的水印w'=1,只進行奇數模式的計算。此時不能跳過DC模式和Planar模式的計算。
步驟1 解碼端收到碼流信息,依次解碼各個CU。若解碼后CU 大小為4 × 4,且該CU 的模式不為DC 模式和Planar模式,判斷該模式的奇偶性:若為奇數,提取出的水印為“1”;若為偶數,提取出的水印為“-1”。

步驟2 將提取出的加密水印W'跟密鑰K1進行解密,得到解密后的水印W。
在H.266/VVC 的測試模型VTM7.0上驗證本文算法的性能,利用三種不同分辨率的視頻序列進行測試。本文只在I幀上嵌入水印,P 幀不嵌入水印,并觀察是否引起誤差傳播。編碼器的基本參數配置如表3 所示,其余參數均使用默認參數。
表4 列出了官方提供的9 個測試序列的平均碼率以及在亮度分量嵌入信息前后峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)的變化情況。Pori和Pemb分別表示嵌入水印前后視頻序列的PSNR 值,ΔP=Pemb-Pori表示PSNR 值的變化情況;Rori和Remb分別表示嵌入水印前后視頻的序列碼率,ΔR=(Remb-Rori)/Rori表示平均碼率的變化情況;C表示嵌入容量;ΔT=(Temb-Tori)/Tori表示編碼時間的變化情況。相較于HEVC,VVC 編碼器的復雜度增加了數倍,本文用ΔT來反映水印嵌入算法對編碼器增加的復雜度。

表3 編碼器參數配置Tab.3 Encoder parameter configuration

表4 嵌入水印前后編碼器性能的變化情況Tab.4 Changes of encoder performance before and after embedding watermark
表4 顯示PSNR 平均下降0.005 4 dB,最多下降了0.013 3 dB,有的序列PSNR 不降反增,說明本文算法對視頻質量的影響可以忽略不計。9 個序列的平均碼率變化率為0.07%,最多增加了0.26%,有的序列的平均碼率不增反降,說明本文算法對壓縮率的影響可以忽略不計。同時還可以看出嵌入水印后,編碼器的編碼時間平均降低了12.3%,說明本文算法不僅不會引入多余的復雜度,還能在保證率失真性能的前提下,適當降低編碼器的復雜度。客觀指標表明:本文算法對編碼器性能影響極小。這是由于VVC在最小尺寸的預測時增加了一倍的角度模式,又增加了35種MIP 模式,接近100種模式,最優預測模式與其相鄰的模式的率失真性能十分接近,將最優模式替換為率失真代價最接近并且奇偶性相反的預測模式,可提高嵌入容量,同時不影響編碼器的性能。
圖4 是BQSquare 序列第1 幀嵌入水印前后的對比,可以看出水印嵌入后視頻的視覺質量幾乎跟嵌入前一樣,從主觀上也反映了本文算法對編碼器性能影響極小,且保證了水印的不可見性。從表4 中還可以看出,本文算法嵌入至運動較為劇烈的視頻的容量較大,嵌入運動平緩的視頻的容量較小,原因是運動平緩的視頻選擇4 × 4尺寸的概率也較小,滿足水印嵌入條件的概率更低。
由圖5 可以看出每一幀在嵌入水印前后的PSNR 值都十分接近,每一幀的視頻質量的區別都可以忽略不計。因為P幀選擇幀內模式的概率極低,本文算法以幀內預測模式為基礎,只在I 幀嵌入水印,同時還可以驗證含水印的I 幀不會對后續的P 幀造成誤差傳播。這是由于最優模式和次優模式的率失真十分接近,修改最優預測模式造成的失真差異很小。

圖4 BQSquare序列第1幀嵌入水印前后的對比Fig.4 Comparison of the first frame of BQSquare sequence before and after embedding watermark

圖5 BlowingBubbles序列嵌入水印前后的PSNR對比Fig.5 PSNR comparison of BlowingBubbles sequence before and after embedding watermark
因為在VVC 平臺上的水印算法極少,本文選擇文獻[9]的算法進行對比,該算法在HEVC 平臺上通過預測模式的奇偶性來嵌入水印。對比測試采用文獻[9]的配置參數:QP 取值為26,GOP 設為8,I 幀周期為16,開啟RDOQ,編碼96 幀。對BQSquare、BQMall、BlowingBubbles 和BasketballPass 四個序列進行對比測試,結果如表5 所示。其中,ΔP表示PSNR 平均變化情況,C表示平均水印容量,ΔR表示碼率的平均變化率。由表5可以看出,文獻[9]算法的平均PSNR 下降了0.035 dB,本文算法的平均PSNR 下降了0.005 dB。文獻[9]算法的平均碼率的增加也比本文算法增加得更多,文獻[9]算法的平均碼率升高了1%,而本文算法的平均碼率僅升高了0.06%。文獻[9]算法損失的率失真性能多于本文算法,這是因為文獻[9]算法將Planar 模式和DC 模式強行修改為其他模式,造成了較大的率失真損失,而本文算法則不修改這兩種模式。但本文算法的嵌入容量小于文獻[9]算法,主要是因為H.266相比HEVC 增加了二叉樹和三叉樹的分割方式,且塊的尺寸最大為128× 128,H.266 選擇4 × 4 塊的概率相比HEVC 更低,降低了水印嵌入的容量上限。文獻[9]算法使用LBP 分析宏塊紋理的復雜度,并利用LBP的標準差值確定待嵌入的塊,而本文只有在最優模式不為Planar模式和DC 模式時,才確定待嵌入的4 × 4 塊,使得本文算法滿足條件的4 × 4 塊的數量少于文獻[9]算法。但本文算法利用了編碼器的特性,使得嵌入水印后率失真性能與原始編碼器十分接近,而文獻[9]算法以提升嵌入容量為主,使得嵌入水印后率失真性能有一定程度上的損失。

表5 本文算法與文獻[9]算法的客觀指標對比Tab.5 Comparison of objective indicators between the algorithm in this paper and the algorithm in literature[9]
本文提出了一種基于幀內雙模式奇偶性的H.266/VVC視頻水印算法,該算法利用4 × 4 塊擁有的近100 種預測模式,統計了4 × 4的CU 不選擇DC 模式和Planar 模式擁有較高的概率,并且4 × 4 的CU 的粗選列表中同時含有奇數模式和偶數模式的概率較高,結合這兩個較高的概率,根據二值水印狀態,將最優模式修改為粗選列表中相應的奇偶模式。本文算法相對于VTM7.0算法,PSNR 平均下降了0.005 4 dB,平均碼率增加了0.07%,每幀可嵌入的水印容量平均為625 b;但是本文算法的平均嵌入容量較小,如何提高嵌入容量是下一步的研究方向。