У меня есть 3D-воксельные данные, и я хочу переупаковать их для эффективного использования памяти и быстрого доступа. Данные генерируются в обычном октодереве, по одному целочисленному значению на ячейку. К сожалению, данные не разрежены, но ячейки с одинаковым значением должны быть связаны.
Example for one slice:
[11122]
[11223]
[12222]
[44444]
Моя текущая идея состоит в том, чтобы использовать kD-дерево, желательно с балансировкой по левому краю, но я не уверен, что существует эффективный алгоритм для его создания. У меня есть некоторые идеи, но я надеялся, что это одна из тех проблем, для которых уже есть установленные алгоритмы или, по крайней мере, имя, которое я мог бы найти в Google.