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

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

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



背景技术:

近年来,随着多媒体技术的发展,人们对于视频内容、隐私保护的相关技术越来越重视。相对于图片数据,视频数据具有体积大,图像帧之间相关性强等特点。通常来说,视频都是经过压缩编码,以方便存储和传输。这就使得视频上的加密技术与普通的加密技术有所不同,例如,通常在加密视频内容的同时,要保持其格式兼容性。如何兼顾安全性、格式兼容以及应用场景的其他需求,是视频加密技术一个挑战。

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

基于cavlc编码的h.264/avc视频格式兼容加密方法,根据cavlc编码的特点,加密了h.264/avc视频的时域、空域参数以及结构信息;同时,为感兴趣区域提供了专门的保护,提高了加密算法对隐私内容的保护能力;它也保留了对加密视频进行检测处理的能力,兼顾了视频处理与视频内容保护的两种需求。



技术实现要素:

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

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

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

s1:根据码流中分块信息,对视频进行分组;

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

s3:对剩余块使用部分加密;

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

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

s11:定位出视频中属于感兴趣区域的块位置,将这些块记为感兴趣块r,r中用mp1记录位置信息;

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

s13:剩余块记为o。

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

s21:利用aes-cfb对r中的所有比特进行加密;

s22:对于s中的数据进行部分加密,之后,利用aes-cfb对所有比特进行加密。

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

对于加密o中每个块:

s31:加密其帧内预测模式ipm;

s32:加密其运动向量残差mvd码字的后缀;

s33:加密其非零系数的后缀及其符号;

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

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

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

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

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

s45:将这些nalu置于nvb的码流之后,从而得到加密后的视频码流。

进一步地,该方法能够根据需求选择感兴趣区域进行加密,同时,可以利用部分密钥,进行加密视频的检测处理,具体过程是:

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

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

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

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

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

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

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

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

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

本发明方法针对cavlc编码的h.264/avc视频,先对视频进行格式兼容部分加密,再对感兴趣区域进行完全加密,为感兴趣区域的内容提高了更好的保护。同时,加密了视频结构信息,减少了边信息泄漏导致视频内容泄漏的风险。此外,该方法能够根据不同的应用场景选择不同的感兴趣区域,更适应于实际应用拓展;同时利用多个密钥,使得能够在敏感信息不泄漏的情况下,保留对加密视频的检测处理能力,从而可以为视频监控系统、云存储等应用提供帮助。

附图说明

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

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

图3是采用本发明方法密钥的构成图;

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

具体实施方式

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

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

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

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

实施例1

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

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

①根据不同应用场景选择不同的检测算法,例如人脸检测,定位出视频中属于感兴趣区域的块,将这些感兴趣块的集合记作r;此外,在r中用mp1记录感兴趣块对应的位置信息。具体地

mp1是由0,1组成的序列,其中1表示视频中对应位置的块为感兴趣块,0则表示视频中对应位置的块为非感兴趣块。

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

②随机选择一些块,记其集合为s;在s中,用mp2记录由哪个集合获取原始视频块的信息;为了能够在不泄漏感兴趣块内容的情况下恢复出原始视频结构,以用于检测处理,s中用skip块替代相应的r中的感兴趣块;因此,s中既包含原本即为skip的块,也包含用于替代感兴趣块的skip块。具体地,

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

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

③将剩余块的集合记为o。

(2)对r和s进行加密:

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

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

(3)对o进行部分加密,密钥为k1,其中,对cavlc编码的部分加密方法如下:

①加密帧内预测模式ipm,其中

intra_16×16的加密方法为:intra_16×16的预测模式有4种,编码在宏块类型的码字的最后一个比特中,因此,加密宏块类型mb_type对应的码字的最后一个比特;

intra_4×4的加密方法为:intra_4×4的预测模式有8种,利用最有可能模式mpm进行编码。标识符为1,表示预测模式即是最有可能模式mpm。如果最有可能模式mpm标识符为0,则后缀的三个比特用于表示预测模式与mpm的差别;加密这三个比特不会影响格式兼容,因此,选择这后缀的三个比特进行加密。

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

采用cavlc编码的h.264/avc中,mvd使用了指数哥伦布码eg0进行编码。指数哥伦布码可以表示成「前缀0后缀」的形式,其中前缀由全1的比特组成,表示组别;后缀表示编码的参数在该组中的偏移量以及相应的符号信息。加密eg0码字的后缀不会改变格式兼容,因此,选择mvd码字的后缀进行加密。

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

采用cavlc编码的h.264/avc中,经过变换、量化、预测等编码之后的残留系数,使用如下的形式:

「非零系数的数目,拖尾系数的数目,拖尾系数的符号,除拖尾系数外的非零系数的幅值,最后一个非零系数前零的数目,每个非零系数前零的数目」。

其中非零系数的幅值使用eg0进行编码。类似的这些eg0码字的后缀,即是用于加密的比特。此外,用于编码非零系数、拖尾系数符号的比特,也是需要进行加密的比特。

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

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

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

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

a.视频的高与宽参数,替换成nvb的大小;

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

c.nvb中边缘宏块的帧内预测模式ipm,替换为不需要从超出nvb中图像范围的像素预测的模式;

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

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

⑤将这些nalu置于nvb的码流之后,得到加密后的视频码流。

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

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

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

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

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

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

②利用密钥k3解密nalu类型为22中的数据,得到r;

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

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

本发明方法的原理如下:

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

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

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

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

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

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

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

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

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