Morton 代码对于更高维度是最有效的吗?
Posted
技术标签:
【中文标题】Morton 代码对于更高维度是最有效的吗?【英文标题】:Is Morton code the most efficient for higher dimensions? 【发布时间】:2014-05-29 14:17:56 【问题描述】:对于我当前的输入数据,即 3D 中的点,我使用Morton code 来提高访问点列表时的缓存一致性。
我还有一些其他数据是 6D 和 7D。 Morton 码对于这种尺寸仍然是一种很好的技术吗?或者有没有其他的技术?其他空间填充曲线技术在 3D 本身中的计算比 Morton 更复杂,我想知道人们是否使用替代技术来实现 6D/7D 或更高。
【问题讨论】:
【参考方案1】:您应该尝试行主索引或行主索引。它们还保留了空间局部性,但即使在更高维度上也可以更有效地计算它们。
您可以在汇编语言的艺术,第 5 章,第 211-216 页一书中更深入地了解行优先和列优先索引(但几何意义较小)。相关章节可在线获取here。
还有一个很好的paper,关于您可以考虑的各种空间索引技术,包括提到的技术:Samet, H. 2017. Sorting Spatial Data。国际地理百科全书。 1-11.
Hilbert 和 Gray 索引在这里不是一个选项,因为它们的计算速度比 Morton 慢(它们的大多数实现都包含隐式 Morton 编码)。 基本上是一个适当的 Morton (lookup-table or magic numbers based) 实现,并且 row-major/column-major 索引是最快的。
【讨论】:
@Bytemain 这有什么好处?为了进行比较,您需要两件事。 @Bytemain 投反对票并不是解决向您提出的问题的最明智方法。 @Bytemain 我建议你删除你对我其他问题的不赞成票,你没有任何理由提出,否则我会联系版主。以上是关于Morton 代码对于更高维度是最有效的吗?的主要内容,如果未能解决你的问题,请参考以下文章