基于失真补偿优化的H.265/HEVC视频自适应信息隐藏方法

文档序号:30706902发布日期:2022-07-09 23:59阅读:92来源:国知局
基于失真补偿优化的H.265/HEVC视频自适应信息隐藏方法
基于失真补偿优化的h.265/hevc视频自适应信息隐藏方法
技术领域
1.本发明涉及一种视频信息隐藏技术,尤其是涉及一种基于失真补偿优化的h.265/hevc视频自适应信息隐藏方法。


背景技术:

2.在当今社会中,智能设备已经越来越普及了,人们可以通过文字、音频、图像或视频等渠道获取各种各样的信息内容。然而,与此同时,数字化信息被篡改、仿造或攻击的现象日趋严重,如何保护数字媒体的信息内容、遏制数字媒体的非法使用已经成为一个亟需解决的热门问题。信息隐藏是一种将隐秘信息隐藏于公开传输信道中,并且无法凭人们直观的视觉和听觉察觉出来的技术,是一种强有力的隐秘通信和版权保护的手段。在数字化多媒体信息隐藏技术中,自适应信息隐藏技术是极其重要的组成部分,其能够根据失真函数自适应地将隐秘信息嵌入到载体中,并且能够通过stc(syndrome-trellis codes,综合网格码)等隐写编码将嵌入的失真最小化,达到卓越的视觉效果和高效的编码效率。
3.由于数字视频的数据量普遍比较庞大,因此其通常是以压缩的形式在公开传输信道中进行传输的,hevc(high efficiency video coding,高效视频编码)是最新一代视频压缩编码标准,其核心目标是在h.264/avc的基础上,压缩效率提高一倍,在高清、超高清等视频应用领域发挥重要作用。所以,研究h.265/hevc视频的自适应信息隐藏技术具有较大的现实意义和理论价值。虽然自适应信息隐藏技术在音频和图像领域已经有了许多的研究工作,但是由于视频载体与音频和图像两者的差异性,这些研究工作并不能直接迁移到视频信息隐藏技术领域中,因此,需要研究h.265/hevc视频的特性,并针对其视频特性,设计合适、高效的自适应失真函数,来降低嵌入失真。


技术实现要素:

4.本发明所要解决的技术问题是提供一种基于失真补偿优化的h.265/hevc视频自适应信息隐藏方法,其能够很好地提高视频视觉质量,对视频码流修改影响较小,并且其安全性高。
5.本发明解决上述技术问题所采用的技术方案为:一种基于失真补偿优化的h.265/hevc视频自适应信息隐藏方法,包括隐秘信息嵌入和隐秘信息提取两部分;其特征在于:
6.所述的隐秘信息嵌入的具体过程为:
7.步骤1_1:采用h.265/hevc标准编码器对原始视频进行压缩编码,得到h.265/hevc视频,在压缩编码过程中保存h.265/hevc视频中的每帧中的每个编码树单元中的每个编码单元的预测模式和深度、每个编码单元对应的pu划分模式、每个编码单元中的每个像素点的qdst系数;其中,编码树单元的尺寸为64
×
64,编码单元的尺寸为64
×
64或32
×
32或16
×
16或8
×
8或4
×
4;
8.步骤1_2:按序遍历h.265/hevc视频中的所有帧,将当前遍历的帧定义为当前帧;
9.步骤1_3:判断当前帧是否为i帧,如果当前帧为i帧,则执行步骤1_4;如果当前帧
不为i帧,则直接执行步骤1_8;
10.步骤1_4:按序遍历当前帧中的所有尺寸为4
×
4的编码单元,将当前遍历的尺寸为4
×
4的编码单元定义为当前单元;
11.步骤1_5:将当前单元归类为第一类候选块或第二类候选块或第三类候选块,或对当前单元不作处理,具体过程为:
12.如果当前单元仅存在相邻的尺寸为4
×
4的左下方编码单元且左下方编码单元的预测模式的数字标识在区间[2,26]内,及相邻的尺寸为4
×
4的正下方编码单元且正下方编码单元的预测模式的数字标识在区间[2,10]内,则将当前单元归类为第一类候选块,然后执行步骤1_6;
[0013]
如果当前单元仅存在相邻的尺寸为4
×
4的右上方编码单元且右上方编码单元的预测模式的数字标识在区间[10,34]内或为1,及相邻的尺寸为4
×
4的正右方编码单元且正右方编码单元的预测模式的数字标识在区间[26,34]内,则将当前单元归类为第二类候选块,然后执行步骤1_6;
[0014]
如果当前单元存在相邻的尺寸为4
×
4的左下方编码单元且左下方编码单元的预测模式的数字标识在区间[2,26]内,并存在相邻的尺寸为4
×
4的正下方编码单元且正下方编码单元的预测模式的数字标识在区间[2,10]内,存在相邻的尺寸为4
×
4的右上方编码单元且右上方编码单元的预测模式的数字标识在区间[10,34]内或为1,存在相邻的尺寸为4
×
4的正右方编码单元且正右方编码单元的预测模式的数字标识在区间[26,34]内,存在相邻的尺寸为4
×
4的右下方编码单元且右下方编码单元的预测模式的数字标识在区间[26,34]内或在区间[2,10]内或为0或为1,则将当前单元归类为第三类候选块,然后执行步骤1_6;
[0015]
对于其余情况,对当前单元不作处理,然后直接执行步骤1_7;
[0016]
上述,左下方编码单元为位于当前单元的左下方的尺寸为4
×
4的编码单元,正下方编码单元为位于当前单元的正下方的尺寸为4
×
4的编码单元,右上方编码单元为位于当前单元的右上方的尺寸为4
×
4的编码单元,正右方编码单元为位于当前单元的正右方的尺寸为4
×
4的编码单元,右下方编码单元为位于当前单元的右下方的尺寸为4
×
4的编码单元;
[0017]
步骤1_6:在当前单元中的所有像素点的qdst系数中选择载体,如果当前单元为第一类候选块,则从当前单元的第1列像素点的4个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第一类载体,然后执行步骤1_7;如果当前单元为第二类候选块,则从当前单元的第1行像素点的4个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第二类载体,然后执行步骤1_7;如果当前单元为第三类候选块,则从当前单元的所有像素点的16个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第三类载体,然后执行步骤1_7;其中,th∈(0,10];
[0018]
步骤1_7:遍历当前帧中下一个尺寸为4
×
4的编码单元,作为当前单元,然后返回步骤1_5继续执行,直至当前帧中的所有尺寸为4
×
4的编码单元全部遍历完毕,然后执行步骤1_8;
[0019]
步骤1_8:遍历h.265/hevc视频中的下一帧,作为当前帧,然后返回步骤1_3继续执
行,直至h.265/hevc视频中的所有帧全部遍历完毕;
[0020]
步骤1_9:将归类为第一类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第一类载体序列;同样,将归类为第二类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第二类载体序列;将归类为第三类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第三类载体序列;
[0021]
步骤1_10:计算第一类载体序列、第二类载体序列、第三类载体序列中的每个载体模拟嵌入+1或0或-1时的失真代价值,对于任一个载体,设定该载体为h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数,则将该载体的失真代价值记为ρ
m,n
(i,j),其中,1≤m≤m,m表示h.265/hevc视频中包含的帧的总帧数,1≤n≤n,n表示h.265/hevc视频中的第m帧中包含的编码树单元的总个数,(i,j)表示编码树单元内坐标位置,1≤i≤64,1≤j≤64,表示修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数的块内失真代价值,α表示帧间失真传递率,gopsize表示h.265/hevc视频中的一个图像组gop的长度,gopsize的值为4或16或32,q
step
表示h.265/hevc视频的量化步长,cp
m,n
(i,j)表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数所在的尺寸为4
×
4的编码单元的纹理复杂度,τ
m,n
(i,j)表示修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数的系数组代价值,k1、k2、k3均为比例系数;
[0022]
步骤1_11:利用同一个嵌入负载率payload随机生成三个不同的二进制隐秘信息序列,对应记为x1、x2、x3;然后根据第一类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc工具包将x1嵌入第一类载体序列中的所有载体中,得到第一类含密载体序列;同样,根据第二类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc工具包将x2嵌入第二类载体序列中的所有载体中,得到第二类含密载体序列;根据第三类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc工具包将x3嵌入第三类载体序列中的所有载体中,得到第三类含密载体序列;其中,payload∈(0,0.5],x1的长度为num1×
payload,x2的长度为num2×
payload,x3的长度为num3×
payload,num1表示第一类载体序列中的载体的总个数,num2表示第二类载体序列中的载体的总个数,num3表示第三类载体序列中的载体的总个数;
[0023]
步骤1_12:根据第一类含密载体序列、第一类载体序列、第二类含密载体序列、第二类载体序列进行失真补偿优化,具体过程为:
[0024]
步骤1_12a:计算第一类含密载体序列中的每个含密载体与第一类载体序列中对应载体之间的差值,得到第一差值序列;同样,计算第二类含密载体序列中的每个含密载体与第二类载体序列中对应载体之间的差值,得到第二差值序列;其中,第一差值序列中的差值为第一类含密载体序列中的含密载体减去第一类载体序列中对应载体得到的值,第二差值序列中的差值为第二类含密载体序列中的含密载体减去第二类载体序列中对应载体得
到的值,第一差值序列和第二差值序列中的每个差值为0或+1或-1;
[0025]
步骤1_12b:针对第一差值序列和第二差值序列中的任一个差值,若该差值为+1,则当该差值属于第一差值序列时,将h.265/hevc视频中索引位置为pos+2的像素点的qdst系数的值减1、索引位置为pos+3的像素点的qdst系数的值加1实现这两个qdst系数的失真补偿优化;当该差值属于第二差值序列时,将h.265/hevc视频中索引位置为pos+8的像素点的qdst系数的值减1、索引位置为pos+12的像素点的qdst系数的值加1实现这两个qdst系数的失真补偿优化;
[0026]
若该差值为-1,则当该差值属于第一差值序列时,将h.265/hevc视频中索引位置为pos+2的像素点的qdst系数的值加1、索引位置为pos+3的像素点的qdst系数的值减1实现这两个qdst系数的失真补偿优化;当该差值属于第二差值序列时,将h.265/hevc视频中索引位置为pos+8的像素点的qdst系数的值加1、索引位置为pos+12的像素点的qdst系数的值减1实现这两个qdst系数的失真补偿优化;
[0027]
若该差值为0,则不论该差值属于第一差值序列还是属于第二差值序列,都不对h.265/hevc视频中的任一个像素点的qdst系数进行失真补偿优化;
[0028]
其中,pos表示该差值对应的像素点在h.265/hevc视频中的索引位置;
[0029]
步骤1_13:采用h.265/hevc标准编码器对原始视频进行压缩编码,在压缩编码的变换量化过程中用失真补偿优化后的qdst系数替换相应位置的原始的qdst系数,压缩编码得到含密视频码流;
[0030]
所述的隐秘信息提取的具体过程为:
[0031]
步骤2_1:采用h.265/hevc标准解码器对含密视频码流进行解码,得到解码视频,在解码过程中保存解码视频中的每帧中的每个编码树单元中的每个编码单元的预测模式和深度、每个编码单元对应的pu划分模式、每个编码单元中的每个像素点的qdst系数;
[0032]
步骤2_2:按照步骤1_2至步骤1_9的过程,以相同的方式得到解码视频对应的第一类载体序列、第二类载体序列、第二类载体序列;
[0033]
步骤2_3:利用stc工具包对步骤2_2得到的第一类载体序列进行解码,提取得到第一隐秘信息;同样,利用stc工具包对步骤2_2得到的第二类载体序列进行解码,提取得到第二隐秘信息;利用stc工具包对步骤2_2得到的第三类载体序列进行解码,提取得到第三隐秘信息。
[0034]
所述的步骤1_6中,th取值为1。
[0035]
所述的步骤1_10中,α取值为0.6,k1取值为4,k2取值为1,k3取值为1。
[0036]
所述的步骤1_10中,的值等于修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数引起的该qdst系数所在的尺寸为4
×
4的编码单元的失真矩阵e中的所有元素的绝对值之和,e=h
t
·
δ
·qstep
·26-shift
·
h,其中,符号“·”为点乘运算符号,h表示hevc编码标准中的dst变换矩阵,h
t
为h的转置,δ表示载体模拟嵌入时的修改矩阵,δ的维数为4
×
4,shift表示hevc编码标准中的dst变换过程的缩放系数,floor()为向下取整函数,qp表示h.265/hevc视频的量化参数,it_shift表示hevc编码标准中的dst反变换过程的缩放系数。
[0037]
所述的步骤1_10中,cp
m,n
(i,j)=《p,|qdst
m,n
|》,其中,p表示根据尺寸为4
×
4的编码单元中的所有像素点的qdst系数的统计随机性分析得到的矩阵,qdst
m,n
表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数所在的尺寸为4
×
4的编码单元中的所有像素点的qdst系数构成的系数矩阵,qdst
m,n
的维数为4
×
4,符号“《 》”为内积运算符号,符号“| |”为取绝对值符号。
[0038]
所述的步骤1_10中,其中,inf表示正无穷值,scg表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组中的所有qdst系数的绝对值之和,constant为较小的常量用来防止dnnzc为零,flag表示载体模拟嵌入前后h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组所在的尺寸为4
×
4的编码单元中最后一个非零qdst系数的位置是否发生变化,若发生变化则flag=1,若未发生变化则flag=0,dnnzc表示载体模拟嵌入前后h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组所在的尺寸为4
×
4的编码单元中的非零qdst系数的个数之差,设定该载体对应的像素点在h.265/hevc视频中的索引位置为pos,则:该载体属于第一类载体序列时h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
,qdst
pos+2
,qdst
pos+3
),该载体属于第二类载体序列时h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
,qdst
pos+8
,qdst
pos+12
),该载体属于第三类载体序列时h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
),qdst
pos
表示该载体即h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数,qdst
pos+2
表示h.265/hevc视频中的索引位置为pos+2的像素点的qdst系数,qdst
pos+3
表示h.265/hevc视频中的索引位置为pos+3的像素点的qdst系数,qdst
pos+8
表示h.265/hevc视频中的索引位置为pos+8的像素点的qdst系数,qdst
pos+12
表示h.265/hevc视频中的索引位置为pos+12的像素点的qdst系数。
[0039]
与现有技术相比,本发明的优点在于:
[0040]
1)本发明方法通过对块内失真、帧间失真影响、块纹理复杂度和系数组代价等因素的分析,设计了自适应的失真代价值计算函数,并使用stc算法对qdst系数进行自适应数据隐藏,能够有效地提高隐写后的视频画面质量。
[0041]
2)本发明方法在修改时综合考虑了视频编码的熵编码过程,通过分析修改前后块内系数的最后一个非零系数位置变化、系数绝对值之和、系数非零个数变化等因素,来降低修改后的qdst系数对熵编码产生的影响,从而降低了视频码率增长,提高了隐写的安全性。
[0042]
3)本发明方法能够保证隐秘信息有效地被提取出,并且隐写过程和提取过程是与
hevc视频压缩过程相结合的,因此可以应用于现实生活中的实时通信当中。
附图说明
[0043]
图1为本发明方法的总体实现框图;
[0044]
图2a为第一类候选块的确定示意图;
[0045]
图2b为第二类候选块的确定示意图;
[0046]
图2c为第三类候选块的确定示意图;
[0047]
图3为使用dco方法对原始视频进行数据隐藏后得到的含密视频及使用本发明方法对原始视频进行数据隐藏后得到的含密视频在bir上的结果;
[0048]
图4为使用dco方法对原始视频进行数据隐藏后得到的含密视频及使用本发明方法对原始视频进行数据隐藏后得到的含密视频在隐写分析检测错误率上的结果。
具体实施方式
[0049]
以下结合附图实施例对本发明作进一步详细描述。
[0050]
本发明提出的一种基于失真补偿优化的h.265/hevc视频自适应信息隐藏方法,其总体实现框图如图1所示,包括隐秘信息嵌入和隐秘信息提取两部分。
[0051]
所述的隐秘信息嵌入的具体过程为:
[0052]
步骤1_1:采用h.265/hevc标准编码器对原始视频进行压缩编码,得到h.265/hevc视频,在压缩编码过程中保存h.265/hevc视频中的每帧中的每个编码树单元(ctu,coding tree unit)中的每个编码单元(cu,coding unit)的预测模式和深度、每个编码单元对应的pu(prediction unit)划分模式、每个编码单元中的每个像素点的qdst(quantized discrete sine transform,量化离散正弦变换)系数;其中,编码树单元的尺寸为64
×
64,编码单元的尺寸为64
×
64或32
×
32或16
×
16或8
×
8或4
×
4。
[0053]
步骤1_2:按序遍历h.265/hevc视频中的所有帧,将当前遍历的帧定义为当前帧。
[0054]
步骤1_3:判断当前帧是否为i帧,如果当前帧为i帧,则执行步骤1_4;如果当前帧不为i帧,则直接执行步骤1_8。
[0055]
步骤1_4:按序遍历当前帧中的所有尺寸为4
×
4的编码单元,将当前遍历的尺寸为4
×
4的编码单元定义为当前单元。
[0056]
步骤1_5:将当前单元归类为第一类候选块或第二类候选块或第三类候选块,或对当前单元不作处理,具体过程为:
[0057]
如图2a所示,如果当前单元仅存在相邻的尺寸为4
×
4的左下方编码单元且左下方编码单元的预测模式的数字标识在区间[2,26]内,及相邻的尺寸为4
×
4的正下方编码单元且正下方编码单元的预测模式的数字标识在区间[2,10]内,则将当前单元归类为第一类候选块,然后执行步骤1_6。
[0058]
如图2b所示,如果当前单元仅存在相邻的尺寸为4
×
4的右上方编码单元且右上方编码单元的预测模式的数字标识在区间[10,34]内或为1,及相邻的尺寸为4
×
4的正右方编码单元且正右方编码单元的预测模式的数字标识在区间[26,34]内,则将当前单元归类为第二类候选块,然后执行步骤1_6。
[0059]
如图2c所示,如果当前单元存在相邻的尺寸为4
×
4的左下方编码单元且左下方编
码单元的预测模式的数字标识在区间[2,26]内,并存在相邻的尺寸为4
×
4的正下方编码单元且正下方编码单元的预测模式的数字标识在区间[2,10]内,存在相邻的尺寸为4
×
4的右上方编码单元且右上方编码单元的预测模式的数字标识在区间[10,34]内或为1,存在相邻的尺寸为4
×
4的正右方编码单元且正右方编码单元的预测模式的数字标识在区间[26,34]内,存在相邻的尺寸为4
×
4的右下方编码单元且右下方编码单元的预测模式的数字标识在区间[26,34]内或在区间[2,10]内或为0或为1,则将当前单元归类为第三类候选块,然后执行步骤1_6。
[0060]
对于其余情况,对当前单元不作处理,然后直接执行步骤1_7。
[0061]
上述,左下方编码单元为位于当前单元的左下方的尺寸为4
×
4的编码单元,正下方编码单元为位于当前单元的正下方的尺寸为4
×
4的编码单元,右上方编码单元为位于当前单元的右上方的尺寸为4
×
4的编码单元,正右方编码单元为位于当前单元的正右方的尺寸为4
×
4的编码单元,右下方编码单元为位于当前单元的右下方的尺寸为4
×
4的编码单元,左下方编码单元位于正下方编码单元的正左方,右下方编码单元位于正下方编码单元的正右方,右上方编码单元位于正右方编码单元的正上方,右下方编码单元位于正右方编码单元的正下方。
[0062]
步骤1_6:在当前单元中的所有像素点的qdst系数中选择载体,如果当前单元为第一类候选块,则从当前单元的第1列像素点(即当前单元内坐标位置为(1,1)、(2,1)、(3,1)、(4,1)的4个像素点)的4个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第一类载体,然后执行步骤1_7;如果当前单元为第二类候选块,则从当前单元的第1行像素点(即当前单元内坐标位置为(1,1)、(1,2)、(1,3)、(1,4)的4个像素点)的4个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第二类载体,然后执行步骤1_7;如果当前单元为第三类候选块,则从当前单元的所有像素点的16个qdst系数中选择绝对值大于或等于设定的阈值th的qdst系数作为载体,将这些载体归类为第三类载体,然后执行步骤1_7;其中,th∈(0,10];th的值太大的话载体会较少,嵌入容量就少了;th的值为0的话失真会很大,不建议选取;在本实施例中折衷考虑嵌入容量和失真,th的值选为1。
[0063]
步骤1_7:遍历当前帧中下一个尺寸为4
×
4的编码单元,作为当前单元,然后返回步骤1_5继续执行,直至当前帧中的所有尺寸为4
×
4的编码单元全部遍历完毕,然后执行步骤1_8。
[0064]
步骤1_8:遍历h.265/hevc视频中的下一帧,作为当前帧,然后返回步骤1_3继续执行,直至h.265/hevc视频中的所有帧全部遍历完毕。
[0065]
步骤1_9:将归类为第一类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第一类载体序列;同样,将归类为第二类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第二类载体序列;将归类为第三类载体的所有载体即qdst系数按其对应的像素点在h.265/hevc视频中的索引位置的先后顺序排列构成第三类载体序列。
[0066]
步骤1_10:计算第一类载体序列、第二类载体序列、第三类载体序列中的每个载体模拟嵌入+1或0或-1时的失真代价值,对于任一个载体,设定该载体为h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数,则将该载体的失真
代价值记为ρ
m,n
(i,j),其中,1≤m≤m,m表示h.265/hevc视频中包含的帧的总帧数,1≤n≤n,n表示h.265/hevc视频中的第m帧中包含的编码树单元的总个数,(i,j)表示编码树单元内坐标位置,1≤i≤64,1≤j≤64,表示修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数的块内失真代价值,α表示帧间失真传递率,在本实施例中α取值为0.6,gopsize表示h.265/hevc视频中的一个图像组gop的长度,gopsize的值为4或16或32,在本实施例中gopsize的值取4,q
step
表示h.265/hevc视频的量化步长,cp
m,n
(i,j)表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数所在的尺寸为4
×
4的编码单元的纹理复杂度,τ
m,n
(i,j)表示修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数的系数组代价值,k1、k2、k3均为比例系数,在本实施例中取k1=4、k2=1、k3=1,通过实验发现α取值为0.6且k1=4、k2=1、k3=1时视频嵌入效果较好。
[0067]
步骤1_11:利用同一个嵌入负载率payload随机生成三个不同的二进制隐秘信息序列,对应记为x1、x2、x3;然后根据第一类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc(syndrome-trellis codes,综合网格码)工具包将x1嵌入第一类载体序列中的所有载体中,得到第一类含密载体序列;同样,根据第二类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc工具包将x2嵌入第二类载体序列中的所有载体中,得到第二类含密载体序列;根据第三类载体序列中的所有载体模拟嵌入+1或0或-1时的失真代价值,利用stc工具包将x3嵌入第三类载体序列中的所有载体中,得到第三类含密载体序列;其中,payload∈(0,0.5],在本实施例中payload取0.4,x1的长度为num1×
payload,x2的长度为num2×
payload,x3的长度为num3×
payload,num1表示第一类载体序列中的载体的总个数,num2表示第二类载体序列中的载体的总个数,num3表示第三类载体序列中的载体的总个数。
[0068]
步骤1_12:根据第一类含密载体序列、第一类载体序列、第二类含密载体序列、第二类载体序列进行失真补偿优化,具体过程为:
[0069]
步骤1_12a:计算第一类含密载体序列中的每个含密载体与第一类载体序列中对应载体之间的差值,得到第一差值序列;同样,计算第二类含密载体序列中的每个含密载体与第二类载体序列中对应载体之间的差值,得到第二差值序列;其中,第一差值序列中的差值为第一类含密载体序列中的含密载体减去第一类载体序列中对应载体得到的值,第二差值序列中的差值为第二类含密载体序列中的含密载体减去第二类载体序列中对应载体得到的值,第一差值序列和第二差值序列中的每个差值为0或+1或-1。
[0070]
步骤1_12b:针对第一差值序列和第二差值序列中的任一个差值,若该差值为+1,则当该差值属于第一差值序列时,将h.265/hevc视频中索引位置为pos+2的像素点的qdst系数的值减1、索引位置为pos+3的像素点的qdst系数的值加1实现这两个qdst系数的失真补偿优化;当该差值属于第二差值序列时,将h.265/hevc视频中索引位置为pos+8的像素点的qdst系数的值减1、索引位置为pos+12的像素点的qdst系数的值加1实现这两个qdst系数的失真补偿优化。
[0071]
若该差值为-1,则当该差值属于第一差值序列时,将h.265/hevc视频中索引位置
为pos+2的像素点的qdst系数的值加1、索引位置为pos+3的像素点的qdst系数的值减1实现这两个qdst系数的失真补偿优化;当该差值属于第二差值序列时,将h.265/hevc视频中索引位置为pos+8的像素点的qdst系数的值加1、索引位置为pos+12的像素点的qdst系数的值减1实现这两个qdst系数的失真补偿优化。
[0072]
若该差值为0,则不论该差值属于第一差值序列还是属于第二差值序列,都不对h.265/hevc视频中的任一个像素点的qdst系数进行失真补偿优化。
[0073]
其中,pos表示该差值对应的像素点在h.265/hevc视频中的索引位置。
[0074]
例如:h.265/hevc视频中索引位置为pos的像素点的qdst系数、索引位置为pos+2的像素点的qdst系数、索引位置为pos+3的像素点的qdst系数对应分别为5、6、7,h.265/hevc视频中索引位置为pos的像素点的qdst系数属于第一类载体序列,h.265/hevc视频中索引位置为pos的像素点的qdst系数在嵌入隐秘信息后得到的qdst系数即含密载体为6,得到的差值为+1,这样h.265/hevc视频中索引位置为pos+2的像素点的qdst系数和索引位置为pos+3的像素点的qdst系数经失真补偿优化得到的失真补偿优化后的qdst系数对应为5和8。即隐写前pos处的系数组为(5,6,7),而隐写和失真补偿优化后pos处的系数组为(6,5,8)。
[0075]
步骤1_13:采用h.265/hevc标准编码器对原始视频进行压缩编码,在压缩编码的变换量化过程中用失真补偿优化后的qdst系数替换相应位置的原始的qdst系数,压缩编码得到含密视频码流。
[0076]
所述的隐秘信息提取的具体过程为:
[0077]
步骤2_1:采用h.265/hevc标准解码器对含密视频码流进行解码,得到解码视频,在解码过程中保存解码视频中的每帧中的每个编码树单元中的每个编码单元的预测模式和深度、每个编码单元对应的pu划分模式、每个编码单元中的每个像素点的qdst系数。
[0078]
步骤2_2:按照步骤1_2至步骤1_9的过程,以相同的方式得到解码视频对应的第一类载体序列、第二类载体序列、第二类载体序列。
[0079]
步骤2_3:利用stc工具包对步骤2_2得到的第一类载体序列进行解码,提取得到第一隐秘信息;同样,利用stc工具包对步骤2_2得到的第二类载体序列进行解码,提取得到第二隐秘信息;利用stc工具包对步骤2_2得到的第三类载体序列进行解码,提取得到第三隐秘信息。
[0080]
在本实施例中,步骤1_10中,的值等于修改h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数引起的该qdst系数所在的尺寸为4
×
4的编码单元的失真矩阵e中的所有元素的绝对值之和,e=h
t
·
δ
·qstep
·26-shift
·
h,其中,符号“·”为点乘运算符号,h表示hevc编码标准中的dst变换矩阵,h
t
为h的转置,δ表示载体模拟嵌入时的修改矩阵,δ的维数为4
×
4,δ由hevc编码过程中给出,δ实际由载体模拟嵌入+1或0或-1时的修改量决定,若载体(该载体对应的像素点的索引位置为pos时)的修改量为t,则当该载体属于第一类载体序
列时,索引位置为pos+2的像素点的qdst系数和索引位置为pos+3的像素点的qdst系数的补偿修改量为-t,当该载体属于第二类载体序列时,索引位置为pos+8的像素点的qdst系数和索引位置为pos+12的像素点的qdst系数的补偿修改量为t,当该载体属于第三类载体序列时,t的值为1或-1或0,shift表示hevc编码标准中的dst变换过程的缩放系数,floor()为向下取整函数,qp表示h.265/hevc视频的量化参数,it_shift表示hevc编码标准中的dst反变换过程的缩放系数。
[0081]
在本实施例中,步骤1_10中,cp
m,n
(i,j)=《p,|qdst
m,n
|》,其中,p表示根据尺寸为4
×
4的编码单元中的所有像素点的qdst系数的统计随机性分析得到的矩阵,用于表征最大分布统计特征,qdst
m,n
表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数所在的尺寸为4
×
4的编码单元中的所有像素点的qdst系数构成的系数矩阵,qdst
m,n
的维数为4
×
4,符号“《 》”为内积运算符号,符号“| |”为取绝对值符号。
[0082]
在本实施例中,步骤1_10中,其中,inf表示正无穷值,scg表示h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组中的所有qdst系数的绝对值之和,constant为较小的常量用来防止dnnzc为零,如constant取值为0.001,flag表示载体模拟嵌入前后h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组所在的尺寸为4
×
4的编码单元中最后一个非零qdst系数的位置是否发生变化,若发生变化则flag=1,若未发生变化则flag=0,dnnzc表示载体模拟嵌入前后h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组所在的尺寸为4
×
4的编码单元中的非零qdst系数的个数之差,设定该载体对应的像素点在h.265/hevc视频中的索引位置为pos,则:该载体属于第一类载体序列时h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
,qdst
pos+2
,qdst
pos+3
),该载体属于第二类载体序列时h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
,qdst
pos+8
,qdst
pos+12
),该载体属于第三类载体序列时h.265/hevc视频中的第m帧中
的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数对应的系数组为(qdst
pos
),qdst
pos
表示该载体即h.265/hevc视频中的第m帧中的第n个编码树单元中坐标位置为(i,j)的像素点的qdst系数,qdst
pos+2
表示h.265/hevc视频中的索引位置为pos+2的像素点的qdst系数,qdst
pos+3
表示h.265/hevc视频中的索引位置为pos+3的像素点的qdst系数,qdst
pos+8
表示h.265/hevc视频中的索引位置为pos+8的像素点的qdst系数,qdst
pos+12
表示h.265/hevc视频中的索引位置为pos+12的像素点的qdst系数。
[0083]
为进一步说明本发明方法的可行性和有效性,对本发明方法进行实验。
[0084]
在此选用了分辨率为1920
×
1080的4种不同视频序列,分别为“basketballdrive”、“bqterrace”、“cactus”和“parkscene”。本发明方法是在h.265/hevc参考软件hm16.15下进行的,使用自带的encoder_lowdelay_p_main.cfg配置文件进行编码,其中,视频序列的编码结构为ippp,图像组gop的长度为4,帧数为40帧(即每个视频序列各选取前40帧),编码量化参数qp固定为25,其余编码参数与原配置文件保持一致。
[0085]
为了进一步说明本发明方法的有效性,在此使用了峰值信噪比(peak signal-to-noise ratio,psnr)、结构相似性(structural similarity、ssim)、均方误差(mean squared error,mse)、比特率增长(bit increase rate,bir)和隐写分析检测错误率(detection error rate)等五个指标来评价hevc视频数据隐藏所带来的视觉质量影响,其中,psnr和ssim值越大,表示视频画面质量越佳;mse越小,表示视频画面质量越佳;bir越小,表示隐写方法对视频码率的影响越小;隐写分析检测错误率越大,表示隐写方法越能欺骗隐写分析检测。
[0086]
表1给出了仅使用hm编码器对原始视频进行压缩后得到的视频、使用dco方法对原始视频进行数据隐藏后得到的含密视频、使用本发明方法对原始视频进行数据隐藏后得到的含密视频在psnr、ssim、mse上的结果比较。
[0087]
表1三种方法得到的psnr、ssim、mse比较
[0088][0089]
在表1中,“original”指使用hm编码器对原始视频进行压缩的方法,dco方法指yunxia l,shuyang l,hongguo z,et al.a new data hiding method for h.265/hevc video streams without intra-frame distortion drift[j].multimedia tools&applications,2018.(一种新型的无帧内失真漂移的h.265/hevc数据隐藏方法)。
[0090]
从表1所列的数据中可以得出,经本发明方法修改后的含密视频序列在视频画面质量上要优于对比方法。
[0091]
图3给出了使用dco方法对原始视频进行数据隐藏后得到的含密视频及使用本发明方法对原始视频进行数据隐藏后得到的含密视频在bir上的结果,图4给出了使用dco方
法对原始视频进行数据隐藏后得到的含密视频及使用本发明方法对原始视频进行数据隐藏后得到的含密视频在隐写分析检测错误率上的结果。
[0092]
从图3所示的数据中可以得出,经本发明方法修改后的含密视频序列的码率影响要比对比方法更小。从图4所列的数据中可以得出,经本发明方法修改后的大部分含密视频序列的隐写分析检测错误率都要高于对比方法,说明本发明方法的安全性更高。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1