近年来,视频压缩编码和视频加密这两个领域的研究均十分活跃,其中主要的研究技术也较为成熟,但是作为图像处理的两个重要的方面,人们对他们结合起来的分析和研究还缺乏足够的重视和足量的人力物力的投入。
混沌理论是近年来发展较快的非线性科学的重要分支,因其具有非周期、连续宽频带、类噪声和长期不可预测等特点,所以特别适用于保密通信等领域。分形编码有着精细的结构,具有任意小比例下存在某种自相似细节的特点。分形理论的特点决定了人们着重研究它在图像压缩方面的作用,但是它在图像加密方面的应用还没有被人们开发出来。本文通过对现有图像压缩算法和加密算法发展方向的分析,提出一种将分形压缩编码和混沌保密算法相结合的算法。经分析该算法具有较好的压缩加密效率,并且能够满足对图像的安全的要求。
分形图像压缩
分形图像压缩是利用原始图像所具有的自相似性,构造一个迭代函数系统(IFS),利用IFS抽取图像的自相似性,即用图像中的一个子块经过分形仿射变换来逼近同一图像中的另一子块,而且仅仅将仿射变换系数记录下来,从而达到压缩图像数据的目的。
分形压缩理论主要包括:分形空间上的压缩映射,迭代函数系统,压缩映射的不动点定理,拼帖定理及仿射变换等理论。
一般的分形压缩编码过程为:
(1)将原始图像分块
把原始图像分别分割成尺度K*K的值域块 Ri和L*L的定义域块 Di,一般取L=2K.
(2)寻找合适的分形变换参数
利于图像局部之间的相似性,根据了IFS拼贴定理,为图像中每一个值域块Ri 寻找与之最匹配的定义域块 Di及相应的仿射变换 wi.
(3)存储分形变换参数
找到最佳匹配块,记下坐标值和应用误差值,依次完成对原图像的编码,从而实现图像的压缩。
经过上面的分析可以看出在分形图像压缩算法中最核心的部分就是对图像的仿射变换 的选取。下面我们来详细分析其算法:
首先定义图像f(x,y)上的映射 wi:F →F为:
![]()
在变换中,常数Si 控制灰度图像的对比度,Qi 控制图像的亮度。
空间压缩变换一般可以简化成8种形式,即旋转0°,90°,180°,270°,垂直中线反射,水平中线反射,相对45°反射以及相对135°反射。我们用c++编程实现仿射变换,主要编码如下:
对当前定义域块做变换(8种)
for(t=0;t<8;t++)
{ if(t==0)
{ for(k=0;k
for(l=0;l
TransDomain[k][l]=Domain[m+k][n+l]; }
//旋转
同样类似其余七种变换主要形式如下:
TransDomain[k][l]=Domain[m+k][n+BLOCKSIZE-1-l]; //旋转90°
TransDomain[k][l]=Domain[m+BLOCKSIZE-1-k][n+l]; //旋转180°
TransDomain[k][l]=Domain[m+l][n+k];
//旋转270°
TransDomain[k][l]=Domain[m+l][n+BLOCKSIZE-1-k]; //垂直中线反射
TransDomain[k][l]=Domain[m+BLOCKSIZE-1-l][n+BLOCKSIZE-1-k]; //水平中线反射
TransDomain[k][l]=Domain[m+BLOCKSIZE-1-k][n+BLOCKSIZE-1-l]; //相对45°反射
TransDomain[k][l]=Domain[m+BLOCKSIZE-1-l][n+k]; //相对135°反射
通过寻找图像的反射变换,我们可以得到变换后的图像与原图像之间的误差,设其为erri ,预先给定一个误差标准 ε,只要每一块的误差 erri<ε ,就认为完成了图像的分形编码,否则将值域块分割成更小的值域子块,重复该过程,直到误差满足要求或者值域块的分割已经达到预先确定的最小值则认为完成了图像的分形编码。分形编码中对图像的分割越小,则编码的精确程度就会越高,但同时高的编码质量却影响了压缩率和计算速度。

