我正在寻找一种位图压缩算法,可以通过设置随机位来生成位图,并且我很关心位图在RAM中所占用的空间。未压缩的位图存储1073741824位(约10亿位),需要大约128MB的空间,而我根本没有那么多的空间。我希望尽可能地节省空间(RAM)。
我查看了WAH、EWAH等压缩算法(尚未仔细阅读论文),但这些算法似乎都是流式压缩,无法在生成位图时以压缩格式随机设置其中的位(非常昂贵的操作)。例如,如果要设置第100、200、300个位,则可以实现,但如果需求是设置第100、200、105、3000、1999个位,则不能实现。
在我的情况下,所有位的设置信息都只能随机获得,例如,如果我进行某个操作1073741824次,则需要基于操作结果设置任何位,并且它们不会按顺序递增。
请问以上理解是否正确?还有其他替代方案吗?
总结:创建压缩位图的算法,同时随机设置位。不存在熵/模式信息,分布可以是任意的。目标:最佳算法以节省内存。减少生成位图时设置随机位所占用的内存。
我查看了WAH、EWAH等压缩算法(尚未仔细阅读论文),但这些算法似乎都是流式压缩,无法在生成位图时以压缩格式随机设置其中的位(非常昂贵的操作)。例如,如果要设置第100、200、300个位,则可以实现,但如果需求是设置第100、200、105、3000、1999个位,则不能实现。
在我的情况下,所有位的设置信息都只能随机获得,例如,如果我进行某个操作1073741824次,则需要基于操作结果设置任何位,并且它们不会按顺序递增。
请问以上理解是否正确?还有其他替代方案吗?
总结:创建压缩位图的算法,同时随机设置位。不存在熵/模式信息,分布可以是任意的。目标:最佳算法以节省内存。减少生成位图时设置随机位所占用的内存。