System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种高效的h264视频隐写方法。
技术介绍
1、数字视频作为网络空间中广泛应用的媒体,是承载秘密信息的良好载体,常被用来构建隐蔽通信。其中,基于运动矢量的视频隐写算法研究广泛,但现有该类隐写算法多需对原始载体文件完全解码后,在重新经过帧内预测、帧间预测、dct变换、量化和熵编码等一系列编码过程中置入隐写方法,但该实现方式效率低,同时,大多数方法还存在隐写容量小等缺点。
技术实现思路
1、本专利技术的目的,在于提供一种高效的h264视频隐写方法,能够安全高效地对需要隐写的秘密信息进行完整一致地嵌入和提取,有较好的嵌入容量,可以满足用户对隐密通信的需求。
2、为了达成上述目的,本专利技术的解决方案是:
3、一种高效的h264视频隐写方法,用于将待隐藏信息嵌入原始视频中;包括如下步骤:
4、步骤a1,基于待隐藏信息,得到待隐藏二进制序列s;
5、步骤a2,读取原始视频码流,当nal单元为p_nal类型或b_nal类型时,对其中的slice采用载体打乱和构造策略从可用宏块中选取出载体序列c;并将所有载体的最低有效位信息按顺序保存为序列g;
6、步骤a3,构建stc奇偶校验矩阵,通过stc编码计算出失真代价最小的嵌入路径g′,根据g′修改载体序列c,得到载密的载体序列c′;
7、步骤a4,从载体序列c′中按序提取宏块,得到序列cover′,并修改slice中宏块的运动矢量残差,进行熵编码后写回码流,完成该s
8、步骤a5,判断所述该slice所在nal单元是否已处理完成,已处理完成则转入下一个nal单元,否则转入下一个slice;直至待隐藏二进制序列s嵌入完成,输出视频文件。
9、上述步骤a1的具体内容是,
10、步骤a11,将待隐藏信息加密,然后转化为二进制形式序列m=(m1,m2,...,mle),le为秘密信息二进制序列长度;
11、步骤a12,将le加密并转化成32位二进制形式得到序列l=(l1,l2,...,l32);
12、步骤a13,合并序列l和m,得到待隐藏二进制序列s=l+m=(l1,l2,...,l32,m1,m2,...,mle),即s=(s1,s2,...,s32+le)。
13、上述步骤a2中,对于某个p_nal类型或b_nal类型的nal单元,跳过nalheader以及slice header,判断slice data的类型为p slice或b slice,对其采用载体打乱和构造策略,否则跳过该slice。
14、上述步骤a2中,采用载体打乱和构造策略从可用宏块中选取出载体序列的具体内容是,
15、从slice中第一个宏块开始,除了16×16分割形式宏块、非p宏块或非b宏块外,依次从每个宏块中提取1个运动矢量残差的竖直分量mvdx和水平分量mvdy中绝对值较大的分量,直至slice中最后一个宏块;
16、再重新从slice中第一个宏块开始,重复以上操作,直至所有分量提取完毕;在此过程中,若宏块中无可提取的分量,则跳过该宏块;
17、提取到的分量序列即为载体序列c。
18、上述步骤a3中,构建stc奇偶校验矩阵的方法是,基于嵌入率α以及基础矩阵建立stc奇偶校验矩阵hstc;其中,stc编码的嵌入率α受基础矩阵中w决定,当为整数时,否则,w有两个取值其中表示向下取整运算;
19、
20、其中,取值为0或1。
21、上述步骤a3中,通过stc编码计算出失真代价最小的嵌入路径g′,根据g′修改载体序列c,得到载密的载体序列c′;具体包括如下步骤,
22、步骤a31,将待隐藏二进制序列s中第countm位开始,依次提取出个bits作为stc嵌入的秘密信息,应用stc构造出使得总体隐写嵌入代价最小的嵌入路径g′;
23、步骤a32,比较序列g=(lsb1,lsb2,...,lsbn)和g′=(lsb1′,lsb2′,...,lsbn′),若lsbi≠lsbi′,则需对载体序列c=(c1,c2,...,cn)中对应位的嵌入载体ci进行修改得到cni′,否则不需修改,令cni′=ci;最终得到载密的载体序列c′=(c1′,c2′,...,cn′);其中,lsb1表示c1的最低有效位值,c1表示运动矢量残差的竖直分量和水平分量中绝对值较大的分量。
24、上述步骤a32中,对嵌入载体ci进行修改的方法是,
25、若mvdxi!=mvdyi且ci为正奇数或负偶数,则将ci减1,得到ci′;
26、若mvdxi!=mvdyi且ci为正偶数或负奇数,则将ci加1,得到ci′;
27、若mvdxi==mvdyi且ci为正数,则将ci加1,得到ci′;
28、若mvdxi==mvdyi且ci为负数,则将ci减1,得到ci′;
29、其中,mvdx1和mvdy1分别表示宏块的运动矢量残差的竖直分量和水平分量。
30、上述步骤a4的具体过程是,
31、步骤a41,按照fg中宏块的序号,先按照从左到右的顺序从序列c′依次提取所处的宏块为第一个宏块的元素,直至到序列结尾;再按照从左到右的顺序从c′序列依次提取所处的宏块为第二个宏块的元素;以此类推,直至最后一个宏块,将提取到的元素序列记为cover′;其中,fg为选取宏块构建序列c时对应的序号;
32、步骤a42,按照cover′序列,修改slice中所有宏块中运动矢量残差的竖直分量mvdx和水平分量mvdy中绝对值较大的分量,修改完成后,将运动矢量残差重新进行熵编码后写回码流,完成该slice编码。
33、采用上述方案后,本专利技术的有益效果包括:
34、(1)本专利技术通过对h264编码的宏块语义层进行分析,利用熵解码方法从宏块中直接提取到运动矢量残差,并修改其值来实现信息嵌入,嵌入后再将其熵编码回写到码流,嵌入过程不需要完全解码和重新编码,嵌入效率高,具有良好的实用性。
35、(2)本专利技术通过对修改不同分割形式宏块的运动矢量残差可能会造成的失真进行分析,设计作为隐写载体的运动矢量残差的打乱策略和针对打乱后载体的嵌入失真代价函数,通过stc编码选择失真代价最小的嵌入路径,从而实现较好嵌入容量。
本文档来自技高网...【技术保护点】
1.一种高效的H264视频隐写方法,用于将待隐藏信息嵌入原始视频中;其特征在于包括如下步骤:
2.如权利要求1所述的方法,其特征在于:所述步骤A1的具体内容是,
3.如权利要求1所述的方法,其特征在于:所述步骤A2中,对于某个P_NAL类型或B_NAL类型的NAL单元,跳过NALheader以及slice header,判断slice data的类型为P slice或Bslice,对其采用载体打乱和构造策略,否则跳过该slice。
4.如权利要求1所述的方法,其特征在于:所述步骤A2中,采用载体打乱和构造策略从可用宏块中选取出载体序列的具体内容是,
5.如权利要求1所述的方法,其特征在于:所述步骤A3中,构建STC奇偶校验矩阵的方法是,基于嵌入率α以及基础矩阵建立STC奇偶校验矩阵HSTC;其中,STC编码的嵌入率α受基础矩阵中w决定,当为整数时,否则,w有两个取值其中表示向下取整运算;
6.如权利要求1所述的方法,其特征在于:所述步骤A3中,通过STC编码计算出失真代价最小的嵌入路径G′,根据G′修改载体序列C,得到载
7.如权利要求6所述的方法,其特征在于:所述步骤A32中,对嵌入载体ci进行修改的方法是,
8.如权利要求1所述的方法,其特征在于:所述步骤A4的具体过程是,
...【技术特征摘要】
1.一种高效的h264视频隐写方法,用于将待隐藏信息嵌入原始视频中;其特征在于包括如下步骤:
2.如权利要求1所述的方法,其特征在于:所述步骤a1的具体内容是,
3.如权利要求1所述的方法,其特征在于:所述步骤a2中,对于某个p_nal类型或b_nal类型的nal单元,跳过nalheader以及slice header,判断slice data的类型为p slice或bslice,对其采用载体打乱和构造策略,否则跳过该slice。
4.如权利要求1所述的方法,其特征在于:所述步骤a2中,采用载体打乱和构造策略从可用宏块中选取出载体序列的具体内容是,
5....
【专利技术属性】
技术研发人员:陈明志,姚宏玮,翁齐昌,翁才杰,许春耀,饶庆裕,杨小权,张桂煌,叶城,
申请(专利权)人:北卡科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。