基于分形图像编码数据压缩算法研究 2.docx
《基于分形图像编码数据压缩算法研究 2.docx》由会员分享,可在线阅读,更多相关《基于分形图像编码数据压缩算法研究 2.docx(31页珍藏版)》请在冰豆网上搜索。
![基于分形图像编码数据压缩算法研究 2.docx](https://file1.bdocx.com/fileroot1/2023-2/21/ec66316a-4538-42bd-8279-03cb9c00639f/ec66316a-4538-42bd-8279-03cb9c00639f1.gif)
基于分形图像编码数据压缩算法研究2
新疆大学毕业论文(设计)
题目:
基于分形图像编码的数据压缩算法的研究
指导老师:
朱亚俐
学生姓名:
伍桐
所属院系:
信息科学与工程学院
专业:
通信工程
班级:
通信10-3
完成日期:
2014年5月18日
声明
本人郑重声明论文(设计)系本人在朱丽萍指导下独立完成,本人拥有自主
知识产权,没有抄袭、剽窃他人成果,由此造成的知识产权纠纷由本人负责。
签名:
目录
1绪论5
2分形图像编码的相关介绍6
2.1分形图像编码的基本原理6
2.2分形图像编码的实现步骤8
2.1.1编码主要步骤8
2.1.2解码主要步骤9
2.3分形图像压缩的发展方向9
2.3.1加快分形的编码速度10
2.3.2提高分形编码质量10
2.3.3分形序列图像编码10
3分形与其他技术相结合的改进方案11
3.1提高压缩比和编码效果常用的改进方法11
3.1.1改进分割的方法11
3.1.2改进覆盖式方法11
3.1.3提高显示效果的后处理法11
3.2提高编码和解码速度的方法12
3.2.1提高编码速度12
3.2.2提高解码速度12
4仿真实验13
4.1分型图像压缩流程图13
4.2实验步骤14
4.3仿真结果14
5结论17
参考文献18
附录18
编码程序18
解码程序21
基于分形图像编码的数据压缩算法的研究
摘要
分形图像编码方法是近十年来诞生并发展起来的一种新型图像压缩方法,它将图像编码为一组收缩映射,由这组收缩映射的不动点近似待编码对象。
借助自可变换性特征有效地消除了图像表达上的数据冗余,具有编码效率高、与分辨率无关、解码算法简单等潜在优势,已成为当今国际上图像编码领域中令人瞩目的研究方向。
本课题旨在以分块迭代函数系统为基础,研究分形图像编码的理论、方法和实现技术,探讨其工作机理,评价其能力,弥补其缺陷,设计并实现高效的图像压缩/解压算法,为多媒体智能软件系统提供有效的工具。
本文阐述了分形理论应用在图像压缩领域的基本原理和实现该算法的关键技术,介绍了具有代表性的各种图像压缩的新方法,阐明了各个方法的优劣,最后简要总结了分形图像压缩的改进方法以及未来的发展趋势
关键词:
图像压缩;分形;算法
ABSTRACT
Fractalimagecoding,whichisalsocalledattractorimagecoding,isaemergentmethodofimagecompressionduringthelastdecade.Itcodesimagesascontractionmapsofwhichthefixedpointsapproximatetotheimages.Redundancyinimagesareefficientlyexploitedviatheself-transformabilityontheblockwisebasis.Owingtoitshighcompressionratio,goodimagequality,andresolution-independenceofthedecodedimage,fractalimagecodinghasbeenattractingmuchattention,andbeingconsideredtobepromisingintherealmofimagecompression
Thispaperaimsatgivingacompreheresearchonthetheory,methodology,andimplementationtechniquesoffractalimagecodingundertheiteratedfunctionsystems,developingasetofefficientcoding/decodingalgorithmstosupportmultimediasoftwareapplications.
Thispaperexpoundsthebasicprincipleoftheapplicationoffractalintheimagecompressionfieldtheoryandkeytechnologyofthisalgorithm,thispaperintroducesallkindsoftypicalnewmethodofimagecompression.Itcomparedtheadvantagesanddisadvantagesofeverymethod,andfinallysummarizedtheimprovementandthefuturedevelopmenttrendofthefractalimagecompressionmethod.
Keywords:
ImageCompressing,Fractal,algorithm
1绪论
十多年前,在计算机图形学中分形技术被用来模拟自然景象,其中最常用的思想便是迭代函数系统(IFS)和递归迭代函数系统(RIFS)。
Barnsley首先看到迭代函数系统对模拟自然景象(如云图、树和叶子)的潜力。
IFS方法在数字图像压缩理论和应用上得到越来越多的关注,成为当今图像压缩领域中最新的方法之一.Barnsley和Sloan指出,分形图像压缩技术能获得很高的压缩比。
Jacquin首先实现了完全自动的分形压缩编码算法,给分形图像压缩技术带来突破性进展。
分形图像压缩技术是在此算法基础上逐渐发展,成为当今图像压缩的一个新领域。
“分形”一词译于英文Fractal,系分形理论的创始人曼德尔布罗特(B.B.Mandelbrot)于1975年由拉丁语Frangere一词创造而成,词本身具有“破碎”和“不规则”两个含义,主要是给自然界中存在的大量的不规则的支离破碎的复杂图形的命名。
1982年Mandelbrot用创造性的思维形成了以分数维、自相似性及无限可分为特点的、以迭代计算来描述的分形集合概念。
从图像处理的角度而言,在许多自然图像中确实存在某种形式的分形子相似性,这就自然地产生了把分形概念用于图像编码的思想。
1988年Barnsley首先利用图像整体与局部的自相似性,提出了一种应用迭代函数系统理论实现的分形图像压缩编码。
1990年Jacquin创造性地利用图像块之间的相似性,提出了一种可由计算机完全自动实现的分形图像编码算法,为分形图像编码的研究带来了一次质的飞跃,使利用分形编码进行图像压缩的方法开始进入实用阶段。
1992年底,美国微软公司成功研制了一张“MicrosoftEncarta”光盘.它仅用600Mbytes,就存贮了大量的文字数据、长达7h的声像资料、100部动画片、800张彩色地图和1000幅逼真的风景照片。
这张光盘的研制采用了分形图像压缩技术。
此技术以迭代函数系统为基础,采用了与常规技术不同的思想,能达到很好的压缩效果,目前,这一技术已引起了学者们的浓厚兴趣与深入研究,显示了广阔的应用前景。
2分形图像编码的相关介绍
分形编码算法是一种有损图像压缩技术。
它是图像压缩的重要数学工具,有着广阔的应用前景。
分形图像压缩是以迭代函数系统(IFS)为理论基础,即用自然景物的自相似性来进行数据压缩。
分形图像压缩算法具有高压缩比、任意尺度下的重构、快速编码等优越性。
此项研究由M.Barnsley于1988年首先提出,他成功地给予迭代函数系统的分形图像压缩应用于计算机图形学上,对航空图像进行压缩编码,并获得了1000:
1的压缩比。
但其算法有很大的局限性,最主要的缺陷就是编码过程需要人工干预。
2.1分形图像编码的基本原理
分形压缩的基本原理是利用分形几何中的自相似性原理来进行图象压缩。
所谓自相似性就是指无论几何尺度如何变化,景物的任何一小部分的形状都与较大部分的形状极其相似。
分形用于图像编码,总的来说可以分为两大类。
一类可称作分形模型图像压缩编码,即事先对一类景物建立分形模型。
编码时针对具体事物提取必要的分形参数,编码传送,实现压缩;另一类可称为IFS分形图像压缩编码,即利用迭代,得到原始图像的一个近似。
后一种实现方法简单,应用较为广泛。
目前,图像压缩方法已有近百种,但是,压缩效果、压缩比以及编码、解码时间还不能满足当前信息时代的要求。
传统的压缩算法一般已经成了定式,发展潜力不大,而分形图像压缩的思想新颖,潜力很大,在(人工干预条件下)压缩比达到10000:
1时,解码图像还有很好的视觉效果,是一个很有发展前途的压缩方法。
到目前为止,用数学系统去解析地研究分形最成功的是函数迭代系统(IteratedFunctionSystem,简称IFS),它既包含了确定性过程又包含了随机过程。
对现实世界中的图像集合引入Hausdorff度量,使其形成一个完备的度量空间,它的每个点既表示一幅图像,又是欧氏空间的一个紧子集。
✧Hausdorff距离空间该距离空间被认为是分形所在的空间,而分形之间的距离也正是由这种Hausdorff距离度量的。
✧仿射变换定义:
一个变换w:
R2—>R2的形式为:
w(x1,x2)=(ax1+bx2+e,cx1+dx2+f)
其中a,b,c,d,e,f均为实数,则称w为二维仿射变换,在直角坐标系中,我们可以写成如下形式:
实际上这是一种最广泛的线性变换,设矩阵
则A的意义可分解为旋转,伸缩,扭曲,反演等。
(3)如果已知原图及其变换图我们可以求出其中的仿射变换系数,这只要确定原图上三点和变换图上三点即可,我们可以列出以下方程:
a*x1+b*y1+e=r1
a*x2+b*y2+e=r2
a*x3+b*y3+e=r3
c*x1+d*y1+f=s1
c*x2+d*y2+f=s2
c*x3+d*y3+f=s3
由以上六方程可求出a、b、c、d、e、f。
分形图像压缩的理论基础是迭代函数系统(IFS)定理、收缩映像定理和拼贴定理。
一个迭代函数系统由一个完备的度量空间和其上的一组收缩映像组成。
✧收缩映像定理函数空间中的每一个收敛映像都有一个固定点,使函数空间中的每一个点经过这个收缩映像的连续作用后.形成的点列收敛于这个固定点。
✧迭代函数系统定理每个迭代函数系统都可以构成函数空间中的一个收缩映射。
于是,我们得到结论,每个迭代函数系统都决定一幅图像。
一般我们用仿射变换来表示这些映射。
✧拼贴定理
给定一幅图像I,可以选择N个收缩映像,这幅图像经过N个变换得到N个象集.每个象集都是一块小图像。
如果这N个小图像拼贴起来的图像与图像I之间的距离任意小,则这N个收缩映像构成的迭代函数系统所决定的图像就任意地接近图像I。
这就告诉了我们寻找迭代函数系统的方法。
2.2分形图像编码的实现步骤
整个图像压缩的过程可以分成两大部分,一是编码过程,一是解码过程。
在分形压缩中,前者主要基于拼贴定理,这个过程中要考虑图像的灰度分布,以及概率求取的策略。
后者主要是随机迭代问题。
2.2.1编码主要步骤
1.分割成适当的块
这可以借助于传统的图像处理技术,如边缘检测,频谱分析,纹理分析等,当然也可以使用分数维的方法。
分割出的每部分可以是一棵树,一片云等;也可能稍微复杂一些,如一片海景,它包括泡沫、礁石、雾震等;一般这每一部分都有比较直观的自相似性特征。
2.IFS编码求取
每一部分求其IFS编码,这就要借助拼贴定理了,同时也是人要参与的地方,在这个过程中有一些必须注意的地方。
1)每一块的“拷贝”必须小于原块,这是为了保证仿射变换的收缩性,至于每个拷贝的大小要根据各块图像的性质来确定。
2)用于拼贴的每个拷贝之间最好为不相连或紧相邻的。
而不要重叠或者有空缺。
这一点对概率的确定很重要,它影响到重构图像的不变测度。
所以对有重叠或空缺时,这部分的“质量”在计算中不能复用或者简单地丢弃,并最终要保证式子的成立。
3.仿射变换的概率设定
拼贴的过程不仅要保证吸引子的形状,也要考虑到每块区域灰度分布的情况,拼贴结束时要求出各个pi,Barnsley等人采取的方法仍然是下式:
(2.1)
其中Tm表示某一分割后的图像块,这种方法有较快的计算速度,这种定义实际上是建立在均匀测度的假设上的,即吸引子上相同大小的区域有相同的“质量”。
但是这在对实际的灰值图像处理过程中并不总是成立的,往往是经过某个仿射变换后的区域可能面积很大,但包含的总的灰度能量可能很小;反之某些小区域却有较大的灰度能量。
为此,一般的方法是对灰度能量多的区域干脆多重叠几个相同的仿射变换。
这在解码的过程中可能造成的一个结果是重构图中存在伪灰度现象;同时在随机迭代重构时总的步数也没有确定地给出,只能“足够大”,最后再把灰度归一化到[0,255]。
为此,我们在拼贴的过程中重新定义了概率的求取,令图像块Tm能量为Qm:
(2.2)
f(i,j)表示点(i,j)处的图像灰度,则可定义概率:
(2.3)
其中分子表示Tm经wi变换后区域中的能量。
这时的pi应该说可以很好地反映出了图像内部灰度分配的信息,它还可以指导图像重构,即对每一图像块重构时总的随机迭代次数就可以设为该块的总能量Qm,而每一次迭代生成点的灰度能量为为1个单位。
此时概率pi计算稍微比前一种方法麻烦些,在计算中可以用wi(Tm)与Tm的逻辑与来获得wi(Tm)区域的能量。
2.2.2解码主要步骤
分形的解码步骤很简单,可以用任意的图像作为初始图像,经过存储的相应的迭代函数的若干次迭代就可以准确的恢复原图。
2.3分形图像压缩的发展方向
在1990年,Jaquin提出了基于块的分形图像压缩算法。
虽然该算法的压缩比低于M.Barnsley,但是他的编码过程可自动进行。
因此此算法已经成为这一研究方向的典型代表。
Jacquin发展了IFS理论,提出了局部迭代函数理论(PIFS),他在此理论基础上提出了一种基于方块划分的分形图像压缩方案,在其方案中首先将原始图像划分为固定大小的方块,然后对每一块,通过反射变换在原始图像的紧缩图像中寻找最相似的部分。
这些操作可由计算机自动完成,他为分形图像压缩的研究带来了一次质的飞跃。
Jacquin提出的方案为分形压缩编码的研究注入了生机和活力,使分形编码成为目前编码研究的热点。
目前分形编码方案大致有三个发展方向:
加快分形的编解码速度、提高分形的编码质量、基于分形序列图像的编码。
2.3.1加快分形的编码速度
编码速度慢一直是分形编码实用化的最大障碍,下面分析Jacquin编码方案的计算复杂度。
对于一个C×C大小的图像,假设值域子块大小为K×K,定义域子块大小为2K×2K,则该图像共有C2/K2个值域子块,(C-K+1)2个定义域子块。
在Jacquin的方案中,一个值域子块和一个定义与子块之间的相似性的计算量与K2成正比,而对于每一个值域子块,编码计算量与(C-K+1)2/K2呈线性关系,所以,对于一幅图像来说,其编码复杂度与(C-K+1)2*K2*C2/K2=(C-K+1)2*C2成正比,因此,分形编码的计算复杂度为O(C4)。
所以,减少搜索、加快编码速度是研究的热点之一。
Jacquin根据子块的复杂度将其分成四类,对每个值域子块,仅在其同类的定义域子块中进行搜索;D.Saupr采用多维最近邻搜索方法代替传统分形编码中序列的匹配过程,其搜索匹配时间按指数级增长;K.F.Loe等将Jacquin方案中使用的分类器替换成模糊分类器,并使用遗传算法进行优化,该算法比未分类的编码方案快40%左右;C.K.Lee和W.K.Lee通过对匹配块之间关系的研究发现,如果两子块的自身方差相差太远,则这两个子块不可能相似,由此可去除许多不必要的匹配过程,提高压缩速度10倍以上;MinXue等将传统编码方案中每个值域子块匹配的串行操作转换为并行操作,计算复杂度下降,缩短了压缩的时间。
2.3.2提高分形编码质量
目前,提高分形编码质量的方法有三种:
采用混合编码方案、改进分割方案、改进灰度逼近能力等。
提高编码质量的方法是对传统的分割方法进行改进。
Jacquin使用两次分割,在提高编码质量的同时,又避免压缩比下降太多。
随后又有许多学者对上述方法继续进行改进,提出了四象限的划分方法,是分形压缩的质量和压缩速度有了较大的提高,是目前较为实用的压缩方法。
目前国内外研究者还提出了基于区域的分割方案。
在分形编码中常用的灰度逼近式为w(z)=s*z+t,可把灰度逼近式变为w(z)=t(z),t(z)可为任意形式,可以为二次以上的多项式,有效提高了编码效果,改进图像质量。
2.3.3分形序列图像编码
在实际应用中,序列图像较静态图像有着更广阔的应用,而且由于时间维的引入,编码方法也有新的变化[5],因此,序列图像编码是图像编码研究的热点之一。
1994年,加拿大学者Lazar等人发表了一篇论文,加入了时间维,将Jacquin的分形编码从二维变换直接推广到三维,并直接借用静态图像的分形编码方案,但这样没有充分利用桢间的相似性,压缩性能不佳。
此后,又有人提出了自矢量量化的序列图像编码方案,但图像恢复质量、压缩比及编码实时上仍不是很理想。
因此分形序列图像编码是当今分形压缩编码的一个重要方向。
3分形与其他技术相结合的改进方案
分形图像压缩编码的应用已经深入到人类活动的各个方面,并已取得了令人瞩目的成果。
分形图像压缩既考虑局部与局部,又考虑局部与整体之间的相关性,适合于自相似或自仿射的图像压缩;分形图像压缩解码时能放大到任意大的尺寸,且保持精细的结构;在高压缩比的情况下,分形图像压缩自动编码能有很高的信噪比和很好的视觉效果。
但是对于编码虽然有许多的改进措施,但是搜索匹配时间过长还是不能满足许多实际的需要,基于此,近两年来,很多学者和专家把分形与其它的技术和工具、方法混合编码取得了很好的效果。
常用的混合方案有与小波变换结合编码、与DCT变换结合编码、与加权有限自动机结合编码、与向量量化结合编码、与遗传算法结合编码、与FFT算法结合编码、与非线性模型结合编码、与算术结合编码。
近10年来,人们对于自适应块状分形编码进行了不懈的研究,提出了以上若干改进算法,这些算法在不影响视觉效果的条件下,大大减少了编码时间。
而且在高压缩比和解码图像任意放大方面,比现有的静态图像国际压缩标准JPEG好得多,已经开始显露出它的优势。
分形图像编码方法的实际应用也初见端倪,如分形图像压缩解码速度很快,当前已经适合于一次写入、多次读出的文档。
3.1提高压缩比和编码效果常用的改进方法
3.1.1改进分割的方法
有基本四叉树分割法、基于HV分割法。
这两种分割方法都是将图像分割成矩形。
而图像块的相似性未必都落在矩形内。
代替水平或垂直剖分而采用的分割方法有基于三角形分割法、基于六边形分割法、基于边界分割法、基于菱形分割法、基于多边形分割法。
3.1.2改进覆盖式方法
覆盖式方法有快速覆盖式分形压缩方法和四叉树重组QR算法两种它们都是采用通过合并值域块来提高压缩比。
前者要求合并后不一定规则,后者合并后则是规则的。
3.1.3提高显示效果的后处理法
分形图像压缩对值域块独立编码,这不能保证块与块之间的连接是光滑的,常有块效应出现,人的眼睛对此比较敏感。
消除块效应的一个常用方法是后处理,一般采用加权平均法。
3.2提高编码和解码速度的方法
3.2.1提高编码速度
在编码过程中最耗时的是搜索最佳匹配的定义域块,要提高编码速度,就必须缩小搜索范围,且保证最佳匹配落在该范围之内。
其改进方法有:
1.分类法:
搜索最佳匹配计算量很大,占用了编码的大部分时间,因而限制了它的实际应用。
为了缩短搜索时间,在匹配之前按照图像的特征如中值、方差、矩和其它感知或统计的几何特征,将定义域和值域块进行分类,匹配时只在同一类中进行搜索比较。
这样在不降低图像质量的前提下,大大提高了编码速度。
常用的分类方法有:
基于明暗度的定向分类、基于空域特征的分类、基于相对矩的分类、基于小波的分类、基于人类视觉系统(HVS)分类、基于模糊分类、原形的分类、自适应码本簇化的分类、向量量化的分类。
以上各种方法分别从不同的角度、使用不同的工具对图像块分类,各自保持了自己的特点,对加速编码有不同程度的作用。
2.搜索法:
匹配搜索耗时最长,常用的加速搜索方法有:
局部搜索法、提取特征追踪法、基于方差搜索法、FFT搜索法。
3.2.2提高解码速度
分形解码速度相对于编码要快得多,一般它迭代10次即可完成。
然而对于一些实际应用来说,仍然希望迭代次数越少越好,这样可以进一步加快解码速度。
常用的加速方法有金字塔式解码器、去均值解码算法、非迭代算法、BCC和ICC算法。
4仿真实验
4.1分型图像压缩流程图
图4.1编码流程图图4.2解码流程图
4.2仿真步骤
4.2.1编码过程
(1)读入图像,读取原始图像的灰度值
(2)将原始图像分割成8*8和16*16的像素图
(3)借助拼贴定理,对每一部分求其IFS编码,每个收缩后的父块进行8种变换(矩阵0度旋转,矩阵水平中线反射,矩阵垂直中线反射,矩阵180度旋转,矩阵相对135度反射,矩阵90度旋转,矩阵270度旋转,矩阵相对45度反射),进行匹配运算,对每一个子图在图像中寻找一块与之最匹配的父图
(4)存储迭代函数,找出最佳匹配块,记下坐标值和应用误差值,一次完成对原图像的编码,从而实现图像的压缩
4.2.2解码过程
(1)从分形编码文件中读取子图,父图以及原图尺寸的信息
(2)根据所得的数据,定义两个和原图一样大小的图像区:
R区和D区。
R区用来保存迭代过程中所生成的图像,D区用来产生码本Q。
(3)初始化解码空白图像
(4)对于R区中每个R块Rj,根据分形文件中的分形码,在D区中找到相应的Di块,经过适当变换得到所有的R块后,经拼贴就形成了一次迭代的图像。
(5)将R区的图像复制到D区。
(6)如果迭代次数达到预定次数则停止,否则重复步骤
(2)一(5)。
(7)所有R区块解码完成则解码图像完成。
4.3仿真结果
图4.3原图
图4.4编码图像
图4.5第一次迭代
图4.6第二次迭代
图4.7第三次迭代
5结论
经过MATLAB运行程序后,编码图像大小为22357字节,而原图像大小为274432字节。
压缩比为12:
1。
解码过程中,第一次运行解码程序得到的图像大小为43729字节,第二次运行解码程序得到的图像大小为94656字节,第三次运行解码程序得到的图像大小为245990字节,通过观察发现,解码过程中,迭代次数越多,解码图像越越逼近原图。
但在解码过程中,需要人工进行干预,这