
基于傅立叶级数的简易有损图像压缩算法.docx
6页基于傅立叶级数的简易有损图像压缩算法付浩 PB07210181概览数据压缩在信息技术中有着广泛的用途一般而言,在保证一定的图像质量前提下, 使用有损压缩算法压缩数字图像可以获得比较令人满意压缩比本文通过对数字图像信 息进行恰当的处理,利用傅立叶级数近似拟合图像,从而实现了一种简易的有损图像压 缩算法预备知识数字图像在计算中的表示方式我们都知道,任何可见光的色彩都是由红绿蓝(RGB)三原色按一定比例构成的在计 算机小,颜色的一种常见表示方式就是用三个字节分别表示RGB三种色彩,其川每个字 节取值范围为[0,255]且为整数如此便町以表示出224=16777216种色彩,已经超过了 人眼所能分辨的颜色数,因此使用这种方式就已经足够了记任一颜色为向量(RGB), 一幅宽iv个像素高h个像素的图像便可川wJ个向量 表示为了方便处理,木文只取向量的一个分量进行处理即把一幅彩色图像分解为3 幅灰度图像分别处理,11每幅灰度图像都用含w/项的整数数列表示由于人的视觉特点,一般人难以分辨压缩还原后的图像颜色与原图像的微小差别 有损图像压缩利用这一特点实现比无损压缩算法更好的压缩比傅立叶级数有关傅立叶级数的详细论述请参阅有关书籍,这里仅不加证明地叙述木文所耍用到 相关性质。
1. 傅立叶系数设函数/(兀)在数轴上处处连续且在有限区间上逐段光滑,11周期为2几 令:an^£/(x)cos127TX . axT右匸・f(x)sin牛•心根据迪里赫勒定理,傅立叶级数勺+ $(%cos —+ /.z?sin—)绝对一致收敛于2 w=i T T一 \ Hfl 、 Q() / n7rx f ・ n兀X、f(X)'即 /(兀)=才 + 工(% cos + bn sin -—)2. 余弦级数设/(刃为定义在有限区间[0,7]±的连续函数,对其进行偶性开拓,即构造一个新函数/(x)=f(x),0 对于每个小块,设其高为w宽为方,按照先从左到右后从上到下的顺序 将其灰度值依次记为数列c(),q,,莫115 = w • -1为简单起见,构造定义在闭区间[0,加上的一次分段函数:/W =(5 -St)兀一加(5 -J ⑶m-1 < x < m,l < m < njn e Z易见/(%)为分段光滑的连续函数,且f(m) = cin 计算傅立叶系数根据(3)的定义,下面将用有限项的傅立叶函数列近似拟合于(兀):ri m=lL(5+c“n+ £c”Jm=I故有”一1+£s)krcx t dxnak = -f/wn 乂=-E f \ - - - ^-1)+ ]co 沦d s xn心s n2 . km . k7r(m_V)、 2n . .r=—L© sm 5_] sin ] + 2. {(5 一 5-i)2osK 兀 m=l n n K 7T m=lCOSk7im k7r(m-i\. cos—— ]} n n该和式第一项等于okTcm k兀(jn-V) 1 kn 心一丁工人叭十由 cos cos =-cos cos— 口J 知第—项等于n n 2 2n 2n…COS 竺!>“r「)cos^^] k27r2 2n M,心 2n因此/:龙(2 加一 I)〕2n失真度评估定义F(P,沪牛+ D”cos 守L n=i 」本文将使用(6)计算恢复被压缩的图像。 如果p过小,显然图像将会严重失真;如果 P过大,将会占用过多的储存空间而无法达到压缩的B的考虑两种极端情况若被压缩的图像小块为纯色的色块,显然只需取卩=0即可还 原图像;若被压缩的图像小块相邻像素变化极为“剧烈”,显然需要取较大的〃才能保 证图像还原的质量因此,为了选择一个合适卩,有必要对压缩还原后的图像失真度进行评估可以证明,(2)定义的平方平均偏差等于F(p,jc)与/©)的平方平均偏差,即亠=[[/(兀)-F(p,兀)]2必,因此可以使用(2)來评估压缩后图像与原图像的偏差 其中f f (x皿=£ [丿(5 -cm_})x-加© -5_]) + cm]2clx m=\因此n 2 P+ C”l|2 )-T(~^~ + £ dj )L )t=i易见亠关于P单调递减设为画质阀值,即对每一个图像小块,p的取值都应 恰好使得q可直接由用户指定,也可根据图像小块的大小以及用户对画质的要求等因素來决 定,这个问题较为复杂,暂不讨论压缩数据储存一个字节最多只能表示不大于255的非负整数根据对输入图像信息的限制,对任 意0 为了高效的利用储存空间,需要对色做适当的放缩,可令k1 2 3 47t22n22/21 2易见0"; 5255,从而实际储存的压缩数据为d.=\a°,i = Q (10解压还原时按照(6)(9)做相应计算即可算法描述压缩部分1. 由用户指定图像小块的大小w和/2,以及画质阀值g,令«:= w/7-l2. 输入一幅彩色或灰度图像,若为彩色图像,则将其分解为3幅灰度图像分别处 理3. 对某一未处理小块,按照⑷计算兔,令p = 0,按照⑻计算△:=44. 若△ V q则跳转到75. 令p:=p + l,按照⑸计算你,令6. 跳转到47. 按照(9)(10)处理数据,并将{%}以及卩写入磁盘或内存缓冲区中8. 如果还有没处理的图像小块则跳转到3,否则算法结束粗略估计时•间复杂度为O(w0h0p),其中p为所有"的平均值,由g决定解压部分本文仅描述了算法的大致框架,11只给出了简单的理论推导,仅做启发思维之用, 若要投入使用还需要许多细致的工作事实上,此算法稍加改造亦可用于音频压缩参考书目1. 从文件读入vv,/?,w0,/?0>各个图像小块对应的“以及{%}等数据2. 对某一未处理小块,按照(9)(10)逆向计算原來勺,畋近似值3. 按(6)计算小块内所有像素的灰度值,其中第i个灰度值为F(p,i),将其输出到 屏幕或其他文件4. 如果所有小块都处理完了,则算法结束,否则跳转到2粗略估计时间复杂度为O (woAop)总结高等数学导论(下册)中国科学技术大学出版社。
