莫顿码(Morton code)介绍

概念

莫顿码是将多维数据转化为一维数据的编码。
莫顿编码定义了一条 Z 形的空间填充曲线,因此莫顿编码通常也称Z阶曲线(Z-order curve)。 在 N 维空间中对于彼此接近的坐标具有彼此接近的莫顿码, 可以应用于为一个整数对产生一个唯一索引。例如,对于坐标系中的坐标点使用莫顿编码生成的莫顿码,可以唯一索引对应的点。这些索引为“Z”形排序 。如下图以Z形(左上->右上->左下->右下)分别代表1*1、2*2、4*4、8*8 平方单位:
在这里插入图片描述

编码规则

十进制编码规则:首先,行列号转为二进制(从第0行0列开始);然后行列号交叉排列(yxyx…);最后将二进制结果转为十进制。Morton编码是按左上,右上,左下,右下的顺序从0开始对每个格网进行自然编码的。如下图(二维空间):展示了8*8的图像每个像素的空间编码,从000000到111111,用一维二进制数,编码了x,y值在0-7的位置坐标。图中蓝色数字代表x轴,红色数字代表y轴,网格中的二进制数由x和y的二进制数交叉构成。
在这里插入图片描述

将上图中的二进制数转为10进制,是0…63的数列,如下图:
在这里插入图片描述

在三维空间同样是Z形排序,xyz轴二进制位交叉(zyxzyx…),如下图4*4*4和8*8*8 立方单位
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cheche012345/article/details/127729403