法律状态公告日
法律状态信息
法律状态
2017-06-23
授权
授权
2014-10-15
实质审查的生效 IPC(主分类):H04N19/13 申请日:20140605
实质审查的生效
2014-09-10
公开
公开
技术领域
本发明涉及一种视频数据隐藏方法,尤其是涉及一种基于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二进制串(bin string)和量化残差系数符号的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二进制串中的第一个比特串,上 下文索引增量由下述公式得到,
表2确定上下文索引增量的比特位置
数据嵌入可能会引起|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二进制串处理 完毕,提取得到隐秘信息。
机译: H.264 / AVC基线配置文件的基于RDO的运动矢量数据隐藏方法进行错误检测的方法
机译: H.264 / AVC基线特征的基于RDO的运动矢量数据隐藏错误检测方法
机译: H.264 / AVC压缩域的视频水印嵌入方法