The invention relates to a packet Hilbert coding and decoding method, belonging to the technical field of information retrieval. It includes three main parts: the construction, coding and decoding of the packet state view. The group state view is responsible for maintaining the mapping relationships among the group physical coordinates, group codes, and the next group of states. The encoding or decoding part first groups the physical coordinates or encoded values, and then queries the state view group by group to realize encoding or decoding. By the way of grouping, the traditional Hilbert coding and decoding method with O (m) complexity can be reduced to o (M / k), where m is the order and K is the size of the grouping, so the invention can significantly improve the efficiency of Hilbert coding and decoding.
【技术实现步骤摘要】
一种分组Hilbert编码和解码方法
本专利技术涉及一种分组Hilbert编码和解码方法,属于信息检索
技术介绍
空间填充曲线在数据库索引、图像处理、数据分区等诸多领域有着广泛的应用。其能够将高维空间中的数据按照一定的规则映射到一维空间,通过映射可使得在曲线上相邻的对象在空间上也是相邻的。空间填充曲线可很好地和主流的一维索引结构如B+树、trie等结合,因此可有效提高空间数据对象的存储和查询效率。空间填充曲线的主要代表有Hilbert曲线和Z曲线。Z曲线生成效率高,实现方便,但Z曲线存在对角线连接、跳变性较大的不足,因此空间聚集性较低。相反的是,Hilbert曲线的空间聚集性较好,但其映射规则较为复杂。因此,提高Hilbert编码和解码效率对许多领域有重要的意义。目前主流编解码算法,如qhc算法、moore提出的算法等,其时间复杂度多为o(m),其中m为Hilbert曲线的阶数,复杂度较高。
技术实现思路
本专利技术要解决的技术问题是针对现有编解码方法需要逐阶处理,故复杂度高、效 ...
【技术保护点】
1.一种分组Hilbert编码和解码方法,其特征在于:/nStep100:分组状态视图构建阶段,给定分组大小k,构建不同状态下k阶物理坐标到k阶编码值的组映射表KPC、k阶物理坐标到第k+1阶状态的组映射表KPS、k阶编码值到k阶物理坐标的组映射表KCP、k阶编码值到第k+1阶状态的组映射表KCS;/nStep200:编码阶段,给定位置点P(X,Y)和阶数m,将坐标X,Y分组,并通过查询KPC和KPS将位置点P编码为长度为2m位的Hilbert编码Z;/nStep300:解码阶段,给定长度为2m位的编码Z和阶数m,将Z分组,并通过查询KCP和KCS将Z解码为位置点P(X,Y)。/n
【技术特征摘要】
1.一种分组Hilbert编码和解码方法,其特征在于:
Step100:分组状态视图构建阶段,给定分组大小k,构建不同状态下k阶物理坐标到k阶编码值的组映射表KPC、k阶物理坐标到第k+1阶状态的组映射表KPS、k阶编码值到k阶物理坐标的组映射表KCP、k阶编码值到第k+1阶状态的组映射表KCS;
Step200:编码阶段,给定位置点P(X,Y)和阶数m,将坐标X,Y分组,并通过查询KPC和KPS将位置点P编码为长度为2m位的Hilbert编码Z;
Step300:解码阶段,给定长度为2m位的编码Z和阶数m,将Z分组,并通过查询KCP和KCS将Z解码为位置点P(X,Y)。
2.根据权利要求1所述的分组Hilbert编码和解码方法,其特征在于所述分组状态视图构建阶段,具体Step为:
Step110:一阶Hilbert曲线具有开口向下、左、上、右4种形态,分别对应0、1、2、3共4种状态,对一个k阶的组g,其k阶组坐标分别表示为Xg和Yg,对应的k阶组编码为Zg,下一组的状态表示为Tg+1;
Step120:KPC的构建,对每一种状态,循环将每一个可能的组坐标Xg和Yg生成对应的组编码Zg,存储到KPC的对应位置中;
Step130:KPS的构建,对每一种状态,循环将每一个可能的组坐标Xg和Yg,生成对应的下一组状态Tg+1,存储到KPS的对应位置中;
Step140:KCP的构建,对每一种状态,循环将每一个可能的组编码Zg生成对应的组坐标Xg和Yg,将Xg<<k|Yg存储到KCP的对应位置中;
Step150:KCS的构建,对每一种状态,循环将每一个可能的组编码Zg生成对应的下一组状态Tg+1,存储到KCS的对应位置中。
3.根据权利要求1所述的分组Hilbert编码和解码方法,其特征在于所述编码阶段,具体Step为:
Step:210:分组阶段,将坐标X和Y从左...
【专利技术属性】
技术研发人员:李孟娟,贾连印,李润鑫,王维晨,梁彬彬,张钰娜,岳跃华,
申请(专利权)人:云南师范大学,
类型:发明
国别省市:云南;53
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。