Math 使用莫顿代码压缩数据-如何?

Math 使用莫顿代码压缩数据-如何?,math,z-order-curve,Math,Z Order Curve,我一直在读一些关于莫顿码的东西,我发现局部性在生成的数字序列中得到了保留 我不明白的是,这些信息如何被用来压缩数据或高效地并行构造数据 来源:莫顿排序本身与数据压缩并没有内在联系。这只是一种在内存中布局空间数据的方法,这样,关于连续空间块的查询往往会映射到连续内存块,从而提高缓存效率 在您引用的链接中,Morton order用于提高光盘读写效率 该算法将复杂三角形网格转换为高分辨率体素中间表示(以莫顿顺序存储),然后将该表示转换为稀疏(压缩)输出形式 Morton顺序的一个特性是,它与八叉树(

我一直在读一些关于莫顿码的东西,我发现局部性在生成的数字序列中得到了保留

我不明白的是,这些信息如何被用来压缩数据或高效地并行构造数据


来源:

莫顿排序本身与数据压缩并没有内在联系。这只是一种在内存中布局空间数据的方法,这样,关于连续空间块的查询往往会映射到连续内存块,从而提高缓存效率

在您引用的链接中,Morton order用于提高光盘读写效率

该算法将复杂三角形网格转换为高分辨率体素中间表示(以莫顿顺序存储),然后将该表示转换为稀疏(压缩)输出形式

Morton顺序的一个特性是,它与八叉树(或2D中的四叉树)的深度优先遍历所获得的顺序相匹配。这在输出八叉树数据结构和中间数据结构之间提供了一种方便的对齐方式。因此,在输出八叉树中构造节点需要来自中间结构中一组连续索引的数据。这使得算法在给定的步骤中只读取所需的数据,从而保持较低的内存占用率和较高的缓存效率

因此,这里的Morton排序本身并没有提供任何特殊的压缩或并行化优势-您可以编写一个具有相同压缩输出的等效算法,该算法在其中间使用线性排序,但其写入和读取将更加分散,因此它可能不会以同样的速度处理数据

但是,如果您使用四叉树或八叉树来压缩数据,Morton排序可以使您的数据索引更干净、性能更高