H.264中基于视频复杂度分析的鲁棒数字水印嵌入方法

文档序号:7857534阅读:261来源:国知局
专利名称:H.264中基于视频复杂度分析的鲁棒数字水印嵌入方法
技术领域
本发明涉及视频水印方法领域,具体为一种H. 264中基于视频复杂度分析的鲁棒数字水印嵌入方法。
背景技术
国内外学者和研究机构对图像水印的研究已经趋于完善,但对视频数字水印的研究还相对滞后,尚未建立统一的评价标准,仍有待成熟。而现有的视频水印算法大部分仍然采用图像水印的技术,即在空域或变换域内加载水印,而数字视频文件除了继承数字图 像文件二维的所有特征,还具有数字图像所没有的第三维的特征——时间域特征。这也就导致这类直接应用图像水印技术的视频水印算法造成极大的资源浪费,同时对时间域上的攻击(帧插入、帧删除等)毫无鲁棒性。如何利用视频区别于图像的时间特性,结合亮度、纹理、运动参数进行视频序列复杂度分析,有针对性的选择目标宏块完成鲁棒水印的嵌入,同时达到视觉质量与算法鲁棒性之间的平衡,是一个亟待解决的问题。H. 264标准基础上视频水印算法的发展还很缓慢,现有文献的数量不多,其中郑振东等人在H. 264标准基础上提出了一种基于运动矢量(Motion Vector, MV)域与DCT域的混合视频水印方案。在DCT域内通过二值水印的状态调整DCT系数的零状态。在运动矢量内,将视频帧沿中线划分为左右两个区域,根据水印状态与子块的横向运动矢量的符号状态,及该子块所处的左右区域相匹配,来实现水印的嵌入与提取。曹华等提出一种一种基于H. 264低比特率视频流的半脆弱盲水印方法,通过在H. 264特有的的帧内预测和运动向量预测中分别嵌入鲁棒水印和脆弱水印,达到版权保护和内容完整性认证的双重目的。总结以往的鲁棒水印算法,不难发现,现有算法都是通过在水印算法的复杂性上做工作来提高算法鲁棒性,而忽略了对载体文件进行分析,水印在载体各部分均匀分布。而对于载体文件而言,各部分对于水印信息的包容性是不同的,也就是说,如果在不适合嵌入水印的部分强行加载水印信息,可能会导致算法灾难性的结果。原则上说,水印算法的鲁棒性与透明性之间存在着此消彼长的矛盾,其性能需要在这二者之间进行折中。要想在保证鲁棒性的基础上,达到优质的视觉效果,需要对水印嵌入的载体文件进行合适的分析,找出适宜嵌入水印的部分,再对其进行鲁棒算法的研究,在此基础上嵌入水印势才能够达到了令人满意的效果。

发明内容
本发明目的是提供一种H. 264中基于视频复杂度分析的鲁棒数字水印嵌入方法,以解决现有技术鲁棒水印算法会在不适合嵌入水印的视频部分强行加载水印的问题。为了达到上述目的,本发明所采用的技术方案为H. 264中基于视频复杂度分析的鲁棒数字水印嵌入方法,在进行H. 264编码操作的数字视频中,数字视频包含多帧图像,每帧图像在H. 264编码操作时被分解成多个宏块,每个宏块再次被按4X4分解成16个子块,其特征在于包括以下步骤(I)求得宏块的图像复杂度将数字视频每帧图像中每个宏块的各个子块进行DCT变换后再进行zigzag扫描,得到每帧图像中每个宏块的各个子块的DC系数、AC系数,根据每帧图像中每个宏块的各个子块的DC系数计算得到每帧图像中每个宏块的图像复杂度;(2)求得宏块的像素变化速率均方差根据数字视频每帧图像中每个宏块各个子块的像素变化速率,计算得到每帧图像中每个宏块的像素变化速率均方差,所述像素变化速率指单位时间内相同位置上像素的变化量;(3)确定特征宏块根据经验分别设定数字视频图像复杂度和像素变化速率均方差的阈值,将如步骤(1)、(2)得到的数字视频每帧图像中每个宏块的图像复杂度、像素变化速率均方差分别与对应的阈值比较,如果其中一个宏块的图像复杂度、像素变化速率均方差中任意一个大于其对应的阈值,则认为该宏块视频复杂度高,选取该宏块为数字视频的特征宏块; (4)帧内嵌入水印在特征宏块中,按与斜对角线平行的多个线条将子块的DCT系数划分为7个能量子带,选出中频AC系数所在的4个能量子带用于水印的嵌入,将4个能量子带的中频AC系数分为三组,比较每组中各个子块的中频AC系数的最大值和最小值,再对三组中频AC系数的最大值取最小后记为相对最大值,同时对三组中频AC系数的最小值取最大记为相对最小值,最后通过调制特征宏块中各个子块中频AC系数的大小来改变所述相对最大值和相对最小值的大小,进而完成水印的嵌入。(5)帧间嵌入水印从特征宏块的16个子块中选取对角的两个子块,将选取的两个子块周围的子块分成水平和竖直方向两组,计算各子块运动矢量的模值后,得到水平和竖直方向两组子块运动矢量的模值,再分别找出每组中子块运动矢量模值的最大值与最小值,然后分别对两组运动矢量模值的最大值取最小,记为相对最大值,同时对两组两组运动矢量模值的最小值取最大记为相对最小值,相对最大值与相对最小值的差值记为比较差,相对最大值与比较差的差值记为比较最大值,比较差与相对最小值的差值记为比较最小值,通过加权视频复杂度并选取合适的阈值确定嵌入点子块,运动矢量的模值来改变比较差、比较最大值和比较最小值之间的大小,进而完成水印的嵌入。本发明在选取的特征宏块中嵌入水印,能有效缓解视频质量与水印算法鲁棒性之间的矛盾,并且不会破坏视频的视觉效果。


图I为中频AC系数所在的4个能量子带图2为嵌入位置示意图,其中图2a为某子块与其周围4个子块的位置,图2b为宿主宏块中两种水印嵌入位置。图3为foreman, qcif视频水印嵌入前后图像对比示意图,其中图3a为原始视频帧,图3b为嵌入水印后视频帧,图3c为数字水印。图4为不同压缩比的JPEG压缩对视频水印算法的影响,其中图4a为压缩比为10 80时,NC值的比较,图4b为压缩比为80时提取出的水印图像。
图5为噪声密度对对视频水印算法的影响,其中图5a为椒盐噪声密度为O. 005、. 05时,NC值的比较,图5b为椒盐噪声密度为O. 05时提取出的水印图像。图6为受攻击帧数对视频水印算法的影响,其中图6a为受到帧平均攻击为f 10帧时,NC值的比较,图6b为受到帧平均攻击为10帧时提取出的水印图像。图7为子块的7个能量子带分布示意图。图8为选定嵌入水印的子块运动矢量的调制区间示意图。
具体实施方式
(I)视频复杂度分析设一段数字视频中包含f帧图像,每一帧图像包含mXn个像素。Fi为第i帧,i e {O, f-Ι}。Fi在进行H. 264编码操作时被分解为若干互不重叠的尺寸为16 X 16的宏
土夹,MB^为第i帧中的第j个宏块,je{0,Cm为第i帧中的第j个宏块的
第k个像素,ke {O, pXq-Ι}。每个宏块MBi;j再按4X4细分为16个子块bi;j,n进行DCT变换,bi j n表示第i帧中的第j个宏块的第η个子块。然后对变换后的子块进行zigzag扫描,这样每个子块中就产生了如图7所示的7个子带的DCT系数。(a)图像复杂性度量本发明定义像素宏块的图像复杂度为其背景亮度和纹理复杂度的综合考量。并对像素宏块复杂度设定一个阈值,复杂度值超出此阈值约束即表示在该宏块纹理复杂、背景亮度高,适合加载水印信息;复杂度值小于此阈值的,说明此宏块区域平缓而不适合嵌入水印信息。在解码端根据纹理复杂度的理论方法,确定水印嵌入的位置来提取水印图像。H. 264对每个宏块中16个子块进行DCT变换后的产生的DC系数集中了子块的大部分能量,且具有压缩不变性,因此,本发明通过每个宏块内部的16个DC系数来进行纹理复杂度度星。算法用局部图像复杂度因子来度量局部图像的纹理复杂度,并将该局部图像复杂度因子与载体文件直流分量共同构造复合函数,即为图像复杂度。IC(Ij)=^alj +a2e,,j(3)式中Ci1, α2为比例因子,介于O和I之间。选择局部图像复杂度比较大的像素宏块嵌入水印,设视频帧尺寸为N1XN2ACuk为视频图像中的第i帧图像Fi的第j个宏块MBi;J的第k个子块在进行DCT变换后的DC系数。宏块MBi,」的纹理复杂度参数为Σ P(e(b)
16^0eUj
p(ehj) = [^ye^(7)式中ei;j为宏块内部的16个DC系数的平均值;p (ey)为加权系数,β为加权因子,取值范围为(O. 6,O. 7)。图像复杂度IC(i,j)的值随Ci1, Ci2以及β的变化而改变,由此显示出各子块不同的图像纹理复杂度,进一步提升水印算法的安全性。(b)运动特征度量本发明应用视频序列帧间相关宏块的差异,简单地描述视频帧中目标的运动参数。H. 264处理单兀的宏块尺寸为16X 16,每个宏块在细分为16个互不重叠的规格为4X4
的子块,Cf (―为第i帧中第j个宏块中第k个子块的(m, η)点的像素值,V;々(m,n)表
示在时间轴t上像素变化速率,
PU j.k /\ 厂t I / /Vfk (m,n) =」~―)— 1——(8)
H1这里,0^ m, n ^ 3,0 ^ n, ^ 3,O彡k彡兰 X i,O 彡 k 彡 15。
JIO I ()子块的像素中各点像素值沿时间轴变换的绝对值的最大值为vmix =max (/ , )|1⑶
nun '丨第i帧中第j个宏块的速率最大化均值为
I 15
「00471 Vhj=—yv!'J'k(10)
LwtT /」 ,— max I r / ^ max、 7
一1() k O第i帧中第j个宏块的像素变化速率均方差为V{}^E = j—Σ (^maxi - ^ mirage _ η )
V 10Zc=O宏块的运动特征可以通过运动参数GA来度量。(C)视频复杂度量最后,本发明采用式(12)所示的加权视频复杂度VC (i,j)来判定子块是否具有运动特征ME(i.j) = {IC{i,j),V^SE}(I ;)i为帧序号,j为子块序号,由多个样本训练得到的经验值作为两个阈值分别与这些能量分量相对应,即为ΤΗ_ ^ΡΤΗ_Μ。如果子宏块的两个能量分量至少有一个大于其相对应的阈值,该宏块即被判定为视频复杂宏块,可以用来嵌入水印信号。(2)帧内残差DCT系数域的水印算法水印嵌入规则
(I)按照视频复杂度度量方法判断当前宏块是否适合嵌入水印。如果宏块的具有高度的视频复杂度,进行下一步操作。如果宏块的纹理或运动趋势较平缓,即转到下一宏块,重新从这一步判断。(II)按照式(13) (15)将子块内部(每个子块有16个DCT系数,其中I个为DC系数,其余15个为AC系数,选出其中12个中频AC系数用来嵌入水印信息)的中频AC系数分为如图I所示的三组Rowl,Row2,Row3,Rmrk =IacJ(13)
in = 4 - 3 + (-1)" 1 + (-l)n/3Cfe(14)
4 Nx(N + l) Σ i =^^~-,、
=i2 ,n=l,2,3,4(15)N为所选AC系数的数目,这里选择ACf AC12共12个AC系数,因此,N=12。(III)比较得出Rowl,Row2,Row3中AC系数的最大值Maxk和最小值Mink
jMlnk = mill;=max{itoirfr(16)(IV)按照下式得出各组系数中的相对最大值Amax和相对最小值Amin j .A max = mIivjMzx7. Jj」min = max {M/7/. Jq )(V)按照下式的规则嵌入水印信息
Γ π I' A max > A min. w 二 I/ ■,、、, ^ , .(Iv [/! max < /lnim. w = 0当水印位为I时,调整子块内部的若干个AC系数,使得Amax>Amin ;而当水印位为
O时,调整子块内部的若干个AC系数,使得Amax ( Amin。水印提取规则提取规则为嵌入规则的逆过程,具体步骤如下(I)按照视频复杂度度量方法判断当前宏块是否嵌入了水印。如果宏块的具有高度的视频复杂度,即表示该宏块内部嵌入了水印信息。进行下一步操作提取水印信息。如果宏块的纹理或运动趋势较平缓,即表示该宏块没有隐藏水印信息,即转到下一宏块,重新从这一步判断。(II)按照式(13) (15)将子块内内部的中频AC系数分为如图2_5所示的三组Rowl, Row2, Row3,(III)按照式(17)得出各组系数中的相对最大值Amax和相对最小值Amin(IV)按照式(19)的规则嵌入水印信息jw =1, A max > A min|vi; = 0, A max < A minQg)(3)帧间“十字交叉”运动矢量区域内的水印算法水印嵌入规则(I)按照视频复杂度度量方法判断当前宏块是否适合嵌入水印。如果宏块具有高度的视频复杂度,进行下一步操作。如果宏块的纹理或运动趋势较平缓,即转到下一宏块,重新从这一步判断。(II)对于选定的特征宏块,边缘12个子块依据宏块的中轴线分为左右两组,计算左右两组运动参数均值VKight和Vleftt。按照式(20)选择如图2中的嵌入点位置 \ and plis chosen, V ght <V\n(2Q)
[^3 and p4 is chosen, Vrjght > Vieft(III)按照图2(a)所示选择嵌入点周围的4个子块的运动矢量,分别按式(21)计算它们以及嵌入点子块的运动适量的模值pv,Pvl,Pu,Pvi P,并将它们按横向和竖向
分为 2 组 Rowh = Ii3r- , Pr, PvJ 和 Rowr = {々,Pv, PV} }。Pr=^r,2+P,;2(21)(IV)按照下式分别求得Rowh和Rowv的最大值和最小值
jiowHmas =nmx{P,-^PvrPv4]
^owHmin = mm{Pr; ^r4 I R0Mrmtx = maxii5,^PrrP1- }
.Rowrmm =mmi七片,尸Γ3}(22)(V)按照下式得出各组系数中的相对最大值Amax和相对最小值Amin IA max =J^nrr }
Imaxmaxj ,4 niin = ma\{Ro\rn . Rowl-丨(之幻(VI)按下式计算相对差值D、相对较大差值Dmax和相对较小差值Dmin
D = A max - A minn,us = A max- p,
1Lu = l>v - A(y I)(¥11)其中,41]1;[11〈411^,41]1;[11到Amax之间的范围可以分成4个部分(如图8所示),
按式(25)的规则嵌入水印信息。
f修改尽值,满足尽£別,幻,使得/)11^1</)1113\ M- = I
I修改ZJ-值,满足/;-£(5*2,5*3,使得/)111^1乏/)013\, w = 0(25)水印提取规则
提取规则为嵌入规则的逆过程,具体步骤如下(I)按照视频复杂度度量方法判断当前宏块是否嵌入了水印。如果宏块的具有高度的视频复杂度,即表示该宏块内部嵌入了水印信息。进行下一步操作提取水印信息。如果宏块的纹理或运动趋势较平缓,即表示该宏块没有隐藏水印信息,即转到下一宏块,重新从这一步判断。(II)对于选定的宿主宏块,边缘12个子块依据宏块的中轴线分为左右两组,计算左右两组运动参数均值VKight和vleftt。按照下式确定的嵌入点位置
「 Ipi and p2 is embedding positionI -Ub)
Vrjght > Vjeft, p3 and p4 is embedding position(III)如嵌入方法( νΓ(VI),计算出相对差值D、相对较大差值Dmax和相对较小差值Dmin(IV)按下式的规则提出水印信息。
r q [ w = I. /)min</)ma/‘叫π η . 、 η( )
[\ν = O. /)min > /)ma\
权利要求
1.H. 264中基于视频复杂度分析的鲁棒数字水印嵌入方法,在进行H. 264编码操作的数字视频中,数字视频包含多帧图像,每帧图像在H. 264编码操作时被分解成多个宏块,每个宏块再次被按4X4分解成16个子块,其特征在于包括以下步骤 (1)求得宏块的图像复杂度将数字视频每帧图像中每个宏块的各个子块进行DCT变换后再进行zigzag扫描,得到每帧图像中每个宏块的各个子块的DC系数、AC系数,根据每帧图像中每个宏块的各个子块的DC系数计算得到每帧图像中每个宏块的图像复杂度; (2)求得宏块的像素变化速率均方差根据数字视频每帧图像中每个宏块各个子块的像素变化速率,计算得到每帧图像中每个宏块的像素变化速率均方差,所述像素变化速率指单位时间内相同位置上像素的变化量; (3)确定特征宏块根据经验分别设定数字视频图像复杂度和像素变化速率均方差的阈值,将如步骤(I)、( 2 )得到的数字视频每帧图像中每个宏块的图像复杂度、像素变化速率均方差分别与对应的阈值比较,如果其中一个宏块的图像复杂度、像素变化速率均方差中任意一个大于其对应的阈值,则认为该宏块视频复杂度高,选取该宏块为数字视频的特征宏块; (4)帧内嵌入水印在特征宏块中,按与斜对角线平行的多个线条将子块的DCT系数划分为7个能量子带,选出中频AC系数所在的4个能量子带用于水印的嵌入,将4个能量子带的中频AC系数分为三组,比较每组中各个子块的中频AC系数的最大值和最小值,再对三组中频AC系数的最大值取最小后记为相对最大值,同时对三组中频AC系数的最小值取最大记为相对最小值,最后通过调制特征宏块中各个子块中频AC系数的大小来改变所述相对最大值和相对最小值的大小,进而完成水印的嵌入; (5)帧间嵌入水印从特征宏块的16个子块中选取对角的两个子块,将选取的两个子块周围的子块分成水平和竖直方向两组,计算各子块运动矢量的模值后,得到水平和竖直方向两组子块运动矢量的模值,再分别找出每组中子块运动矢量模值的最大值与最小值,然后分别对两组运动矢量模值的最大值取最小,记为相对最大值,同时对两组运动矢量模值的最小值取最大记为相对最小值,相对最大值与相对最小值的差值记为比较差,相对最大值与比较差的差值记为比较最大值,比较差与相对最小值的差值记为比较最小值,通过加权视频复杂度并选取合适的阈值确定嵌入点子块运动矢量的模值来改变比较差、比较最大值和比较最小值之间的大小,进而完成水印的嵌入。
全文摘要
本发明公开了一种H.264中基于视频复杂度分析的鲁棒数字水印嵌入方法,首先在图像复杂度分析的基础上,利用视频水印具有不同于图像水印的丰富的时间维度信息的特点,提出视频复杂度分析概念,选择具有高密度,复杂纹理、剧烈运动等特征的图像宏块作为特征宏块,由于人眼视觉系统不易察觉视频帧中这些特征区域的变化,在这些区域内嵌入水印信息,算法的透明性更高。基于视频复杂度分析,本发明提出在H.264帧内通过调整残差块分层DCT系数来嵌入水印信息,帧间通过调整“十字区域”宏块的运动矢量来完成标识信息嵌入的混合鲁棒水印算法,有效缓解视频质量与水印算法鲁棒性之间的矛盾。
文档编号H04N7/26GK102801977SQ201210279108
公开日2012年11月28日 申请日期2012年8月7日 优先权日2012年8月7日
发明者蒋建国, 宜曼, 齐美彬, 王慧莉, 苏京华, 张国富, 尤小泉, 夏娜, 苏兆品 申请人:合肥极光科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1