羅志偉,劉持標(biāo)
(1.三明學(xué)院信息工程學(xué)院,福建三明 365004;2.福建省農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用重點(diǎn)實(shí)驗(yàn)室(三明學(xué)院信息工程學(xué)院),福建三明 365004)
(*通信作者電子郵箱798916526@qq.com)
近年來,非法使用數(shù)字視頻的現(xiàn)象愈發(fā)嚴(yán)重,數(shù)字視頻的版權(quán)保護(hù)成為視頻消費(fèi)A 市場亟需解決的問題[1]。4K 和8K超高清視頻的應(yīng)用逐漸走進(jìn)人們的視野,要使海量視頻在網(wǎng)絡(luò)上傳輸,國際電信聯(lián)盟制定了目前最新的視頻編碼標(biāo)準(zhǔn)H.266/通用視頻編碼(Versatile Video Coding,VVC)[2]。與高效視頻編碼(High Efficiency Video Coding,HEVC)相比,它的目標(biāo)是在不降低視頻質(zhì)量的前提下,將編碼效率提高一倍[3]。
目前較為流行的視頻水印方案有H.264 視頻水印、HEVC 視頻水印技術(shù)和立體視頻水印技術(shù)。文獻(xiàn)[4]在H.264 技術(shù)上復(fù)制4 × 4 塊量化后的離散余弦變換(Quantified Discrete Cosine Transform,QDCT)系數(shù)為A、B 兩份,根據(jù)宏塊的不同紋理,對A 份和B 份進(jìn)行不同的能量提升,使用A、B兩份宏塊的能量差嵌入水印;該算法將水印嵌入中頻系數(shù),且不論何種紋理的宏塊,嵌入強(qiáng)度都相同,這就導(dǎo)致在平坦區(qū)域的中頻系數(shù)上嵌入水印會降低視頻質(zhì)量。
同樣利用紋理特性的還有文獻(xiàn)[5-6],這兩個算法在HEVC 技術(shù)上,先判斷4 × 4 塊的紋理方向,將角度預(yù)測模式的范圍設(shè)置為與紋理方向一致,將水印嵌入到角度模式中。解碼端計算重構(gòu)圖像的紋理方向,根據(jù)計算出的方向提取出水印。如果這類算法的各個紋理方向值接近,十分容易誤判預(yù)測的角度,將水印嵌入至誤判的模式中,會造成一定程度的率失真損失。同時,若塊的紋理方向使得水印不匹配該塊的模式范圍,滿足嵌入條件的4 × 4 塊出現(xiàn)的概率降低,導(dǎo)致水印的嵌入容量較低。
文獻(xiàn)[7]中提出了一種修改量化后的離散正弦變換(Quantified Discrete Sine Transform,QDST)系數(shù)奇偶性的可逆水印方法,可避免誤差傳播,且率失真性能較好,嵌入容量較大。文獻(xiàn)[8]以立體編碼技術(shù)為平臺,對4 × 4塊的QDST的直流(Direct Current,DC)系數(shù)構(gòu)造一個可逆矩陣,并對該矩陣進(jìn)行正交三角分解,將水印嵌入至正交矩陣,具有較強(qiáng)的不可見性,即使嵌入至直流系數(shù),也幾乎不影響視頻質(zhì)量;但該算法在深度圖的紋理復(fù)雜區(qū)域嵌入水印,而深度圖大部分區(qū)域是平坦的,只有少部分區(qū)域的紋理是復(fù)雜的,因此滿足嵌入條件的塊較少,水印容量較低。文獻(xiàn)[9]在HEVC 平臺上使用局部二值模式(Local Binary Pattern,LBP)判斷8× 8 塊的紋理,在紋理復(fù)雜的塊上修改預(yù)測模式的奇偶性嵌入水??;該算法嵌入水印的容量較大,但是率失真性能的損失也較大,因?yàn)檫x擇平面(Planar)模式和DC 模式概率較大,強(qiáng)行修改Planar 模式和DC模式為其他模式容易造成較大的率失真損失。
目前基于H.266視頻編碼平臺的水印算法極少。本文提出了修改幀內(nèi)雙模式的奇偶性的視頻水印算法。該算法利用H.266/VVC 編碼器幀內(nèi)預(yù)測新增的技術(shù)點(diǎn),根據(jù)二值水印狀態(tài),修改角度預(yù)測模式、最可能模式(Most Probable Mode,MPM)候選列表、矩陣加權(quán)幀內(nèi)預(yù)測(Matrix weighted Intra Prediction,MIP)模式的奇偶性。該算法對編碼器的率失真性能影響極小,且具有適中的嵌入容量。
H.266/VVC 角度預(yù)測的思想是利用編碼單元(Coding Unit,CU)的空間鄰近像素預(yù)測當(dāng)前CU的像素值,該思想繼承前兩代編碼標(biāo)準(zhǔn),充分利用了圖像信息的空間冗余性。VVC為了捕獲視頻中的任意邊緣方向,角度預(yù)測模式的數(shù)量從HEVC的35種增加至67種[10],其角度預(yù)測模式如圖1所示。圖1的黑色(實(shí)線)角度模式是原HEVC 的角度,總共35 個模式;紅色(虛線)角度模式是VVC在HEVC標(biāo)準(zhǔn)的基礎(chǔ)上新增加的模式,總共32 個模式。同時從相鄰CU 構(gòu)建的MPM 候選列表從HEVC的3個候選模式擴(kuò)展至VVC的6個候選模式。
MIP 模式的最初思想是利用多層神經(jīng)網(wǎng)絡(luò)基于相鄰已重建像素預(yù)測當(dāng)前CU 像素值[11],但是這種預(yù)測方式復(fù)雜度太高,最后發(fā)展出矩陣加權(quán)幀內(nèi)預(yù)測。
圖1 H.266/VVC角度預(yù)測模式Fig.1 Angle prediction mode of H.266/VVC
MIP對4 × 4的CU預(yù)測方法如圖2所示。
圖2 4×4塊的MIP預(yù)測示例Fig.2 Example of MIP prediction for 4×4 block
1)邊界平均:對上參考行bdrytop和左參考行bdryleft進(jìn)行下采樣,獲得4個采樣點(diǎn)。
2)矩陣加權(quán)預(yù)測:對下采樣后的參考像素bdryred乘以所選模式k所對應(yīng)的矩陣Ak,再加上一個偏移bk。
4 × 4 塊的MIP 首先對參考像素進(jìn)行平均,再對平均后的像素進(jìn)行矩陣向量乘法,再加上一個偏移。VVC對4 × 4塊的矩陣加權(quán)規(guī)定了35種模式,即平均后的像素要分別乘以35個矩陣,再加上相應(yīng)矩陣對應(yīng)的偏移,獲得預(yù)測后的4 × 4塊,選擇最小的絕對變換誤差和(Sum of Absolute Transformed Difference,SATD)作為最優(yōu)的預(yù)測4 × 4塊。
1)首先進(jìn)行第一輪粗選,構(gòu)建粗選列表,計算屬于HEVC的原35 種角度預(yù)測模式的SATD,即從模式{0,1,2,4,6,…,66}中選擇出6個最小的SATD值的模式加入粗選列表。
2)接著進(jìn)行第二輪粗選,選擇性地計算VVC 新增的模式。第二輪粗選是分別計算步驟1)得出的6個粗選模式的前后兩個模式的SATD 值,即若粗選列表中含有模式8,第二輪粗選需計算模式7 和模式9 的SATD。如果步驟1)選出了DC模式和Planar 模式,不計算這兩個模式的前后模式。但是若粗選列表中含有模式2或模式66,第二輪粗選只需計算模式3或模式65的SATD。第二輪粗選最多需計算12個模式。從第二輪粗選的模式中選擇SATD 值較小的模式替換粗選列表中SATD值較大的模式。
3)計算當(dāng)前CU的MPM模式,從中選擇SATD值較小的模式替換粗選列表中SATD值較大的模式。
4)將粗選列表長度擴(kuò)至為7,計算35 種MIP 模式,從中選擇SATD值較小的模式替換粗選列表中SATD值較大的模式。
5)重新整理粗選列表,分別從粗選列表中選出3 個SATD值最小的角度模式和3個SATD值最小的MIP模式。
6)根據(jù)式(1)計算上述6 個模式的率失真代價[12],選擇最小的代價作為最優(yōu)模式。
其中:Jmode表示率失真代價,D表示絕對誤差和,λ表示拉格朗日因子,R表示編碼需要的比特數(shù)。
根據(jù)編碼器的編碼特性,對于紋理復(fù)雜的CU,編碼器會偏向于選擇更小尺寸的CU 編碼[13]。并且對于小尺寸CU,因?yàn)槠浼y理復(fù)雜,不選擇Planar 模式和DC 模式的概率較高,因?yàn)檫@兩種模式較常用于平坦區(qū)域,若在這兩種模式下嵌入水印容易出現(xiàn)視頻質(zhì)量的損失。本文選擇官方推薦的6 個視頻序列[14]分析編碼器的特性以嵌入水印。其中,序列BasketballDrill 和BQMall 紋理復(fù)雜,視頻中的運(yùn)動劇烈;序列BQSquare 和BlowingBubbles 紋理較為平坦,視頻中的運(yùn)動較為平緩;序列Johnny 和Vidyo3 具有復(fù)雜的前景和單調(diào)的背景,視頻中的運(yùn)動緩慢。
表1 給出了4 × 4 的CU 分別選擇MIP 模式和角度模式的概率,其中角度模式不包括DC 模式和Planar 模式。表1 說明了4 × 4 的CU 選擇非DC 模式和非Planar 模式的概率較高,可以將水印嵌入至非DC模式和非Planar模式中;并且CU通常在紋理較復(fù)雜的區(qū)域才會選擇非DC 模式和非Planar模式,人眼對紋理復(fù)雜的區(qū)域較不敏感[15],即使造成了一定的視頻質(zhì)量損失,人眼也難以察覺。從表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 統(tǒng)計了4 × 4 的CU 的粗選列表奇偶模式的分布狀況(未統(tǒng)計模式0 和模式1)。由于編碼器是計算粗選列表中所有模式的率失真代價,從中選擇最小的代價作為最優(yōu)模式,所以粗選列表中的模式都有較高可能性作為最優(yōu)模式。從表2 中可以看出粗選列表同時出現(xiàn)奇數(shù)模式和偶數(shù)模式的概率較高??梢愿鶕?jù)出現(xiàn)的水印值,將其嵌入到候選粗選列表的奇數(shù)模式或者偶數(shù)模式中。
表2 4 × 4的CU的粗選列表中角度模式和MIP模式同時存在奇數(shù)模式和偶數(shù)模式的概率 單位:%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模式同時出現(xiàn)奇數(shù)模式和偶數(shù)模式的概率相較角度模式偏低,但表1 顯示MIP 模式作為最優(yōu)模式的概率也較低,若最優(yōu)預(yù)測模式為MIP模式和角度模式,修改最優(yōu)預(yù)測模式的奇偶性,造成的率失真損失也可接受。
本文算法(圖3)的思想是以角度模式和MIP 模式的奇偶性代表水印信息:偶數(shù)角度模式{2,4,…,66}和偶數(shù)MIP模式{0,2,…,34}代表水印“-1”;奇數(shù)角度模式{3,5,…,67}和奇數(shù)MIP 模式{1,3,…,35}代表水印“1”;DC 模式和Planar 模式不嵌入水印,嵌入至這兩種模式容易造成較大的率失真損失。
圖3 本文算法流程Fig.3 Flowchart of the proposed algorithm
步驟1 利用logistic 混沌映射產(chǎn)生雙極性偽隨機(jī)序列作為密鑰K1,用此偽隨機(jī)序列對原始水印W={w1,w2,…,wi,…} 做加密處理,取得加密水印W'=
步驟2 當(dāng)I 幀的多叉樹遞歸至4 × 4 的CU 時,進(jìn)行第一輪粗選。計算屬于HEVC 的原35 種角度預(yù)測模式,此時所計算的角度預(yù)測模式均是偶數(shù)模式,即模式{0,1,2,4,6,…,66}。從計算出的模式中按SATD 值從小到大的順序選擇出6個模式。
步驟3 利用1.3 節(jié)介紹的第二輪粗選均是計算奇數(shù)模式,根據(jù)二值水印狀態(tài)決定是否進(jìn)行第二輪粗選。若待嵌入的水印w'=-1,跳過第二輪粗選的奇數(shù)模式的計算;若待嵌入的水印w'=1,計算第二輪粗選的奇數(shù)模式的SATD,將第二輪粗選計算出的模式按SATD 值從小到大的順序選擇出奇數(shù)模式代替第一輪粗選出的偶數(shù)模式,此時不能代替DC模式和Planar 模式,若代替DC 模式和Planar 模式,會造成較大的率失真性能的損失。
步驟4 根據(jù)2.1 節(jié)分析的修改粗選列表里模式的奇偶性所導(dǎo)致的率失真損失較小。本文算法在計算6 個MPM 模式和35 種MIP 模式時:若待嵌入的水印w'=-1,只進(jìn)行偶數(shù)模式的計算;若待嵌入的水印w'=1,只進(jìn)行奇數(shù)模式的計算。此時不能跳過DC模式和Planar模式的計算。
步驟1 解碼端收到碼流信息,依次解碼各個CU。若解碼后CU 大小為4 × 4,且該CU 的模式不為DC 模式和Planar模式,判斷該模式的奇偶性:若為奇數(shù),提取出的水印為“1”;若為偶數(shù),提取出的水印為“-1”。
步驟2 將提取出的加密水印W'跟密鑰K1進(jìn)行解密,得到解密后的水印W。
在H.266/VVC 的測試模型VTM7.0上驗(yàn)證本文算法的性能,利用三種不同分辨率的視頻序列進(jìn)行測試。本文只在I幀上嵌入水印,P 幀不嵌入水印,并觀察是否引起誤差傳播。編碼器的基本參數(shù)配置如表3 所示,其余參數(shù)均使用默認(rèn)參數(shù)。
表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 編碼器的復(fù)雜度增加了數(shù)倍,本文用ΔT來反映水印嵌入算法對編碼器增加的復(fù)雜度。
表3 編碼器參數(shù)配置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 不降反增,說明本文算法對視頻質(zhì)量的影響可以忽略不計。9 個序列的平均碼率變化率為0.07%,最多增加了0.26%,有的序列的平均碼率不增反降,說明本文算法對壓縮率的影響可以忽略不計。同時還可以看出嵌入水印后,編碼器的編碼時間平均降低了12.3%,說明本文算法不僅不會引入多余的復(fù)雜度,還能在保證率失真性能的前提下,適當(dāng)降低編碼器的復(fù)雜度??陀^指標(biāo)表明:本文算法對編碼器性能影響極小。這是由于VVC在最小尺寸的預(yù)測時增加了一倍的角度模式,又增加了35種MIP 模式,接近100種模式,最優(yōu)預(yù)測模式與其相鄰的模式的率失真性能十分接近,將最優(yōu)模式替換為率失真代價最接近并且奇偶性相反的預(yù)測模式,可提高嵌入容量,同時不影響編碼器的性能。
圖4 是BQSquare 序列第1 幀嵌入水印前后的對比,可以看出水印嵌入后視頻的視覺質(zhì)量幾乎跟嵌入前一樣,從主觀上也反映了本文算法對編碼器性能影響極小,且保證了水印的不可見性。從表4 中還可以看出,本文算法嵌入至運(yùn)動較為劇烈的視頻的容量較大,嵌入運(yùn)動平緩的視頻的容量較小,原因是運(yùn)動平緩的視頻選擇4 × 4尺寸的概率也較小,滿足水印嵌入條件的概率更低。
由圖5 可以看出每一幀在嵌入水印前后的PSNR 值都十分接近,每一幀的視頻質(zhì)量的區(qū)別都可以忽略不計。因?yàn)镻幀選擇幀內(nèi)模式的概率極低,本文算法以幀內(nèi)預(yù)測模式為基礎(chǔ),只在I 幀嵌入水印,同時還可以驗(yàn)證含水印的I 幀不會對后續(xù)的P 幀造成誤差傳播。這是由于最優(yōu)模式和次優(yōu)模式的率失真十分接近,修改最優(yōu)預(yù)測模式造成的失真差異很小。
圖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
因?yàn)樵赩VC 平臺上的水印算法極少,本文選擇文獻(xiàn)[9]的算法進(jìn)行對比,該算法在HEVC 平臺上通過預(yù)測模式的奇偶性來嵌入水印。對比測試采用文獻(xiàn)[9]的配置參數(shù):QP 取值為26,GOP 設(shè)為8,I 幀周期為16,開啟RDOQ,編碼96 幀。對BQSquare、BQMall、BlowingBubbles 和BasketballPass 四個序列進(jìn)行對比測試,結(jié)果如表5 所示。其中,ΔP表示PSNR 平均變化情況,C表示平均水印容量,ΔR表示碼率的平均變化率。由表5可以看出,文獻(xiàn)[9]算法的平均PSNR 下降了0.035 dB,本文算法的平均PSNR 下降了0.005 dB。文獻(xiàn)[9]算法的平均碼率的增加也比本文算法增加得更多,文獻(xiàn)[9]算法的平均碼率升高了1%,而本文算法的平均碼率僅升高了0.06%。文獻(xiàn)[9]算法損失的率失真性能多于本文算法,這是因?yàn)槲墨I(xiàn)[9]算法將Planar 模式和DC 模式強(qiáng)行修改為其他模式,造成了較大的率失真損失,而本文算法則不修改這兩種模式。但本文算法的嵌入容量小于文獻(xiàn)[9]算法,主要是因?yàn)镠.266相比HEVC 增加了二叉樹和三叉樹的分割方式,且塊的尺寸最大為128× 128,H.266 選擇4 × 4 塊的概率相比HEVC 更低,降低了水印嵌入的容量上限。文獻(xiàn)[9]算法使用LBP 分析宏塊紋理的復(fù)雜度,并利用LBP的標(biāo)準(zhǔn)差值確定待嵌入的塊,而本文只有在最優(yōu)模式不為Planar模式和DC 模式時,才確定待嵌入的4 × 4 塊,使得本文算法滿足條件的4 × 4 塊的數(shù)量少于文獻(xiàn)[9]算法。但本文算法利用了編碼器的特性,使得嵌入水印后率失真性能與原始編碼器十分接近,而文獻(xiàn)[9]算法以提升嵌入容量為主,使得嵌入水印后率失真性能有一定程度上的損失。
表5 本文算法與文獻(xiàn)[9]算法的客觀指標(biāo)對比Tab.5 Comparison of objective indicators between the algorithm in this paper and the algorithm in literature[9]
本文提出了一種基于幀內(nèi)雙模式奇偶性的H.266/VVC視頻水印算法,該算法利用4 × 4 塊擁有的近100 種預(yù)測模式,統(tǒng)計了4 × 4的CU 不選擇DC 模式和Planar 模式擁有較高的概率,并且4 × 4 的CU 的粗選列表中同時含有奇數(shù)模式和偶數(shù)模式的概率較高,結(jié)合這兩個較高的概率,根據(jù)二值水印狀態(tài),將最優(yōu)模式修改為粗選列表中相應(yīng)的奇偶模式。本文算法相對于VTM7.0算法,PSNR 平均下降了0.005 4 dB,平均碼率增加了0.07%,每幀可嵌入的水印容量平均為625 b;但是本文算法的平均嵌入容量較小,如何提高嵌入容量是下一步的研究方向。