【发布时间】:2012-10-13 22:21:51
【问题描述】:
当前使用运行长度编码对位向量进行编码,当前运行时间为 2log(i),其中是运行的大小。是否有另一种方法可以将其降低到 log(i)? 谢谢。
【问题讨论】:
标签: performance optimization encoding bitmap bitvector
当前使用运行长度编码对位向量进行编码,当前运行时间为 2log(i),其中是运行的大小。是否有另一种方法可以将其降低到 log(i)? 谢谢。
【问题讨论】:
标签: performance optimization encoding bitmap bitvector
编码位向量的最有效方法是隔离位源的任何特定属性。如果它是完全随机的,则没有真正明显的增益(实际上,完全随机的比特流无法以任何方式压缩)。
如果您可以在比特流中找到属性,您可以尝试定义向量集合,这些向量将定义向量空间的基础。在这种情况下,结果将非常有效。
我们需要有关您的比特流的更多详细信息。
(编辑)
再多看几个细节就可以理解前面的语句了: “不能以任何方式压缩完全随机的比特流”
如果“压缩”是指“转换/压缩流”加上“向量基定义”加上,则不可能压缩完全随机的位向量> 解压程序。但在大多数情况下,解压缩程序(通常也是矢量库)嵌入在客户端软件中。因此,只需要“压缩流”。
一个很好的解释(和有趣的故事)是Patrick Craig 5000$ compression challenge
更科学的theory of information, especially entropy section
最后一个,the full story。
但无论解决方案是什么,如果您有未知数量的未知流要压缩,您将无能为力。你必须找到一个模式。
【讨论】: