我一直在阅读有关morton代码的内容,我得到的地点在生成的数字序列中保留。
我不明白这些信息如何用于压缩数据或有效地并行构建数据。
来源:http://www.forceflow.be/2013/10/07/morton-encodingdecoding-through-bit-interleaving-implementations/
答案 0 :(得分:3)
在您引用的链接中的algorithm paper referenced中,Morton命令用于提高光盘读取的效率。写入。
该算法将复杂三角形网格转换为高分辨率体素中间表示(以Morton顺序存储),然后将该表示转换为稀疏(压缩)输出形式。
Morton顺序的一个属性是它匹配从八叉树的深度优先遍历(或2D中的四叉树)获得的顺序。这使得输出八叉树数据结构和中间体之间的方便对齐。因此,在输出八叉树中构造节点需要来自中间结构中的连续索引集的数据。这使得算法只读取给定步骤所需的数据,从而保持较低的内存占用率和缓存效率。
所以这里的Morton排序本身没有提供特定的压缩或并行化优势 - 你可以编写一个等效的算法,其压缩输出相同,在其中间使用线性排序,但它的写入和读取会更加分散,所以它可能几乎不会快速处理数据。
但如果你使用四叉树或八叉树来压缩数据,莫顿订购可以使你的数据索引更清晰,性能更高。