基于H.264的帧变异或视频加密算法,满足视频实时通信时的加密要求。帧变异或加密算法的基本思想是仔细处理视觉重叠图像,以确定密钥或原始图像帧上的另一帧图像,从而不显著降低H.264视频编码的效率,使未经授权的图像理解不可行,同时保持视频流可以正常解码。
视频加密算法的帧异或过程。
输入:Ori_Seq[N]等待加密原始图像序列;流动密钥Key_Str[t]由密钥种子生成;滑动窗口尺寸为2W。
输出:Cry_Seq[N]加密图像序列
寄存器说明:i、j、t分别用于标记当前操作的原始图像帧、异或图像帧和流密钥比特性;
1)从原始图像序列中取出以I帧开始的下一组等待加密的原始图像帧组,并将其记录为Ori_Seq[x]到Ori_Seq[y],i=x,转2);
2)根据滑动窗口和流密钥,确定具有强大时空相关性的异或图像帧组,以I帧开始。具体操作如下:
根据Key_Str[t]到Key_Str[t+w-1]的wbit流密钥定位Ori_Seq[x]之前的2W已解码图像帧中的一个异或图像帧,找到最近的I帧Xor_Seq[m]和其后的P和B帧,并将其记录为Xor_Seq[m]到Xor_Seq[n],t+=w,转步步骤3);
3)如果是i≤y,根据key_str[t]到key_str[t]到key_str[+log2m-n]的[log2m-n]bit流密钥定位Xor_seq[m]到Xor_seq[n]中的一个异或图像帧Xor_seq[j],转步步骤4)将Ori_seq[j]与xor_seq[j]相差;否则,转步1;
4)如果Ori_Seq[i]使用帧预测,首先检查Ori_Seq[i]和Xor_Seq[j]是否适用于细节集中模型。如果是,转动步骤5),否则转动步骤6);如果Ori_Seq[i]采用帧间预测,则转动步骤7;
5)如果它们都是细节集中模型,则采用宏观的套接策略进行不同或不同,并使用矩形套索将Xor_seq[j]的细节作为一个整体挑选和取接在Ori_seq[i]的细节中,并将10像素的位置平移到左上方,以产生加密图像Cry_seq[i]在相应位置的宏块像素值。
6)只要Ori_seq[]或Xor_seq[j]中的一个因细节过于分散而不方便宏观挖掘,即使用微观集合方法。按照右下角-左上角的反向顺序,选择Xor_seq[j]中的4×4细粒度宏块,按照左上角-右下角的顺序,或者在Ori_Seq[i]的4×4宏块上,如果Xor_Seq[j]的4×4宏块太多,丢弃剩余部分,如果块数太少,回收使用,生成Cry_Seq[i],I++,转步3);
7)帧间预测均采用微观套取。根据运动补偿的不同尺寸分为以下五组:
Ori__Seq[I]中的运动补偿块也按此分类划分为五类,每组仍然按照右下角-左上角的反向顺序划分或,即Ori_Seq[I]中的16×16运动补偿分割只与Xor_Seq[J]中的16×16分割不同,Xor_Seq[J]每组材料丢弃太多,如果不足,则回收利用。对于B组和D组中的划分块,如果它们是不同的或有时,如果它们的大小是相反的,将Xor_Seq[J]对应的划分块按90°的顺序旋转,然后使用,生成Cry_Seq[I],I++,旋转步骤3)。
通过加密图像序列Cry_Seq[N]和异或图像序列Xor_Seq[N],再次变异或恢复原图像序列Ori_Seq[N]的过程,是一种由加密图像序列Cry_Seq[N]和异或图像序列Xor_Seq[N]再次变异的过程。