一种基于Hilbert扫描的灰度图像压缩方法技术

技术编号:32231013 阅读:12 留言:0更新日期:2022-02-09 17:35
本发明专利技术涉及一种基于Hilbert扫描的灰度图像压缩方法,属于图像存储技术领域。本发明专利技术包括数据映射阶段、压缩阶段和图像还原阶段。数据映射阶段创建Hilbert解码状态视图,基于高效的hilbert曲线解码算法扫描图像,将图像映射为一维数组。压缩阶段根据最小方差分区的策略将一维数据划分为灰度值相近的分区,并对满足特定条件的较小的分区进行合并,以降低分区数量,从而将原始图像压缩为长度和灰度两个位数组。还原阶段基于Hilbert曲线解码算法将压缩后的数据还原为对应的图像。本发明专利技术将高效的Hilbert解码算法和最小方差分区、分区合并策略结合,具有高的内聚性,可使得更多相邻的像素点划分到同一分区,从而降低分区数量;高的解码速度,从而提高图像的压缩和解压速度。从而提高图像的压缩和解压速度。从而提高图像的压缩和解压速度。

【技术实现步骤摘要】
一种基于Hilbert扫描的灰度图像压缩方法


[0001]本专利技术涉及一种基于Hilbert扫描的灰度图像压缩方法,属于图像存储


技术介绍

[0002]图像压缩是图像存储和高效传输的基础。目前有众多图像压缩的算法,如JPEG算法、Kamata等人提出的算法等。Hilbert曲线作为Peano填充曲线中的一个重要分支,在图像压缩中得到了广泛应用。相比光栅扫描,Hilbert曲线扫描具有更好的内聚性,因此可更好地把灰度值接近的像素点存储在相邻的位置。
[0003]早期的Hilbert编解码算法多为基于递归的算法,编码效率低。Kamata采用的hilbert解码算法,其解码时间占总压缩时间的近50%。通过引入基于高效的Hilbert解码算法,并优化图像压缩过程,可以有效提高图像压缩的效率。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种基于Hilbert扫描的灰度图像压缩方法,从而解决图像扫描效率低和分区合并过程中空间开销大而导致的图像压缩和解压效率低的问题。
[0005]本专利技术的技术方案是:一种基于Hilbert扫描的灰度图像压缩方法,包括数据映射阶段、压缩阶段和图像还原阶段。数据映射阶段,创建Hilbert解码状态视图,基于高效的hilbert曲线解码算法扫描图像,将图像映射为一维数组。压缩阶段,根据最小方差分区的策略将一维数据划分为灰度值相近的分区,并对满足特定条件的较小的分区进行合并,以降低分区数量,从而将原始图像压缩为长度和灰度两个位数组。还原阶段,基于Hilbert曲线解码算法将压缩后的数据还原为对应的图像。
[0006]具体步骤为:
[0007]Step1、构建Hilbert状态视图,沿Hilbert曲线方向顺序扫描图像,得到图像的一维灰度数组G。
[0008]Step2:将一维灰度数组G分割为灰度值相近的小分区,并将每个小分区的长度和灰度值分别插入到长度位数组R
len
和灰度位数组R
gray
中,从而将原始图像压缩表示为R
len
和R
gray
2个位数组。
[0009]Step3:将压缩后的位数组R
len
和R
gray
还原为对应图像。
[0010]所述Step1具体为:
[0011]Step1.1:基于1阶Hilbert曲线构建解码状态视图,然后采用基于状态视图的高效Hilbert解码算法扫描图像数据,所述1阶Hilbert曲线包含开口向下、向左、向上和向右4种基本状态,分别对应状态0、1、2、3。
[0012]Step1.2:给定1阶编码值00、01、10、11,其对应的4种状态下的坐标值和下一阶状态如下:
[0013]状态0:物理坐标:(0,0)、(0,1)、(1,1)、(1,0)。下一阶状态:1、0、0、3。
[0014]状态1:物理坐标:(0,0)、(1,0)、(1,1)、(0,1)。下一阶状态:0、1、1、2。
[0015]状态2:物理坐标:(1,1)、(1,0)、(0,0)、(0,1)。下一阶状态:3、2、2、1。
[0016]状态3:物理坐标:(1,1)、(0,1)、(0,0)、(1,0)。下一阶状态:2、3、3、0。
[0017]Step1.3:给定一张n*n的灰度图像,确定Hilbert阶数为log2n,其中n为图像高度或宽度上的像素点的数量。
[0018]Step1.4:沿着Hilbert曲线方向,将Hilbert空间内的每个编码值C解码为图像中对应的坐标P(x,y)。
[0019]Step1.5:将P(x,y)像素点的灰度值存入数组G的第C个位置。也就是说,编码值C为1、2、3

n,其具体为几,就将P(x,y)像素点的灰度值存入数组G的第几个位置。
[0020]所述Step1.4具体为:
[0021]Step1.4.1:设定初始状态s=0,即C的第1阶总是从开口向下的状态开始解码,x=0,y=0。
[0022]Step1.4.2:循环变量i从1到log2n,循环执行Step1.4.3和Step1.4.4。
[0023]Step1.4.3:取C的第i阶的2位编码值c,C的最左侧的2位为第1阶,随后2位为第2阶,依次类推,根据当前状态s,查询状态视图获得对应的第i阶坐标值(x
i
,y
i
)及第i+1阶状态值s'。
[0024]Step1.4.4:令x=x<<1|x
i
,y=y<<1|y
i
,s=s',其中“|”为逻辑或操作。
[0025]所述Step2具体为:
[0026]Step2.1:将数组G均匀划分为q个长度为m的分区,最后一个分区长度可能小于m,m表示初始化分的分区长度,其中,q=n*n/m。
[0027]Step2.2:对每个分区p,若p.len<t1且p.var<t2,则采用延迟插入的策略将p.len和p.avg分别插入到位数组R
len
和R
gray
中。
[0028]若否,则将p进一步划分为p1和p2两个分区,使得p1.var+p2.var最小,其中t1表示分区的长度阈值,t2表示分区方差阈值,p.len表示分区的长度,p.avg表示分区p的平均灰度值,p.var表示分区p中灰度值的方差。
[0029]Step2.3:对分区p1和p2递归执行Step2.2,进一步对其分区,直至所有分区的长度和方差满足t1和t2的阈值。
[0030]Step2.4:最终,R
len
和R
gray
中分别存储了压缩表示的分段长度和分段灰度信息,记最终得到的分段总数为segNum。
[0031]所述Step2.2中的延迟插入的策略具体为:
[0032]对p.len<t1且p.var<t2的待插入分区p,判断p.len+prevLen<t1且|p.gray

prevGray|<t3是否成立。
[0033]若是,则置prevGray=(p.len*p.gray+prevLen*prevGray)/(p.len+prevLen)和prevLen=prevLen+p.len,从而将本分区和之前的尚未插入位数组的分区合并,暂不插入位数组中。
[0034]若否,则将prevLen(长度为log2t1位二进制)和prevGray(长度为8位二进制)分别插入到位数组R
len
和R
gray
的尾部,并置prevLen=p.len,prevGray=p.avg。
[0035]其中prevLen和prevGray分别表示插入p之前待合并分区的总长度及平均灰度值,初始值均为0,t3表示待p与prevGray的灰度差阈值。
[0036]所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Hilbert扫描的灰度图像压缩方法,其特征在于:Step1:构建Hilbert状态视图,沿Hilbert曲线方向顺序扫描图像,得到图像的一维灰度数组G;Step2:将一维灰度数组G分割为灰度值相近的小分区,并将每个小分区的长度和灰度值分别插入到长度位数组R
len
和灰度位数组R
gray
中,从而将原始图像压缩表示为R
len
和R
gray
2个位数组;Step3:将压缩后的位数组R
len
和R
gray
还原为对应图像。2.根据权利要求1所述的基于Hilbert扫描的灰度图像压缩方法,其特征在于所述Step1具体为:Step1.1:基于1阶Hilbert曲线构建解码状态视图,然后采用基于状态视图的高效Hilbert解码算法扫描图像数据,所述1阶Hilbert曲线包含开口向下、向左、向上和向右4种基本状态,分别对应状态0、1、2、3;Step1.2:给定1阶编码值00、01、10、11,其对应的4种状态下的坐标值和下一阶状态如下:状态0:物理坐标:(0,0)、(0,1)、(1,1)、(1,0);下一阶状态:1、0、0、3;状态1:物理坐标:(0,0)、(1,0)、(1,1)、(0,1);下一阶状态:0、1、1、2;状态2:物理坐标:(1,1)、(1,0)、(0,0)、(0,1);下一阶状态:3、2、2、1;状态3:物理坐标:(1,1)、(0,1)、(0,0)、(1,0);下一阶状态:2、3、3、0;Step1.3:给定一张n*n的灰度图像,确定Hilbert阶数为log2n,其中n为图像高度或宽度上的像素点的数量;Step1.4:沿着Hilbert曲线方向,将Hilbert空间内的每个编码值C解码为图像中对应的坐标P(x,y);Step1.5:将P(x,y)像素点的灰度值存入数组G的第C个位置。3.根据权利要求2所述的基于Hilbert扫描的灰度图像压缩方法,其特征在于所述Step1.4具体为:Step1.4.1:设定初始状态s=0,即C的第1阶总是从开口向下的状态开始解码,x=0,y=0;Step1.4.2:循环变量i从1到log2n,循环执行Step1.4.3和Step1.4.4;Step1.4.3:取C的第i阶的2位编码值c,根据当前状态s,查询状态视图获得对应的第i阶坐标值(x
i
,y
i
)及第i+1阶状态值s';Step1.4.4:令x=x<<1|x
i
,y=y<<1|y
i
,s=s',其中“|”为逻辑或操作。4.根据权利要求1所述的基于Hilbert扫描的灰度图像压缩方法,其特征在于所述Step2具体为:Step2....

【专利技术属性】
技术研发人员:贾连印王炳月丁家满李润鑫李晓武游进国
申请(专利权)人:昆明理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1