1.本发明涉及一种多值数字视频水印嵌入及盲提取方法,属于视频作品水印的技术领域。
背景技术:2.数字视频水印技术通过将一些特定的标识信息嵌入到数字载体中,达到版权保护的目的。这些标识信息不影响原载体的使用价值,也不容易探知和再次修改,但能被生产方提取辨认。现有的数字视频水印技术可分为压缩域、空间域和变换域三大类。其中空间域和变换域水印技术更像是数字图像水印技术的拓展,它们通过将视频拆分成逐帧图像并在选定帧中嵌入图像水印。而dct变换域由于其出色的抗压缩性质,常被选为数字水印的嵌入域。
3.分析现有的如专利申请cn201810966120.5中基于图像亮度分量直流分量的二值水印嵌入和提取方法,其将水印信息嵌入在dct域的直流分量中,极大的优化了传统dct域数字水印的流程,降低了算法的复杂度,但其只停留在图像领域,并未拓展到更能发挥其低复杂度优势的视频领域。其次,该方法在面对一些临近像素值边界的情况,如黑白条纹图片时,由于数据的溢出,水印的嵌入与提取效果并不理想。此外,现有的基于dct域低频分量的数字水印方法大多嵌入的是二值水印,即一个水印像素仅仅包含1bit信息,若能拓宽水印像素的有效位宽,水印存储的信息量将成倍上升。
技术实现要素:4.为了将低复杂度的图像水印方法应用于视频流,并提高水印携带的信息量,本发明提供一种多值数字视频水印嵌入及盲提取方法。
5.本发明采用的技术方案如下:
6.一种多值数字视频水印嵌入及盲提取方法,该方法包括以下步骤:
7.s1,将视频的分辨率大小划成多个范围,根据不同应用场景以及视频分辨率大小对应选择不同的帧处理方法得到嵌入帧;
8.s2,对所述嵌入帧,通过平移余数的方法将水印信息嵌入到视频帧dct域的直流分量中;
9.s3,对经步骤s2嵌入水印后的视频帧进行水印盲提取。
10.本发明对基于传统的dct数字水印算法进行简化,将复杂的余弦变换优化为简单的加减运算完成水印的嵌入与提取,并结合帧选取方法将低复杂度的水印算法拓展到视频领域。本发明同时以较少的水印性能损失为代价实现了2bit水印的嵌入与提取,将水印携带的信息量提升了一倍。混合嵌入后,水印帧和原始帧之间的理论峰值信噪比psnr在38.89到45.12之间;在经过品质因子为50的motion jpeg压缩攻击测试后,提取出的水印和原始水印的归一化相关系数nc为0.861,水印的不可感知性和鲁棒性都有所保证。此外,本发明对可能产生的溢出做了处理,解决了极端条件下水印提取错误率高的问题。
附图说明
11.图1为水印的嵌入和提取的总流程示意图。
12.图2为视频帧处理方法的示意图。
13.图3为基于序列的帧处理方法示意图,(a)固定间隔法,(b)斐波那契-卢卡斯数列法。
14.图4为图像块预处理方法示意图。
15.图5为在单个图像块中嵌入一个水印像素示意图。
16.图6为强水印嵌入与提取原理示意图,其中,w为嵌入水印像素值,r为模值,r1、r2、r3、r4、r5是为取得最小平移量划分的模值判断域。
17.图7为弱水印嵌入与提取原理示意图,其中,w为嵌入水印像素值,r为模值,r1、r2、r3、r4、r5是为取得最小平移量划分的模值判断域。
具体实施方式
18.下面结合附图和具体实施方式对本发明的技术方案作进一步详细的说明。
19.本实施例的多值数字视频水印嵌入及盲提取方法包括主要包括视频帧处理和水印处理两大模块。其中,视频帧处理模块通过多种方法自适应或手动选择需要嵌入水印的视频帧;水印处理模块在选定的视频帧中嵌入或提取出水印信息。方法的总流程如附图1所示,左边的水印嵌入器读取原始视频帧并通过帧处理方法选帧,若为嵌入帧,则将该帧进行水印嵌入后输出;若为非嵌入帧,则不做任何处理直接输出,在完整遍历过整个视频序列后即可输出嵌入水印后的视频;右边的提取器使用和嵌入时相同帧处理方法筛选出水印帧,并在水印帧中盲提取出嵌入的水印。下面将分两个实施例具体介绍视频帧处理和水印处理两个模块。
20.实施例1
21.本实施例使用了如附图2所示的视频帧处理方法,输入的原始视频为四种固定的分辨率格式,该例选择了360p,720p,1080p和1440p这四种常见的分辨率,由于嵌入一个水印像素的图像块大小是相同的,不同分辨率视频的嵌入的水印大小不同。在视频输入后,本方法通过视频帧的分辨率大小从预先准备的4个水印中选择与之匹配的水印。视频帧处理采用了自适应选择和手动选择两种模式,每种模式均由四种方法构成,具体为:
22.固定间隔法:如附图3的(a)图所示,通过原始视频得到视频帧的总数k,用k除以目标嵌入帧数k得到提取间隔s。接着用当前帧数nframes去除以间隔s,若能整除,则将该视频选为嵌入帧,进行水印的嵌入或提取之后读取下一帧,否则直接读取下一帧。
23.斐波那契-卢卡斯数列法:如附图3的(b)图所示,使用常数a和b作为斐波那契-卢卡斯数列的生成因子,count为帧计数器,当count位于数列中时,将数列右移,并将该帧选为水印嵌入帧,进行水印的嵌入或提取后读取下一帧,否则直接读取下一帧。当数列大于阈值thr时将count清0,并将数列初始化。
24.灰度差均值法:通过式(1)求出相邻两帧的灰度差均值并将这个数值与某一设定阈值作比较,若当前帧和上一帧的大于该阈值,则将该帧作为水印嵌入帧。其中m,n为视频帧的长和宽,x(i,j)和y(i,j)为x帧和y帧中(i,j)点的灰度值。
[0025][0026]
直方图差异法:通过式(2)不断计算当前视频帧和上一嵌入帧之间的直方图差异,当直方图差异大于设定阈值ω时便将该帧选为下一嵌入帧。其中,m,n为视频帧的长和宽,h
x
(r)、hy(r)指的是x帧和y帧中灰度r出现的次数,引入常数c避免分母出现0。
[0027][0028]
这四种帧处理方法计算复杂度依次提升,但保密性(难以发现水印帧之间的某种规律)和面对常见视频攻击的鲁棒性也有所提升。
[0029]
如附图2所示,为了追求运算效率和算法性能的平衡,自适应选择模式根据输入视频的分辨率大小选择帧处理方法,分辨率较低的视频选择复杂度高的方法提高保密性和鲁棒性,分辨率较高的视频选择复杂度低的方法保证运算效率。
[0030]
此外,手动选择模式将四种方法分为四个保密级,可以通过手动选择保密级来确定对应的帧处理方法以满足某些特殊的需求。如使用保密级1的固定间隔法处理360p的视频以追求极致的运算效率,或使用保密级4的直方图差异法处理1440p的视频来用运算效率换取更好的保密性和鲁棒性。
[0031]
水印的提取器和嵌入器的帧处理方法完全相同,在此不做赘述。
[0032]
实施例2
[0033]
本实施例使用了如附图4和附图5所示的多值水印嵌入方法,首先需要将帧处理得到的水印帧分成若干8*8的的图像块,每个图像块包含rgb三个8*8的矩阵,在每个图像块中通过改变rgb的值实现一个水印像素的嵌入。
[0034]
由于水印是通过改变rgb值来嵌入的,在边界条件(像素值0或者255)时会因为溢出问题无法嵌入水印。因此使用如附图4的图像块预处理方法自适应设定rgb矩阵上下边界来减少极端条件下的溢出问题,具体为:
[0035]
按照式(3)和式(4)修改rgb通道的上下边界,若该图像块所对应rgb矩阵中的超过该边界的元素数大于所有元素数的一半,则将超过该边界的元素都平移到该边界上形成新的rgb矩阵;否则不做任何调整。其中λ(max)为rgb最大改变量,在后面的介绍中会详细说明。rgb(max),rgb(min)为rgb图像的新边界,分别为rgb图像的最大值和最小值;λ(max)表示rgb通道的改变量的最大值。
[0036]
rgb(max)=255-λ(max)
ꢀꢀꢀꢀ
(3)
[0037]
rgb(min)=0+λ(max)
ꢀꢀꢀꢀꢀꢀ
(4)
[0038]
在预处理后的图像块中嵌入水印像素的流程如附图5所示,首先利用式(5)所示的色彩空间转换矩阵将待嵌入rgb矩阵转化为8*8的y矩阵。
[0039]
y=0.299r+0.587g+0.114b
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0040]
经过严格的理论分析,y矩阵的dct域直流分量y
dc
可以由式(6)得到,这种计算方法裁剪了高频分量,将复杂的dct变换变成简单的求和运算。
[0041][0042]
f(0,0)为二维dct变化的直流部分,y(i,j)为y帧中(i,j)点的灰度值。
[0043]
下面引入水印强嵌入和水印弱嵌入以及纹理强度l的概念。
[0044]
水印强嵌入方法将y
dc
根据式(7)取模值得到模值rmd1。
[0045]
rmd1=mod(y
dc
,72)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0046]
如附图6所示,模值rmd1均匀的分布在[0,72)之间,以[0,18)、[18,36)、[36,54)、[54,72)分别作为水印值w等于00、01、10、11的判断域,,其中,00表示纯黑(0),11表示纯白(255),01(127)和10(191)分别表示中间的两种灰度。将rmd1根据嵌入的水印值,平移最短的距离δm,使其落到相应判断域的中点附近。
[0047]
通过式(8)求解得到rgb通道的改变量λ,round表示四舍五入求整,经过理论分析得强嵌入模式λ的实际取值为{0,
±
1,
±
2,
±
3,
±
4},且各值出现的概率均为1/9,理论psnr为39.8917db;
[0048][0049]
水印弱嵌入方法将y
dc
根据式(9)取模值得到模值rmd2。
[0050]
rmd2=mod(y
dc
,40)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0051]
如附图7所示,模值rmd2均匀的分布在[0,40)之间,以[0,10)、[10,20)、[20,30)、[30,40)分别作为水印值w等于00、01、10、11的判断域。将rmd2根据嵌入的水印值,平移最短的距离δm,使其落到相应判断域的中点附近。
[0052]
通过式(8)求解得到rgb通道的改变量λ,round表示四舍五入求整,经过理论分析得弱嵌入模式λ的实际取值为{0,
±
1,
±
2},且各值出现的概率均为1/5,理论psnr为45.1205db;
[0053]
纹理强度l为图像块y矩阵的最大元素减去最小元素的值,具体如式(10)所示。将图像块的纹理强度l与设定阈值作比较,若大于该阈值,则使用水印强嵌入方法,否则使用水印弱嵌入方法。这样便可以兼顾不可感知性和鲁棒性,实现水印的混合嵌入。
[0054]
l=y(max)-y(min)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0055]
其中,y(max)表示图像块的最大灰度值,y(min)表示图像块的最小灰度值。
[0056]
最后,通过式(11)改变原始rgb矩阵实现水印的嵌入。
[0057]
r',g',b'=r,g,b+λ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0058]
水印的提取较为简单,通过与嵌入时相同的方法得到嵌入块的rmd1和rmd2,并通过其所处范围得到原始水印像素,具体如下:
[0059]
对于强嵌入水印的提取,根据式(12)判定模值rmd1对应的水印值w;
[0060][0061]
对于弱嵌入水印的提取,根据式(13)判定模值rmd2对应的水印值w;
[0062][0063]
完整的处理一张水印帧中的所有图像块,即可还原出原始水印图像。
[0064]
本发明方法通过视频帧的选取和选定帧的水印处理两大步骤实现视频水印的嵌入与盲提取,成功将低复杂度的数字图像水印方法实施于视频流,优化了传统色彩空间转换和离散余弦变换,减少了冗余计算,以较少的运算量获得了较好的鲁棒性和不可感知性。