找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 2882|回复: 0

关于图像存储中的无损压缩算法之我见

[复制链接]
发表于 2003-3-1 14:44:33 | 显示全部楼层 |阅读模式
[这个贴子最后由雪狐在 2003/03/01 02:48pm 第 1 次编辑]

关于图像的有损压缩我在这里不想作过多的介绍,在这里主要说一下无损压缩算法
步长法(实用于双色图像,在DICOM里没有什么实用的价值,在这里只作简单的介绍)是一种基本的压缩符号化方式,它没扫描线搜索,把连续的黑色或白色象素的个数作为图像数据保存下来,以替代每一个记录的方式.
从上边的描述可以看出,在PACS中的图像由于是8位,12位或16位灰度,上边的方法显然不能使用的,但它是一种最基本的图你压缩算法,在二色图像中有很大的应用价值.
差值法:针对多值图像的一种可逆的压缩算法.
原理:
对于大多数灰度图像(特别是DICOM中的灰度图像)相邻的两个像素间的灰度值相差非常小,在计算机图形学中经过统计可以发现基本上都分布在-8~+8之间,因此对于每条扫描线,设第一个点的象素值为C1,第二个像素的值为C2,设x1=C2-C1,则C2可以表示为C1+X1,以此类推,可以得到X2,X3,X4......由上可知,这此值大多分布在-8~+8之间,
定义Y1,Y2,Y3...Y16分别表示0000,0001,0010....1111这十六个二进制值(至于为什么是四位....因为两个四位正好一个字节,比较方便),用0001~1110表示从-7,-6,...,0,1,2,...5,6这14个数,用0000表示小于-7的数,用1111表示大于6的数,
那么如果C2与C1的差值在-7~+6之间时,它可以表示为Y2,以四位表示,如果C2与C1的差值大于6,如果落在[7~20]之间,用Y16Yx表示,如差值为10,那么在内存中的表示为1111 0100,占一个字节,如果在[21~34]之间,用Y16Y16Yx表示,以此类推小于-7的值.
再看DICOM图像,一般用4096级灰度,也就是一个像素12位,存储占两个字节,也有较少的设备采用65536级灰度,也就是16位,同样也占两个字节,但由于一般不会有灰度突变的情况,用差值法还是比较合理的,
由上可看出,在该算法中,如果灰度差在某一个较小的范围内时,对于DICOM的图像,该算法基本上可以达到25%的压缩比,
至于代码怎么写...大家就自己写写吧...毕竟算法已经告诉大家了
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表