一种基于残差系数配对的HEVC视频数据隐藏方法与流程

文档序号:22554768发布日期:2020-10-17 02:35阅读:77来源:国知局
一种基于残差系数配对的HEVC视频数据隐藏方法与流程

本发明涉及一种数字视频的数据隐藏技术,尤其是涉及一种基于残差系数配对的hevc视频数据隐藏方法。



背景技术:

随着移动互联网、智能终端设备的飞速发展,人们可以方便地获取、存储和传输数字视频,但随之而来的视频数据安全问题也面临着严峻挑战。如何保证数字视频的内容安全,防止数字视频中蕴含的信息在通信和存储的过程中被不法分子窃听、截获、破坏或篡改,已成为网络空间安全领域的重要研究问题。

数据隐藏的基本思想是指利用人类感知及数字媒体自身的冗余,将特定的信息嵌入到可以公开传输的数字化媒体中,从而实现隐秘通信。数据隐藏的目的不在于限制正常的信息存取和访问,而在于保证隐藏的信息不引起监控者的注意和重视,从而减少被攻击的可能性,是解决隐秘通信、保护数字化媒体版权和内容真实性的有效手段。

数据隐藏方法强烈依赖于载体,不同载体的实现方法会相去甚远。hevc是专门为高清和超高清视频编码提出的最新视频压缩编码标准,结合hevc视频压缩编码标准的数据隐藏是信息安全领域的前沿课题。目前,直接针对hevc视频码流的数据隐藏方法还相对较少,现有的方法主要是通过等长二进制串映射进行数据嵌入,但是二进制串空间没有被有效挖掘,数据嵌入容量还有待提升。



技术实现要素:

本发明所要解决的技术问题是提供一种基于残差系数配对的hevc视频数据隐藏方法,其能够很好地满足实时视频的应用需求,且数据隐藏容量大,并能够保证隐秘信息隐藏的安全性。

本发明解决上述技术问题所采用的技术方案为:一种基于残差系数配对的hevc视频数据隐藏方法,包括隐秘信息嵌入和隐秘信息提取两部分,其特征在于:

所述的隐秘信息嵌入部分的具体过程如下:

①_1、在hevc视频压缩编码标准中,abscoefflevel值表示非零残差系数幅值绝对值,coeff_abs_level_remaining值表示非零残差系数幅值绝对值的剩余部分,rice参数的取值范围为0~4;选择rice参数的值为0的情况进行隐秘信息嵌入;

①_2、按序处理待嵌入隐秘信息的hevc视频码流中的每个尺寸大小为4×4和8×8的子块,将待嵌入隐秘信息的hevc视频码流中当前待处理的尺寸大小为4×4或8×8的子块定义为当前子块;将待嵌入的隐秘信息中当前待嵌入的信息比特定义为当前信息比特;

①_3、对当前子块进行熵解码,识别出当前子块中的所有残差系数的abscoefflevel值和coeff_abs_level_remaining值;然后将当前子块中的所有残差系数的coeff_abs_level_remaining值按序两两组成配对,若当前子块中的残差系数的个数为h个,那么配对的个数为int(h/2),其中,int()为向下取整函数;

①_4、将当前待处理的配对定义为当前配对;

①_5、比较当前配对中的两个coeff_abs_level_remaining值与3的大小,若当前配对中存在一个coeff_abs_level_remaining值大于3,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤①_7;若当前配对中的两个coeff_abs_level_remaining值均小于或等于3,则执行步骤①_6;

①_6、判断当前配对中的两个coeff_abs_level_remaining值的差值的绝对值是否为1,如果不为1,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤①_7;否则,执行当前信息比特的嵌入操作,具体如下:

若当前信息比特为“0”且当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则保持当前配对中的两个coeff_abs_level_remaining值不变,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7;

若当前信息比特为“0”且当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则将当前配对中的两个coeff_abs_level_remaining值进行交换,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7;

若当前信息比特为“1”且当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则保持当前配对中的两个coeff_abs_level_remaining值不变,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7;

若当前信息比特为“1”且当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则将当前配对中的两个coeff_abs_level_remaining值进行交换,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7;

①_7、将下一个待处理的配对作为当前配对,然后返回步骤①_5继续执行,直至当前子块对应的所有配对处理完毕,再执行步骤①_8;

①_8、将待嵌入隐秘信息的hevc视频码流中下一个待处理的尺寸大小为4×4或8×8的子块作为当前子块,然后返回步骤①_3继续执行,直至待嵌入隐秘信息的hevc视频码流中的所有尺寸大小为4×4和8×8的子块处理完毕,或直至待嵌入的隐秘信息中的所有信息比特嵌入完毕,完成hevc视频码流的数据隐藏,得到含隐秘信息的hevc视频码流;

所述的隐秘信息提取部分的具体过程如下:

②_1、选择rice参数的值为0的情况进行隐秘信息提取;

②_2、按序处理含隐秘信息的hevc视频码流中的每个尺寸大小为4×4和8×8的子块,将含隐秘信息的hevc视频码流中当前待处理的尺寸大小为4×4或8×8的子块定义为当前子块;

②_3、对当前子块进行熵解码,识别出当前子块中的所有残差系数的abscoefflevel值和coeff_abs_level_remaining值;然后将当前子块中的所有残差系数的coeff_abs_level_remaining值按序两两组成配对,若当前子块中的残差系数的个数为g个,那么配对的个数为int(g/2),其中,int()为向下取整函数;

②_4、将当前待处理的配对定义为当前配对;

②_5、比较当前配对中的两个coeff_abs_level_remaining值与3的大小,若当前配对中存在一个coeff_abs_level_remaining值大于3,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤②_7;若当前配对中的两个coeff_abs_level_remaining值均小于或等于3,则执行步骤②_6;

②_6、判断当前配对中的两个coeff_abs_level_remaining值的差值的绝对值是否为1,如果不为1,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤②_7;否则,执行信息比特的提取操作,具体如下:

若当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则提取出信息比特“0”;

若当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则提取出信息比特“1”;

②_7、将下一个待处理的配对作为当前配对,然后返回步骤②_5继续执行,直至当前子块对应的所有配对处理完毕,再执行步骤②_8;

②_8、将含隐秘信息的hevc视频码流中下一个待处理的尺寸大小为4×4或8×8的子块作为当前子块,然后返回步骤②_3继续执行,直至含隐秘信息的hevc视频码流中的所有尺寸大小为4×4和8×8的子块处理完毕,提取得到隐秘信息。

与现有技术相比,本发明的优点在于:

1)本发明方法中的隐秘信息嵌入和隐秘信息提取在hevc视频码流部分熵解码后进行,能够很好地满足实时视频的应用需求。

2)本发明方法根据残差系数的二进制串特性,采用残差系数的coeff_abs_level_remaining值配对修改的方式来嵌入隐秘信息,即选择rice参数的值为0且前后两个coeff_abs_level_remaining值均小于或等于3且前后两个coeff_abs_level_remaining值的差值的绝对值为1时来嵌入隐秘信息,与现有的等长二进制串映射的数据隐藏方法进行结合,从而有效提升了数据嵌入容量。

3)利用本发明方法嵌入隐秘信息后的一个配对中的两个coeff_abs_level_remaining值能够保持与原始的一个配对中的两个coeff_abs_level_remaining值的长度不变,因此利用本发明方法嵌入隐秘信息后不会改变原始的hevc视频码流的码流结构,从而有效地避免了由于数据隐藏操作而出现的整个数字视频的编码比特率增加和文件长度改变等问题,有效地保证了隐秘数据隐藏的安全性。

附图说明

图1为本发明方法中的隐秘信息嵌入部分的总体实现框图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提出的一种基于残差系数配对的hevc视频数据隐藏方法,其包括隐秘信息嵌入和隐秘信息提取两部分。

如图1所示,所述的隐秘信息嵌入部分的具体过程如下:

①_1、在hevc视频压缩编码标准中,abscoefflevel值表示非零残差系数幅值绝对值,coeff_abs_level_remaining值表示非零残差系数幅值绝对值的剩余部分,rice参数的取值范围为0~4;选择rice参数的值为0的情况进行隐秘信息嵌入。

①_2、按序处理待嵌入隐秘信息的hevc视频码流中的每个尺寸大小为4×4和8×8的子块,将待嵌入隐秘信息的hevc视频码流中当前待处理的尺寸大小为4×4或8×8的子块定义为当前子块;将待嵌入的隐秘信息中当前待嵌入的信息比特定义为当前信息比特。

①_3、对当前子块进行熵解码,识别出当前子块中的所有残差系数的abscoefflevel值和coeff_abs_level_remaining值;然后将当前子块中的所有残差系数的coeff_abs_level_remaining值按序两两组成配对,若当前子块中的残差系数的个数为h个,那么配对的个数为int(h/2),其中,int()为向下取整函数。

①_4、将当前待处理的配对定义为当前配对。

①_5、比较当前配对中的两个coeff_abs_level_remaining值与3的大小,若当前配对中存在一个coeff_abs_level_remaining值大于3,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤①_7;若当前配对中的两个coeff_abs_level_remaining值均小于或等于3,则执行步骤①_6。

①_6、判断当前配对中的两个coeff_abs_level_remaining值的差值的绝对值是否为1,如果不为1,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤①_7;否则,执行当前信息比特的嵌入操作,具体如下:

若当前信息比特为“0”且当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则保持当前配对中的两个coeff_abs_level_remaining值不变,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7。

若当前信息比特为“0”且当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则将当前配对中的两个coeff_abs_level_remaining值进行交换,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7。

若当前信息比特为“1”且当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则保持当前配对中的两个coeff_abs_level_remaining值不变,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7。

若当前信息比特为“1”且当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则将当前配对中的两个coeff_abs_level_remaining值进行交换,完成当前信息比特的嵌入,然后将待嵌入的隐秘信息中的下一位信息比特作为当前信息比特,再执行步骤①_7。

①_7、将下一个待处理的配对作为当前配对,然后返回步骤①_5继续执行,直至当前子块对应的所有配对处理完毕,再执行步骤①_8。

①_8、将待嵌入隐秘信息的hevc视频码流中下一个待处理的尺寸大小为4×4或8×8的子块作为当前子块,然后返回步骤①_3继续执行,直至待嵌入隐秘信息的hevc视频码流中的所有尺寸大小为4×4和8×8的子块处理完毕,或直至待嵌入的隐秘信息中的所有信息比特嵌入完毕,完成hevc视频码流的数据隐藏,得到含隐秘信息的hevc视频码流。

所述的隐秘信息提取部分的具体过程如下:

②_1、选择rice参数的值为0的情况进行隐秘信息提取。

②_2、按序处理含隐秘信息的hevc视频码流中的每个尺寸大小为4×4和8×8的子块,将含隐秘信息的hevc视频码流中当前待处理的尺寸大小为4×4或8×8的子块定义为当前子块。

②_3、对当前子块进行熵解码,识别出当前子块中的所有残差系数的abscoefflevel值和coeff_abs_level_remaining值;然后将当前子块中的所有残差系数的coeff_abs_level_remaining值按序两两组成配对,若当前子块中的残差系数的个数为g个,那么配对的个数为int(g/2),其中,int()为向下取整函数。

②_4、将当前待处理的配对定义为当前配对。

②_5、比较当前配对中的两个coeff_abs_level_remaining值与3的大小,若当前配对中存在一个coeff_abs_level_remaining值大于3,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤②_7;若当前配对中的两个coeff_abs_level_remaining值均小于或等于3,则执行步骤②_6。

②_6、判断当前配对中的两个coeff_abs_level_remaining值的差值的绝对值是否为1,如果不为1,则对当前配对中的两个coeff_abs_level_remaining值不作处理,然后执行步骤②_7;否则,执行信息比特的提取操作,具体如下:

若当前配对中的前一个coeff_abs_level_remaining值小于后一个coeff_abs_level_remaining值,则提取出信息比特“0”。

若当前配对中的前一个coeff_abs_level_remaining值大于后一个coeff_abs_level_remaining值,则提取出信息比特“1”。

②_7、将下一个待处理的配对作为当前配对,然后返回步骤②_5继续执行,直至当前子块对应的所有配对处理完毕,再执行步骤②_8。

②_8、将含隐秘信息的hevc视频码流中下一个待处理的尺寸大小为4×4或8×8的子块作为当前子块,然后返回步骤②_3继续执行,直至含隐秘信息的hevc视频码流中的所有尺寸大小为4×4和8×8的子块处理完毕,提取得到隐秘信息。

hevc视频在熵编码过程中,采用golomb-rice码对语法元素coeff_abs_level_remaining值进行二值化,对二值化所生成的cabac二进制串采用等概率的二进制算法编码bypass模式进行熵编码。正是由于采取bypss模式进行熵编码,因此保证了对语法元素coeff_abs_level_remaining值进行调制不会破坏hevc视频码流的兼容性与压缩率。表1给出了hevc视频压缩编码标准中的rice参数的值为0时coeff_abs_level_remaining值的cabac二进制串。

表1hevc视频压缩编码标准中的rice参数的值为0时coeff_abs_level_remaining值的cabac二进制串

从表1中可以看出,当coeff_abs_level_remaining值大于3时,均能找到一个与之等长的cabac二进制串,现有的针对hevc视频码流的数据隐藏方法正是基于等长二进制串映射实现的。但是,当coeff_abs_level_remaining值小于或等于3时,由于不满足等长二进制串映射的条件,因此现有的针对hevc视频码流的数据隐藏方法都是对这些coeff_abs_level_remaining值放弃不用。但是统计分析发现,残差系数经过量化之后,系数值通常很小,小于或等于3的coeff_abs_level_remaining值占了很大比例,为此,本发明方法开发利用coeff_abs_level_remaining值小于或等于3的残差系数进行信息嵌入,从而提高hevc视频数据隐藏方法的嵌入容量。

由于hevc视频压缩编码标准中rice参数为0时,coeff_abs_level_remaining值小于或等于3的残差系数不满足等长二进制串映射条件,因此本发明方法进行相邻残差系数的coeff_abs_level_remaining值配对,即相邻两个coeff_abs_level_remaining值的差值的绝对值为1,则组成一个可嵌入信息的二进制串对即配对。例如,从表1中可以看出,当前后两个残差系数的coeff_abs_level_remaining值分别为1和2时,可以组成二进制串对(10,110),若当前信息比特为“0”,则保持二进制串对不变,即保持前后两个残差系数的coeff_abs_level_remaining值不变;若当前信息比特为“1”,则根据嵌入规则,二进制串对将调整为(110,10),即对前后两个残差系数的coeff_abs_level_remaining值进行调换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1