一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法与流程

文档序号:12671730阅读:246来源:国知局
一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法与流程
本发明涉及一种视频数据隐藏方法,尤其是涉及一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法。

背景技术:
随着网络和多媒体技术的飞速发展,视频数据呈爆炸式增长,海量的视频处理需要相应的存储和计算平台,而云计算与云存储技术为大数据处理及其相关应用提供了最有效的解决方案。为确保云计算环境下的内容安全和隐私保护,内容所有者将原始视频数据加密后上传到云端,云端所有的处理和计算都在加密域进行,保证了敏感视频数据的安全。在很多应用场景,某些没有解密权限的云服务管理者需在加密载体中嵌入一些附加消息,如标注或认证数据、作品来源信息、所有者身份信息等,用于管理和认证加密视频数据。例如,为保护病人隐私,对医学影像等视频信息进行了加密,数据库管理者会在相应的加密视频中嵌入病人的隐私信息和认证信息。如果在敏感视频数据中嵌入附加消息之前,需先对敏感视频数据解密,这就意味着在敏感视频数据的整个生命周期中,至少有一部分时间是以明文形式存在的,这样会带来严重的隐私问题。加密域数据隐藏技术可以确保数据隐藏者在不解密的前提下,直接对加密视频进行数据的嵌入和提取操作,可以帮助解决视频安全和隐私的担忧。无论视频加密还是视频数据隐藏,都要考虑视频压缩编码的影响。鉴于H.264/AVC高效的编码性能和良好的网络适应性,也是目前应用最普及的视频编码标准,加密域H.264/AVC视频数据隐藏技术无疑将成为学术界研究的热点。如何在密文前提下实现数据隐藏,如何保证加密和数据隐藏与CABAC熵编码相兼容,以及如何保证加密和嵌入数据不影响H.264/AVC的编码效率,国内外这方面的研究也才刚刚开始,加密和数据隐藏的结合还有很多难点问题有待解决。

技术实现要素:
本发明所要解决的技术问题是提供一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法,其在与H.264/AVC视频压缩编码标准和CABAC熵编码相兼容的前提下对H.264/AVC视频进行加密,能够在加密后的H.264/AVC视频中进行数据隐藏,且加密和数据隐藏不影响视频码率,并能够保证隐秘信息在加密域和解密域H.264/AVC视频中都能有效地被提取出。本发明解决上述技术问题所采用的技术方案为:一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法,其特征在于包括H.264/AVC视频加密、加密域的H.264/AVC视频数据隐藏及隐秘数据提取三部分;其中,所述的H.264/AVC视频加密的处理过程为:对于原始的H.264/AVC视频中预测模式为帧间预测模式且运动矢量差分不为0的所有宏块,利用第一密钥生成的二值伪随机序列对每个宏块的运动矢量差分符号的CABAC二进制串进行比特异或加密,完成每个宏块的运动矢量差分的加密;对于原始的H.264/AVC视频中预测模式为帧间预测模式且运动矢量差分为0的所有宏块,对每个宏块的运动矢量差分不加密;对于原始的H.264/AVC视频中量化残差系数不为0的所有宏块,利用第二密钥生成的二值伪随机序列对每个宏块的量化残差系数符号的CABAC二进制串进行比特异或加密,完成每个宏块的量化残差系数的加密;对于原始的H.264/AVC视频中量化残差系数为0的所有宏块,对每个宏块的量化残差系数不加密;通过上述加密得到加密域的H.264/AVC视频;所述的加密域的H.264/AVC视频数据隐藏的具体过程为:②-1、将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1,其中,第一空间C0中的CABAC二进制串与第二空间C1中的CABAC二进制串一一对应,且第一空间C0和第二空间C1中对应的两个CABAC二进制串的长度相同,第一空间C0和第二空间C1中对应的两个CABAC二进制串各自所对应的运动矢量差分的绝对值相差1;②-2、将加密域的H.264/AVC视频中当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串,将待嵌入的隐秘信息中当前待嵌入的信息比特定义为当前信息比特;②-3、判断当前二进制串是否属于第一空间C0或属于第二空间C1,如果是,则采用映射方法将当前信息比特嵌入到当前二进制串中,然后执行步骤②-4;否则,对当前二进制串不进行处理,然后执行步骤②-4;②-4、将加密域的H.264/AVC视频中下一个识别出的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,将待嵌入的隐秘信息中下一个待嵌入的信息比特作为当前信息比特,然后返回步骤②-3继续执行,直至隐秘信息嵌入完毕,完成加密域的H.264/AVC视频数据隐藏,得到含隐秘信息的加密域的H.264/AVC视频;所述的隐秘数据提取在加密域完成或在解密域完成,在加密域完成隐秘数据提取的具体过程为:③-1a、采用与步骤②-1相同的方式,将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1;③-1b、在加密域,对含隐秘信息的加密域的H.264/AVC视频码流进行二进制算术解码,识别含隐秘信息的加密的运动矢量差分的绝对值的CABAC二进制串;③-1c、将当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串;③-1d、如果当前二进制串属于第一空间C0,则提取出信息比特0,然后继续执行步骤③-1e;如果当前二进制串属于第二空间C1,则提取出信息比特1,然后继续执行步骤③-1e;如果当前二进制串不属于第一空间C0也不属于第二空间C1,则直接执行步骤③-1e;③-1e、在加密域,将下一个识别出的含隐秘信息的加密的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,然后返回步骤③-1d继续执行,直至含隐秘信息的加密域的H.264/AVC视频码流中的所有运动矢量差分的绝对值的CABAC二进制串处理完毕,提取得到隐秘信息;在解密域完成隐秘数据提取的具体过程为:③-2a、采用与步骤②-1相同的方式,将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1;③-2b、对含隐秘信息的加密域的H.264/AVC视频码流进行二进制算术解码,识别加密的运动矢量差分符号的CABAC二进制串和加密的量化残差系数符号的CABAC二进制串,然后对加密的运动矢量差分符号的CABAC二进制串和加密的量化残差系数符号的CABAC二进制串进行解密,再进行二进制算术编码,得到解密后的含隐秘信息的H.264/AVC视频码流;③-2c、在解密域,对解密后的含隐秘信息的H.264/AVC视频码流进行二进制算术解码,识别解密后的含隐秘信息的运动矢量差分的绝对值的CABAC二进制串;③-2d、将当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串;③-2e、如果当前二进制串属于第一空间C0,则提取出信息比特0,然后继续执行步骤③-2f;如果当前二进制串属于第二空间C1,则提取出信息比特1,然后继续执行步骤③-2f;如果当前二进制串不属于第一空间C0也不属于第二空间C1,则直接执行步骤③-2f;③-2f、在解密域,将下一个识别出的解密后的含隐秘信息的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,然后返回步骤③-2e继续执行,直至解密后的含隐秘信息的H.264/AVC视频中的所有运动矢量差分的绝对值的CABAC二进制串处理完毕,提取得到隐秘信息。所述的H.264/AVC视频加密的的具体过程为:①-1、将原始的H.264/AVC视频中当前待处理的帧定义为当前帧;①-2、将当前帧中当前待处理的宏块定义为当前宏块;①-3、判断当前宏块的预测模式为帧内预测模式还是为帧间预测模式,如果当前宏块的预测模式为帧间预测模式,则继续执行步骤①-4,如果当前宏块的预测模式为帧内预测模式,则继续执行步骤①-5;①-4、当当前宏块的运动矢量差分不为0时,利用第一密钥生成的二值伪随机序列中的第k1位比特至第k1+L1位比特对当前宏块的运动矢量差分符号的CABAC二进制串进行按位比特异或加密,完成当前宏块的运动矢量差分的加密,然后令k1=k1+L1+1,再执行步骤①-5,其中,k1的初始值为1,L1表示当前宏块的运动矢量差分符号的CABAC二进制串的长度,k1=k1+L1+1中的“=”为赋值符号;当当前宏块的运动矢量差分为0时,对当前宏块的运动矢量差分不加密,然后执行步骤①-5;①-5、当当前宏块的量化残差系数不为0时,利用第二密钥生成的二值伪随机序列中的第k2位比特至第k2+L2位比特对当前宏块的量化残差系数符号的CABAC二进制串进行按位比特异或加密,完成当前宏块的量化残差系数的加密,然后令k2=k2+L2+1,再执行步骤①-6,其中,k2的初始值为1,L2表示当前宏块的量化残差系数符号的CABAC二进制串的长度,k2=k2+L2+1中的“=”为赋值符号;对于原始的H.264/AVC视频中量化残差系数为0的所有宏块,对每个宏块的量化残差系数不加密,然后执行步骤①-6;①-6、将当前帧中下一个待处理的宏块作为当前宏块,然后返回步骤①-3继续执行,直至当前帧中的所有宏块处理完毕;①-7、将原始的H.264/AVC视频中下一个待处理的帧作为当前帧,然后返回步骤①-2继续执行,直至原始的H.264/AVC视频中的所有帧处理完毕,得到加密域的H.264/AVC视频。所述的步骤②-3中采用映射方法将当前信息比特嵌入到当前二进制串中的具体过程为:如果当前信息比特为0且当前二进制串属于第一空间C0,则当前二进制串保持不变;如果当前信息比特为0且当前二进制串属于第二空间C1,则用第一空间C0中与当前二进制串一一对应的CABAC二进制串替换当前二进制串;如果当前信息比特为1且当前二进制串属于第二空间C1,则当前二进制串保持不变;如果当前信息比特为1且当前二进制串属于第一空间C0,则用第二空间C1中与当前二进制串一一对应的CABAC二进制串替换当前二进制串。所述的步骤③-2b中对加密的运动矢量差分符号的CABAC二进制串进行解密的过程为:1)将当前识别出的加密的运动矢量差分符号的CABAC二进制串定义为当前二进制串;2)利用第一密钥生成的二值伪随机序列中的第k1位比特至第k1+LS1位比特对当前二进制串进行按位比特异或解密,然后令k1=k1+LS1+1,再执行步骤3),其中,k1的初始值为1,LS1表示当前二进制串的长度,k1=k1+LS1+1中的“=”为赋值符号;3)将下一个识别出的加密的运动矢量差分符号的CABAC二进制串作为当前二进制串,然后返回步骤2)继续执行,完成识别出的所有加密的运动矢量差分符号的CABAC二进制串的解密;所述的步骤③-2b中对加密的量化残差系数符号的CABAC二进制串进行解密的过程为:(1)将当前识别出的加密的量化残差系数符号的CABAC二进制串定义为当前二进制串;(2)利用第二密钥生成的二值伪随机序列中的第k2位比特至第k2+LS2位比特对当前二进制串进行按位比特异或解密,然后令k2=k2+LS2+1,再执行步骤(3),其中,k2的初始值为1,LS2表示当前二进制串的长度,k2=k2+LS2+1中的“=”为赋值符号;(3)将下一个识别出的加密的量化残差系数符号的CABAC二进制串作为当前二进制串,然后返回步骤(2)继续执行,完成识别出的所有加密的量化残差系数符号的CABAC二进制串的解密。与现有技术相比,本发明的优点在于:1)本发明方法选择CABAC中旁路编码模式的语法元素进行等长二进制串替换操作实现视频加密,采用运动矢量差分的绝对值的CABAC二进制串映射方法进行数据隐藏,加密和数据隐藏都对H.264/AVC视频流的码率没有任何改变,解决了视频加密和数据隐藏中的数据扩张问题。2)本发明方法中加密和隐藏数据都是在CABAC熵编码下完成,与CABAC熵编码完全兼容,可用标准H.264/AVC视频解码器对加密和数据隐藏后的视频流进行解码。3)数据隐藏者利用本发明方法可以直接在加密的H.264/AVC视频中嵌入隐秘信息,即使数据隐藏者不知道原始视频内容,也可有效地解决视频内容安全和隐私泄露问题;此外,本发明方法既可以在加密域有效地提取出隐秘数据,也可以在解密域有效地提取出隐秘数据,也即数据提取与解密是完全分离,实用性更强。附图说明图1a为本发明方法中的视频加密和数据隐藏的总体实现框图;图1b为本发明方法中的隐秘数据提取的总体实现框图;图2为两个空间中的运动矢量差分的绝对值的CABAC二进制串的后缀对应关系。具体实施方式以下结合附图实施例对本发明作进一步详细描述。实施例一:本实施例提出的一种基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法,其包括H.264/AVC视频加密、加密域的H.264/AVC视频数据隐藏及隐秘数据提取三部分。在此具体实施例中,为降低计算复杂度,并保持加密后的H.264/AVC视频码流的码率不变,同时具有较高的感知安全性,本发明方法选择对运动矢量差分(MVD)符号的CABAC二进制串(binstring)和量化残差系数符号的CABAC二进制串进行加密,H.264/AVC视频加密的处理过程(如图1a所示)为:对于原始的H.264/AVC视频中预测模式为帧间预测模式且运动矢量差分不为0的所有宏块,利用第一密钥生成的二值伪随机序列对每个宏块的运动矢量差分符号的CABAC二进制串进行比特异或加密,完成每个宏块的运动矢量差分的加密;对于原始的H.264/AVC视频中预测模式为帧间预测模式且运动矢量差分为0的所有宏块,对每个宏块的运动矢量差分不加密;对于原始的H.264/AVC视频中量化残差系数不为0的所有宏块,利用第二密钥生成的二值伪随机序列对每个宏块的量化残差系数符号的CABAC二进制串进行比特异或加密,完成每个宏块的量化残差系数的加密;对于原始的H.264/AVC视频中量化残差系数为0的所有宏块,对每个宏块的量化残差系数不加密;通过上述加密得到加密域的H.264/AVC视频。即H.264/AVC视频加密的具体过程为:①-1、将原始的H.264/AVC视频中当前待处理的帧定义为当前帧。①-2、将当前帧中当前待处理的宏块定义为当前宏块。①-3、判断当前宏块的预测模式为帧内预测模式还是为帧间预测模式,如果当前宏块的预测模式为帧间预测模式,则继续执行步骤①-4,如果当前宏块的预测模式为帧内预测模式,则继续执行步骤①-5。①-4、当当前宏块的运动矢量差分不为0时,利用第一密钥生成的二值伪随机序列中的第k1位比特至第k1+L1位比特对当前宏块的运动矢量差分符号的CABAC二进制串进行按位比特异或加密,完成当前宏块的运动矢量差分的加密,然后令k1=k1+L1+1,再执行步骤①-5,其中,k1的初始值为1,L1表示当前宏块的运动矢量差分符号的CABAC二进制串的长度,k1=k1+L1+1中的“=”为赋值符号。由于宏块的运动矢量差分符号的CABAC二进制串是直接进入旁路编码模式的,因此利用第一密钥生成的二值伪随机序列中的第k1位比特至第k1+L1位比特对当前宏块的运动矢量差分符号的CABAC二进制串进行按位比特异或加密,不会改变最终CABAC二进制串的长度,满足格式兼容性。当当前宏块的运动矢量差分为0时,对当前宏块的运动矢量差分不加密,然后执行步骤①-5。①-5、当当前宏块的量化残差系数不为0时,利用第二密钥生成的二值伪随机序列中的第k2位比特至第k2+L2位比特对当前宏块的量化残差系数符号的CABAC二进制串进行按位比特异或加密,完成当前宏块的量化残差系数的加密,然后令k2=k2+L2+1,再执行步骤①-6,其中,k2的初始值为1,L2表示当前宏块的量化残差系数符号的CABAC二进制串的长度,k2=k2+L2+1中的“=”为赋值符号。对于原始的H.264/AVC视频中量化残差系数为0的所有宏块,对每个宏块的量化残差系数不加密,然后执行步骤①-6。①-6、将当前帧中下一个待处理的宏块作为当前宏块,然后返回步骤①-3继续执行,直至当前帧中的所有宏块处理完毕。①-7、将原始的H.264/AVC视频中下一个待处理的帧作为当前帧,然后返回步骤①-2继续执行,直至原始的H.264/AVC视频中的所有帧处理完毕,得到加密域的H.264/AVC视频。上述,对宏块的运动矢量差分符号的CABAC二进制串和量化残差系数符号的CABAC二进制串进行加密所利用的二值伪随机序列可以是由同一个密钥生成的,也可以是由不同的密钥生成的,即第一密钥和第二密钥可以相同,也可以不相同,但是解密时所采用的密钥与加密时所采用的密钥需一致。在此具体实施例中,如图1a所示,加密域的H.264/AVC视频数据隐藏的具体过程为:②-1、将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成两个空间,即将H.264/AVC视频压缩编码标准中的部分运动矢量差分的绝对值的CABAC二进制串分成两个空间,且两个空间内的每个CABAC二进制串所对应的运动矢量差分的绝对值大于32。运动矢量差分的绝对值是由截断一元码和3阶指数哥伦布编码(EG3)完成二进制化的,如果运动矢量差分的绝对值小于9,则CABAC二进制串仅仅由前缀组成;如果运动矢量差分的绝对值大于或等于9,则CABAC二进制串由前缀和后缀组成。表1给出了H.264/AVC视频压缩编码标准中的运动矢量差分的绝对值的CABAC二进制串。隐秘信息是通过替换表1中的CABAC二进制串进行嵌入的。表1H.264/AVC视频压缩编码标准中的运动矢量差分的绝对值的CABAC二进制串运动矢量差分的绝对值的CABAC二进制串的TU前缀是采用常规编码模式进行二进制算术编码,而非旁路编码模式。通过计算上下文索引(ctxIdx)来选择上下文模型,并在选定的上下文模型中进行概率的估计更新和算术编码。上下文索引(ctxIdx)等于上下文索引起始偏移量(ctxIdxOffset)和上下文索引增量(ctxIdxInc)之和。根据H.264/AVC标准中指定,对于水平分量,上下文索引起始偏移量等于40;对于垂直分量,上下文索引起始偏移量等于47。对于运动矢量差分的绝对值的CABAC二进制串中的第一个比特串,上下文索引增量由下述公式得到,其中,e(A,B,cmp)=|mvd(A,cmp)|+|mvd(B,cmp)|,A表示一个宏块的左相邻块,B表示一个宏块的上相邻块,cmp用于表示方向,指水平方向或垂直方向,mvd(A,cmp)表示A宏块的cmp方向的运动矢量差分,mvd(B,cmp)表示B宏块的cmp方向的运动矢量差分,计算时A宏块的运动矢量差分的方向与B宏块的运动矢量差分的方向一致,即两者的运动矢量差分的方向要么为水平方向要么为垂直方向,符号“||”为取绝对值符号,e(A,B,cmp)的取值区间可以分成三个区域,即[0,3)、[3,32]、(32,+∞)。对于运动矢量差分的绝对值的CABAC二进制串中的剩余比特串,上下文索引增量由其比特位置确定,如表2所示。表2确定上下文索引增量的比特位置二进制比特串上下文索引增量1由e(A,B,cmp)来判断其值为0,或1,或2233445566或者更高6数据嵌入可能会引起|mvd(A,cmp)|和/或|mvd(B,cmp)|发生改变,使得e(A,B,cmp)的取值区间会发生改变。在这种情况下,数据嵌入后计算得到的上下文索引增量与原始的上下文索引增量会不一致,从而引起解码错误。为了解决这个问题,本发明方法仅仅选择绝对值大于32的运动矢量差分的绝对值的CABAC二进制串嵌入数据。即将表1中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1:如果运动矢量差分的绝对值为奇数,则将该运动矢量差分的绝对值的CABAC二进制串分到第一空间C0中;如果运动矢量差分的绝对值为偶数,则将该运动矢量差分的绝对值的CABAC二进制串分到第二空间C1中;也可以将绝对值为偶数的运动矢量差分的绝对值的CABAC二进制串分到第一空间C0中,将绝对值为奇数的运动矢量差分的绝对值的CABAC二进制串分到第二空间C1中。图2给出了两个空间中的CABAC二进制串的对应关系(第一空间和第二空间中相对应的两个CABAC二进制串所对应的运动矢量差分的绝对值相差1),由于绝对值大于32的运动矢量差分的绝对值的CABAC二进制串的前缀都相同,因此图2中仅列出了后缀部分。图2中第一空间C0中的每个CABAC二进制串所对应的运动矢量差分的绝对值为奇数,第二空间C1中的每个CABAC二进制串所对应的运动矢量差分的绝对值为偶数。②-2、将加密域的H.264/AVC视频中当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串,将待嵌入的隐秘信息中当前待嵌入的信息比特定义为当前信息比特。②-3、判断当前二进制串是否属于第一空间C0或属于第二空间C1,如果是,则采用映射方法将当前信息比特嵌入到当前二进制串中,然后执行步骤②-4;否则,对当前二进制串不进行处理,然后执行步骤②-4。在此,步骤②-3中采用映射方法将当前信息比特嵌入到当前二进制串中的具体过程为:如果当前信息比特为0且当前二进制串属于第一空间C0,则当前二进制串保持不变;如果当前信息比特为0且当前二进制串属于第二空间C1,则用第一空间C0中与当前二进制串一一对应的CABAC二进制串替换当前二进制串;如果当前信息比特为1且当前二进制串属于第二空间C1,则当前二进制串保持不变;如果当前信息比特为1且当前二进制串属于第一空间C0,则用第二空间C1中与当前二进制串一一对应的CABAC二进制串替换当前二进制串。②-4、将加密域的H.264/AVC视频中下一个识别出的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,将待嵌入的隐秘信息中下一个待嵌入的信息比特作为当前信息比特,然后返回步骤②-3继续执行,直至隐秘信息嵌入完毕,完成加密域的H.264/AVC视频数据隐藏,得到含隐秘信息的加密域的H.264/AVC视频。由于隐秘信息提取与视频解密是可完全分割的,因此隐秘数据提取可在加密域完成,也可在解密域完成。如图1b所示,在加密域完成隐秘数据提取的具体过程为:③-1a、采用与步骤②-1相同的方式,将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1。③-1b、在加密域,对含隐秘信息的加密域的H.264/AVC视频码流进行二进制算术解码即进行部分CABAC熵解码,识别含隐秘信息的加密的运动矢量差分的绝对值的CABAC二进制串。③-1c、将当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串。③-1d、如果当前二进制串属于第一空间C0,则提取出信息比特0,然后继续执行步骤③-1e;如果当前二进制串属于第二空间C1,则提取出信息比特1,然后继续执行步骤③-1e;如果当前二进制串不属于第一空间C0也不属于第二空间C1,则直接执行步骤③-1e。③-1e、在加密域,将下一个识别出的含隐秘信息的加密的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,然后返回步骤③-1d继续执行,直至含隐秘信息的加密域的H.264/AVC视频码流中的所有运动矢量差分的绝对值的CABAC二进制串处理完毕,提取得到隐秘信息。在加密域完成隐秘数据提取,即数据的嵌入和提取都是在加密域进行的,可有效解决视频内容安全和隐私泄露问题。实施例二:本实施例提出的基于CABAC二进制串映射的加密域H.264/AVC视频数据隐藏方法中的H.264/AVC视频加密和加密域的H.264/AVC视频数据隐藏两部分的处理过程,与实施例一给出的方法中的H.264/AVC视频加密和加密域的H.264/AVC视频数据隐藏两部分的处理过程一致,不同之处仅在于本实施例给出的方法中的隐秘数据提取在解密域完成。有些情况下用户需要先对加密视频进行解密,然后从解密后的视频中提取隐秘信息,例如,一个拥有加密密钥(该密钥即为加密时所利用的二值伪随机序列对应的密钥)的授权用户收到含隐秘信息的加密视频,可以先用加密密钥对视频进行解密,解密后的视频仍然含有隐秘信息,该隐秘信息可以用于追踪数据源。如图1b所示,本实施例给出的方法在解密域完成隐秘数据提取的具体过程为:③-2a、采用与步骤②-1相同的方式,将H.264/AVC视频压缩编码标准中所有绝对值大于32的运动矢量差分的绝对值的CABAC二进制串分成第一空间C0和第二空间C1。③-2b、对含隐秘信息的加密域的H.264/AVC视频码流进行二进制算术解码即进行部分CABAC熵解码,识别加密的运动矢量差分符号的CABAC二进制串和加密的量化残差系数符号的CABAC二进制串,然后对加密的运动矢量差分符号的CABAC二进制串和加密的量化残差系数符号的CABAC二进制串进行解密,再进行二进制算术编码,得到解密后的含隐秘信息的H.264/AVC视频码流。在此,利用第一密钥生成的二值伪随机序列对加密的运动矢量差分符号的CABAC二进制串进行解密,解密过程与加密过程一致,即从第一密钥生成的二值伪随机序列中按序取出LS1(LS1表示运动矢量差分符号的CABAC二进制串)位,与运动矢量差分符号的CABAC二进制串进行异或解密,并且密钥为同一个,即加密和解密时所利用的二值伪随机序列为同一个;利用第二密钥生成的二值伪随机序列对量化残差系数符号的CABAC二进制串进行解密,解密的过程与加密时利用第二密钥生成的二值伪随机序列对量化残差系数符号的CABAC二进制串加密的过程一致,即从第二密钥生成的二值伪随机序列中按序取出LS2(LS2表示量化残差系数符号的CABAC二进制串)位,与量化残差系数符号的CABAC二进制串进行异或解密,并且密钥为同一个,即加密和解密时所利用的二值伪随机序列为同一个。即:对加密的运动矢量差分符号的CABAC二进制串进行解密的过程为:1)将当前识别出的加密的运动矢量差分符号的CABAC二进制串定义为当前二进制串。2)利用第一密钥生成的二值伪随机序列中的第k1位比特至第k1+LS1位比特对当前二进制串进行按位比特异或解密,然后令k1=k1+LS1+1,再执行步骤3),其中,k1的初始值为1,LS1表示当前二进制串的长度,k1=k1+LS1+1中的“=”为赋值符号。3)将下一个识别出的加密的运动矢量差分符号的CABAC二进制串作为当前二进制串,然后返回步骤2)继续执行,完成识别出的所有加密的运动矢量差分符号的CABAC二进制串的解密。对加密的量化残差系数符号的CABAC二进制串进行解密的过程为:(1)将当前识别出的加密的量化残差系数符号的CABAC二进制串定义为当前二进制串。(2)利用第二密钥生成的二值伪随机序列中的第k2位比特至第k2+LS2位比特对当前二进制串进行按位比特异或解密,然后令k2=k2+LS2+1,再执行步骤(3),其中,k2的初始值为1,LS2表示当前二进制串的长度,k2=k2+LS2+1中的“=”为赋值符号。(3)将下一个识别出的加密的量化残差系数符号的CABAC二进制串作为当前二进制串,然后返回步骤(2)继续执行,完成识别出的所有加密的量化残差系数符号的CABAC二进制串的解密。③-2c、在解密域,对解密后的含隐秘信息的H.264/AVC视频码流进行二进制算术解码即进行部分CABAC熵解码,识别解密后的含隐秘信息的运动矢量差分的绝对值的CABAC二进制串。③-2d、将当前识别出的运动矢量差分的绝对值的CABAC二进制串定义为当前二进制串。③-2e、如果当前二进制串属于第一空间C0,则提取出信息比特0,然后继续执行步骤③-2f;如果当前二进制串属于第二空间C1,则提取出信息比特1,然后继续执行步骤③-2f;如果当前二进制串不属于第一空间C0也不属于第二空间C1,则直接执行步骤③-2f。③-2f、在解密域,将下一个识别出的解密后的含隐秘信息的运动矢量差分的绝对值的CABAC二进制串作为当前二进制串,然后返回步骤③-2e继续执行,直至解密后的含隐秘信息的H.264/AVC视频中的所有运动矢量差分的绝对值的CABAC二进制串处理完毕,提取得到隐秘信息。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1