The invention relates to a Hilbert coding and decoding method under data skew distribution, belonging to the technical fields of image storage, spatial database index, etc. It includes the construction stage of Hilbert curve state view, the construction of coding and decoding mapping table, which is used to realize the mapping between coding value and coordinate, and the mapping to the next order state; Hilbert coding stage: the coding process is divided into two stages: immediate coding and step-by-step coding, and Hilbert coding is calculated; decoding stage: the decoding process is divided into two stages: immediate decoding and step-by-step decoding , calculate the corresponding physical coordinates; by introducing the immediate encoding and immediate decoding stage, the invention can avoid the iterative table lookup operation for a specific sequence, and has high efficiency in the case of a specific data skew distribution.
【技术实现步骤摘要】
一种数据偏斜分布下的Hilbert编码和解码方法
本专利技术涉及一种数据偏斜分布下的Hilbert编码和解码方法,属于图像存储,空间数据库索引等
技术介绍
1980年,Peano第一个提出了空间填充曲线,希尔伯特推广了它的存在,并给出了其一般化的生成方法;空间填充曲线可将多维数据序列化为一维数据,便于多维数据在磁盘上的存储与索引,这种映射模式在影像压缩、行程编码形式的栅格数据表达、空间划分、空间查询、空间索引、计算几何中的启发式搜索等领域应用广泛;空间排列码(SpatialOrderingCode)以连续整数与空间填充曲线实体集元素建立起一一对应的可逆对应关系,奠定了空间填充曲线相关算法的基础。目前,应用最广泛的空间排列方法包括Morton码、Gray码及Hilbert码。经大量应用验证,Hilbert空间排列码具有最好的空间聚集及空间连续性;至今为止,已经提出了许多用于生成Hilbert曲线的算法,这些算法可归纳为两类:递归算法和迭代算法;Fisher曾经提出了基于查找表的迭代算法并指出许多递归算法并不适 ...
【技术保护点】
1.一种数据偏斜分布下的Hilbert编码和解码方法,其特征在于:/n步骤100:Hilbert曲线状态视图构建阶段:针对一阶物理坐标和一阶编码,需构建物理坐标到编码值的状态视图PC、物理坐标到下一阶状态之间关系的状态视图PN、编码值到物理坐标的状态视图CP、编码值到下一阶状态的状态视图CN,其中前2个用于一阶编码,后2个用于一阶解码;/n步骤200:编码阶段:给定点P(X,Y)和阶数m,计算点P的Hilbert编码C;/n步骤300:解码阶段:给定Hilbert编码C,计算其物理坐标P(X,Y)。/n
【技术特征摘要】
1.一种数据偏斜分布下的Hilbert编码和解码方法,其特征在于:
步骤100:Hilbert曲线状态视图构建阶段:针对一阶物理坐标和一阶编码,需构建物理坐标到编码值的状态视图PC、物理坐标到下一阶状态之间关系的状态视图PN、编码值到物理坐标的状态视图CP、编码值到下一阶状态的状态视图CN,其中前2个用于一阶编码,后2个用于一阶解码;
步骤200:编码阶段:给定点P(X,Y)和阶数m,计算点P的Hilbert编码C;
步骤300:解码阶段:给定Hilbert编码C,计算其物理坐标P(X,Y)。
2.根据权利要求1所述的数据偏斜分布下的Hilbert编码和解码方法,其特征在于所述Hilbert曲线状态视图构建阶段具体为:
步骤110:一阶Hilbert曲线将整个空间分成2×2共4个区域,将每个区域称为格元,每个格元有对应的物理坐标(由横坐标和纵坐标组成)和Hilbert编码;左下、左上、右上、右下格元对应的物理坐标别为(0,0)、(0,1)、(1,1)、(1,0);一阶Hilbert曲线有4种基本状态:状态0(开口向下)、状态1(开口向左)、状态2(开口向上)、状态3(开口向右);
步骤120:4种状态下,状态视图PC中一阶物理坐标(0,0)、(0,1)、(1,1)、(1,0)分别对应的一阶编码如下所示:
状态0:对应编码00、01、10、11;
状态1:对应编码00、11、10、01;
状态2:对应编码10、11、00、01;
状态3:对应编码10、01、00、11;
步骤130:4种状态下,状态视图PN中一阶物理坐标(0,0)、(0,1)、(1,1)、(1,0)分别对应的下一阶状态如下所示:
状态0:对应下一阶状态1、0、0、3;
状态1:对应下一阶状态0、2、1、1;
状态2:对应下一阶状态2、1、3、2;
状态3:对应下一阶状态3、3、2、0;
步骤140:4种状态下,状态视图CP中一阶编码值00、01、10、11分别对应的物理坐标如下所示:
状态0:对应物理坐标(0,0)、(0,1)、(1,1)、(1,0);
状态1:对应物理坐标(0,0)、(1,0)、(1,1)、(0,1);
状态2:对应物理坐标(1,1)、(1,0)、(0,0)、(0,1);
状态3:对应物理坐标(1,1)、(0,1)、(0,0)、(1,0);
步骤150:4种状态下,状态视图CN中一阶编码值00、01、10、11分别对应的下一阶状态如下所示:
状态0:对应下一阶状态1、0、0、3;
状态1:对应下一阶状态0、1、1、2;
状态2:对应下一阶状态3、2、2、1;
状态3:对应下一阶状态2、3、3、0。
3.根据权利要求1所述的数据偏斜分布下的Hilbert编码和解码方法,其特征在于所述编码阶段具体为:
步骤210:给定点P(X,Y)和阶数m,其中X=(xm-1xm-2.....x1x0)2,,Y=(ym-1ym-2.......y1y0)2,,其中xi和yi分别表示X和Y的第m-i阶的值,设初始Hilbert编码值Z=0,初始状态第1阶状态T1=0;
步骤220:置位检测阶段,若xm-1=1,置否则置X'=X,同理,若ym-1=1,置否则置Y'=Y,其中和分别为X和Y按位取反后的值;然后,查找X'和Y'的最大值的第一个为1的位置pos;
步骤230:立即编码阶段,令n=...
【专利技术属性】
技术研发人员:李孟娟,贾连印,李润鑫,梁彬彬,王维晨,岳跃华,张钰娜,
申请(专利权)人:云南师范大学,
类型:发明
国别省市:云南;53
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。