发明内容
本发明的主要目的在于提供变化比特数的视频隐写方法、用户设备、存储介质及装置,旨在解决无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
为实现上述目的,本发明提供一种变化比特数的视频隐写方法,所述变化比特数的视频隐写方法包括以下步骤:
获取待隐写3D H.264视频;
从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组;
根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数;
将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数;
根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组;
根据所述第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在所述待隐写3D H.264视频中写入所述第一目标隐藏信息。
优选地,所述根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数,包括:
在所述原始QDCT系数组为第一预设QDCT系数组时,在预设变更模型中确定与所述第一预设QDCT系数组对应的第一比特数计算公式;
根据所述原始QDCT系数组通过所述第一比特数计算公式计算出待写入的第一原始信息比特数。
优选地,所述将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数,包括:
将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果;
在所述比较结果为第一预设比较结果时,基于第一预设比特数变更规则对所述第一原始信息比特数进行变更,以获得变更后的第一目标信息比特数。
优选地,所述将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果之后,所述变化比特数的视频隐写方法还包括:
在所述比较结果为第二预设比较结果时,基于第二预设比特数变更规则维持所述第一原始信息比特数不变更,以将所述第一原始信息比特数作为第一目标信息比特数。
优选地,所述根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数之后,所述变化比特数的视频隐写方法还包括:
在所述原始QDCT系数组的数值为第一预设QDCT系数组时,在所述预设变更模型中确定与所述第一预设QDCT系数组对应的第一基准值确定公式;
根据所述第一原始信息比特数与所述原始QDCT系数组通过所述第一基准值确定公式计算出待写入的第一基准值,并将所述第一基准值作为预设基准值。
优选地,所述原始QDCT系数组中包括各坐标轴系数;
所述根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组,包括:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组。
优选地,所述第一目标变更规则中包括第一待变更系数确定公式与第一系数修改公式;
所述在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组,包括:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据所述第一待变更系数确定公式确定所述原始QDCT系数组中的第一待修改坐标轴系数;
根据所述第一系数修改公式对所述原始QDCT系数组中的第一待修改坐标轴系数的数值进行变更,以获得变更后的第一目标QDCT系数组。
此外,为实现上述目的,本发明还提出一种用户设备,所述用户设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的变化比特数的视频隐写程序,所述变化比特数的视频隐写程序配置为实现如上文所述的变化比特数的视频隐写方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有变化比特数的视频隐写程序,所述变化比特数的视频隐写程序被处理器执行时实现如上文所述的变化比特数的视频隐写方法的步骤。
此外,为实现上述目的,本发明还提出一种变化比特数的视频隐写装置,所述变化比特数的视频隐写装置包括:
信息处理模块,用于获取待隐写3D H.264视频;
系数解析模块,用于从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组;
原始比特数确定模块,用于根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数;
目标比特数确定模块,用于将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数;
系数变更模块,用于根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组;
视频编码模块,用于根据所述第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在所述待隐写3D H.264视频中写入所述第一目标隐藏信息。
在本发明中将从待隐写3D H.264视频中选取出原始QDCT系数组,并基于预设变更模型确定待写入的第一原始隐藏信息的比特数即第一原始信息比特数;将符合第一原始隐藏信息与预设基准值进行比较,进而根据比较结果确定第一目标信息比特数;基于第一目标信息比特数对应的第一目标隐藏信息对原始QDCT系数组进行变更,以获得第一目标QDCT系数组;根据第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在待隐写3DH.264视频中写入第一目标隐藏信息。明显地,本发明在待隐写3D H.264视频的原始QDCT系数组中写入的隐藏信息的比特数将由预设变更模型确定,可见,这将使得实际写入的隐藏信息的比特数具有可变性;此外,还将额外基于预设基准值对隐藏信息的比特数进行调整,以进一步地提高嵌入效率并增加了嵌入方式的灵活性;最终,将基于QDCT系数组之间的关联性来嵌入该比特数可变的隐藏信息。如此操作3D H.264格式的视频既不明显影响QDCT系数分布、能量分布和像素分布进而保证了目标隐藏信息的隐藏性能,也大大提高了实际嵌入隐藏信息时的嵌入效率,从而可以较好地针对3D H.264视频来嵌入隐藏信息,也就解决了无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的用户设备结构示意图。
如图1所示,该用户设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对用户设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及变化比特数的视频隐写程序。
在图1所示的用户设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接外设;所述用户设备通过处理器1001调用存储器1005中存储的变化比特数的视频隐写程序,并执行以下操作:
获取待隐写3D H.264视频;
从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组;
根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数;
将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数;
根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组;
根据所述第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在所述待隐写3D H.264视频中写入所述第一目标隐藏信息。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
在所述原始QDCT系数组为第一预设QDCT系数组时,在预设变更模型中确定与所述第一预设QDCT系数组对应的第一比特数计算公式;
根据所述原始QDCT系数组通过所述第一比特数计算公式计算出待写入的第一原始信息比特数。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果;
在所述比较结果为第一预设比较结果时,基于第一预设比特数变更规则对所述第一原始信息比特数进行变更,以获得变更后的第一目标信息比特数。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
在所述比较结果为第二预设比较结果时,基于第二预设比特数变更规则维持所述第一原始信息比特数不变更,以将所述第一原始信息比特数作为第一目标信息比特数。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
在所述原始QDCT系数组的数值为第一预设QDCT系数组时,在所述预设变更模型中确定与所述第一预设QDCT系数组对应的第一基准值确定公式;
根据所述第一原始信息比特数与所述原始QDCT系数组通过所述第一基准值确定公式计算出待写入的第一基准值,并将所述第一基准值作为预设基准值。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组。
进一步地,处理器1001可以调用存储器1005中存储的变化比特数的视频隐写程序,还执行以下操作:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据所述第一待变更系数确定公式确定所述原始QDCT系数组中的第一待修改坐标轴系数;
根据所述第一系数修改公式对所述原始QDCT系数组中的第一待修改坐标轴系数的数值进行变更,以获得变更后的第一目标QDCT系数组。
在本实施例中将从待隐写3D H.264视频中选取出原始QDCT系数组,并基于预设变更模型确定待写入的第一原始隐藏信息的比特数即第一原始信息比特数;将符合第一原始隐藏信息与预设基准值进行比较,进而根据比较结果确定第一目标信息比特数;基于第一目标信息比特数对应的第一目标隐藏信息对原始QDCT系数组进行变更,以获得第一目标QDCT系数组;根据第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在待隐写3D H.264视频中写入第一目标隐藏信息。明显地,本实施例在待隐写3D H.264视频的原始QDCT系数组中写入的隐藏信息的比特数将由预设变更模型确定,可见,这将使得实际写入的隐藏信息的比特数具有可变性;此外,还将额外基于预设基准值对隐藏信息的比特数进行调整,以进一步地提高嵌入效率并增加了嵌入方式的灵活性;最终,将基于QDCT系数组之间的关联性来嵌入该比特数可变的隐藏信息。如此操作3D H.264格式的视频既不明显影响QDCT系数分布、能量分布和像素分布进而保证了目标隐藏信息的隐藏性能,也大大提高了实际嵌入隐藏信息时的嵌入效率,从而可以较好地针对3D H.264视频来嵌入隐藏信息,也就解决了无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
基于上述硬件结构,提出本发明变化比特数的视频隐写方法的实施例。
参照图2,图2为本发明变化比特数的视频隐写方法第一实施例的流程示意图。
在第一实施例中,所述变化比特数的视频隐写方法包括以下步骤:
步骤S10:获取待隐写3D H.264视频。
可以理解的是,考虑到传统的直方图平移算法在进行信息隐写操作时,将单独地修改一个像素或者差值,明显地,该种独立且直接的修改方式不仅大大地拉低了信息嵌入的效率,也限制了隐藏信息的隐藏性,安全性较弱。除了对于嵌入效率以及信息的隐藏性能的考量之外,同时,还可考虑到3D H.264视频的视频编码方式,由于3D H.264视频编码方式中涉及到了视差预测、帧间预测和帧内预测,这导致了3D H.264视频中的量化后的离散余弦变换(Quantized discrete cosine transform,QDCT)系数的系数值大都为0,故而,QDCT系数的直方图已经相当陡峭,针对3D H.264视频而言,很难再通过预测的方法来保证信息的隐藏性能。
应当理解的是,综合考虑到隐藏信息的嵌入效率、隐藏性能以及3D H.264视频的视频编码方式带来的隐写限制,而信息隐藏技术的实现方式又多从QDCT系数分布、能量分布和像素分布的维度来实现。故而,为了尽量不明显影响到QDCT系数分布、能量分布和像素分布,又顾及隐藏信息的嵌入效率、隐藏性能以及3D H.264视频的视频编码方式带来的隐写限制,可以利用3D H.264视频中的各像素或差值之间的关联性来达到嵌入隐藏信息的效果,不单独地修改单个像素或者差值,从而可以在保证了信息隐藏性能的前提下提高嵌入隐藏信息的嵌入效率,从而可以较好地针对3D H.264视频来嵌入隐藏信息,也就解决了无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
在具体实现中,可先获取待隐写3D H.264视频,待隐写3D H.264视频将作为大众载体以承载隐藏信息,而隐藏信息为此次欲隐藏到大众载体中的保密信息。
步骤S20:从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组。
可以理解的是,在获取到待隐写3D H.264视频中含有的原始QDCT系数后,可以该原始QDCT系数作为后续隐写操作使用的可嵌载体。在实际应用中,可先从该原始QDCT系数中选取出预设格式的原始QDCT系数组,比如,可规定为从原始QDCT系数中选取出n个值并构成系数组。
在具体实现中,可将原始QDCT系数组记为Y=(y1,y2,…,yn),n≥1。
步骤S30:根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数。
可以理解的是,在获得待嵌入的原始QDCT系数组后,还将确定欲嵌入原始QDCT系数组中的隐藏信息。至于隐藏信息的实际比特数可由原始QDCT系数组的真实数值来确定,明显地,通过赋予隐藏信息的比特数以可变性,可以更加灵活地嵌入隐藏信息,以进一步地提高嵌入效率。
在具体实现中,可在预设变更模型中预先规定,当原始QDCT系数组的数值为某预设数值时,将隐藏信息的比特数对应地限定为某数值。比如,预设变更模型中可规定,当原始QDCT系数组Y的平方值为0时,则可嵌入该原始QDCT系数组Y中的隐藏信息的比特数暂定为3。此时,第一原始信息比特数的数值即为3,第一原始信息比特数的数值记为k。
步骤S40:将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数。
可以理解的是,为了进一步地提高嵌入效率并增加嵌入方式的灵活性,可在已设置有第一原始信息比特数k的前提下额外设置第一目标信息比特数的变量,第一目标信息比特数描述了最终写入待隐写3D H.264视频中的实际隐藏信息。
在具体实现中,若得出第一原始信息比特数的数值k为3后,则意味着对应的第一原始隐藏信息将以三比特的形式存在,暂定为需要保密的信息。但是,第一原始隐藏信息还要与预设基准值进行比较,以决定最终真正写入的需要保密的信息。比如,若第一原始隐藏信息为(1,0,0),再将第一原始隐藏信息记的十进制数值与预设基准值进行比较。其中,第一原始隐藏信息记的十进制数值为4,可记为t;预设基准值可记为a,a可为3。
应当理解的是,明显地,当比较结果为t>a时,可将第一目标信息比特数设置为第一原始信息比特数的数值k加一后的和值,所以,第一目标信息比特数可为4。
当然,也可让第一目标信息比特数与第一原始信息比特数的数值相同。可见,第一目标信息比特数的数值将由该比较结果确定。
步骤S50:根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组。
可以理解的是,在第一目标信息比特数为4时,可选取4个比特的第一目标隐藏信息来写入原始QDCT系数组中,至于比特信息的实值,可为0或1,比如,第一目标隐藏信息可为(1,0,0,0),也可为(0,0,1,0)等。
应当理解的是,在选取出合适的原始QDCT系数组后,将在原始QDCT系数组中嵌入符合第一目标信息比特数的第一目标隐藏信息,以获得第一目标QDCT系数组。明显地,通过第一目标隐藏信息对QDCT系数的系数值进行修改,这种修改前与修改后之间的系数值差异性可体现出第一目标隐藏信息的实际值。
需要说明的是,该预设变更模型用于确定待写入的第一原始信息比特数进而最终得出第一目标隐藏信息,并基于第一目标隐藏信息将原始QDCT系数组转化为另一对应的第一目标QDCT系数组,应用到了QDCT系数组之间的关联性,不仅保证了隐藏信息具有较好的隐藏性能,也保证了信息嵌入效率处于较高的水准。
步骤S60:根据所述第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在所述待隐写3D H.264视频中写入所述第一目标隐藏信息。
可以理解的是,待隐写3D H.264视频中含有原始QDCT系数组,而第一目标3DH.264视频中含有第一目标QDCT系数组,对于3D H.264视频的阅览者而言,不易发现待隐写3D H.264视频与目标3D H.264视频之间的差异性,也就保证了第一目标隐藏信息的隐蔽性。
在本实施例中将从待隐写3D H.264视频中选取出原始QDCT系数组,并基于预设变更模型确定待写入的第一原始隐藏信息的比特数即第一原始信息比特数;将符合第一原始隐藏信息与预设基准值进行比较,进而根据比较结果确定第一目标信息比特数;基于第一目标信息比特数对应的第一目标隐藏信息对原始QDCT系数组进行变更,以获得第一目标QDCT系数组;根据第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在待隐写3D H.264视频中写入第一目标隐藏信息。明显地,本实施例在待隐写3D H.264视频的原始QDCT系数组中写入的隐藏信息的比特数将由预设变更模型确定,可见,这将使得实际写入的隐藏信息的比特数具有可变性;此外,还将额外基于预设基准值对隐藏信息的比特数进行调整,以进一步地提高嵌入效率并增加了嵌入方式的灵活性;最终,将基于QDCT系数组之间的关联性来嵌入该比特数可变的隐藏信息。如此操作3D H.264格式的视频既不明显影响QDCT系数分布、能量分布和像素分布进而保证了目标隐藏信息的隐藏性能,也大大提高了实际嵌入隐藏信息时的嵌入效率,从而可以较好地针对3D H.264视频来嵌入隐藏信息,也就解决了无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
参照图3,图3为本发明变化比特数的视频隐写方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明变化比特数的视频隐写方法的第二实施例。
第二实施例中,所述步骤S30,包括:
步骤S301:在所述原始QDCT系数组为第一预设QDCT系数组时,在预设变更模型中确定与所述第一预设QDCT系数组对应的第一比特数计算公式。
可以理解的是,预设变更模型中可包括原始QDCT系数组与预设比特数计算公式之间的对应关系,通过查询出对应的预设比特数计算公式进而使用该对应的预设比特数计算公式得出当前的原始隐藏信息的比特数。
在具体实现中,若n为6,原始QDCT系数组Y为(0,0,0,0,0,0),则Y
2=0。在预设变更模型中预先规定在Y
2=0时,对应的预设比特数计算公式为第一比特数计算公式,第一比特数计算公式为
k为待写入的第一原始隐藏信息的第一原始信息比特数,n为原始QDCT系数组中的系数个数。
步骤S302:根据所述原始QDCT系数组通过所述第一比特数计算公式计算出待写入的第一原始信息比特数。
在具体实现中,可根据所述原始QDCT系数组中的系数个数通过所述第一比特数计算公式计算出待写入的第一原始信息比特数,比如,若n为6,则第一比特数计算公式
计算出的log
2(2n+1)=3.7将向下取整数,以获得k=3。
进一步地,至于预设变更模型的实现代码,具体如下,
进一步地,所述步骤S40,包括:
步骤S401:将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果。
在具体实现中,通过引入预设基准值a,可以进一步地调整待写入的隐藏信息。比如,若原始QDCT系数组Y为(0,0,0,0,0,0),n为6,则Y
2=0;接着,第一比特数计算公式
计算出的k=3,通过第一原始信息比特数k可以选定出一第一原始隐藏信息,比如为(1,0,0),再将该第一原始隐藏信息记的十进制数值t与预设基准值a进行比较,a可为3。
步骤S402:在所述比较结果为第一预设比较结果时,基于第一预设比特数变更规则对所述第一原始信息比特数进行变更,以获得变更后的第一目标信息比特数。
可以理解的是,第一预设比较结果为t≥a,鉴于此时的t为4,a为3,则可基于第一预设比特数变更规则对第一原始信息比特数k进行加一操作,以获得变更后的第一目标信息比特数。故而,此时的第一目标信息比特数为4。
进一步地,所述将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果之后,所述变化比特数的视频隐写方法还包括:
在所述比较结果为第二预设比较结果时,基于第二预设比特数变更规则维持所述第一原始信息比特数不变更,以将所述第一原始信息比特数作为第一目标信息比特数。
可以理解的是,还可存在第二预设比较结果,第二预设比较结果可为t<a。若比较结果为第二预设比较结果,则基于第二预设比特数变更规则不变更第一原始信息比特数k,无需加一操作,直接将第一原始信息比特数k作为最终实际嵌入的信息比特数。
进一步地,所述根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数之后,所述变化比特数的视频隐写方法还包括:
在所述原始QDCT系数组的数值为第一预设QDCT系数组时,在所述预设变更模型中确定与所述第一预设QDCT系数组对应的第一基准值确定公式;
根据所述第一原始信息比特数与所述原始QDCT系数组通过所述第一基准值确定公式计算出待写入的第一基准值,并将所述第一基准值作为预设基准值。
可以理解的是,用于调整待写入的隐藏信息的预设基准值a还可依据第一原始信息比特数k与原始QDCT系数组中的系数个数n来协同确定,比如,若n为6,原始QDCT系数组Y为(0,0,0,0,0,0),Y2=0,为了确定预设基准值a的当前值,则可先计算出此刻的第一原始信息比特数为3,然后,应用第一基准值确定公式a=2k+1-2n-1去计算。
在具体实现中,若第一原始信息比特数k为3,原始QDCT系数组中的系数个数n为6,则应用第一基准值确定公式a=2k+1-2n-1计算出的当前值为3,故而,此刻的预设基准值为3。
当然,参考上面列出的预设变更模型的实现代码,基准值确定公式存在多种,比如,在所述原始QDCT系数组的数值为第二预设QDCT系数组时,在所述预设变更模型中确定与所述第二预设QDCT系数组对应的第二基准值确定公式;根据所述第一原始信息比特数与所述原始QDCT系数组通过所述第二基准值确定公式计算出待写入的第二基准值,并将所述第二基准值作为预设基准值。
在具体实现中,第二预设QDCT系数组可为Y2=1时的原始QDCT系数组Y,比如,原始QDCT系数组Y可为(0,0,0,1,0,0),而此刻的第二基准值确定公式为a=2k+1-n。若k为2,n为6,则计算出的第二基准值为2。
进一步地,所述从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组之后,所述变化比特数的视频隐写方法还包括:
在所述原始QDCT系数组为第二预设QDCT系数组时,在所述预设变更模型中确定与所述第二预设QDCT系数组对应的第二比特数计算公式;
根据所述原始QDCT系数组通过所述第二比特数计算公式计算出待写入的第二原始信息比特数;
将符合所述第二原始信息比特数的第二原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第二目标信息比特数;
根据符合所述第二目标信息比特数的第二目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第二目标QDCT系数组;
根据所述第二目标QDCT系数组确定对应的第二目标3D H.264视频,以实现在所述待隐写3D H.264视频中写入所述第二目标隐藏信息。
可以理解的是,可参考上述的预设变更模型的实现代码,若n=6,原始QDCT系数组Y为(0,0,0,1,0,0),则Y
2=1。预先设置的第二预设QDCT系数组可为Y
2=1的原始QDCT系数组Y,故而,可确定出与此时的原始QDCT系数组(0,0,0,1,0,0)对应的第二比特数计算公式
由于n=6,通过该第二比特数计算公式得出的第二原始信息比特数为2。明显地,比特数计算公式可将存在着多种,可依据原始QDCT系数组的真实数值以及系数个数设置相应的比特数计算公式。
应当理解的是,在求得第二原始信息比特数k为2后,可提供比特数为2的第二原始隐藏信息。比如,第二原始隐藏信息可为(1,0)。接着,预设基准值a可为第二基准值2,。将第二原始隐藏信息的十进制数值2加一操作后得到的数值3与预设基准值a进行比较,可发现,3>2,则第二目标信息比特数为第二原始信息比特数k加一后的和值,即第二目标信息比特数为3,符合第二目标信息比特数的第二目标隐藏信息比如有(1,0,0)。最终,将基于第二目标隐藏信息(1,0,0)进行隐写操作。
本实施例中额外引入了预设基准值作为进一步调整待写入的实际隐藏信息的参考量,可以增高嵌入方式的灵活性,从而大大地提高了嵌入效率。而且,预设基准值本身还存在着可变性,从而能够随着数值的变化进行适应性的变更。
参照图4,图4为本发明变化比特数的视频隐写方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明变化比特数的视频隐写方法的第三实施例。
第三实施例中,所述根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组,包括:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组。
可以理解的是,可参考上述的预设变更模型的实现代码,部分如下,
若n为6,原始QDCT系数组Y为(0,0,0,0,0,0),则Y
2=0,应用第一比特数计算公式
计算出的第一原始信息比特数k为3。所以,可提供比特数符合该第一原始信息比特数3的第一原始隐藏信息,比如,第一原始隐藏信息可为(1,0,0),即m
1=1,m
2=0,m
3=0。然后,计算出的第一原始隐藏信息的十进制数值t为4,应用a=2
k+1-2n-1计算出的预设基准值a为3,则可知,t≥a,然后,可确定修改了第一原始信息比特数k后的第一目标信息比特数为4。接着,可基于该第一目标信息比特数选定对应的第一目标隐藏信息。
应当理解的是,可预先规定不同的目标隐藏信息的数值将对应不同的变更规则,比如,若第一目标隐藏信息的数值在第一预设数值范围内,则选定第一目标变更规则作为变更规则,其中,第一预设数值范围为t≥a且t-a≤n,t为第一目标隐藏信息的十进制数值,第一目标变更规则为对坐标轴系数yt-a作加1处理。
在具体实现中,若提供的第一目标隐藏信息为(0,1,0,0),则t=(m1m2m3m4)10=4,而a为3,明显地,t≥a且t-a≤n,则可对原始QDCT系数组Y中的第1个坐标轴系数作加1处理,从而获得的第一目标QDCT系数组为(1,0,0,0,0,0)。
同理,若提供的第一目标隐藏信息为(1,1,0,0),则t=(m1m2m3m4)10=12,而a为3,明显地,t≥a且n<t-a<2n,若参考上述部分的预设变更模型的实现代码,则可对原始QDCT系数组Y中的y(t-a)%n坐标轴系数作减1处理。
进一步地,所述原始QDCT系数组中包括各坐标轴系数。
可以理解的是,若n为6,原始QDCT系数组可表现为Y(y1,y2,y3,y4,y5,y6),y1为第一坐标轴系数、y2为第二坐标轴系数、y3为第三坐标轴系数、y4为第四坐标轴系数、y5为第五坐标轴系数以及y6为第六坐标轴系数。同理,第一目标QDCT系数组可记为(y1',y2',y3',y4',y5',y6')。
所述步骤S50,包括:
步骤S501:在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组。
应当理解的是,为了保证第一目标隐藏信息的隐藏性能,可尽量降低待隐写3DH.264视频与第一目标3D H.264视频之间的区别,具体而言,可降低第一目标3D H.264视频的失真程度。
在具体实现中,可设置多种类型的变更规则,比如,可设置变更规则为“仅对原始QDCT系数组中的一位坐标轴系数进行更改”。具体而言,若原始QDCT系数组为(0,0,0,0,0,0),可仅改变其中的第一位坐标轴系数,更改为(1,0,0,0,0,0),造成的失真为1。明显地,该种变更方式较大程度上限制了失真程度,仅对一位坐标轴系数进行更改,减少载体变动,从而保证了信息的隐蔽性。
进一步地,所述第一目标变更规则中包括第一待变更系数确定公式与第一系数修改公式;
所述在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组,包括:
在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据所述第一待变更系数确定公式确定所述原始QDCT系数组中的第一待修改坐标轴系数;
根据所述第一系数修改公式对所述原始QDCT系数组中的第一待修改坐标轴系数的数值进行变更,以获得变更后的第一目标QDCT系数组。
可以理解的是,参考上述的第一目标变更规则“对坐标轴系数yt-a作加1处理”,明显地,第一目标变更规则中仅包括选定待修改的坐标轴系数的第一待变更系数确定公式,还包括记录有如何修改该坐标轴系数的第一系数修改公式。其中,第一待变更系数确定公式为“坐标轴系数yt-a”,第一系数修改公式为“对坐标轴系数作加1处理”。
在具体实现中,若t=(m1m2m3m4)10=4,n=6,基于第一待变更系数确定公式确定yt-a=y1即第一位坐标轴系数将被变更;再执行第一系数修改公式以对第一位坐标轴系数作加1处理,从而获得第一目标QDCT系数组(1,0,0,0,0,0)。
当然,由于隐写操作具有可逆性,可基于预设变更模型将原始QDCT系数组变更为第一目标QDCT系数组;也可进行逆处理,以将第一目标QDCT系数组恢复为原始QDCT系数组。其中,原始QDCT系数组可记为Y=(y1,y2,…,yn),n≥1,第一目标QDCT系数组可记为Y'=(y1',y2',…,yn'),n≥1。
当然,对原始QDCT系数组中的第一待修改坐标轴系数的数值进行变更的变更方式存在多种,可根据需要预先设置。比如,可根据所述第一系数修改公式对所述原始QDCT系数组中的第一待修改坐标轴系数的数值进行减1操作,可维持原始QDCT系数中的各坐标轴系数不变更等等。
本实施例中通过限制失真程度,比如,仅对一位坐标轴系数进行更改,减少了对于载体的变动,从而保证了信息的隐蔽性。此外,基于预设变更模型可以适应地选择适宜每个原始QDCT系数组的隐藏信息,使得隐藏信息的嵌入方式更具变化性,从而进一步地提高了嵌入隐藏信息时的嵌入效率。同时,也可保证较好的3D H.264视频质量。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有变化比特数的视频隐写程序,所述变化比特数的视频隐写程序被处理器执行时实现如上文所述的变化比特数的视频隐写方法的步骤。
此外,参照图5,本发明实施例还提出一种变化比特数的视频隐写装置,所述变化比特数的视频隐写装置包括:
信息处理模块10,用于获取待隐写3D H.264视频;
系数解析模块20,用于从所述待隐写3D H.264视频中解析原始QDCT系数,从所述原始QDCT系数中选取预设格式的原始QDCT系数组;
原始比特数确定模块30,用于根据所述原始QDCT系数组的数值通过预设变更模型确定待写入的第一原始信息比特数;
目标比特数确定模块40,用于将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果,并根据所述比较结果确定第一目标信息比特数;
系数变更模块50,用于根据符合所述第一目标信息比特数的第一目标隐藏信息对所述原始QDCT系数组进行变更,以获得变更后的第一目标QDCT系数组;
视频编码模块60,用于根据所述第一目标QDCT系数组确定对应的第一目标3DH.264视频,以实现在所述待隐写3D H.264视频中写入所述第一目标隐藏信息。
在本实施例中将从待隐写3D H.264视频中选取出原始QDCT系数组,并基于预设变更模型确定待写入的第一原始隐藏信息的比特数即第一原始信息比特数;将符合第一原始隐藏信息与预设基准值进行比较,进而根据比较结果确定第一目标信息比特数;基于第一目标信息比特数对应的第一目标隐藏信息对原始QDCT系数组进行变更,以获得第一目标QDCT系数组;根据第一目标QDCT系数组确定对应的第一目标3D H.264视频,以实现在待隐写3D H.264视频中写入第一目标隐藏信息。明显地,本实施例在待隐写3D H.264视频的原始QDCT系数组中写入的隐藏信息的比特数将由预设变更模型确定,可见,这将使得实际写入的隐藏信息的比特数具有可变性;此外,还将额外基于预设基准值对隐藏信息的比特数进行调整,以进一步地提高嵌入效率并增加了嵌入方式的灵活性;最终,将基于QDCT系数组之间的关联性来嵌入该比特数可变的隐藏信息。如此操作3D H.264格式的视频既不明显影响QDCT系数分布、能量分布和像素分布进而保证了目标隐藏信息的隐藏性能,也大大提高了实际嵌入隐藏信息时的嵌入效率,从而可以较好地针对3D H.264视频来嵌入隐藏信息,也就解决了无法在3D H.264视频中较好地嵌入隐藏信息的技术问题。
在一实施例中,所述原始比特数确定模块30,还用于在所述原始QDCT系数组为第一预设QDCT系数组时,在预设变更模型中确定与所述第一预设QDCT系数组对应的第一比特数计算公式;根据所述原始QDCT系数组通过所述第一比特数计算公式计算出待写入的第一原始信息比特数。
在一实施例中,所述目标比特数确定模块40,还用于将符合所述第一原始信息比特数的第一原始隐藏信息与预设基准值进行比较,以获得比较结果;在所述比较结果为第一预设比较结果时,基于第一预设比特数变更规则对所述第一原始信息比特数进行变更,以获得变更后的第一目标信息比特数。
在一实施例中,所述变化比特数的视频隐写装置还包括:
比特数不变更模块,用于在所述比较结果为第二预设比较结果时,基于第二预设比特数变更规则维持所述第一原始信息比特数不变更,以将所述第一原始信息比特数作为第一目标信息比特数。
在一实施例中,所述变化比特数的视频隐写装置还包括:
基准值确定模块,用于在所述原始QDCT系数组的数值为第一预设QDCT系数组时,在所述预设变更模型中确定与所述第一预设QDCT系数组对应的第一基准值确定公式;根据所述第一原始信息比特数与所述原始QDCT系数组通过所述第一基准值确定公式计算出待写入的第一基准值,并将所述第一基准值作为预设基准值。
在一实施例中,所述系数变更模块50,还用于在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据与所述第一预设数值范围对应的第一目标变更规则对所述原始QDCT系数组中的任一坐标轴系数进行变更,以获得变更后的第一目标QDCT系数组。
在一实施例中,所述系数变更模块50,还用于在符合所述第一目标信息比特数的第一目标隐藏信息处于第一预设数值范围内时,根据所述第一待变更系数确定公式确定所述原始QDCT系数组中的第一待修改坐标轴系数;根据所述第一系数修改公式对所述原始QDCT系数组中的第一待修改坐标轴系数的数值进行变更,以获得变更后的第一目标QDCT系数组。
本发明所述变化比特数的视频隐写装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。