一种基于CABAC编码的H.264/AVC视频格式兼容加密方法与流程

文档序号:14253498阅读:417来源:国知局
一种基于CABAC编码的H.264/AVC视频格式兼容加密方法与流程

本发明涉及多媒体信息安全领域,更具体地,涉及一种基于cabac编码的h.264/avc视频格式兼容加密方法。



背景技术:

近年来,随着多媒体技术的发展,视频技术越来越多地出现在人们的日常生活中。随之而来的,人们对于视频内容、隐私保护的相关技术也越来越重视。

对于视频来说,现有方法主要针对视频码流中的空域、时域相关参数进行加密。但如果从安全性的角度来考虑,这样的算法都存在着隐私泄露的风险。特别地,经过加密的媒体数据本身结构与加密前没有太大的区别。媒体数据自身的结构(块顺序、帧顺序等)附带了大量的边信息。这些未加密的结构信息,很有可能导致隐私泄露。由于经过压缩编码的媒体数据结构复杂,前后文往往具有高度相关性,并且不同的媒体数据格式所使用的编码标准不尽相同;同时,还需要考虑编码效率、加密时间等问题,对媒体数据的结构信息进行加密是一项艰巨的任务。加密空域、时域相关参数,提供了一种全局的轻量级保护;它不能满足不同应用场景对于感兴趣区域进行可控的调整,以及专门的局部保护的需求。此外,加密的视频往往用于云存储系统等场景,需要保留对加密视频一定的处理能力。

基于cabac编码的h.264/avc视频格式兼容加密方法,主要对cabac编码的h.264/avc视频的时间、空间参数以及结构信息进行了加密;设计了多层加密系统,为感兴趣区域提供了专门的保护,提高了加密算法对不同应用场景的适应性;同时,又保留了对加密视频检测处理的能力,兼顾了云端处理与视频内容保护的两种需求。



技术实现要素:

本发明提供一种基于cabac编码的h.264/avc视频格式兼容加密方法,该方法能够高效的对cabac编码的h.264/avc编码的视频进行加密。

为了达到上述技术效果,本发明的技术方案如下:

一种h.264/avc视频格式兼容加密方法,包括以下步骤:

s1:对视频块进行分组;

s2:对感兴趣块、随机选择块进行加密;

s3:对剩余块进行部分加密;

s4:将s2生成的加密块打包,与s3生成的部分加密块重新组织为格式兼容的加密视频码流。

进一步地,所述步骤s1的具体过程是:

s11:利用检测算法,例如人脸检测,定位出视频中属于感兴趣区域的块位置,将这些块记为感兴趣块r,r中用mp1记录位置信息;

s12:随机选择一些块,记为随机选择块s,s中用mp2记录位置信息,s中用skip块替代相应的r中的感兴趣块;

s13:将剩余块记为o。

进一步地,所述步骤s2的具体过程是:

s21:对于r中每一个块中的数据,进行算术编码后,利用aes-cfb对所有比特进行加密;

s22:对于s中每一个块中的数据,进行部分加密以及算术编码后,利用aes-cfb对所有比特进行加密。

进一步地,所述步骤s3的具体过程是:

s31:加密o中每个块的帧内预测模式ipm;

s32:加密o中每个块的运动向量残差mvd码字的后缀;

s33:加密o中每个块的非零系数的后缀及其符号;

s34:对于o中每一个块中的数据,进行算术编码。

进一步地,所述步骤s4的具体过程是:

s41:将加密后的r中的数据,打包为类型22的nalu;

s42:将加密后的s中的数据,打包为类型23的nalu;

s43:将加密后的o中的数据,重新组织为一段视频,记为nvb,重新计算nvb中参数集中的部分参数;

s44:将nvb中相关的原始参数及r、s中相关的参数集记为p,完全加密后打包为类型17的nalu;

s45:将类型为17,22以及23的nalu置于nvb的码流之后,得到加密后的视频码流。

进一步地,该方法能够根据需求选择感兴趣区域进行加密,同时,为视频提供多层次的保护,利用部分密钥,可以恢复出除了感兴趣区域之外的部分信息,用于做加密视频的检测处理,具体过程是:

s51:解密nalu类型为23中的内容,得到部分加密的随机选择块

s52:解密nalu类型为17中的内容,得到部分加密的原始参数

s53:根据mp2从以及部分加密的剩余块恢复出具有原始视频结构的视频,其中感兴趣块所在区域信息已经由skip块代替,这个具有原始视频结构的部分加密的视频可用于检测处理。

对应的解密方法具体过程是:

s61:依次解密nalu类型为17,23中的内容,得到随机选择块s和原始参数p;

s62:解密nalu类型为22中的内容,得到感兴趣块r;

s63:解密nvb中的内容,得到剩余块o及其他参数;

s64:根据mp1,mp2恢复原始视频结构,利用解密后的数据进行后续解码工作。

与现有技术相比,本发明技术方案的有益效果是:

本发明方法先对视频进行格式兼容加密,能够为感兴趣区域提供专门的保护,同时,加密了视频结构信息,减少了边信息泄漏。该方法能够根据不同的应用场景选择不同的感兴趣区域,更适应于实际应用拓展;同时利用多层加密系统,使得能够在敏感信息不泄漏的情况下,保留对加密视频的检测处理能力,从而可以为云监控系统、云存储系统等应用提供帮助。

附图说明

图1是采用本发明方法的基本流程图;

图2是采用本发明方法进行加密基本思想的示意图;

图3是采用本发明方法对非零系数进行部分加密的示意图;

图4是采用本发明方法实现加密的框架图;

图5是采用本发明方法加密的视频帧的例子。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1,为本发明方法中基于格式兼容加密方法的流程图。其中加密的基本思想如图2所示,先对感兴趣块和随机选择块进行加密,再将其作为附加信息,置于经过部分加密的剩余块之后,得到经过加密的视频码流。其具体步骤如下:

(1)对视频数据进行分组,具体的,按照以下方式对视频的块数据进行分组:

①利用检测算法,例如人脸检测,定位出视频中属于感兴趣区域的块位置,将这些块记为感兴趣块r,r中用mp1记录位置信息,具体地

mp1可以表示为由0,1组成的序列,其中1表示对应块为感兴趣块,0则反之。

r的一个例子可以是「mp1,……,0,ri,0,……」,其中0为间隔符,ri表示一个感兴趣块。

②随机选择一些块,记为随机选择块s,s中用mp2记录位置信息,s中用skip块替代相应的r中的感兴趣块;

mp2可以表示为由0,1组成的序列,其中1表示对应块为在s中,0则反之。

s的一个例子可以是「mp2,……,0,si,0,skip,0,……」,其中0为间隔符,si表示一个随机选择块,skip是一个跳过宏块(i帧中用另一个随机选择块代替),skip用于替代对应位置的感兴趣块,使得视频能够使用恢复部分边信息用于检测处理操作。

③将剩余块记为o。

(2)对感兴趣块和随机选择块进行加密:

①对于r中每一个块中的数据,进行算术编码后,利用aes-cfb,密钥k3,对所有比特进行加密,得到fe{r},其中fe{}表示对其中所有比特利用aes-cfb进行加密;

②对于s中每一个块中的数据,进行部分加密(具体方法见步骤(3)),密钥k1,得到再进行算术编码后,利用aes-cfb对所有比特进行加密,密钥k2,得到

(3)对剩余块进行部分加密,其中,对cabac编码的部分加密方法如下:

①加密o中每个块的帧内预测模式ipm,其中

intra_16×16的加密方法为:加密宏块类型对应的码字的最后一个比特;

intra_4×4的加密方法为:如果最有可能模式标识为0,则加密后缀的三个比特;

②加密o中每个块的运动向量残差mvd码字的后缀,具体地:

采用cabac编码的h.264/avc中,mvd使用了ueg3进行二进制化,mvd大于9的码字,会由eg3码字表示大于9的那一部分信息。对于这些mvd,选择用于加密的比特为其eg码字的后缀。

③加密o中每个块的非零系数的幅值及其符号,具体地:

采用cabac编码的h.264/avc中,非零系数使用ueg0进行二进制化,幅值大于15的码字,会由eg0码字表示大于15的那一部分信息。这些eg0码字的后缀,即是用于加密的比特。此外,用于编码非零系数、拖尾系数符号的比特,也是需要进行加密的比特。其加密过程如图3所示。

④对于o中每一个块中的经过部分加密后(密钥k1)的数据,进行算术编码。

(4)将(2)生成的加密块打包,与(3)生成的部分加密块重新组织为格式兼容的加密视频码流。

①将加密后的r中的数据,打包为类型22的nalu;

②将加密后的s中的数据,打包为类型23的nalu;

③将加密后的o中的数据,重新组织为一段视频,记为nvb,重新计算nvb中参数集中的部分参数,具体地有如下类型的参数:

视频的高与宽参数,需要重新换算成nvb的大小;

视频片头中关于片中第一个宏块所在地址信息的参数,需要换算成nvb中的地址;

nvb中边缘宏块的帧内预测模式ipm,需要换算为不需要从越界像素(超出nvb中图像范围)预测的模式;

mvd需要根据nvb中的预测运动向量pmv由公式mv=pmv+mvd重新计算。

④将nvb中相关的原始参数及r、s中相关的参数集记为p,完全加密后打包为类型17的nalu;

⑤将类型为17,22以及23的nalu置于nvb的码流之后,得到加密后的视频码流。

(5)该方法能够根据需求选择感兴趣区域进行加密,其整体实现框架如图4所示。同时,为视频提供多层次的保护,利用部分密钥,可以恢复出除了感兴趣区域之外的部分信息,用于做加密视频的检测处理。其中,使用部分密钥恢复原始视频结构信息用于处理的的流程如下:

①利用密钥k2解密nalu类型为23中的内容,得到部分加密的随机选择块

②利用密钥k2解密nalu类型为17中的内容,得到部分加密的原始参数

③根据mp2从以及恢复出具有原始视频结构的视频,用于检测处理。

(6)完全解密过程为加密的逆过程,其具体流程如下:

①利用密钥k2、k1依次解密nalu类型为17,23中的内容,得到随机选择块s和原始参数p;

②利用密钥k3解密nalu类型为22中的内容,得到感兴趣块r;

③利用密钥k1解密nvb中的内容,得到剩余块o及其他参数;

④根据mp1、mp2恢复原始视频结构,利用解密后的数据进行后续解码工作。

本发明方法的原理如下:

本方法利用预处理的检测方法,提取出感兴趣区域,进行专门的保护处理,从而能够适应不同应用场景,比全局的轻量级加密提供更好的保护。本方法同时结合了逐比特加密和部分加密,为视频内容提供了多层次的保护,从而使得本方法能在不泄漏感兴趣区域信息的情况下,满足进行部分检测处理算法的需求。本方法加入了随机选择块,同时重新组织了视频块信息,使得加密后的视频码流结构与原始视频码流结构具有极大的差异,能够更好地防止边信息泄漏,保护视频内容。

利用本发明方法进行实验的结果:

以352×288的视频为例,部分结果如图5所示:

其中,左边的图像为原始视频帧,右边的图像为加密后的视频帧。可以看出,我们的算法可以很好地保护视频内容。详细的结果如下表所示:

其中,用于测试的每段视频为300帧,采用的是jm18.6参考代码,ir为残留信息,lsd为局部方差,es为加密空间。通过表1可以看到,本发明方法加密后的视频ir非常小,lsd很大,即达到了较好的视频内容保护效果。同时,加密空间占整个参数空间的比率超过了57%,比起现有的加密(20%),能够更好地对抗暴力破解,保护视频内容。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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